基于UniSpeech-SDA80D51的車(chē)載音響聲控系統
現代電子技術(shù)的發(fā)展,使得越來(lái)越多的車(chē)載電器加入到汽車(chē)電子行列中,在改善汽車(chē)性能的同時(shí),也增加了汽車(chē)駕駛操作的復雜度,給行車(chē)過(guò)程帶來(lái)了不安全隱患。隨著(zhù)語(yǔ)音識別算法的改進(jìn)和新一代專(zhuān)用語(yǔ)音處理芯片的問(wèn)世,使得語(yǔ)音控制代替了手動(dòng)控制車(chē)載電器,從而減輕了駕駛員手動(dòng)操作負擔,大大提高了行車(chē)安全性。
本文引用地址:http://dyxdggzs.com/article/196909.htm目前我國的車(chē)身電子語(yǔ)音控制主要集中在汽車(chē)導航系統的應用上,語(yǔ)音識別技術(shù)在車(chē)身電子中的應用沒(méi)有充分發(fā)揮。本文首次提出了一種以專(zhuān)用語(yǔ)音處理芯片UniSpeech-SDA80D51為核心組成的非特定人車(chē)載音響語(yǔ)音控制系統的設計方案,并實(shí)現了系統樣機的研制。
1 車(chē)載音響語(yǔ)音控制系統
系統由語(yǔ)音采集、語(yǔ)音識別、控制驅動(dòng)和車(chē)載音響等模塊構成,系統完成的主要功能是:語(yǔ)音采集模塊用于采集駕駛員發(fā)出的語(yǔ)音命令信號,由語(yǔ)音識別模塊實(shí)現信號的A/D轉換, 并對轉換的數字信號進(jìn)行語(yǔ)音識別處理,最終輸出與語(yǔ)音命令相對應的詞條編碼信號,控制模塊對接收的詞條編碼信號進(jìn)行邏輯分析與處理并產(chǎn)生對應的控制信號驅動(dòng)車(chē)載音響動(dòng)作,代替駕駛員的手動(dòng)操作。
1.1 語(yǔ)音識別模塊
語(yǔ)音識別模塊主要由UniSpeech-SDA80D51芯片及外圍電路組成。
SDA80D51是德國Infineon公司專(zhuān)為語(yǔ)音識別和語(yǔ)音處理應用領(lǐng)域新推出的高集成度SoC專(zhuān)用芯片,其基本結構如圖1所示。
由圖1可知,SDA80D51片內集成了直接雙訪(fǎng)問(wèn)快速SRAM、2路ADC和2路DAC、多種通信接口和通用GPIO等部件。SDA80D51工作方式以M8051為主控制芯片,主要完成系統配置和SPI、PWM、I2C、GPIO等接口的控制以及語(yǔ)音數據的傳輸工作; DSP核心OAK為協(xié)處理器,完成語(yǔ)音識別算法、語(yǔ)音編解碼算法等語(yǔ)音處理工作。
非特定人語(yǔ)音信號由定向拾音器輸入,經(jīng)過(guò)SDA80D51內部的數據采集模塊進(jìn)行A/D轉換,再經(jīng)過(guò)識別程序的預處理、端點(diǎn)檢測、特征參數提取、模板匹配等處理,選擇識別詞表中最接近的詞條序號作為識別結果,識別結果通過(guò)GPIO口輸出。
1.2 控制驅動(dòng)模塊
控制驅動(dòng)模塊由MCU和模擬開(kāi)關(guān)及外圍電路構成,模塊主要用來(lái)接收語(yǔ)音識別結果,并對詞條編碼信號進(jìn)行邏輯分析和處理,通過(guò)模擬開(kāi)關(guān)電路產(chǎn)生對應功能的控制信號驅動(dòng)音響動(dòng)作。其中MCU選用美國ATMEL公司產(chǎn)品AT89S51,綜合AT89S51輸出I/O信號電壓特性和SL1102C1音響控制面板電阻式分流鍵盤(pán)電路的特點(diǎn),確定使用繼電器模擬SL1102C1控制面板按鍵的閉合和斷開(kāi)動(dòng)作。AT89S51和繼電器模擬開(kāi)關(guān)電路原理圖如圖2所示。
1.3 音響模塊
本設計是基于SL1102C1型汽車(chē)音響。SL1102C1是專(zhuān)門(mén)為中檔轎車(chē)設計的汽車(chē)音響,具有MP3播放、收音機和顯示時(shí)間等功能,目前大量使用在江淮同悅轎車(chē)上。SL1102C1前板共有開(kāi)關(guān)機/靜音、音效、播放/暫停等15個(gè)按鍵和一個(gè)用來(lái)調節音量的編碼開(kāi)關(guān)。
SL1102C1前板鍵控為分壓識別方式,按鍵包含短按和長(cháng)按兩種動(dòng)作。AT89S51輸出電壓為T(mén)TL電平,直接驅動(dòng)音響容易引起鍵碼誤識別,造成系統誤操作,因此本文采用圖2所示電路,很好地解決了上述問(wèn)題。當AT89S51接收到語(yǔ)音編碼信號后,立即進(jìn)行邏輯分析并輸出對應的控制信號驅動(dòng)繼電器吸合模擬按鍵動(dòng)作,按鍵的短按和長(cháng)按功能通過(guò)軟件實(shí)現。
模擬開(kāi)關(guān)電路還適用于SL1102C1前板上的編碼開(kāi)關(guān),編碼開(kāi)關(guān)具有音量調節功能。開(kāi)關(guān)旋鈕旋轉時(shí),開(kāi)關(guān)上端子輸出對應的脈沖信號。當MCU收到操作編碼開(kāi)關(guān)的語(yǔ)音命令信號后,驅動(dòng)端子輸出脈沖信號,模擬開(kāi)關(guān)旋鈕功能。
2 系統軟件設計
系統軟件包括非特定人語(yǔ)音識別模塊和邏輯控制模塊。
2.1 非特定人語(yǔ)音識別模塊
非特定人語(yǔ)音識別模塊基于隱馬爾可夫模型算法。HMM算法通過(guò)對大量語(yǔ)音數據進(jìn)行數據統計,建立識別詞條的統計模型語(yǔ)音庫,然后從待識別語(yǔ)音中提取特征,與模型庫進(jìn)行匹配,由比較匹配分數得到識別結果,并通過(guò)SDA80D51的GPIO口輸出。非特定人語(yǔ)音識別模塊主要由信號預處理、特征參數提取、模型匹配和Viterbi算法部分組成,模塊框圖如圖3所示。
2.1.1 信號預處理
信號預處理部分主要完成輸入語(yǔ)音信號的采樣、 模/數轉換功能。A/D變換由SDA80D51內嵌12位A/D變換器實(shí)現,采樣頻率固定為8 kHz。
2.1.2 特征參數提取
特征參數提取基于語(yǔ)音幀,采用分幀提取特片。先對語(yǔ)音信號進(jìn)行重疊分幀,前一幀和后一幀重疊一半(幀信號重疊是體現相鄰兩幀數據之間的相關(guān)性),幀長(cháng)為25 ms,對每幀提取一次語(yǔ)音特片。
MFCC參數屬于感知頻域倒譜參數,反映了語(yǔ)音信號短時(shí)幅度譜的特征。p維MFCC參數的具體計算提取過(guò)程如下:
(1)用DFFT對每幀s(n:m)計算線(xiàn)性頻譜,計算頻譜模的平方為功率譜;
(2)功率譜經(jīng)過(guò) Mel 濾波器組獲得到D個(gè)參數X(i),D是Mel濾波器組中三角形濾波器的數量;
(3)對X(i)做對數運算和離散余弦變換,余弦變換計算公式如下:
式中的Y(i)是第i個(gè)Mel濾波器對數能量的輸出,i=1,2,…,D。
2.1.3 HMM語(yǔ)音識別算法
隱馬爾可夫算法采用概率統計模型描述語(yǔ)音信號,HMM模型建立在Markov 鏈基礎上,使用 MarKov 鏈來(lái)模擬語(yǔ)音信號統計特性的變化。HMM模型為雙重隨機過(guò)程,其一是Markov鏈,由(π,A)描述狀態(tài)的轉移,輸出為狀態(tài)序列;另一個(gè)是隨機過(guò)程,由B描述,在統計意義上B反映了狀態(tài)和觀(guān)察值之間的對應關(guān)系,輸出為觀(guān)察值矢量序列。Markov鏈中狀態(tài)和時(shí)間參數都是離散的Markov 過(guò)程。
Viterbi 算法是一種幀同步動(dòng)態(tài)規整算法,在給定觀(guān)察值序列和模型時(shí),Viterbi算法給出了一個(gè)概率密度P(Q,O|λ)最大的狀態(tài)序列。Viterbi算法包括初始化、遞推、終止、路徑回溯和確定最佳狀態(tài)序列。
對于語(yǔ)音處理而言,因Q的變化,P(Q,O|λ)取值范圍很大,而P(Q,O|λ)的最大值占了全部P(Q,O|λ)的很大的成分,所以可以用Viterbi算法來(lái)計算P(O|λ)。
2.2 控制模塊
控制模塊的主要功能是:在A(yíng)T89S51查詢(xún)到語(yǔ)音詞條信號后,查表獲得詞條編碼,根據編碼判斷對應按鍵是長(cháng)按或短按,分別進(jìn)入相應的子程序處理。在子程序中,輸出語(yǔ)音命令所對應的I/O控制信號驅動(dòng)繼電器吸合模擬按鍵或編碼開(kāi)關(guān)動(dòng)作,并及時(shí)復位I/O口??刂颇K還具有完全兼容手動(dòng)控制的功能,在語(yǔ)音控制操作的同時(shí)也可以進(jìn)行手動(dòng)操作,手動(dòng)的優(yōu)先級高于語(yǔ)音命令,這樣可以避免語(yǔ)音控制和手動(dòng)控制之間沖突。
控制模塊部分程序代碼如下:
void main()
{…… //初始化
while(1)
{…… //初始化
while(P0 == 0x00) //等待語(yǔ)音信號
{ WDTRST=0x1E;
WDTRST=0xE1; //WD指令
YXSY=0;}
YXSY = 1;
if(date != P0)
{ delayms(6); //延時(shí)函數
date = P0;
if(date==1 || date==2) //開(kāi)機、靜音
{ PWR = 0; //電源按鈕按下
delayms(200);
PWR = 1;} //電源按鈕松開(kāi)
……
P1 = 0xff;
P2 = 0xff;}}}
3 系統實(shí)測結果
本系統在江淮同悅SL1102C1型車(chē)載音響上進(jìn)行了非特定人語(yǔ)音識別率和模擬開(kāi)關(guān)動(dòng)作準確率測試。由于汽車(chē)音響的語(yǔ)音詞條為2~4個(gè)字,語(yǔ)音識別率實(shí)驗內容為車(chē)載音響常用2字詞條指令18條、3字詞條指令12條、4字詞條指令10條,實(shí)驗對象為6人4男、2女(普通話(huà)和方言),實(shí)驗環(huán)境為實(shí)驗室環(huán)境。為了提高系統的識別率,系統采用奧林巴斯 ME52定向麥克,提高了麥克接收范圍,系統測試結果如表1所示。
由表1可知,系統的識別率與語(yǔ)音指令詞條字數、麥克接收距離、說(shuō)話(huà)人方言有關(guān)。男聲和女聲的識別率接近。
在系統控制電路實(shí)驗中,模擬開(kāi)關(guān)動(dòng)作達到了較高的準確率,測試結果為98%以上,只要控制程序運行正常,各路繼電器就能按照程序安排執行閉合和斷開(kāi)模擬手動(dòng)開(kāi)關(guān)操作。
實(shí)現汽車(chē)電器的語(yǔ)音控制是未來(lái)車(chē)載電器的發(fā)展趨勢,越來(lái)越多的解決方案被不斷提出和驗證。本文提出的設計是在SL1102C1型車(chē)載音響上使用SDA80D51芯片,實(shí)現了車(chē)載音響非特定人的語(yǔ)音識別與控制。該設計得到的樣機有較高的識別率,工作穩定、可擴展性強,達到預期的設計目標,整個(gè)設計方案和實(shí)現方法是可行的。由于語(yǔ)音識別率隨著(zhù)環(huán)境、說(shuō)話(huà)人不同而變化,雖然HMM算法在噪聲很少的環(huán)境下可以獲得很高的識別率,但當測試語(yǔ)音或者環(huán)境中含有不同程度的噪聲污染時(shí),語(yǔ)音識別系統的性能會(huì )有所下降。提高系統的抗噪性和魯棒性是語(yǔ)音識別系統走向實(shí)用化的關(guān)鍵之一。
評論