嵌入式實時音樂語音識別系統(tǒng)的實現(xiàn)
引言
隨著電子音樂的快速發(fā)展, 迫切需要一種更智能、更便捷的用戶操作系統(tǒng)。自動音樂語音識別系統(tǒng)能夠提供便利的人機(jī)交互[1],方便人們自己學(xué)習(xí)音樂知識, 將成為一種主要方法,也是一個發(fā)展的方向。目前, 實驗室環(huán)境中自動語音識別系統(tǒng)已經(jīng)取得了很好的效果, 但是應(yīng)用于電子音樂方面的自動音樂語音識別卻很少。當(dāng)自動語音識別應(yīng)用于電子音樂時, 必須對識別方法進(jìn)行相應(yīng)改進(jìn), 才能滿足其對運(yùn)算速度、內(nèi)存資源等方面的要求。為了解決這個問題, 本文將結(jié)合音樂語音的特點,設(shè)計并實現(xiàn)嵌入式音樂語音識別系統(tǒng)。
1系統(tǒng)硬件電路設(shè)計系統(tǒng)
硬件電路設(shè)計的原理框圖如圖1所示,它主要由音樂語音信息采集部分、音樂語音處理DSP部分、程序數(shù)據(jù)存儲器FLASH部分、數(shù)據(jù)存儲器SRAM部分、鍵盤管理部分、音源芯片語音輸出部分、以及電源部分組成。音樂語音信息采集部分主要由MCU GPL162001來完成,該芯片自帶12bit ADC和72個I/O口,方便鍵盤管理,。音樂語音處理DSP部分選用了目前通用的TI公司的TMS320VC5402 16位微處理器,處理速度快,最快運(yùn)行速度可達(dá)100MIPS,功耗低,是一款理想的DSP處理器??紤]到速度要求較快,DSP的晶振選用100MHZ的晶振。另外,由于音樂輸出要求有專業(yè)的樂音效果,電路中選擇了由中芯微公司提供的64和弦MIDI音頻處理芯片。此外,TMS320VC5402片上沒有FLASH且片內(nèi)RAM只有16K,考慮到語音數(shù)據(jù)比較大,我們外擴(kuò)了1M的FLASH芯片和64K的SRAM芯片。 DSP(TMS320VC5402) 是整個硬件系統(tǒng)的信號處理中心,完成音樂語音識別工作, 進(jìn)行RAM及FLASH 存儲芯片的數(shù)據(jù)管理與調(diào)度, 并向主控芯片 MCU 提供反饋信息。電源的工作電壓為3.3V。
圖1 系統(tǒng)原理圖
2系統(tǒng)的軟件實現(xiàn)
和大部分語音識別系統(tǒng)一樣,音樂語音識別系統(tǒng)本質(zhì)也是一種模式識別系統(tǒng)。它的基本流程圖如圖2所示,主要包括語音信號預(yù)處理,端點檢測,特征參數(shù)求取和語音識別等幾個步驟。
圖2 系統(tǒng)識別算法流程圖
2.1語音信號預(yù)處理
語音信號預(yù)處理主要是對語音信號進(jìn)行前期的優(yōu)化處理,方便后面的端點檢測和語音識別,語音信號預(yù)處理主要包括分幀處理、預(yù)加重處理、加窗處理、濾波和消除毛刺處理等。
2.1.1語音信號的分幀
語音信號的特征是隨著時間而變化的,只有在一段短的時間間隔中,語音信號才保持相對穩(wěn)定一致的特征, 通常這段時間取5~50ms。在程序中取200個采樣點,對于8k的采樣頻率,即相當(dāng)于25ms。幀間重疊為100個采樣點,亦即12.5ms。
2.1.2預(yù)加重
由于語音信號平均功率譜受聲門激勵和口鼻輻射影響,800HZ以上的高頻信號按6DB/倍頻跌落,所以求語音信號頻譜時,頻率越高相應(yīng)成分越少,高頻部分的頻譜比低頻部分難求,所以要進(jìn)行預(yù)加重處理。在數(shù)字語音信號處理中,數(shù)字語音信號通常都通過一個低階的系統(tǒng)(典型的是一個一階的濾波器),即 式中, 為預(yù)加重系數(shù),通常 最為常用的取值是在0.95附近。由于本系統(tǒng)采用的是 =0.94
2.1.3加窗
對每一幀語音進(jìn)行加窗實質(zhì)是語音波形乘窗函數(shù),為減少時間窗兩端的坡度,使窗口邊緣兩端平滑過渡到零,減小語音幀的截斷效應(yīng), 這里采用典型的應(yīng)用在語音識別系統(tǒng)中加hamming窗。
2.1.4濾波、消除毛刺
由于語音信號包含很多噪聲信號,這些噪聲信號在時域中表現(xiàn)出高頻隨機(jī)、毛刺等信號,這些信號很可能影響識別的效果,所以,對信號進(jìn)行帶通濾波和消除毛刺處理能很好提高識別的精度。由于人聲主要在60-1000HZ ,采用50-1000HZ的FIR帶通濾波器對原信號進(jìn)行濾波,即可獲得良好的效果。 消除毛刺影響主要采用語音信號峰谷值檢測的方法,把相鄰兩峰值之間很不明顯的谷值和相鄰兩谷值之間很不明顯的峰值去掉,對語音曲線中一些較小的毛刺進(jìn)行曲線整形,消除那些明顯的毛刺![!--empirenews.page--]
2.2端點檢測
端點檢測是語音識別中的的一個關(guān)鍵,也是一個難點,端點檢測的好壞直接影響后面的語音特征參數(shù)提取,影響語音識別的效果。其目的就是從帶有噪聲的語音中檢測出說話人的語音命令, 找出語音段開始和結(jié)束的時點。本系統(tǒng)使用語音信號的能量曲線結(jié)合過零率來進(jìn)行端點檢測[5],整個過程如圖3所示。由于人聲的樂音信號范圍在50-1000HZ,首先對原語音信號進(jìn)行不同頻段的信號濾波,得到六個頻段濾波后的能量曲線, E(1)為50-1000HZ段的語音信號,E(2)100-1000HZ段的語音信號,E(3)200-1000HZ段的語音信號 ,E(4)400-1000HZ段的語音信號,E(5)600-1000HZ段的語音信號,E(5)800-1000HZ段的語音信號。能量分割是依據(jù)峰谷點檢測來進(jìn)行的,利用能量曲線峰谷點地變化,把能量曲線中的語音段分割出來,且把語音段的起點和終點作為我們要求得端點。但是由于語音信號變化情況復(fù)雜,尤其是語音連讀緊密的情況下,基于能量曲線的語音分割方法可能分割不開,所以,本系統(tǒng)采用了改進(jìn)的能量曲線分割算法,通過對語音信號能像曲線分析,我們發(fā)現(xiàn),不同頻段的能量曲線反映的特征不同,對語音信號進(jìn)行不同頻段的濾波最后得到的能量曲線放映的語音端點信息也不同,有些語音信號在高頻段的能量曲線中能很好的分割開,所以,對語音信號進(jìn)行六個頻段的濾波得出的基于能量曲線分割的改進(jìn)算法,在判決依據(jù)中,賦予E(1)的權(quán)值為1,而E(2)、E(3)、E(4)、E(5)、E(6)要求兩個以上相同才被視為端點?;谒心芰壳€的分割點都要看過零率的門限是否滿足要求,改進(jìn)算法的用意是在盡可能準(zhǔn)確的情況下盡量分割開語言信號, 盡量保證不錯分, 盡量提高分割的準(zhǔn)確度,避免誤分。
圖3 端點檢測流程圖
2.3語音特征參數(shù)提取
語音識別參數(shù)的提取較多,由于噪聲的的存在,考慮音樂語音識別系統(tǒng)的對識別的精度要求較高,本系統(tǒng)采用了經(jīng)典的美爾頻標(biāo)倒譜參數(shù)MFCC[4],MFCC參數(shù)建立在 Fourier 頻譜分析的基礎(chǔ)上,它的核心思想是利用人耳的感知特性,在語音的頻譜范圍內(nèi)設(shè)置若干個帶通濾波器,每個濾波器具備三角或者正弦的形濾波特性,計算相應(yīng)濾波器組的信號能量,再通過 DCT 計算對應(yīng)的倒譜系數(shù),
圖4 MFCC參數(shù)求取過程
2.4語音信號的訓(xùn)練與識別
音樂語音識別系統(tǒng)是一個專業(yè)性很強(qiáng)的詞匯量較小的語音識別系統(tǒng),由于識別的速度要求較快,樂音中的詞匯量較少,通常情況下人聲能唱到的樂音的范圍只有幾十個(一般在4個八度以內(nèi))。本系統(tǒng)采用采用了計算相對簡單而有效的DTW算法來進(jìn)行語音識別。該算法基于動態(tài)規(guī)劃的思想,將語音信號的每一幀信號的特征參數(shù)提取出來,就轉(zhuǎn)化成了一組特征向量。語音識別就是要將這個特征向量同模板庫中已存的語音特征向量(參考模板)進(jìn)行模板匹配,尋找距離最短的模板。語音識別需要語音模板庫的建立,也就是語音模型的訓(xùn)練。參照音樂語音音高頻率對照表,我們只對人聲范圍(60HZ-1000HZ即樂音中音名從C- )共四個八度32個音高進(jìn)行訓(xùn)練,針對每首曲子中音高的范圍都是在一定范圍以內(nèi)的,所以往往我們訓(xùn)練訓(xùn)練的樣本更少,較小的詞匯量使樂音識別的速度得到大大提高。
3實驗結(jié)果與分析
我們對系統(tǒng)的識別性能進(jìn)行了測試。由6個測試者(3男3女音樂專業(yè)人士)在安靜室內(nèi)環(huán)境下,選擇方向性較好的麥克風(fēng),進(jìn)行測試實驗。由于男生和女生一般能發(fā)音的音高不一樣,一般男生比女生偏低,首先讓6位測試者對照音名表把他(她)能發(fā)的音的全部錄音、訓(xùn)練,再隨機(jī)選擇幾首曲子進(jìn)行測試,實驗結(jié)果表明, 在對特定人的樂音識別中,由于女生發(fā)音口齒比較清晰,男生比較發(fā)音渾厚,男生的正確識別率在95%以上,女生的正確識別率在97%以上,平均正確識別率在96%以上,滿足實用化要求。
4結(jié) 論
本文介紹了一種基于DSP的嵌入式音樂語音識別系統(tǒng)的軟硬件系統(tǒng)。在傳統(tǒng)的語音識別方法上結(jié)合音樂語音的特點作了一些改進(jìn),敘述了音樂語音識別系統(tǒng)硬件結(jié)構(gòu)、軟件流程,采用了一種基于多頻段能量曲線分割結(jié)合過零率來檢測端點的新方法,簡化了運(yùn)算量,進(jìn)一步提高了識別性能,把語音識別技術(shù)很好的用在電子音樂方面,實現(xiàn)了嵌入式實時音樂語音識別,實驗結(jié)果表明,本系統(tǒng)精度高,基本能滿足實用化需求。
本文作者創(chuàng)新點:
(1)把語音識別方法應(yīng)用于電子音樂方面,設(shè)計并實現(xiàn)專業(yè)的音樂語音識別軟硬件系統(tǒng),巧妙采用了濾波、消除毛刺等預(yù)處理方法,訓(xùn)練了專業(yè)的音樂語音樣本,提高語音識別精度。
(2)建立了一種基于多頻段能量曲線分割結(jié)合過零率來檢測端點的新方法,在保證不錯分的情況下,提高了語音分割的正確率,同時結(jié)合過零率的門限,提高了端點檢測的精度。