大熱的麥克風(fēng)陣列語(yǔ)音識別系統的設計和輕松實(shí)現,提供軟硬件解決方案
摘要:
在非近距離語(yǔ)音識別中,由于衰減、干擾、混響等因素的影響,使語(yǔ)音識別率顯著(zhù)降低。使用麥克風(fēng)陣進(jìn)行語(yǔ)音識別的好處是通過(guò)提高信噪比來(lái)提高語(yǔ)音識別率。而本項目與傳統的麥克風(fēng)陣進(jìn)行語(yǔ)音識別的方法又有不同,它將語(yǔ)音接收端與語(yǔ)音識別部分組成一個(gè)反饋系統,通過(guò)優(yōu)化接收端濾波器的系數,使跟語(yǔ)音識別密切相關(guān)的倒譜域似然比最大,來(lái)提高語(yǔ)音識別準確率。在進(jìn)行Matlab仿真之后,將算法應用到FPGA中。FPGA開(kāi)發(fā)板暫定為Xilinx公司的Nexys 3 Spartan-6 FPGA Board。
1、研究方案
1.1 總統研究方案
當前基于隱馬爾可夫模型(HMM)的麥克風(fēng)陣語(yǔ)音識別系統,主要包括陣列信號處理和特征識別兩個(gè)階段,原理圖如圖1.1所示:
圖1.1 基于HMM的麥克風(fēng)陣語(yǔ)音識別系統結構
其中前端的陣處理主要是為了進(jìn)行語(yǔ)音增強,目的是在提取語(yǔ)音參數之前,盡量減小信號波形的失真。這一做法基于的假設是,對波形質(zhì)量得到改善的信號進(jìn)行特征識別能夠提高識別性能,即先后單獨進(jìn)行陣處理和特征識別操作,如圖1.2所示:
圖1.2 常規的麥克風(fēng)陣語(yǔ)音識別系統框架
本項目采用的處理方法,對陣元接收的信號進(jìn)行濾波求和,其目的并不是為了改善信號波形質(zhì)量,而是在于直接提高識別過(guò)程中正確假設的似然概率,進(jìn)而提高識別率。這一方案需要將陣處理和識別過(guò)程聯(lián)合起來(lái)考慮,框架如圖1.3所示:
圖1.3 結合識別過(guò)程進(jìn)行陣處理的語(yǔ)音識別系統框架
本方案在接收陣上引入一組FIR濾波器,通過(guò)優(yōu)化濾波器系數,產(chǎn)生一組陣參數以最大化信號被正確識別的概率。此方案將識別系統的輸出結果反饋至前端的麥克風(fēng)陣列,把識別系統的統計模型也考慮到前端陣處理中,是一種根據期望假設最大化而非期望信號最優(yōu)化的自適應處理方法,以強化對于識別更為重要的信號分量,而之前的方法則是無(wú)分別地同等地加強所有的信號分量。
語(yǔ)音識別系統的工作原理在于從模板庫中找出最有可能產(chǎn)生特征觀(guān)察矢量序列的單詞作為識別結果輸出,即:對某一待識別的觀(guān)察矢量,詞庫中每個(gè)詞匯對應的HMM模板分別計算出相應的似然概率,選擇使似然概率最大的模板所對應的詞匯作為識別假設結果輸出。
本文采用FIR濾波器對麥克風(fēng)陣接收的信號進(jìn)行處理,然后從濾波得到的信號中提取語(yǔ)音特征矢量。定義一個(gè)濾波器參數矢量
包含該FIR濾波器中所有的系數,識別假設的得出依照貝葉斯分類(lèi)準則:
,其中詞語(yǔ)的發(fā)生概率
是基于語(yǔ)言模型的經(jīng)驗值,而假設似然概率
的計算則基于識別系統的統計模型。本文聯(lián)合空時(shí)處理和語(yǔ)音識別過(guò)程,目的就在于搜索出一組FIR濾波器參數矢量
使得正確假設的似然概率
最大化,提高正確假設與非正確假設之間的概率差值,從而提高得到正確假設的概率。具體流程見(jiàn)圖1.4、圖1.5。其中圖1.4是訓練濾波器系數的框圖,圖1.5是利用已訓練完成的濾波器系數進(jìn)行語(yǔ)音識別的框圖。
圖1.4 訓練FIR濾波器系數流程圖
圖1.5 聯(lián)合FIR濾波的語(yǔ)音識別流程圖
1.2 關(guān)鍵算法
1.2.1延時(shí)求和
采用互相關(guān)法計算各路信號的時(shí)間延遲。假設有四路信號,分別為。以
為參考信號,分別與
作互相關(guān)運算。以
與
為例,
與
作互相關(guān),
指代互相關(guān)運算。求出使
最大時(shí),信號所處的時(shí)刻,再減去
與
中長(cháng)度較長(cháng)的那個(gè)信號的長(cháng)度,就可以求得信號的相對時(shí)延了。即假設使互相關(guān)函數
最大的時(shí)刻為t,
為其中長(cháng)度較長(cháng)的信號,其長(cháng)度為
,那么:
即為相對時(shí)延。若,則信號
比信號
先到達,反之,則信號
先到達?,F在討論
的情況,則要對信號
進(jìn)行延時(shí)補償,即將信號
向左平移
,平移出的值舍去。
根據以上兩路信號的討論,可以總結出四路信號進(jìn)行延時(shí)補償的步驟:
- 以信號
為參考信號,分別對其他三路信號作互相關(guān)運算;
- 記三個(gè)互相關(guān)函數分別為
;
- 計算三路信號相對于信號
的時(shí)延,分別即為
;
- 找出三個(gè)時(shí)延中值最大的那個(gè),假設為
;
- 如果
大于0,那么信號
向左平移
,其他三路信號向左平移
;
- 如果
小于0,那么信號
不用平移,其他三路信號向左平移
1.2.2 特征參數提取
其中特征參數的提取是采用Mel頻率倒譜系數,這是因為Mel刻度在對聲學(xué)測量時(shí)是最合理的頻率刻度?;诼?tīng)覺(jué)模型得到的Mel倒譜系數比基于聲道模型得到的LPC倒譜系數更符合人的聽(tīng)覺(jué)特性,在有信道噪聲和頻譜失真的情況下,能產(chǎn)生更高的識別精度。所以本語(yǔ)音識別系統選擇MFCC做為特征提取的參數。MFCC的產(chǎn)生過(guò)程可用圖1.6表示。
圖1.6 計算MFCC的流程圖
2、實(shí)驗設備及設計方案
本項目首先用Matlab仿真算法,采用一個(gè)六通道的音頻采集硬件系統,連接到PC上采集語(yǔ)音信號。該系統主要包括六只同型號的全指向性電容話(huà)筒,一個(gè)放大倍數可調的多通道低噪放,和一塊采樣頻率最高可達50KHz的數據采集卡,結構框圖如圖2.1所示,圖2.2是實(shí)物拍攝照片。實(shí)驗中,將六個(gè)麥克風(fēng)排列成按照5.2cm的相鄰陣元中心間距排列成一均勻線(xiàn)陣進(jìn)行數據采集,如圖2.3所示。
圖2.1 基于PC的音頻采集硬件系統框架
圖2.2 音頻采集硬件實(shí)物
圖2.3 麥克風(fēng)陣架子,架子長(cháng)約65cm,寬約20cm
本實(shí)驗每個(gè)人錄制HMM模型庫中的十個(gè)單詞,分別為able、afraid、already、autumn、base、below、body、box、build、careful,錄制人離麥克風(fēng)陣2.5米左右,麥克風(fēng)間的距離約為5cm,這樣就能夠近似認為,說(shuō)話(huà)人說(shuō)出的語(yǔ)音信號是由平面波的形式到達麥克風(fēng)陣的。錄制環(huán)境的信噪比大約為50dB。將這些錄制的單詞儲存在PC中,然后用Matlab程序進(jìn)行訓練得到濾波器系數。之后采用圖1.5的流程進(jìn)行語(yǔ)音識別。經(jīng)過(guò)初步的研究發(fā)現,該算法具有較好的識別效果。
下一步就是將Matlab算法移植到FPGA中,如圖2.4。
圖2.4 基于Nexys 3 Spartan-6 FPGA Board的音頻采集硬件系統框架
首先將訓練得到的濾波器系數及HMM模型存儲與Nexys 3 Spartan-6 FPGA Board的外部存儲器中,之后經(jīng)多路低噪聲放大器,AD信號采集卡將測試者的語(yǔ)音信號輸入到FPGA。因為采集卡輸入的是串行的信號,FPGA需將六路語(yǔ)音信號進(jìn)行時(shí)分復用采集,轉換為并行的信號,供后續處理。后續處理流程及算法參見(jiàn)圖1.5及1.2 關(guān)鍵算法。其中濾波器、乘法、FFT等等算法可以利用現有的IP核,以提高設計效率。識別完成后將識別結果在七段譯碼顯示器上顯示。為了簡(jiǎn)便起見(jiàn),可以將able、afraid、already、autumn、base、below、body、box、build、careful分別標定為1~10,然后將相應的數字顯示在七段譯碼顯示器上。
如果識別效果理想,可以將現有的十個(gè)單詞的庫提升到50個(gè)詞、100個(gè)詞,但是這都需要進(jìn)一步的研究以及更高性能的硬件支持。
評論