張浩華, 李嘵慧, 王愛利, 劉凡楊, 柴 欣, 程騫閣
(沈陽師范大學 物理科學與技術學院, 沈陽 110034)
古往今來,人類社會不斷變化,科學技術也在不斷更新。現代科學技術的發展,推動著人類經濟、社會生活等的方方面面。在這種時代背景下,機器人系統應運而生。人們對機器人系統本質的了解逐漸加深,促使它開始不斷地滲入到人類的生產生活中去。據此,人們發展創造了各種各樣不同形態的智能系統。智能語音系統的出現促進了學生的知識學習。通過語音識別,智能系統會根據關鍵詞回答出正確答案,也可以根據關鍵詞播放對應的文章、歌曲。它可以應用在教育培訓機構或者學校的教學上,也可致力于科普知識的宣傳。智能機器人系統的應用與研發在近年來形成了非常火爆的趨勢,人機交互的真正實現離不開語音識別技術的快速發展[1]。
20世紀50年代,世界各國開始研究簡單的英文數字識別內容;70年代,語音識別理論及算法大規模涌現;到80年代,研究者們采用統計分析的方法研究連續語音識別,研究重點轉移到了詞匯量較大的語音上。在我國,20世紀50年代末有研究者采用電子管電路對英文中的元音字母進行識別。70年代,中國開始進行計算機語音識別的研究。90年代,清華大學和中科院自動化所等單位在漢語聽寫機原理樣機的研究方面取得了重要成果。21世紀,深度學習的出現極大促進了語音識別技術的發展[2]。
語音識別[3],原理是接收語音信號,并將語音信號轉化為文字,或者對其進行查詢的操作[4]。按照識別對象的不同,它可以分為孤立詞、連接詞和連續語音識別等;根據針對的發音人,能夠劃分為特定人語音識別和非特定人語音識別[5]。非特定人語音識別系統更適合生活的實際需求。語音識別包括以下幾部分:提取與處理語音特征、對語音進行降噪、建立語言模型、聲學模型訓練[6]。
在語音識別技術常用的方法中,隨機模型法包括幾種主流算法,一般主要有動態時間規整方法、矢量量化方法、隱馬爾可夫模型方法、人工神經網絡[7]方法和支持向量機等語音識別方法[8]。
動態時間規整算法可以比較二者之間相似的范圍[9]。此方法計算起來比較復雜,但方法比較簡單,識別語音較為準確。它不容易將各種知識應用到算法中去。
矢量量化是對信號進行壓縮,所需要訓練的數據較少,所用存儲空間也較小。它被用在詞匯較少的情況中。但是,這種算法在很多性能上都沒有優于基于參數模型的隱馬爾可夫模型的方法。
隱馬爾可夫模型是一種使用概率的統計模型,廣泛應用于信號處理、語音識別、行為識別等應用領域。Viterbi算法被用于尋找觀測時間序列的隱含狀態序列,尤其在隱馬爾可夫模型中[10]。此種算法可以被用于詞匯量較多的情況和系統中,缺點是需要占用較大存儲空間,但識別率卻高出許多。
Viterbi算法可以幫助找到問題解決的最優路徑,計算量也比同樣功能的算法更小。它將全局最優的方法展開到局部最優,很好地解決了全局的問題。它在保證最優解的情況下,序列中的基于非線性的時間對準和針對詞語邊界的檢測問題也得到很好地解決。由此,該算法成為語音識別中常被采用的算法。
輸入:模型λ=(A,B,Π)和觀測O=(o1,o2,…,oT)
1)初始化
2)遞推,對t=2,3,…,T
3)終止
4)最優路徑回溯,對t=T-1,T-2,…,1

求得最優路徑
本系統主要采用micro:bit主控板和IObit 2.0擴展板為主架構,與語音識別模塊相連接,采用語音識別芯片LD3320,通過語音識別獲取控制指令[11]。同時搭配MP3模塊及腔體小喇叭,實現總體搭建,整體系統框圖如圖1所示。本系統通過添加詞組,對用戶的言語進行識別并比對,識別完成后,相應地播放對應的音頻。本設計有較強的靈活性。

圖1 系統框圖
3.2.1 micro:bit主板
micro:bit是基于微軟公司的開源平臺編程經驗工具包,是一臺微型計算機[12]。開發板集成三合一傳感器芯片,同時兼具加速度計、磁力計和陀螺儀的功能,可以與手機APP進行藍牙通信;它還自帶microUSB供電接口,也可外接電池盒供電,實物如圖2所示。本系統選取micro:bit主板,控制其他模塊的功能,它具有較為全面的功能和易于編程的特點[13]。

圖2 實物圖
3.2.2 IO bit 2.0擴展板
IO bit是一款支持micro:bit的IO口引出擴展板。它可以引出micro:bit上的所有輸入/輸出資源,同時自帶蜂鳴器開關,通過跳線帽的自由切換,實現對P0引腳的連接與釋放。此擴展板既支持3V電壓,也支持5 V電壓,可連接多種傳感器。擴展板增加了較為豐富的傳感器功能模塊,滿足設計的多種需求。
3.2.3 語音識別模塊
語音識別模塊選取了適合的語音識別算法應用于芯片,它可以通過語音喚醒來制作智能系統的部分。通過兩線式串行總線識別語句、獲取結果,發送和接收數據,實現人類和機器的交互。當斷電時,它可以保存其中的數據,模塊可以添加高達50條的識別語句,每條語句的漢字不能超過10個。嵌入LD3320芯片的語音識別模塊,可以完成識別語音和聲音控制的功能[14]。針對非特定人的語音識別技術ASR[15]是以關鍵詞語列表為基礎的一種匹配識別算法。它的本質在于聲音特征提取完畢后,尋找匹配度最高的語句。輸入到語音芯片的聲音要與關鍵詞進行對比逐個打分。同時,它有以下3種識別模式。
循環檢測模式:系統會不斷檢測聽到的語音并識別。
口令檢測模式:識別到口令時,蜂鳴器響一聲,之后開始識別,每喚醒一次識別一次。
按鈕檢測模式:外界語音傳輸到系統主控中心,語音識別芯片會開始計時,在固定的時間段內,外界發出對應的詞匯語音。計時結束后,需要重新觸發按鍵繼續識別[16]。模塊原理如圖3所示。

圖3 模塊原理圖
3.2.4 MP3-TF-16P模塊
MP3模塊提供串口,直接采用微處理器對不同格式的音頻解碼。根據編碼方式及編碼過程,會從存儲卡中自動尋找到對應格式的音頻文件,此時,MP3模塊對調出的文件解碼,播放對應的語音文件[17]。此模塊在上層可以完成音樂播放的指令和音樂播放的形式選擇,省去下層煩瑣的操作,可靠性得以提升。它支持多種不同的采樣率,讓音樂選取更加多樣。同時,它可以通過不同的方式控制音樂播放,有簡單的輸入輸出、按鍵開關控制和串口控制模式等。文件系統中最多包含100個文件夾,每個文件夾有255首曲目。片上系統(system on chip, SoC)方案,開發難度和成本較低,因而被選用,方案如圖4所示。同時,選用了將內存、USB等接口和驅動電路整合在一起的集成電路MCU,利用aDSP進行解碼,硬解碼的方式使得整個系統更加穩定可靠。

圖4 MP3模塊方案圖
3.3.1 語音識別模塊主程序設計
語音模塊要進行初始化設置,添加詞語列表,同時設置變量作為識別結果。接通電源時,微控制器向語音識別芯片寫入系列詞語,然后控制芯片循環識別聽到的聲音信號[18]。本系統通過檢測人們發出的聲音,判斷識別詞語是否匹配,并播放對應文件夾的音頻。語音識別流程如圖5所示。

圖5 語音識別流程圖
3.3.2 MP3-TF-16P模塊主程序設計
MP3-TF-16P模塊與語音識別模塊配合使用,實現問答功能。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)
})
語音識別算法有很多種,本文將算法傳輸到芯片實現語音識別獲得了較大的完成度。本系統應用語音識別算法,結合micro:bit主板、擴展板,通過對語音識別模塊和MP3-TF-16P模塊進行設計編碼,很好地實現了離線語音識別的功能。
本文分別從語音識別理論的簡要概述、語音識別算法的對比以及其在硬件系統上的實現幾個方面介紹了基于語音識別的智能對話系統,通過語音識別算法嵌入芯片,結合使用語音識別模塊和MP3-TF-16P模塊,實現了問答功能和人機交互,為算法在硬件的實現提供了一定參考。語音識別算法在智能音箱、智能家居等人工智能領域被廣泛應用,對于不同的智能系統都有很好的借鑒作用。本次設計的智能對話系統,具有較強的實用性和推廣性,可以在此基礎上繼續改進。