国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

云端AI與本地相結(jié)合的嵌入式語音識(shí)別系統(tǒng)

2019-06-11 09:07楊煥崢楊國華徐玲孫慧敏
關(guān)鍵詞:嵌入式系統(tǒng)

楊煥崢 楊國華 徐玲 孫慧敏

摘? 要: 綜合利用了云端和本地語音識(shí)別算法,借助百度云端語音識(shí)別大數(shù)據(jù)庫實(shí)現(xiàn)大量語音命令識(shí)別,和借助類似神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí)算法使識(shí)別準(zhǔn)確率提高,使語音特征數(shù)據(jù)庫更新容易。結(jié)果表明,利用本地語音識(shí)別模組能準(zhǔn)確響應(yīng)特定詞匯的語音識(shí)別,該方法方便快捷;并由STM32 MCU進(jìn)行邏輯判斷獲取綜合語音識(shí)別結(jié)果,提升了有效性和準(zhǔn)確性。

關(guān)鍵詞: 百度語音識(shí)別; SYN7318; STM32F103; 嵌入式系統(tǒng); ESP32 WiFi

中圖分類號(hào): TN 912.34? ? ? ? ? 文獻(xiàn)標(biāo)志碼: A? ? ? ? ? 文章編號(hào): 1671-2153(2019)01-0086-04

1? 問題提出

嵌入式設(shè)備語音識(shí)別主要有兩種,一種是在線自由交談的云端AI語音識(shí)別,另一種是執(zhí)行有限的控制命令詞本地語音模塊識(shí)別[1]。

云端語音識(shí)別的優(yōu)點(diǎn):借助大數(shù)據(jù)庫可實(shí)現(xiàn)海量語音命令識(shí)別,借助復(fù)雜算法能使識(shí)別準(zhǔn)確率提高,語音特征數(shù)據(jù)庫更新容易,缺點(diǎn):需要借助通信網(wǎng)絡(luò),響應(yīng)速度慢。本地語音識(shí)別優(yōu)點(diǎn):無需借助網(wǎng)絡(luò),結(jié)構(gòu)簡(jiǎn)單,響應(yīng)速度快,缺點(diǎn):只能實(shí)現(xiàn)有限語音命令識(shí)別,語音特征數(shù)據(jù)庫更新麻煩。將云端和本地語音識(shí)別方式相結(jié)合,能實(shí)現(xiàn):①在沒有網(wǎng)絡(luò)的時(shí)候使用本地語音識(shí)別,有網(wǎng)絡(luò)的時(shí)候借助云端支持海量語音命令識(shí)別及提高識(shí)別準(zhǔn)確率;②如果在本地語音識(shí)別的詞語庫內(nèi)存在要識(shí)別的詞語而且能較好識(shí)別,則使用本地識(shí)別結(jié)果實(shí)現(xiàn)快速響應(yīng);否則選取來自云端的識(shí)別結(jié)果;③在網(wǎng)絡(luò)數(shù)據(jù)傳輸速度不穩(wěn)定,或者發(fā)生丟包的時(shí)候,由MCU通過時(shí)間等閾值判斷自適應(yīng)選擇合適的識(shí)別結(jié)果。本文研究了系統(tǒng)結(jié)構(gòu)和工作流程,硬件電路設(shè)計(jì)和軟件編程,完成了樣機(jī)制作,對(duì)性能進(jìn)行測(cè)試分析。相比物聯(lián)網(wǎng)節(jié)點(diǎn)MQTT通信協(xié)議,研究了百度AI語音識(shí)別平臺(tái)通過REST API方式給予的Http端口進(jìn)行JSON數(shù)據(jù)流的傳輸。

2? 系統(tǒng)功能結(jié)構(gòu)和工作流程

基于云端AI和本地相結(jié)合的語音識(shí)別系統(tǒng)可以很好的識(shí)別人的語音,結(jié)構(gòu)包括云端AI語音識(shí)別服務(wù)器和本地綜合語音識(shí)別模組,兩者利用WiFi通信方式進(jìn)行數(shù)據(jù)交互,如圖1所示。

本地綜合語音識(shí)別模組主要由SYN7318模塊、WM8978模塊、ESP32 WiFi控制器、STM32 MCU控制器[2]等組成,云端語音識(shí)別服務(wù)器采用百度語音識(shí)別云平臺(tái)。

系統(tǒng)工作過程包含以下6個(gè)步驟:①本地語音識(shí)別SYN7318模塊獲取人的語音信號(hào)進(jìn)行識(shí)別,得到語音識(shí)別本地的結(jié)果,通過UART接口送入STM32 MCU控制器;②STM32 MCU控制器連接ESP32 WiFi控制器判斷是否有WiFi網(wǎng)絡(luò),如果沒有網(wǎng)絡(luò)或網(wǎng)絡(luò)信號(hào)較差,則直接使用SYN7318模塊的本地語音識(shí)別結(jié)果并立即進(jìn)入最后一步,如果有網(wǎng)絡(luò),則轉(zhuǎn)到下一步執(zhí)行;③WM8978模塊將語音信號(hào)采集后送入ESP32 WiFi控制器,由該控制器通過WiFi通信發(fā)送語音信號(hào)至云端AI語音識(shí)別服務(wù)器,云端AI語音識(shí)別平臺(tái)識(shí)別語音信號(hào)從而得到語音識(shí)別云端的結(jié)果;④云端AI語音識(shí)別服務(wù)器將云端語音識(shí)別結(jié)果通過WiFi傳輸反饋給ESP32 WiFi控制器,并發(fā)送給STM32 MCU控制器;⑤STM32 MCU控制器將收到的本地和云端語音識(shí)別結(jié)果進(jìn)行邏輯判斷以確定最終輸出的語音識(shí)別結(jié)果;⑥將選取結(jié)果輸出,最終輸出語音指令。

3? 本地語音識(shí)別功能實(shí)現(xiàn)

3.1? 硬件電路設(shè)計(jì)

綜合語音識(shí)別模組的本地語音識(shí)別功能模塊使用SYN7318模塊,擁有最新語音喚醒算法,能夠完成非特定人的語音識(shí)別,可以預(yù)定義1萬條語音指令。SYN7318模塊集成了音頻輸入和輸出電路,以及語音喚醒、識(shí)別、合成、音樂播放電路和USART串行通信電路。將外接的麥克風(fēng)輸入的語音信號(hào)通過芯片37和38引腳經(jīng)音頻輸入電路接收后進(jìn)行語音識(shí)別,通過MP3播放電路通過27和28引腳音頻輸出外接功率放大器及喇叭將聲音播放出來。本地語音識(shí)別SYN7318模組通過UART接口33和34引腳與STM32 F103 MCU控制器串口2的16和17引腳相連,由MCU發(fā)送控制命令給該模組并接收反饋的識(shí)別結(jié)果信息。

3.2? 程序設(shè)計(jì)

本地語音識(shí)別程序設(shè)計(jì)范例如下:預(yù)先將“027 您好”通過軟件燒錄進(jìn)SYN7318語音識(shí)別模組磁條,當(dāng)用戶發(fā)出語音命令給該模塊后,需進(jìn)行語音識(shí)別,此時(shí)由STM32F103 MCU發(fā)5個(gè)字節(jié)的語音識(shí)別命令給SYN7318語音識(shí)別模組,告知其所用的用戶詞典。如len=5,0xFD 0x00 0x02 0x10 0x03。MCU接收4個(gè)字節(jié)的SYN7318語音識(shí)別模組的反饋信息;如0xFC 0x00 0x01 0x41,并根據(jù)第4字節(jié)是否為0x41判斷接收是否成功。MCU繼續(xù)接收3個(gè)字節(jié)的語音識(shí)別命令回傳結(jié)果,如:0xFC 0x00 0x06,根據(jù)幀頭是否是0xFC判斷,是的話進(jìn)一步接收6個(gè)字節(jié)回傳數(shù)據(jù),如:0x01 0x64 0x00 0x1A 0x00 0x1B,并判斷幀頭是否是0x01,第6個(gè)字節(jié)0x1B對(duì)應(yīng)的命令I(lǐng)D,即十進(jìn)制數(shù)27,由此可以知道是“您好”這一詞語。

4? 云端語音識(shí)別功能實(shí)現(xiàn)

4.1? 百度語音識(shí)別工作流程

百度語音識(shí)別技術(shù)使用和神經(jīng)網(wǎng)絡(luò)類似的深度學(xué)習(xí)算法,極大提高了識(shí)別效率[3]。利用REST

API給予一個(gè)標(biāo)準(zhǔn)的Http端口,允許識(shí)別整段錄音文件,允許使用語音識(shí)別控件,但錄音要滿足PCM 8k或16k抽樣率,單聲道16位深等要求,支持未壓縮的pcm、wav等,支持中英文和粵語[4]。

具體設(shè)計(jì)流程為:登陸百度語音識(shí)別平臺(tái),從管理控制臺(tái)轉(zhuǎn)入創(chuàng)建的應(yīng)用,獲取API、Secret密鑰和應(yīng)用ID,依據(jù)百度的權(quán)限方法得到Access_token。語音數(shù)據(jù)與其他參數(shù)經(jīng)過標(biāo)準(zhǔn)JSON格式序列化POST上傳,語音數(shù)據(jù)被放置到JSON數(shù)據(jù)流的“speech”數(shù)據(jù)段內(nèi),以base64形式編碼,將語音數(shù)據(jù)的長(zhǎng)度標(biāo)注到“l(fā)en”數(shù)據(jù)段內(nèi);或者直接在“url”數(shù)據(jù)段內(nèi)給出語音獲取地址,在“callback”數(shù)據(jù)段內(nèi)放置識(shí)別結(jié)果的調(diào)用地址。假如可以識(shí)別,則在JSON數(shù)據(jù)流的“result”數(shù)據(jù)段內(nèi)放置識(shí)別結(jié)果,并按UTF-8模式編碼。

4.2? 百度語音識(shí)別硬件電路

綜合語音識(shí)別模組的云端語音識(shí)別功能選用集成2.4GHz WiFi的ESP32控制器,通過WiFi將需識(shí)別的采樣語音信號(hào)傳輸給百度云服務(wù)器,ESP32控制器通過集成電路內(nèi)置音頻總線I2S和立體聲多媒體數(shù)字信號(hào)編譯碼器WM8978進(jìn)行數(shù)據(jù)傳輸,WM8978外接麥克風(fēng)MIC和揚(yáng)聲器SPK,由WM8978對(duì)人的說話進(jìn)行錄音,播放語音識(shí)別結(jié)果。ESP32外接TF卡,可以存儲(chǔ)網(wǎng)絡(luò)文件、音樂等。ESP32通過RS-232串口和STM32F103 ARM相連,可以傳輸語音識(shí)別的結(jié)果,同時(shí)外接CP2104 USB轉(zhuǎn)串口電平轉(zhuǎn)換芯片,可用USB口進(jìn)行調(diào)試和現(xiàn)象觀察,如圖3所示。

4.3? 百度語音識(shí)別軟件編程

在Windows系統(tǒng)電腦下,安裝VMware虛擬PC軟件,在該虛擬機(jī)下配置ubuntu-14.04 64位操作系統(tǒng),安裝代碼編輯器Sublime Text軟件編輯C程序,通過ubuntu命令終端窗口安裝詞法、語法分析工具,安裝Linux平臺(tái)的ESP32交叉編譯器,設(shè)置編譯路徑等,將編寫的C代碼通過編譯后,下載到ESP32 WiFi控制器里,程序流程如圖4所示。

具體程序設(shè)計(jì)的邏輯為當(dāng)檢測(cè)到語音錄入開始,將錄音文件按wav格式寫進(jìn)SD卡存儲(chǔ),檢測(cè)到語音錄入結(jié)束后發(fā)送超文本傳輸http申請(qǐng),一段段傳輸經(jīng)base64編碼后的數(shù)據(jù)。

將百度語音識(shí)別網(wǎng)站注冊(cè)后得到的API Key和Secret Key填入百度提供的oauth的http鏈接,得到access_token,將該token添加在程序stream_head字段中。stream_head="{\"format\":\"wav\",\"cuid\":\"witsrc_test\",\"token\":\"24.ce5f2e56975a06c172abd07f71eef516.2592000.1523604181.282335-10887800\",\"rate\":8000,\"channel\":1,\"speech\":\"";//","len":0,}",將真實(shí)的語音采樣數(shù)據(jù)插入在中間發(fā)送。

5? 性能測(cè)試結(jié)果樣例分析

目前,對(duì)該系統(tǒng)主要的識(shí)別響應(yīng)速度、準(zhǔn)確性和穩(wěn)定性等性能分別進(jìn)行了測(cè)試,得到了測(cè)試結(jié)果。采用ESP32 WiFi控制器等模塊構(gòu)成的云端識(shí)別功能電路,將語音信號(hào)通過WiFi路由器,經(jīng)20M速率Internet寬帶網(wǎng)絡(luò)發(fā)送給云端,到微處理器得到語音識(shí)別反饋結(jié)果輸出給用戶,平均耗時(shí)大約2~3 s,采用SYN7318等模塊構(gòu)成的本地識(shí)別功能電路進(jìn)行語音識(shí)別,平均耗時(shí)大約1 s以內(nèi),得到識(shí)別結(jié)果速度要更快。

測(cè)試者擁有國內(nèi)二級(jí)甲等普通話水平測(cè)試合格證書,在環(huán)境基本無干擾和有微弱干擾的情況下,對(duì)5個(gè)中文單詞、1個(gè)英文單詞和1個(gè)數(shù)字進(jìn)行了3次發(fā)音,有1個(gè)中文單詞未燒寫在本地語音識(shí)別模組磁條內(nèi),測(cè)試后得到了表1相應(yīng)的識(shí)別結(jié)果。

本測(cè)試云端和本地語音識(shí)別電路具體耗時(shí)和識(shí)別準(zhǔn)確性等原因有待對(duì)該系統(tǒng)軟硬件及測(cè)試方法等做進(jìn)一步分析,并不針對(duì)所使用的企業(yè)產(chǎn)品模塊或識(shí)別算法等。

本地語音識(shí)別模組磁條內(nèi)已有的中文單詞,識(shí)別準(zhǔn)確率很高,如果發(fā)音準(zhǔn)確,識(shí)別準(zhǔn)確率能接近100%,對(duì)英文和數(shù)字識(shí)別困難,而磁條內(nèi)沒有的中文單詞,識(shí)別不出來,使用時(shí)需要有較強(qiáng)的針對(duì)性,云端識(shí)別模組可以對(duì)海量語音命令識(shí)別,準(zhǔn)確率較高,有延時(shí),使用時(shí)不需較強(qiáng)的針對(duì)性。所以,該系統(tǒng)結(jié)合了這兩種情況,使用STM32 MCU進(jìn)行邏輯判斷獲取語音綜合識(shí)別結(jié)果,使得語音識(shí)別維持較高準(zhǔn)確率的同時(shí)增強(qiáng)了適用性,另外,該系統(tǒng)多次持續(xù)運(yùn)行3 h左右,暫未發(fā)現(xiàn)語音識(shí)別過程中有系統(tǒng)崩潰、死機(jī)等問題,可靠性和穩(wěn)定性較強(qiáng)。

6? 結(jié)束語

一種云端AI與本地相結(jié)合的嵌入式語音識(shí)別系統(tǒng)綜合了云端和本地語音識(shí)別方式,提升了語音識(shí)別有效性、可靠性和時(shí)滯性等??梢越柚俣仍贫苏Z音識(shí)別大數(shù)據(jù)庫實(shí)現(xiàn)海量語音命令識(shí)別,借助類似神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí)算法使識(shí)別準(zhǔn)確率提高,同時(shí)語音特征數(shù)據(jù)庫更新容易[5]。也可以利用本地語音識(shí)別模組快速響應(yīng)語音識(shí)別,控制簡(jiǎn)單。

據(jù)此思路和結(jié)構(gòu),未來,綜合語音識(shí)別模組可以考慮使用人工智能AI芯片作為MCU控制器,結(jié)合云端海量語音識(shí)別大數(shù)據(jù)庫,進(jìn)行自我學(xué)習(xí)和網(wǎng)絡(luò)在線、離線的語音識(shí)別結(jié)果評(píng)分判斷,時(shí)延判斷等,綜合應(yīng)對(duì)各種情況,進(jìn)一步提升系統(tǒng)性能。

參考文獻(xiàn):

[1] 郝雯超,馮月芹,李春光,等. 基于嵌入式平臺(tái)的實(shí)用語音識(shí)別研究[J]. 電子器件,2018,41(1):110-114.

[2] 任玲,陳寬政,袁書恒,等. 基于STM32的聯(lián)合收割機(jī)脫粒滾筒監(jiān)控系統(tǒng)[J]. 寧波職業(yè)技術(shù)學(xué)院學(xué)報(bào),2018(3):93-95.

[3] End-to-end attention-based large vocabulary speech recognition[A]. Bahdanau D,Chorowski J,Serdyuk D,et al. International Conference on Acoustics,Speech and Signal Processing[C]. 2016.

[4] 楊晨,李勇,金德鵬. 基于REST-API的SDN控制器故障恢復(fù)機(jī)制[J]. 計(jì)算機(jī)工程,2015,41(9):131-134.

[5] 張仕良.基于深度神經(jīng)網(wǎng)絡(luò)的語音識(shí)別模型研究[D]. 合肥:中國科學(xué)技術(shù)大學(xué),2017.

猜你喜歡
嵌入式系統(tǒng)
辦公自動(dòng)化系統(tǒng)的設(shè)計(jì)
基于物聯(lián)網(wǎng)項(xiàng)目驅(qū)動(dòng)的嵌入式系統(tǒng)教學(xué)改革的研究與實(shí)踐
嵌入式系統(tǒng)課程“中斷、異常與事件”教學(xué)實(shí)踐及啟示
面向?qū)嵺`創(chuàng)新人才培養(yǎng)的嵌入式系統(tǒng)教學(xué)研究
玛曲县| 龙海市| 溆浦县| 天等县| 扶余县| 玛沁县| 莱州市| 渝北区| 连山| 云和县| 四川省| 宜君县| 凉城县| 奉化市| 方山县| 五原县| 娄烦县| 抚顺市| 杭锦后旗| 漳州市| 沧源| 当雄县| 洪雅县| 晋江市| 怀仁县| 云南省| 尤溪县| 广河县| 颍上县| 清苑县| 清原| 厦门市| 蓝山县| 尖扎县| 大宁县| 济宁市| 吴堡县| 托里县| 武山县| 吐鲁番市| 深水埗区|