張浩華, 李嘵慧, 王愛利, 劉凡楊, 柴 欣, 程騫閣
(沈陽師范大學(xué) 物理科學(xué)與技術(shù)學(xué)院, 沈陽 110034)
古往今來,人類社會不斷變化,科學(xué)技術(shù)也在不斷更新?,F(xiàn)代科學(xué)技術(shù)的發(fā)展,推動著人類經(jīng)濟、社會生活等的方方面面。在這種時代背景下,機器人系統(tǒng)應(yīng)運而生。人們對機器人系統(tǒng)本質(zhì)的了解逐漸加深,促使它開始不斷地滲入到人類的生產(chǎn)生活中去。據(jù)此,人們發(fā)展創(chuàng)造了各種各樣不同形態(tài)的智能系統(tǒng)。智能語音系統(tǒng)的出現(xiàn)促進了學(xué)生的知識學(xué)習(xí)。通過語音識別,智能系統(tǒng)會根據(jù)關(guān)鍵詞回答出正確答案,也可以根據(jù)關(guān)鍵詞播放對應(yīng)的文章、歌曲。它可以應(yīng)用在教育培訓(xùn)機構(gòu)或者學(xué)校的教學(xué)上,也可致力于科普知識的宣傳。智能機器人系統(tǒng)的應(yīng)用與研發(fā)在近年來形成了非?;鸨内厔?人機交互的真正實現(xiàn)離不開語音識別技術(shù)的快速發(fā)展[1]。
20世紀(jì)50年代,世界各國開始研究簡單的英文數(shù)字識別內(nèi)容;70年代,語音識別理論及算法大規(guī)模涌現(xiàn);到80年代,研究者們采用統(tǒng)計分析的方法研究連續(xù)語音識別,研究重點轉(zhuǎn)移到了詞匯量較大的語音上。在我國,20世紀(jì)50年代末有研究者采用電子管電路對英文中的元音字母進行識別。70年代,中國開始進行計算機語音識別的研究。90年代,清華大學(xué)和中科院自動化所等單位在漢語聽寫機原理樣機的研究方面取得了重要成果。21世紀(jì),深度學(xué)習(xí)的出現(xiàn)極大促進了語音識別技術(shù)的發(fā)展[2]。
語音識別[3],原理是接收語音信號,并將語音信號轉(zhuǎn)化為文字,或者對其進行查詢的操作[4]。按照識別對象的不同,它可以分為孤立詞、連接詞和連續(xù)語音識別等;根據(jù)針對的發(fā)音人,能夠劃分為特定人語音識別和非特定人語音識別[5]。非特定人語音識別系統(tǒng)更適合生活的實際需求。語音識別包括以下幾部分:提取與處理語音特征、對語音進行降噪、建立語言模型、聲學(xué)模型訓(xùn)練[6]。
在語音識別技術(shù)常用的方法中,隨機模型法包括幾種主流算法,一般主要有動態(tài)時間規(guī)整方法、矢量量化方法、隱馬爾可夫模型方法、人工神經(jīng)網(wǎng)絡(luò)[7]方法和支持向量機等語音識別方法[8]。
動態(tài)時間規(guī)整算法可以比較二者之間相似的范圍[9]。此方法計算起來比較復(fù)雜,但方法比較簡單,識別語音較為準(zhǔn)確。它不容易將各種知識應(yīng)用到算法中去。
矢量量化是對信號進行壓縮,所需要訓(xùn)練的數(shù)據(jù)較少,所用存儲空間也較小。它被用在詞匯較少的情況中。但是,這種算法在很多性能上都沒有優(yōu)于基于參數(shù)模型的隱馬爾可夫模型的方法。
隱馬爾可夫模型是一種使用概率的統(tǒng)計模型,廣泛應(yīng)用于信號處理、語音識別、行為識別等應(yīng)用領(lǐng)域。Viterbi算法被用于尋找觀測時間序列的隱含狀態(tài)序列,尤其在隱馬爾可夫模型中[10]。此種算法可以被用于詞匯量較多的情況和系統(tǒng)中,缺點是需要占用較大存儲空間,但識別率卻高出許多。
Viterbi算法可以幫助找到問題解決的最優(yōu)路徑,計算量也比同樣功能的算法更小。它將全局最優(yōu)的方法展開到局部最優(yōu),很好地解決了全局的問題。它在保證最優(yōu)解的情況下,序列中的基于非線性的時間對準(zhǔn)和針對詞語邊界的檢測問題也得到很好地解決。由此,該算法成為語音識別中常被采用的算法。
輸入:模型λ=(A,B,Π)和觀測O=(o1,o2,…,oT)
1)初始化
2)遞推,對t=2,3,…,T
3)終止
4)最優(yōu)路徑回溯,對t=T-1,T-2,…,1
求得最優(yōu)路徑
本系統(tǒng)主要采用micro:bit主控板和IObit 2.0擴展板為主架構(gòu),與語音識別模塊相連接,采用語音識別芯片LD3320,通過語音識別獲取控制指令[11]。同時搭配MP3模塊及腔體小喇叭,實現(xiàn)總體搭建,整體系統(tǒng)框圖如圖1所示。本系統(tǒng)通過添加詞組,對用戶的言語進行識別并比對,識別完成后,相應(yīng)地播放對應(yīng)的音頻。本設(shè)計有較強的靈活性。
圖1 系統(tǒng)框圖
3.2.1 micro:bit主板
micro:bit是基于微軟公司的開源平臺編程經(jīng)驗工具包,是一臺微型計算機[12]。開發(fā)板集成三合一傳感器芯片,同時兼具加速度計、磁力計和陀螺儀的功能,可以與手機APP進行藍(lán)牙通信;它還自帶microUSB供電接口,也可外接電池盒供電,實物如圖2所示。本系統(tǒng)選取micro:bit主板,控制其他模塊的功能,它具有較為全面的功能和易于編程的特點[13]。
圖2 實物圖
3.2.2 IO bit 2.0擴展板
IO bit是一款支持micro:bit的IO口引出擴展板。它可以引出micro:bit上的所有輸入/輸出資源,同時自帶蜂鳴器開關(guān),通過跳線帽的自由切換,實現(xiàn)對P0引腳的連接與釋放。此擴展板既支持3V電壓,也支持5 V電壓,可連接多種傳感器。擴展板增加了較為豐富的傳感器功能模塊,滿足設(shè)計的多種需求。
3.2.3 語音識別模塊
語音識別模塊選取了適合的語音識別算法應(yīng)用于芯片,它可以通過語音喚醒來制作智能系統(tǒng)的部分。通過兩線式串行總線識別語句、獲取結(jié)果,發(fā)送和接收數(shù)據(jù),實現(xiàn)人類和機器的交互。當(dāng)斷電時,它可以保存其中的數(shù)據(jù),模塊可以添加高達(dá)50條的識別語句,每條語句的漢字不能超過10個。嵌入LD3320芯片的語音識別模塊,可以完成識別語音和聲音控制的功能[14]。針對非特定人的語音識別技術(shù)ASR[15]是以關(guān)鍵詞語列表為基礎(chǔ)的一種匹配識別算法。它的本質(zhì)在于聲音特征提取完畢后,尋找匹配度最高的語句。輸入到語音芯片的聲音要與關(guān)鍵詞進行對比逐個打分。同時,它有以下3種識別模式。
循環(huán)檢測模式:系統(tǒng)會不斷檢測聽到的語音并識別。
口令檢測模式:識別到口令時,蜂鳴器響一聲,之后開始識別,每喚醒一次識別一次。
按鈕檢測模式:外界語音傳輸?shù)较到y(tǒng)主控中心,語音識別芯片會開始計時,在固定的時間段內(nèi),外界發(fā)出對應(yīng)的詞匯語音。計時結(jié)束后,需要重新觸發(fā)按鍵繼續(xù)識別[16]。模塊原理如圖3所示。
圖3 模塊原理圖
3.2.4 MP3-TF-16P模塊
MP3模塊提供串口,直接采用微處理器對不同格式的音頻解碼。根據(jù)編碼方式及編碼過程,會從存儲卡中自動尋找到對應(yīng)格式的音頻文件,此時,MP3模塊對調(diào)出的文件解碼,播放對應(yīng)的語音文件[17]。此模塊在上層可以完成音樂播放的指令和音樂播放的形式選擇,省去下層煩瑣的操作,可靠性得以提升。它支持多種不同的采樣率,讓音樂選取更加多樣。同時,它可以通過不同的方式控制音樂播放,有簡單的輸入輸出、按鍵開關(guān)控制和串口控制模式等。文件系統(tǒng)中最多包含100個文件夾,每個文件夾有255首曲目。片上系統(tǒng)(system on chip, SoC)方案,開發(fā)難度和成本較低,因而被選用,方案如圖4所示。同時,選用了將內(nèi)存、USB等接口和驅(qū)動電路整合在一起的集成電路MCU,利用aDSP進行解碼,硬解碼的方式使得整個系統(tǒng)更加穩(wěn)定可靠。
圖4 MP3模塊方案圖
3.3.1 語音識別模塊主程序設(shè)計
語音模塊要進行初始化設(shè)置,添加詞語列表,同時設(shè)置變量作為識別結(jié)果。接通電源時,微控制器向語音識別芯片寫入系列詞語,然后控制芯片循環(huán)識別聽到的聲音信號[18]。本系統(tǒng)通過檢測人們發(fā)出的聲音,判斷識別詞語是否匹配,并播放對應(yīng)文件夾的音頻。語音識別流程如圖5所示。
圖5 語音識別流程圖
3.3.2 MP3-TF-16P模塊主程序設(shè)計
MP3-TF-16P模塊與語音識別模塊配合使用,實現(xiàn)問答功能。MP3-TF-16P模塊的部分代碼如下:
basic.forever(function(){
value=Asr.Asr_Result()
serial.writeNumber(value)
if(value==1){
dfplayer.setTracking(1, dfplayer.yesOrNot.type1)
}
basic.pause(2000)
})
語音識別算法有很多種,本文將算法傳輸?shù)叫酒瑢崿F(xiàn)語音識別獲得了較大的完成度。本系統(tǒng)應(yīng)用語音識別算法,結(jié)合micro:bit主板、擴展板,通過對語音識別模塊和MP3-TF-16P模塊進行設(shè)計編碼,很好地實現(xiàn)了離線語音識別的功能。
本文分別從語音識別理論的簡要概述、語音識別算法的對比以及其在硬件系統(tǒng)上的實現(xiàn)幾個方面介紹了基于語音識別的智能對話系統(tǒng),通過語音識別算法嵌入芯片,結(jié)合使用語音識別模塊和MP3-TF-16P模塊,實現(xiàn)了問答功能和人機交互,為算法在硬件的實現(xiàn)提供了一定參考。語音識別算法在智能音箱、智能家居等人工智能領(lǐng)域被廣泛應(yīng)用,對于不同的智能系統(tǒng)都有很好的借鑒作用。本次設(shè)計的智能對話系統(tǒng),具有較強的實用性和推廣性,可以在此基礎(chǔ)上繼續(xù)改進。