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