近期市場多有麥克風陣列的話題產品,智慧喇叭就是一個實際的熱門案例。智慧喇叭使用多麥克風組成陣列取代單一麥克風,目的是提高語音識別的可靠度,以達到更佳的使用者互動體驗,目前市場上主要的核心技術分為波束成形(Beamforming)與盲源偵測(Blind Source Separation)。
波束成形為目前市場上較主流的核心演算法,利用多個麥克風進行全向性收音,比對多麥克風的訊號時間與強度差異判斷聲音來源方向,抑制目標方向以外的聲音,以達到聚焦來自目標方向的效果,提高整體系統訊噪比(SNR),進而提高語音辨識的可靠度。盲源偵測為另一種核心演算法,分析聲音組成後將不同特徵的訊號分離,取出與語音特徵接近的部份,利用語音加強與濾波後進行語音辨識,亦會搭配利用聲源方向判斷來分離多個使用者的音源方向以降低系統運算量。
不論波束成形與盲源偵測都必須利用多麥克風的訊號之間的關係進行比對,若無此需求,以產品規畫的角度用單顆麥克風即可實現。
為了探究麥克風陣列選用麥克風的方向,本文進行模擬與實際測試,實驗麥克風陣列設計的不同參數如何影響系統SNR,並影響語音辨識可靠性。利用整體系統的語音與背景噪音比率來評判,類似於評估麥克風單體的SNR相對於單體語音,系統的背景噪音相對於單體背景噪音,以此定義系統SNR。由於訊號經過麥克風陣列的處理後,對於不同頻率的聲音有不同的結果,因此繪製系統SNR與頻率的關係曲線。實驗的語音平均聲壓60dB SPL,環境雜音平均聲壓50dB SPL。
以下,為實驗麥克風單體SNR差異、多麥克風相位響應差異、多麥克風感度差異、多麥克風個數差異、多麥克風距離差異的影響。
實驗一:麥克風單體SNR差異
開發麥克風陣列應用產品,開發者一般認知提高系統SNR會對語音辨識有正面影響,因此假設使用較高SNR的麥克風可以達到這個結果。為了測試這個假設,我們使用麥克風陣列系統SNR在麥克風單體SNR 64dB和70dB SNR進行測試,每種類型以包括1到6個麥克風的陣列排列。
|
圖1 麥克風單體SNR對系統SNR的影響 |
以系統間SNR相對於頻率的方式來呈現比較結果,軌跡越高的曲線,代表該系統在此頻率區段的表現越好,語音辨識的可靠性亦越好。圖1為麥克風單體SNR對系統SNR的影響圖,實線顯示麥克風單體SNR 64dB陣列的結果;虛線顯示麥克風單體SNR 70dB陣列的結果,使用麥克風單體70dB可將系統SNR提高約0.2dB。但波束成型演算法已將系統環境噪聲降低,系統SNR提高了大約4~7dB,所以麥克風陣列系統再增加約0.2dB幫助不大。
實驗二:麥克風相位一致性
波束成型演算法的基本原理中,麥克風相位響應一致性占據關鍵要素,因此假設使用麥克風具有較高相位響應一致性可以提高麥克風陣列語音識別可靠度。為了測試這個假設,麥克風陣列系統SNR在兩顆麥克風單體相位在1kHz處差0度、5度、10度、15度的組合下進行測試。
|
圖2 二顆麥克風相位差對系統SNR的影響 |
圖2顯示相位響應一致性的表現若較佳,將明顯對麥克風陣列系統SNR造成正面的影響。若在1KHz已經有相當的相位響應角度差異,在高頻段的部分影響會更加顯著,其程度足以左右語音辨識的可靠性。
實驗三:麥克風感度一致性
波束成型演算法的基本原理中,麥克風感度一致性為次要關鍵要素,一般相同型號的麥克風感度通常會因為量產差異而分布在一個範圍±3dB。圖3顯示了麥克風單體感度如何影響麥克風陣列的系統SNR。實線表示麥克風單體感度完美感度匹配陣列的結果;虛線表示麥克風單體感度分布±3dB陣列的結果。顯示麥克風陣列使用麥克風單體感度不匹配,亦會對整體系統SNR有明顯的負面影響。
|
圖3 多顆麥克風感度差對麥克風陣列系統SNR的影響 |
這些測試是在沒有外殼的裸板上進行量測的。當麥克風陣列裸板被安裝在外殼機構中,感度和頻率響應將根據麥克風的安裝方式和位置以及麥克風周圍聲學密封的一致性而改變,因此系統安裝的一致性亦是產品量產的重要考量。
實驗四:麥克風數量
接下來我們比較麥克風數量對麥克風陣列系統的影響,下面我們用極座標來表示麥克風陣列架構的收音方向,理想情況下,麥克風陣列極座標圖有直接指向目標的主瓣(Main Lobe),對其他方向的收音強度為旁瓣(Side Lobe),並在不同的頻率上不會有太大的變化。
|
圖4 垂射型麥克風陣列分別使用2顆(左上)、4顆(右上)、6顆(左下)、8顆(右下)麥克風的收音效果 |
圖4與圖5是以3kHz的頻率所做的模擬結果,增加麥克風的數量通常允許更緊湊、更集中的波束,其旁瓣越小,代表其他方向的雜音越少。圖4中垂射型(Broadside)麥克風陣列當收音目標在90o的方向,其相反的270o方向噪音排除方面表現便相對較差。如果將該系統置於靠近牆壁或其他大型物體附近可能會有較嚴重影響,導致麥克風陣列系統認為用戶的聲音來自牆壁而不是來自用戶。圖5中的端射型(End Fire)麥克風陣列則無這方面的問題。
|
圖5 端射型麥克風陣列分別使用2顆(左上)、4顆(右上)、6顆(左下)、8顆(右下)麥克風的收音效果 |
實驗五:圓形麥克風陣列的大小
由於麥克風與麥克風之間的距離會更大,陣列中麥克風間距的增加可能會導致所有麥克風之間的收到訊號位準差異更大,它也將改變麥克風之間的相對相位。
|
圖6 垂射型2顆麥克風陣列分別相距40mm(左上)、60mm(右上)、80mm (左下)、100mm(右下)的收音效果 |
圖6與圖7顯示了麥克風間距如何影響麥克風陣列的性能。兩顆麥克風相距60mm的效果看起來旁瓣均較小。
|
圖7 端射型兩顆麥克風陣列分別相距40mm(左上)、60mm(右上)、80mm (左下)、100mm(右下)的收音效果 |
CMOS MEMS麥克風陣列強化辨識率
根據以上實驗結果顯示,對於麥克風陣列整體系統SNR的影響因素中,影響最顯著的是麥克風相位角度差的一致性,其次為麥克風感度一致性,麥克風單體SNR影響不大,麥克風的數量增加對系統有幫助,麥克風陣列的大小則是根據演算法適中就好。
根據這樣的實驗結果來對MEMS麥克風做比較,市場上已有少數供應商基於CMOS MEMS製程實現的單晶片MEMS麥克風,結構上就具備優勢而做到相位響應與感度一致性,特別是對麥克風陣列最重要的相位響應一致性無法倚靠調節(Trimming)進行修正,若選擇CMOS MEMS麥克風進行開發,即可有效的調整麥克風陣列整體系統SNR,亦即可有效提高語音辨識的正確率。
(本文作者為鑫創科技技術經理)