找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2899|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

TWEN-ASR ONE 語音識別系列教程(1)——運(yùn)行第一個(gè)語音程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:924491 發(fā)表于 2021-6-23 17:29 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
文章目錄

前言
一、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
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表