?

智能語音控制系統的設計與實現

2018-03-08 08:51磊,何勇,張
計算機測量與控制 2018年2期
關鍵詞:存儲器上位字節

王 磊,何 勇,張 宇

(貴州大學 計算機科學與技術學院,貴陽 550000)

0 引言

語言是人類溝通的橋梁,可以很輕松地達到信息的交互。如今語音識別技術已經是世界上最熱門和最具發展前景的技術之一,通過這項技術可以讓語言成為人類和機器溝通的橋梁,可以使人類的日常生活操作變得更加簡單和方便。智能語音控制系統,采用LD3320[1]芯片,主要通過語音識別技術實現在家庭中對電燈、風扇、窗簾等電器的開關控制,并且伴隨識別結果有語音播放,達到真正的智能人機交互。

1 系統總體設計

基于LD3320的智能語音控制系統框架如圖1所示。系統主要由電源模塊、主控制器、識別模塊、控制模塊、外部存儲器、語音輸入和輸出等部分組成。語音輸入模塊將采集到的語音信息送入LD3320處理芯片進行識別,LD3320將識別結果返回給主控模塊,同時從外部存儲器中取出語音數據進行語音輸出播放,此時主控模塊分析識別結果后,利用控制模塊達到最終控制家電的效果。外部存儲器中的數據,可在設備運行過程中實時更改,利用編寫的上位機通過串口將數據發往主控模塊,主控模塊將數據轉存至外部存儲器進行存放。

圖1 智能語音控制系統框架圖

2 硬件設計

智能語音控制系統中的硬件電路主要包括主控制器和語音識別兩個核心模塊,語音采集成功后進入語音識別模塊,LD3320進行識別后將結果返回到主控模塊,外部存儲器模塊的設計主要是將返回的結果進行輸出播放。由于控制模塊與其它模塊供電電壓不同,本文設計的電源模塊就分成兩路進行供電。語音輸入和輸出模塊的設計,優化了語音采集的性能,實現了語音播放的功能。最終將控制請求命令發送給控制模塊對設備進行控制操作。

2.1 電源模塊

由于整個語音控制系統是嵌入墻體內,類似普通的插座,所以它的供電采用HLK-PM01[2]電源模塊將220 V的交流電轉化為5 V直流電,一路用來驅動SRD-05VDC-SL-C[3]繼電器,另一路經過ASM-1117[4]穩壓芯片將5 V轉為3.3 V電壓供主控模塊、識別模塊、和外部存儲器使用。

2.2 主控制器

用STC10L08XE芯片作為智能語音控制系統的MCU,它是宏晶科技公司生產的機器周期為1 T的單片機,SRAM為512K,片內RAM為8 K;指令代碼兼容傳統8051單片機,屬于增強型8051 MCU,速度比傳統的快8~12倍,有EEPROM[5]功能,2個16位定時器,MCU操作電壓范圍:2.4~3.6 V。

主控制器是控制設備開關的核心電路,主要處理經過LD3320識別后的語音數據及與外部存儲器模塊實現語音播放。最終主控制器分析識別結果后將控制指令發送給控制模塊。

2.3 識別模塊

語音識別模塊采用ICRoute公司設計生產的LD3320芯片,該芯片集成語音識別處理器、A/D和D/A轉換器、語音輸入接口、語音輸出接口等外部電路,具有快速而穩定的優化算法,完成語音識別,不需要事先訓練和錄音,只需要把識別的關鍵詞語以字符串的形式傳送進芯片,即可以在下次識別中立即生效,識別準確率高達95%。芯片及外圍電路如圖2所示。

圖2 識別模塊電路圖

該模塊采用語音識別ASR[6]技術,該技術是非特定人語音識別技術,不支持不同人的語音區分識別。這種識別技術的原理是通過某種數學模型,將操作者說出的語音信息,通過頻譜轉換為語音特征提取出來,然后與設定好的關鍵詞條目進行一一匹配,這種匹配也只是用概率性來衡量,在LD3320上最多能匹配出4種結果,這4種結果分別是最優匹配結果、候選結果1、候選結果2、候選結果3。通常開發只取最優結果,其他答案做參考。但是考慮實際開發和應用效果,這里將這4種結果加以分析,選出結果相同最多的那個結果。

簡單來說,這種識別技術不關心關鍵詞的內容,只關心語音的特征,所以不能分辨不同人的話語。最多可識別的關鍵詞個數為50個,且每個關鍵詞的長度不超過10個漢字或79個字節的標準普通話的漢語拼音(小寫),每兩個字(漢語拼音)之前用一個空格符相隔,如“kaideng”。

2.4 控制模塊

控制模塊采用SRD-05VDC-SL-C繼電器來控制家電的開關,它可以控制10 A 250 VAC、10 A 30 VDC的負載,線圈工作電壓為5 V直流。

采用單片機引腳控制NPN型三極管S8050的導通,從而起到控制繼電器線圈兩端電壓的作用,并且繼電器線圈端需要加一個二極管,防止產生反向感應電動勢擊壞電路零件,起到保護的功能。

2.5 外部存儲器

外部存儲器采用W25Q32DW外部Flash[7]存儲芯片,存儲空間為4 MB,工作電壓為3.3 V,通過SPI[8]通信方式與單片機交互。

使用此芯片的主要目的是配合整個智能語音識別系統的語音輸出功能,即播放語音文件,如MP3[9]。同時也保存與主控制器和語音識別模塊的一些配置信息,實現掉電數據不丟失。

使用上位機通過串口與主控制器交互,將需要播放的一些語音數據和配置信息逐一發送給主控制器,主控制器再將這些數據通過SPI的方式轉存至W25Q32DW存儲芯片,通信過程中用到自定義的協議,保證數據傳輸的完整性。

在系統需要播放語音文件時,由主控制器將存儲器中的語音數據逐一取出,然后不斷寫入LD3320語音識別模塊的寄存器中,識別模塊經過自動處理,以模擬信號的方式輸出至語音輸出接口。

2.6 語音輸入和輸出模塊

語音輸入模塊采用駐極體麥克風[10],這種麥克風體積小,結構簡單,成本低,電聲性能好,得到很廣泛的應用,在設計時加一些簡單的外圍電路即可。

語音輸出模塊采用0.5 W內磁式揚聲器,該揚聲器體積小,漏磁少,失真比較小,成本低,適合該系統應用。

將該揚聲器與LD3320的SPON和SPOP兩個引腳相連,語音識別模塊在需要播放語音時就將信號發送至這兩個引腳,從而經過揚聲器達到最終語音播放的功能。

3 軟件設計

具有語音識別、語音播放、智能控制、與上位機實時交互等功能的智能語音控制系統,其寫數據過程由上位機通過串口將語音數據和配置信息打包至自定義協議幀中,與主控制器進行數據交互,主控制器將數據轉存至外部存儲器W25Q32DW中,在需要時,主控制器再將數據取出;其語音識別與處理輸出過程由駐極體麥克風采集到的語音信息傳送至LD3320語音識別芯片加以識別處理,返回主控制器識別結果,根據識別結果操作外部存儲器W25Q32DW,將對應的語音數據從存儲器中取出,并放入LD3320的寄存器中,LD3320會自動播放該語音。與此同時,主控制器操作相應引腳電平,配合控制模塊電路實現對家電的控制,達到控制與語音反饋的目的。圖3為智能語音控制系統的軟件框圖。

圖3 軟件框圖

3.1 LD3320芯片的配置

麥克風增益調整:調整LD3320芯片0x35寄存器的數值大小。

麥克風靈敏度調整:調整LD3320芯片0xb3寄存器的數值大小。

揚聲器音量調整:調整LD3320芯片0x8e寄存器的數值大小。

這3個參數的調整,直接影響LD3320芯片的識別準確度,所以需要根據實際情況做相應的調整。

由于這些數據需要保證在操作者修改后,不論掉電與否,都不能變,則每次主控制器與上位機交互時若修改了這些數據,立即將修改后的數據存入W25Q32DW中保存,在每次重啟系統時,先將這些數據讀出來再進行語音識別操作。

3.2 語音識別

LD3320最多只支持50個識別關鍵詞,那么也就是說最多也只能支持50條不同語音的播放,每個語音文件在W25Q32DW中都有字符開始位置和結束位置,占一定長度,此時將W25Q32DW芯片的前400個字節用來存放每個語音文件的開始和結束位置,從第401個字節開始至第2 900個字節,存放最多50個固定字符長度為50個字節的關鍵詞。從第4097個字節開始存放實際需要播放的語音數據。

在初始化LD3320完成后,需要對語音識別芯片寫入識別關鍵詞列表,此時將之前存入的關鍵詞逐一取出,并寫入LD3320中。

在LD3320工作過程中,不管是否識別成功都會產生一個中斷,在播放語音文件時也會有3種情況使LD3320產生中斷,第一種:聲音數據已經全部播放完畢;第二種:聲音數據已經全部發送至LD3320完畢;第三種:聲音數據暫時要用完,需要向LD3320放入新的數據。而LD3320產生的這些中斷,都只由一個引腳輸出,則MCU需要分析和處理這7幾種中斷情況。

如果識別正確,從LD3320可以得到1至4種結果,在此比較得到的幾種結果,選取唯一的、二者較靠前的、多者相同最多的,作為最終MCU選擇的結果,這個最終結果,是之前存放識別關鍵詞的順序序號,例如,第一個存放的關鍵詞是“kaideng”,第一個存放的語音文件對應是播放“燈已打開”的人聲,則有可能的最終識別結果是1,代表識別到“kaideng”這個關鍵詞。

3.3 語音播放與控制家電

若最終識別結果是第一個關鍵詞,則從W25Q32DW中取出第一個語音文件在存儲器中的起始位置和結束位置,采用W25Q32DW的快速讀取方式,逐一將這個范圍內的數據取出并寫入LD3320,LD3320將數據輸出至揚聲器。

提前設置好MCU與對應的控制模塊的控制引腳,則根據最終識別結果的號碼,控制相應引腳的電平高低,再配合控制模塊達到控制家電的效果。

3.4 與上位機交互協議

與上位機交互協議幀格式如表1所示。

表1 協議幀格式

幀頭:0xe8(固定),1個字節;

功能碼:0x01-0x05,1個字節;

數據長度域:由數據域字節數決定,2個字節;

數據域:存放要發送的數據,字節數不定;

CRC校驗域:存放幀頭至數據域最后一個字節的16位CRC循環冗余校驗碼,2個字節;

幀尾:0xe6(固定),1個字節。

上位機與主控制器交互總共分5種功能:

1) 0x01:發送當前語音文件在W25Q32DW中的起始、結束位置和識別關鍵詞。起始位置和結束位置分別占4個字節,關鍵詞所占字節根據操作者輸入的關鍵詞個數來定。

2)0x02:發送當前語音文件的數據,最多一次放入64個字節。

3)0x03:發送配置信息(麥克風增益、靈敏度以及揚聲器音量)。這3種配置信息各占1個字節。

4)0x04:發送寫入初始化信息和語音文件個數,清除W25Q32DW的前2個扇區。語音文件個數占1個字節。

5)0x05:發送寫入完成信息,告知主控制器寫入完成。

主控制器根據上位機發來的幀不同,做出不同相應,并應答上位機。在交互過程中,為了保護程序的魯棒性和數據傳輸的完整性,是不允許系統進行語音識別的,在交互完畢后,主控制器收到寫入完成的命令幀時,才開啟語音識別模式。

3.5 上位機軟件

上位機軟件將操作者需要設置的數據信息經過協議幀打包并通過串口發送至主控制器,主控制器根據操作情況和過程,實時響應上位機,上位機對所接收的數據做分析、處理、顯示、以及將寫入過程實時反映在界面上。軟件的人機交互界面友好,具有智能語音控制系統的所需功能,有很好的易用性。圖4為上位機軟件的主界面。

圖4 上位機軟件界面

4 實驗結果與分析

直接觸發模式(一直處于識別狀態)不適合在喧鬧的環境運用,包括周圍有幾個人在對話??诹钣|發模式(第一步操作者說出口令,待正確識別口令后,第二步操作者說出操作指令,識別成功后直接執行具體操作),整體實現效果比直接觸發模式好很多,誤識別率很低,穩定性好。

最終麥克風增益、麥克風靈敏度調整為21和18,識別距

離在0~5 m,語音正確識別率很高。

5 結束語

設計并實現了智能語音控制系統,功能較完善,可實現語音識別,人機語音交互,智能控制家電開關。上位機軟件的設計,很好的解決了外部存儲器數據修改困難的問題,并配合主控制器,使數據傳輸更加快捷、穩定和可靠,方便了操作者調試、修改和使用,提高了操作者的體驗感,從長期測試和使用情況上看,該系統運行穩定,適合應用在智能家居[11]行業中,并有很廣泛的應用價值和前景。

[1] 洪家平.LD3320的嵌入式語音識別系統的應用[J].單片機與嵌入式系統應用, 2012, 2:48-49.

[2] 馬曉莉.紅外熱感應智能型節能插座的設計與制作[J].價值工程, 2015, 28:156-157

[3] 張 珉,張俊鈺. 基于51單片機的壓力蒸汽滅菌器控制器的研制[J].醫療衛生裝備, 2013, 34(5):3-4.

[4] 陸二磊,杜永文. 基于LPC1114的迷宮機器人的設計與實現[J].廣西民族大學學報(自然科學版), 2012, 18(4):53-54.

[5] 楊 峰,胡 彬,羅青青. STC單片機AD轉換及EEPROM使用[J].數字技術與應用, 2011, 9:169-170.

[6] 劉耀文,寧 媛. 基于LD3320芯片的聲電密碼門設計[J].現代機械, 2013, 4:55-56.

[7] 鄭文靜,李明強,舒繼武. Flash存儲技術[J].半導體技術, 2010, 47(4):717-718.

[8] 田 茂,鮮于李可,潘永才.SPI模式下SD卡驅動的設計與實現[J].現代電子技術, 2009, 14:195-196.

[9] 汪永好,周延森. 基于嵌入式Linux的MP3播放器的設計與實現[J].計算機工程與設計, 2009, 30(17):3948-3949.

[10] 劉 巖,華斯亮,王東輝,侯朝煥. 一種用于駐極體麥克風的CT_SC Σ-Δ調制器[J]. 微電子學, 2009, 39(2):150-151.

[11] 劉芮辰,李樹江,劉 帥. 基于IIC和云服務器的智能家居控制系統設計[J]. 計算機測量與控制,2017,24(3):98-100.

猜你喜歡
存儲器上位字節
No.8 字節跳動將推出獨立出口電商APP
靜態隨機存儲器在軌自檢算法
No.10 “字節跳動手機”要來了?
輕量級分組密碼Midori64的積分攻擊
特斯拉 風云之老阿姨上位
基于ZigBee和VC上位機的教室智能監測管理系統
存儲器——安格爾(墨西哥)▲
人類進入“澤它時代”
Buffalo推出四硬盤網絡存儲器 主打Soho一族
基于VC的PLC數據采集管理系統
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合