利用MEMS麥克風(fēng)陣列定位并識別音頻或語音信源
* 意大利米蘭大學(xué)計算機學(xué)系
** 意大利米蘭比可卡大學(xué)
*** 意法半導(dǎo)體(意大利Agrate)公司
摘要:在過去10年里,以人類語言和音頻信號為媒介的人機交互應(yīng)用在日常生活的作用越來越重要。設(shè)備本身必須充分利用不同的功能,才能取得最佳的性能,例如,音頻定位、自動語音識別、自動說話人識別等。本文著重探討取得這些結(jié)果所需的算法和完整的嵌入式方案即MEMS麥克風(fēng)陣列所需的硬件架構(gòu)。
1. 前言
自動語音識別、語音模式識別和說話人識別及確認(rèn)等應(yīng)用對噪聲十分敏感,信源定位識別是音頻和語音信號捕捉處理應(yīng)用的一個關(guān)鍵的預(yù)處理功能。特別是基于微機電系統(tǒng)(MEMS) [1][2]的麥克風(fēng)陣列出現(xiàn)后,麥克風(fēng)陣列音頻定位方案引起科研企業(yè)和開發(fā)人員的廣泛關(guān)注。
目前業(yè)界正在使用MEMS麥克風(fēng)陣列子系統(tǒng)開發(fā)嵌入式音頻定位、自動語音識別和自動說話人識別解決方案,聲音識別定位是我們識別確認(rèn)他人身份的基本功能,當(dāng)我們聽到有人講話時,會將頭轉(zhuǎn)向說話人,查看說話人。
音源定位是自動語音識別和自動說話人識別系統(tǒng)的一個重要環(huán)節(jié),對于提高語音識別系統(tǒng)的性能至關(guān)重要。麥克風(fēng)陣列可捕捉從不同方向傳來的聲音,通過算法運算使麥克風(fēng)指向某一個特定方向,放大從該方向捕捉到的音頻信號,同時衰減從其它方向捕捉的音頻信號,整個動作就像一個智能麥克風(fēng)。
圖 1.綜合利用麥克風(fēng)音源互相關(guān)性(CC)、相變(PHAT)和最大相似性處理(ML)技術(shù)的音源定位
2. 系統(tǒng)框架
整個系統(tǒng)由以下幾個子系統(tǒng)組成:音源方向測定、數(shù)據(jù)融合、自動語音識別和自動說話人確認(rèn)。其中,音頻方向測定子系統(tǒng)基于麥克風(fēng)陣列,運行三個不同的音頻方向估算算法;數(shù)據(jù)融合子系統(tǒng)負(fù)責(zé)推斷方向,自動語音識別子系統(tǒng)利用傳入的音頻信號增強主音源信號強度,衰減主音源周圍的其它音頻信號。最后,自動說話人確認(rèn)子系統(tǒng)識別某些關(guān)鍵詞匯,再利用相關(guān)特征與說話人匹配。
圖 2. 系統(tǒng)框架
如果語音識別任務(wù)沒有成功,則反饋給數(shù)據(jù)融合系統(tǒng),估算新方向傳入的語音,然后驅(qū)動麥克風(fēng)陣列指向該方向。
2.1 語音識別和說話人識別
語音特征提取(27 LPC-倒普系數(shù))需要確定語音的端點,將語音分成數(shù)個短禎(每禎20 ms),通過一個DTW模式對準(zhǔn)算法與一組參考語音(模板)匹配。然后,應(yīng)用歐氏距離測量法進(jìn)行相似性評估。
圖 3. 特征提取、模式匹配和評分是說話人語音識別確認(rèn)任務(wù)的主要環(huán)節(jié)
說話人身份評分采用的是動態(tài)時間規(guī)整近鄰(DTW-KNN)算法的距離測量方法,即動態(tài)時間規(guī)整測量算法與近鄰決策算法的合并算法。這個算法需要使用均方根、過零率、自動相關(guān)和倒普線性預(yù)測系數(shù)。使用歐氏距離算法計算成本函數(shù),使用KNN 算法計算最小距離匹配度 k。
3. MEMS麥克風(fēng)陣列
我們采用STM32F4微控制器和MEMS麥克風(fēng)開發(fā)一個硬件音頻信號同步采集處理子系統(tǒng),其信號捕捉能力相當(dāng)于8個采樣率高達(dá)48 KHz的麥克風(fēng) 。
圖 4. 采用STM32F4微控制器和MEMS麥克風(fēng)的硬件音頻信號同步采集處理子系統(tǒng)
3.1 MEMS技術(shù)
MEMS技術(shù)的主要特性是在能夠同一芯片表面集成微電子和微機械單元,在同一封裝內(nèi)整合不同的功能。這樣,過去分別由傳感器、執(zhí)行器(例如,射流管理或機械交互)和邏輯、控制單元完成的不同功能,今天可以整合在同一個封裝內(nèi)。從生化分析,到慣性系統(tǒng),從機械傳感器,到音頻和聲波傳感器, MEMS產(chǎn)品覆蓋很多應(yīng)用領(lǐng)域。
3.2 MEMS麥克風(fēng)和音頻編碼
MEMS麥克風(fēng)尺寸雖然比其它技術(shù)麥克風(fēng)小,但是,從物理和機械角度看,卻具備標(biāo)準(zhǔn)駐極體麥克風(fēng)的全部功能,其核心部件是一個振膜,振膜和固定框架共同組成一個可變電容器。當(dāng)聲波引起振膜變形時,電容會發(fā)生變化,從而導(dǎo)致電壓變化。
被捕捉到的信號的后期處理,即功率放大和模數(shù)轉(zhuǎn)換過程,都是在同一芯片上完成,因此,麥克風(fēng)輸出是高頻PDM信號。在脈沖密度調(diào)制過程,邏輯1對應(yīng)一個正 (+A) 脈沖,而邏輯0對應(yīng)一個負(fù)(-A)脈沖。因此,假設(shè)輸入一個周期的正弦音頻,當(dāng)輸入電壓在最大正振幅時,輸出為一個由“1”組成的脈沖序列;當(dāng)輸入電壓在最大負(fù)振幅時,輸出則是一個由“0”組成的序列。當(dāng)穿過0振幅時,聲波在1和0序列之間快速變化。如果方法正確,PDM可通過數(shù)字方法給高品質(zhì)音頻編碼,而且實現(xiàn)方法簡易,成本低廉。因此,PDM比特流是MEMS麥克風(fēng)常用的數(shù)據(jù)輸出格式。
另一方面,PCM是一個非常著名的音頻編碼標(biāo)準(zhǔn),以相同的間隔對信號振幅定期采樣,在數(shù)字步進(jìn)范圍內(nèi),每個采樣被量化至最接近值。決定比特流是否忠實原模擬信號的是PCM比特流的兩個基本屬性:采樣率,即每秒采樣次數(shù);位寬,即每個采樣包含的二進(jìn)制數(shù)個數(shù);通過降低采樣率(降低十分之一)和提高字長,可以將PDM編碼信號轉(zhuǎn)成PCM信號,PDM數(shù)據(jù)速率與降低十分之一的PCM采樣率的比值被稱為降采樣率。因此,對于N:1降采樣率,只要每N個間隔采樣一次(不考慮剩余的N-1),即可完成降低十分之一的采樣過程。
3.3 麥克風(fēng)陣列
從硬件角度看,這款產(chǎn)品基于STM32F407VGT6高性能微控制器,能夠通過8個MEMS麥克風(fēng)采集信號。STM32F4微控制器基于工作頻率最高168 MHz的高性能ARM? Cortex?-M4 32 RISC處理器內(nèi)核,集成高速嵌入式存儲器(閃存容量最高1 MB, SRAM容量最高192KB)以及標(biāo)準(zhǔn)和先進(jìn)的通信接口,例如,I2S全雙工接口、SPI、 USB FS/HS和以太網(wǎng)。
STM32 F4系列是意法半導(dǎo)體首批基于支持FPv4-SP 浮點擴展運算的ARM Cortex-M4F內(nèi)核的STM32微控制器,這使得該器件適用于重負(fù)荷算法,浮點單元完全支持單精度加法、減法、乘法、除法和累加以及均方根運算,還提供定點和浮點數(shù)據(jù)格式轉(zhuǎn)換和浮點常數(shù)指令,完全兼容ANSI/IEEE Std 754-1985二進(jìn)制浮點算術(shù)標(biāo)準(zhǔn)。為提高ARM架構(gòu)的數(shù)字信號處理和多媒體應(yīng)用性能,指令集還增加了DSP指令集。新指令是數(shù)字信號處理架構(gòu)常用指令,包括帶符號乘加變化(variations on signed multiply–accumulate)、飽和加減和前導(dǎo)零計數(shù)。
麥克風(fēng)陣列通過RJ45以太風(fēng)接口或USB OTG FS接口連接其它器件,與其它器件交互是通過可控制基本板設(shè)置的DIP開關(guān)實現(xiàn)。
如下圖所示,每個MEMS麥克風(fēng)都是由同一個時鐘源觸發(fā),時鐘源由專用振蕩器驅(qū)動,對每個GPIO端口的一個引腳輸出1位PDM 高頻信號。輸出PDM數(shù)據(jù)頻率與輸入時鐘同步,因此,DMA控制器以同一頻率即音頻捕捉頻率對GPIO端口進(jìn)行讀操作,然后將1 ms音頻數(shù)據(jù)(每次)保存在存儲器緩沖電路。這時,該緩沖器包含麥克風(fēng)交叉信號,然后軟件利用優(yōu)化的快速解碼函數(shù)對數(shù)據(jù)進(jìn)行解復(fù)用處理。最后,PDM 數(shù)據(jù)通過數(shù)字信號處理環(huán)節(jié),再進(jìn)行PDM轉(zhuǎn)PCM處理。
圖 6.每個MEMS麥克風(fēng)都是由同一個時鐘源觸發(fā),時鐘源由專用振蕩器驅(qū)動,對每個GPIO端口的一個引腳輸出1位PDM 高頻信號
麥克風(fēng)傳來的 PDM信號經(jīng)過過濾和十分之一降采樣率處理,以取得所需頻率和分辨率的信號。麥克風(fēng)輸出的PDM數(shù)據(jù)頻率(麥克風(fēng)的輸入時鐘)必須是系統(tǒng)最終音頻輸出的倍數(shù),濾波器管道輸出是一個16位值,我們將 [-32768, 32767]視為一個單位增益(0 dB)的輸出范圍。
原先濾波管道產(chǎn)生的數(shù)字音頻信號在信號調(diào)理前被進(jìn)一步處理。管道第一級是一個高通濾波器,主要用于除掉信號DC失調(diào)。為保護(hù)信號質(zhì)量,該濾波級是使用一個截止頻率不在可聽頻率范圍內(nèi)的 IIR濾波器,管道第二級是一個基于IIR濾波器的低通濾波器。兩個濾波器有啟用和禁用以及配置功能;可通過外部整數(shù)變量控制增益。
圖7. 麥克風(fēng)傳來的 PDM信號經(jīng)過過濾和十分之一降采樣率處理,以取得所需頻率和分辨率的信號
如上文所述,數(shù)據(jù)采集有兩個比特流解決方案,通過DP開關(guān)選擇使用哪一個方案。當(dāng)選用 USB且在主機USB插入麥克風(fēng)陣列時,主機將STM32_MEMS_Microphones視為一個標(biāo)準(zhǔn)的USB音頻設(shè)備。因此,主機系統(tǒng)無需安裝驅(qū)動軟件。例如, STM32_MEMS_Microphones可直接連接第三方PC音頻采集軟件。當(dāng)選用以太網(wǎng)時,STM32_MEMS_Microphones發(fā)送RTP數(shù)據(jù)包。在網(wǎng)絡(luò)服務(wù)器的以太網(wǎng)設(shè)置頁對目的地IP、設(shè)備單播地址和采集參數(shù)進(jìn)行配置。
4. 結(jié)論
音源定位識別是語音識別技術(shù)中的一個重要的語音預(yù)處理環(huán)節(jié),對提高音頻應(yīng)用和聲控應(yīng)用性能具有重要意義。音源定位主要用于自動語音識別、音頻模式識別、說話人發(fā)現(xiàn)及識別。MEMS技術(shù)的問世讓麥克風(fēng)陣列能夠嵌入在上述應(yīng)用設(shè)計中,執(zhí)行音頻信號預(yù)處理過程,為應(yīng)用級提供最好的信息。
該嵌入式單個說話人及其語音定位識別方案基于一個集成ARM處理器和一組MEMS麥克風(fēng)的原型板。初步測試結(jié)果證明了這一集成方案的可行性,且系統(tǒng)級模塊可以做語音、音頻識別目標(biāo)板,滿足人機、人與周圍環(huán)境的自然用戶界面的功能要求。
參考文獻(xiàn)
[1] F. Riberio, D.A. Florencio, D.E. Ba, Using Reverberation to Improve Range and Elevation Discrimination for Small Array Sound Source Localization, IEEE Transaction on Audio, Speech, and Language Processing, vol. 18, n. 7, September 2010
[2] ST brings MEMS microphones to distant-speech research project, Solid State Technology, Volume 56, Issue 1, 2012
評論