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