|
文章目錄
前言
一、TWEN-ASR開發(fā)板介紹
二、程序編寫、下載、調(diào)試
三、運(yùn)行測試
四、總結(jié)
前言
語音識別這個(gè)詞,相信大家都不陌生,現(xiàn)在流行的智能音箱基本都有語音識別功能,如Alex、小愛音箱、天貓精靈、小度音箱等等。市面上語音識別的模塊也很多,主要分為兩大類在線語音識別和離線語音識別。前面提到的智能音箱,需要在線才有靈魂。智能音箱可以控制家電,而控制的家電的產(chǎn)品都需要進(jìn)入相應(yīng)的生態(tài)圈。對于開發(fā)者而言,也許會跟我遇到這樣的問題:
(1)喚醒詞不能更改;
(2)離線控制功能受限;
(3)只能按照智能音箱廠商協(xié)議進(jìn)行產(chǎn)品。
然而有這么一個(gè)芯片,可以任意修改喚醒詞,可以離線語音識別控制,可以快速編寫程序,這個(gè)芯片就是TWEN-ASR。本篇文章將使用TWEN ASR ONE V1.0開發(fā)板,進(jìn)行語音識別和控制測試。主要內(nèi)容有:
TWEN-ASR開發(fā)板介紹;
程序編寫、下載、調(diào)試;
TWEN-ASR運(yùn)行測試。
一、TWEN-ASR開發(fā)板介紹
開發(fā)板板載一顆 RGB 燈,引出 26 個(gè) IO,外接喇叭和麥克風(fēng),用于快速驗(yàn)證語音產(chǎn)品功能。芯片內(nèi)置腦神經(jīng)網(wǎng)絡(luò)處理器 BNPU,支持 200 條命令詞以內(nèi)的本地語音識別,內(nèi)置 CPU核和高性能低功耗 Audio Codec 模塊,集成多路 UART、IIC、SPI、PWM、GPIO 等外圍控制接口,可以開發(fā)各類高性價(jià)比單芯片智能語音產(chǎn)品方案[1]。
圖1.1 TWEN-ASR ONE 引腳分布及功能圖
TWEN-ASR ONE 資源豐富。個(gè)人覺得可惜的是沒有復(fù)位按鍵。除了主板還有麥克風(fēng)、揚(yáng)聲器。如下圖1.2,1.3所示。
圖1.2 麥克風(fēng)
圖1.3 揚(yáng)聲器
還有下載程序需要用到的下載器。如下圖1.4所示。
圖1.4 下載器
二、程序編寫、下載、調(diào)試
(1)安裝天問Block軟件。 天問Block開發(fā)軟件主推圖像化編程,當(dāng)然也可以進(jìn)行字符編程。其中,天問Block下載網(wǎng)址。安裝完成后,編程選擇設(shè)備為TWEN-ASR,如下圖所示。
圖2.1 天問Block設(shè)備選擇圖
(2)程序編寫。 首先打開范例代碼1.第一個(gè)云因識別程序.hd,默認(rèn)是圖形化編程。
圖2.2 選擇范例代碼
.圖形代碼
圖2.3 圖形化代碼
從代碼我們可以看出,程序分兩塊,一塊是初始化,另一塊是ASR_CODE。初始化程序是上電時(shí)運(yùn)行一次,而ASR_CODE是循環(huán)運(yùn)行。
初始化過程:
1、 播報(bào)音設(shè)置。 可以設(shè)置不同的男聲、女生。選擇還是很多的。設(shè)置時(shí),還可以聽到聲音,有點(diǎn)像手機(jī)換鈴聲,點(diǎn)擊鈴聲就會播放鈴聲的聲音。音量和語速根據(jù)自己的喜好選擇即可。
圖2.4 播報(bào)語音選擇
2、 添加歡迎詞設(shè)置。 歡迎詞是上電的時(shí)候會播報(bào)。
3、 添加退出語音設(shè)置。 一段時(shí)間沒有語音操作后,模塊會播報(bào)退出語音,然后需要喚醒詞喚醒。
4、 添加識別詞(喚醒詞)。 喚醒詞是喚醒模塊工作的識別詞。
5、 添加識別詞(命令詞)。 命令詞是需要喚醒后工作的識別詞。
字符代碼
與前面的圖形化編程代碼對應(yīng)如下:
#include "asr.h"
#include "setup.h"
uint32_t snid;
void ASR_CODE();
//{ID:250,keyword:"命令詞",ASR:"最大音量",ASRTO:"音量調(diào)整到最大"}
//{ID:251,keyword:"命令詞",ASR:"中等音量",ASRTO:"音量調(diào)整到中等"}
//{ID:252,keyword:"命令詞",ASR:"最小音量",ASRTO:"音量調(diào)整到最小"}
/*描述該功能...
*/
void ASR_CODE(){
if((snid) == 4){
digitalWrite(13,1);
}
if((snid) == 6){
digitalWrite(13,0);
}
}
void setup()
{
//{speak:小蝶-清新女聲,vol:10,speed:10}
//{playid:10001,voice:歡迎使用智能管家,用智能管家喚醒我。}
//{playid:10002,voice:我退下了,用智能管家喚醒我}
//{ID:2,keyword:"喚醒詞",ASR:"智能管家",ASRTO:"我在"}
//{ID:4,keyword:"命令詞",ASR:"打開紅燈",ASRTO:"好的,馬上打開紅燈"}
//{ID:6,keyword:"命令詞",ASR:"關(guān)閉紅燈",ASRTO:"好的,馬上關(guān)閉紅燈"}
}
————————————————
程序?qū)崿F(xiàn)的功能是語音識別到打開紅燈會打開紅燈,識別到關(guān)閉紅燈會關(guān)閉紅燈。 RGB電路如下:
圖2.5 RGB燈原理圖
在程序中,PWM4(Pin13)高低電平就是控制紅燈的亮滅。
(3)程序下載。 首先確保線路連接正常,如下圖2.6所示。然后需要生成模型,最后編譯下載。
圖2.6 現(xiàn)在線路連接
圖2.7 下載順序和選擇
生成模型需要登錄,如果沒有賬號密碼,需要注冊。生成模型后,點(diǎn)擊編譯下載。第一次下載的時(shí)間比較長。可能需要3分鐘左右,耐心等待。以下是燒錄的過程:
圖2.8 模型生成
圖2.9 下載過程1
圖2.10 下載過程2
下載完成后,就會播放歡迎詞。
三、運(yùn)行測試
程序下載完成后,就會播報(bào)歡迎詞。
ASR:歡迎使用智能管家,用智能管家喚醒我。
我:智能管家
ASR:我在
我:打開紅燈
ASR:好的,馬上打開紅燈
圖3.1 紅燈亮
我:關(guān)閉紅燈
圖3.2 紅燈滅
ASR:好的,馬上關(guān)閉紅燈
語音識別反應(yīng)很快,基本上一說完就反應(yīng)過來。而且聲音小的時(shí)候也可以反應(yīng)過來。第一個(gè)程序語音識別開燈和關(guān)燈,效果還是不錯(cuò)的。
四、總結(jié)
本文介紹了基于TWEN-ASR-ONE開發(fā)板,實(shí)現(xiàn)的語音識別功能,并且進(jìn)行控制開燈和關(guān)燈操作。整過過程還是比較簡單。圖形化編程很直觀,閱讀代碼功能對初學(xué)者來說,基本上沒有什么問題。字符代碼,可以讓我們過度到圖形化代碼編程。TWEN-ASR-ONE開發(fā)語音識別編程很簡單。歡迎詞、退出語音、命令識別詞、喚醒識別詞可以自定義。還可以進(jìn)行不同聲音、音量、語速選擇?傮w來說,對于DIY功能基本夠用。
參考文章:
[1] TWen-ASR-ONE 快速上手說明 V1.0(twen_asr.pdf)
————————————————
版權(quán)聲明:本文為CSDN博主「初五霸」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/yang_zijing/article/details/117807027
|
|