馬瑞棟,劉同禮,劉麗麗,金小香
(東南大學(xué)成賢學(xué)院,江蘇南京,210088)
隨著科學(xué)技術(shù)的進(jìn)步,智能化的電子設(shè)備與我們?nèi)缬半S形,我們的生活也無時無刻不伴隨著智能化設(shè)備的使用。在我們?nèi)粘J褂弥悄茉O(shè)備的過程中,使得我們對智能化設(shè)備提出了更高的要求。在傳統(tǒng)的電子設(shè)備的控制方式中,大多離不開人親自上手操作,或是需要經(jīng)過較為繁瑣的操作流程。這就需要設(shè)備能夠更懂用戶的心,更具簡捷、直接的人機(jī)交互界面。而語音控制就可以在一定程度上,使得設(shè)備能夠聽懂我們的聲音,使我們與電子設(shè)備直接進(jìn)行言語交流成為可能,當(dāng)我們需要電子設(shè)備幫我們完成某項(xiàng)任務(wù)時,僅需言語吩咐即可。這也是智能語音識別在近年來熱度一直居高不下的緣由。
本設(shè)計(jì)通過LD3320語音識別模塊識別非特定人聲的語音指令,通過XFS5152CE語音合成模塊進(jìn)行語音應(yīng)答,不同的識別結(jié)果觸發(fā)不同的事件,從而實(shí)現(xiàn)問答式的交互控制方式;通過MPU6050陀螺儀獲取DMP姿態(tài)解算后得到的偏航角(yaw)、翻滾角(roll) 和 俯仰角(pitch),并實(shí)時監(jiān)測,當(dāng)達(dá)到預(yù)置閾值之內(nèi)時,觸發(fā)相應(yīng)的事件,從而實(shí)現(xiàn)體感控制模式;DS18B20溫度傳感器將獲取到的實(shí)時溫度數(shù)據(jù)上報,以實(shí)現(xiàn)對環(huán)境溫度的實(shí)時監(jiān)測;MCU與ESP8266進(jìn)行UART通信以實(shí)現(xiàn)觸發(fā)查詢?nèi)掌?、時間、天氣情況等事件及查詢結(jié)果回傳,與MP3模塊進(jìn)行UART通信,以實(shí)現(xiàn)切換歌曲、音量調(diào)節(jié)、歌曲點(diǎn)播等基本功能。
圖1 智能音箱設(shè)計(jì)總體設(shè)計(jì)方案框圖
LD3320是目前較為流行的非特定人聲的語音識別芯片,其內(nèi)置高精度的ADC、DAC通道及功放電路,只需在LD_MICP和LD_MICN引腳連接麥克風(fēng)即可進(jìn)行語音識別,同時該芯片還支持MP3播放功能,僅需在LD_SPOP和LD_SPON連接揚(yáng)聲器,通過MCU將MP3音頻數(shù)據(jù)依此傳輸至LD3320芯片即可實(shí)現(xiàn)音頻輸出,且可通過相應(yīng)的寄存器與EP1、EP2、EP3管腳控制音頻輸出的音量增益。該芯片無需FLASH、RAM等外圍存儲器件就能夠同時實(shí)現(xiàn)語音識別與語音播報功能,比較適合于問答式的人機(jī)交互開發(fā)場合。
LD3320芯片如此備受電子愛好者的青睞,很大程度上得益于其快速穩(wěn)定的非特定人聲識別算法,無需進(jìn)行預(yù)先繁瑣的語音訓(xùn)練,而非僅限于識別特定人的語音指令,這使得其可應(yīng)用范圍及應(yīng)用前景更加廣泛。只需在完成識別列表的動態(tài)編輯之后,由MCU將識別列表中的識別詞條字符串通過設(shè)置寄存器的方式送至芯片內(nèi)部即可進(jìn)行識別。更改識別詞條字符串即可靈活更換識別指令,極大地簡化了指令更改操作流程。
本設(shè)計(jì)是通過XFS5152CE語音合成芯片來實(shí)現(xiàn)語音播報功能的,該芯片不僅支持中英文文本合成,而且可對合成的文本進(jìn)行分析,能夠按照其內(nèi)置的文本匹配規(guī)則對其進(jìn)行正確的處理。此外可通過文本標(biāo)記的方式,對合成方式進(jìn)行配置,從而能夠精確的處理時間、日期、度量單位、號碼等的進(jìn)行準(zhǔn)確播報,這使其適應(yīng)范圍更加廣泛。由于其無需對所要播報的語音進(jìn)行實(shí)現(xiàn)錄音,在處理變量信息時,將極大地減少了工作量。如溫度值的播報,僅需將數(shù)值轉(zhuǎn)為字符串并發(fā)送給語音合成芯片即可進(jìn)行對變化的量進(jìn)行播報而無需對大量的數(shù)值進(jìn)行事先錄音操作。
圖2 LD3320語音識別應(yīng)用電路
MPU-60X0,9軸運(yùn)動處理傳感器。即它集三軸陀螺儀、三軸加速度計(jì)與可拓展的數(shù)字運(yùn)動處理器于一體。其拓展接口可接IIC接口的第三方數(shù)字式傳感器,如磁力計(jì),當(dāng)接入第三方傳感器之后,可輸出9軸信號;亦可接非慣性數(shù)字傳感器,如壓力傳感器。
MPU6050內(nèi)嵌數(shù)字運(yùn)動處理器,卸載主機(jī)處理器的時序要求與處理能力,很大程度最大限度地精簡了軟件程序架構(gòu),減輕了MCU的壓力,降低了功耗。DMP接收并處理來自于陀螺儀、加速度計(jì)、外接傳感器的數(shù)據(jù),通過對DMP寄存器的讀取即可得到處理結(jié)果。
為了降低系統(tǒng)功耗,MPU 60X0集成了FIFO,其字節(jié)大小為1024。此外其內(nèi)部鑲有溫度傳感器及在工作環(huán)境僅有±1波動的振蕩器。MPU6000 為SPI接口其與設(shè)備通信速率為1MHz,當(dāng)對于傳輸速率有較高要求的場合,寄存器讀取和中斷可用20MHz的SPI通 信;MPU6050為IIC接口,與其他設(shè)備的IIC通信速率為400kHz。
本設(shè)計(jì)的硬件組成部分有,MSP430F5529、LD3320語音識別模塊、XFS5152CE語音合成播報模塊、MP3播放模塊、MPU6050陀螺儀、ESP8266、OLED顯示屏、DS18B20溫度傳感器等組成。其中,LD3320模塊負(fù)責(zé)語音識別;XFS5152CE語音合成播報模塊主要用于對識別結(jié)果做出相應(yīng)的回應(yīng);通過ESP8266模塊實(shí)時監(jiān)測俯仰角、翻滾角、偏航角,以供體感控制使用;DS18B20用于實(shí)時監(jiān)測當(dāng)前所處的環(huán)境溫度,ESP8266用來查詢實(shí)時的日期、時間、天氣等主要信息。
圖3 智能音箱整體電路圖
語音識別的操作流程:(1)語音識別用初始化(包括通用初始化);(2)寫入識別列表;(3)開始識別;(4)響應(yīng)中斷。
①通用初始化和語音識別用初始化:在初始化程序里中完成軟復(fù)位、模式設(shè)定、時鐘頻率設(shè)定、FIFO設(shè)定。
②寫入識別列表:列表的規(guī)則是,每個識別詞條對應(yīng)其特定的編號,一個識別詞條可對應(yīng)多個識別詞條,且無需保證詞條編號的連續(xù)性。該芯片最大允許的識別詞條數(shù)為50,且每個識別詞條為其相應(yīng)的漢語拼音字符串,每個漢字拼音間需用一個空格隔開,如表1所示。
表1 識別列表示例表
圖4 開始識別流程
識別列表中字符串的編號大小需介于0至255之間,可重復(fù)且無需保證編號的連續(xù)性。如列表中 “Bei Jing”和“Shou Du”其編號一致,他們將會對應(yīng)同一識別結(jié)果。
③開始識別:設(shè)置幾個相關(guān)的寄存器,就可以控制 LD3320 芯片開始語音識別。
④當(dāng)MIC采集到聲音信號后,將產(chǎn)生一個下降沿中斷,對寄存器的值進(jìn)行分析比對,得出結(jié)果,即使沒有識別出正常的結(jié)果。讀取BA寄存器的值,可以知道有幾個候選答案,而C5寄存器里的答案是得分最高、最可能正確的答案。
語音合成播報模塊集成了XFS5152CE,XFS5152CE是一款高集成度的語音合成芯片,可實(shí)現(xiàn)中文、英文語音合成,并且支持中英文混讀。MSP430F5529單片機(jī)通過I2C通訊方式與語音合成播報模塊通信,通過發(fā)送規(guī)定的數(shù)據(jù)幀對XFS5152CE進(jìn)配置即可實(shí)現(xiàn)語音播報。其數(shù)據(jù)幀格式如表2所示。
表2 語音合成播報通信協(xié)議
由MPU60X0內(nèi)部系統(tǒng)結(jié)構(gòu)圖可知,通過對來自X,Y,Z三軸的軸向加速度產(chǎn)生的模擬信號進(jìn)行采樣并將其轉(zhuǎn)化數(shù)字量,從而獲得加速度計(jì)數(shù)據(jù):X_Accel、Y_Accel、Z_Accel;通過對來自X,Y,Z三軸的軸向角加速度產(chǎn)生的模擬信號進(jìn)行采樣并將其轉(zhuǎn)化數(shù)字量,從而獲得陀螺儀數(shù)據(jù):X_Gyro、Y_Gyro、Z_Gyro;調(diào)用MPU6050的DMP庫對從MPU6050的加速度傳感器和角速度傳感器獲取的三個軸向的加速度和三個軸向角加速度的原始數(shù)據(jù)進(jìn)行四元數(shù)轉(zhuǎn)換輸出,然后計(jì)算得出歐拉角,從而實(shí)現(xiàn)俯仰角、橫滾角、航向角的實(shí)時監(jiān)測。DMP輸出的四元數(shù)(q30格式,即浮點(diǎn)數(shù)擴(kuò)大2^30倍)與歐拉角之間換算關(guān)系如下:
圖5 寫入識別列表流程
圖6 響應(yīng)中斷流程
俯仰角、橫滾角、偏航角的計(jì)算公式]如下:
每次上電都進(jìn)行自檢,即上電時的初始姿態(tài)即X、Y、Z三軸的參考位置,當(dāng)左傾、右傾、前傾、后仰設(shè)備時,yaw、roll、pitch三個參數(shù)將會發(fā)生改變,通過對 yaw、roll 和 pitch 角度的實(shí)時監(jiān)測并進(jìn)行閾值判斷,當(dāng)達(dá)到預(yù)置閾值之內(nèi)時,觸發(fā)相應(yīng)的事件,從而實(shí)現(xiàn)體感控制模式。
本設(shè)計(jì)支持Web配網(wǎng),可以靈活適應(yīng)不同WIFI環(huán)境,配網(wǎng)成功之后,聽到提示音之后即可進(jìn)行日期、時間、天氣情況查詢。發(fā)出語音指令,如“今天幾號?”,識別成功之后,將會聽到“正在為您查詢當(dāng)前日期信息”稍后,將播報“XXXX年XX月XX日 星期X”;說出“體感模式”口令,將會提示“已為您設(shè)置為體感模式”,此時,設(shè)備左傾、右傾、前傾、后傾,分別會觸發(fā)上一曲、下一曲、音量減、音量加事件及相應(yīng)的語音提示;說出“現(xiàn)在幾度?”口令,識別成功之后,將會聽到“正在為您查詢當(dāng)前溫度”稍后,將播報“XX.XX攝氏度”;說出歌名,即可實(shí)現(xiàn)點(diǎn)歌。經(jīng)測試所有功能均正常,且識別準(zhǔn)確率高,可適應(yīng)不同人聲。
本文討論了基于MSP430F5529的智能音箱設(shè)計(jì)與實(shí)現(xiàn),該設(shè)計(jì)具有人性化的問答式語音交互,及個性化的體感控制模式,同時還可以支持日期、時間、天氣、溫度等實(shí)時數(shù)據(jù)查詢,經(jīng)過大量的測試,本設(shè)計(jì)具有穩(wěn)定性好,語音識別準(zhǔn)確率高,抗噪聲干擾能力強(qiáng),可在歌曲播放狀態(tài)下進(jìn)行準(zhǔn)確的識別,且低功耗性能突出。