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