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