【導(dǎo)讀】本文主要介紹MEMS麥克風(fēng)陣列所需的硬件架構(gòu),利用MEMS麥克風(fēng)陣列定位并識別音頻和語音信源。自從微機(jī)電系統(tǒng)的麥克風(fēng)陣列的出世,麥克風(fēng)音頻定位就引起各界關(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ù)的音源定位
系統(tǒng)框架
整個系統(tǒng)由以下幾個子系統(tǒng)組成:音源方向測定、數(shù)據(jù)融合、自動語音識別和自動說話人確認(rèn)。其中,音頻方向測定子系統(tǒng)基于麥克風(fēng)陣列,運行三個不同的音頻方向估算算法;數(shù)據(jù)融合子系統(tǒng)負(fù)責(zé)推斷方向,自動語音識別子系統(tǒng)利用傳入的音頻信號增強(qiáng)主音源信號強(qiáng)度,衰減主音源周圍的其它音頻信號。最后,自動說話人確認(rèn)子系統(tǒng)識別某些關(guān)鍵詞匯,再利用相關(guān)特征與說話人匹配。
圖2.系統(tǒng)框架(注:Secondary speaker:副揚聲器;primary speaker:主揚聲器;mic array:麥克風(fēng)陣列;data fusion:數(shù)據(jù)融合)
如果語音識別任務(wù)沒有成功,則反饋給數(shù)據(jù)融合系統(tǒng),估算新方向傳入的語音,然后驅(qū)動麥克風(fēng)陣列指向該方向。
[page]
語音識別和說話人識別
語音特征提取(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。
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)
MEMS技術(shù)
MEMS技術(shù)的主要特性是在能夠同一芯片表面集成微電子和微機(jī)械單元,在同一封裝內(nèi)整合不同的功能。這樣,過去分別由傳感器、執(zhí)行器(例如,射流管理或機(jī)械交互)和邏輯、控制單元完成的不同功能,今天可以整合在同一個封裝內(nèi)。從生化分析,到慣性系統(tǒng),從機(jī)械傳感器,到音頻和聲波傳感器, MEMS產(chǎn)品覆蓋很多應(yīng)用領(lǐng)域。
MEMS麥克風(fēng)和音頻編碼
MEMS麥克風(fēng)尺寸雖然比其它技術(shù)麥克風(fēng)小,但是,從物理和機(jī)械角度看,卻具備標(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),即可完成降低十分之一的采樣過程。
麥克風(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)。
麥克風(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處理。
圖5.每個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ù)變量控制增益。
圖6.麥克風(fēng)傳來的 PDM信號經(jīng)過過濾和十分之一降采樣率處理,以取得所需頻率和分辨率的信號
如上文所述,數(shù)據(jù)采集有兩個比特流解決方案,通過DP開關(guān)選擇用哪一個方案。當(dāng)選用 USB且在主機(jī)USB插入麥克風(fēng)陣列時,主機(jī)將STM32_MEMS_Microphones視為一個標(biāo)準(zhǔn)的USB音頻設(shè)備。因此,主機(jī)系統(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)行配置。
結(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)板,滿足人機(jī)、人與周圍環(huán)境的自然用戶界面的功能要求。
相關(guān)閱讀:
通透了解MEMS硅晶振,只需一篇文章即可
MEMS慣性傳感器在工業(yè)控制的未來之路
技術(shù)圖解MEMS壓力傳感器的原理與應(yīng)用