采用MEMS麥克風(fēng)實(shí)現(xiàn)復(fù)雜環(huán)境下對特定語音的提取與放大
1.引 言
人們一直夢想有朝一日可以擺脫鍵盤或遙控設(shè)備的束縛,擁有更為友好、親切的人機(jī)界面,使得計(jì)算機(jī)或家用電器可以像人一樣聽懂人的話語,看懂人的動作,執(zhí)行人們所希望的任何任務(wù),而語音數(shù)字信號處理正是其中一項(xiàng)至關(guān)重要的應(yīng)用技術(shù)。隨著科技的發(fā)展,品種繁多的消費(fèi)電子產(chǎn)品進(jìn)入了人們的生活,利用語音技術(shù)對電子產(chǎn)品的控制也將是未來的消費(fèi)電子的一大趨勢。然而在語音通信的過程中,不可避免地會受到來自周圍環(huán)境中噪聲的干擾,甚至在某些極端場合下(如工地或公交車站),噪聲幾乎會覆蓋掉全部的有用信息。這使得識別的效率急劇下降,嚴(yán)重時會直接導(dǎo)致誤操作,所以在噪聲背景下的語音提取及增強(qiáng)有重要意義[1]。
語音增強(qiáng)作為預(yù)處理,可以改善這些系統(tǒng)的性能,例如語音識別正在步入實(shí)用階段,但目前的識別系統(tǒng)大都是在安靜環(huán)境中工作的,在噪聲環(huán)境中尤其是強(qiáng)噪聲環(huán)境,語音識別系統(tǒng)的識別率將受到嚴(yán)重影響,這就需要語音增強(qiáng)技術(shù)進(jìn)行預(yù)處理。所謂語音增強(qiáng)就是對帶噪語音進(jìn)行處理,改善語音質(zhì)量,減少語音通信過程中噪聲對語音的損害,對收聽人而言主要是減少疲勞,改善語音質(zhì)量,提高語音可懂度,而對語音處理系統(tǒng)而言則主要是提高系統(tǒng)的識別率和抗干擾能力。
目前國內(nèi)外有關(guān)抗噪聲技術(shù)的研究成果大體可分為三類。一類是采用語音增強(qiáng)算法,提高語音識別系統(tǒng)前端預(yù)處理的抗噪聲能力,提高輸入信號的信噪比。第二類方法是尋找穩(wěn)健的耐噪聲的語音特征參數(shù)并提出了短時修正的相干系數(shù),作為語音特征參數(shù),該參數(shù)是基于自相關(guān)函數(shù)序列的線性預(yù)測技術(shù),實(shí)驗(yàn)證明,該參數(shù)對寬帶語音具有較好效果。但是,目前的補(bǔ)償算法通常只考慮到噪聲環(huán)境是平穩(wěn)的,在低信噪比語音以及非平穩(wěn)噪聲環(huán)境中的效果并不理想。而解決噪聲問題的根本方法是實(shí)現(xiàn)噪聲和語音的自動分離,盡管人們很早就有這種愿望,但由于技術(shù)的難度,這方面的研究進(jìn)展很小。近年來,隨著聲場景分析技術(shù)和盲分離技術(shù)的研究發(fā)展,利用在這些領(lǐng)域的研究成果進(jìn)行語音和噪聲分離的研究取得了一些進(jìn)展[2]。
耳機(jī)技術(shù)可以說是手機(jī)背景噪音抑制技術(shù)的最初解決方案,語音壓擴(kuò)技術(shù)現(xiàn)在廣泛的應(yīng)用在通信系統(tǒng)中,麥克風(fēng)陣列技術(shù)有良好的抗噪性能[3],但是其目前的成本過高,期待著材料技術(shù)的突破。
本文將從硬件和軟件方面綜合設(shè)計(jì)語音增強(qiáng)的系統(tǒng)。本系統(tǒng)采用SOPC快速設(shè)計(jì)數(shù)字電路方案,在外圍擴(kuò)展組合麥克風(fēng)以及音頻輸出模塊,實(shí)現(xiàn)了整個硬件部分。通過分析現(xiàn)有的語音增強(qiáng)方案的缺點(diǎn),提出了獨(dú)特的語音增強(qiáng)方案。本系統(tǒng)可以根據(jù)用戶的特征進(jìn)行自我定制語音輸出,對環(huán)境中雜亂無章的噪聲采取了更為靈活的過濾方式。
2.系統(tǒng)總體設(shè)計(jì)
SoC(System on Chip)片上系統(tǒng)是現(xiàn)代電子系統(tǒng)設(shè)計(jì)的一個發(fā)展方向,它將原先分立的多個芯片集成在一塊芯片上,通過提高芯片的集成度、減少系統(tǒng)芯片的數(shù)量和相互之間的PCB連線、減少PCB面積來降低整個系統(tǒng)的成本,同時使系統(tǒng)的性能、功能和可靠性都有很大的提高。隨著新型的高性能、低成本FPGA的出現(xiàn)和綜合技術(shù)的提高,基于FPGA的SoPC(System on Programmable Chip)可編程片上系統(tǒng)正逐步走向市場。基于FPGA的SoPC與基于ASIC技術(shù)的SoC相比,具有設(shè)計(jì)周期短、產(chǎn)品上市速度快、設(shè)計(jì)風(fēng)險(xiǎn)和設(shè)計(jì)成本低、集成度高、靈活性大、維護(hù)和升級方便、硬件缺陷修復(fù)和排除簡單等優(yōu)點(diǎn)。因此基于FPGA和包括32位CPU在內(nèi)的各種IP核的系統(tǒng)級應(yīng)用開發(fā)將是下一代電子系統(tǒng)設(shè)計(jì)的發(fā)展方向。
順應(yīng)這個潮流,F(xiàn)PGA器件的方要供應(yīng)商Altera和Xilinx都推出了各自的SoPC解決方案:Nios系統(tǒng)和MicroBlaze系統(tǒng)。它們功能強(qiáng)大、開發(fā)環(huán)境和配套IP核完善,是工程應(yīng)用的首選。但是它們只能用在各自廠商的FPGA上,不但配套IP核價(jià)格昂貴,而且用戶無法獲得所有源代碼,不利于我國SoPC技術(shù)的發(fā)展[4]。針對這種情況,本系統(tǒng)使用OpenCores組織提供的各種免費(fèi)、開源的IP核,構(gòu)建了以O(shè)penRISC1200CPU為核心,配以各類外圍IP核的完全開源的SoPC系統(tǒng)。其可以運(yùn)行μClinux系統(tǒng)。同時本系統(tǒng)采用的所有IP核在源代碼不變的情況下可以使用Xilinx的開發(fā)工具進(jìn)行綜合、布線,為該系統(tǒng)在其他FPGA平臺上的運(yùn)行打下了良好的基礎(chǔ)。
本系統(tǒng)總體構(gòu)架如圖一。冗雜聲音信號經(jīng)ADMP421麥克風(fēng)陣列采集,由SPI控制模塊讀取語音信息,將聲音信號采集進(jìn)系統(tǒng)進(jìn)行進(jìn)一步處理。人機(jī)交互可以設(shè)置語音處理的各項(xiàng)初始參量,確定語音閾值,實(shí)現(xiàn)用戶自定義的語音處理,增強(qiáng)系統(tǒng)對環(huán)境的適應(yīng)性。之后,語音信息被送往FIR處理單元,進(jìn)行下一步的濾波處理,初步將語音信號提取出來。這時,可以利用OR1200構(gòu)建的CPU進(jìn)行進(jìn)一步的軟件處理,以實(shí)現(xiàn)更為復(fù)雜的語音處理。經(jīng)過相關(guān)處理的語音信號,可以直接通過MCU控制和IIS控制輸出給WM8731進(jìn)行音頻解碼輸出。如果需要較大功率輸出,可以使用音頻放大電路將音頻信號放大輸出。
另外,由于FPGA內(nèi)部的存儲器較小,且為易失性的,所以需要外擴(kuò)存儲器存儲程序以及用戶設(shè)定信息。如果需要運(yùn)行操作系統(tǒng),則需要外擴(kuò)RAM以保證程序執(zhí)行所需存儲器和提高程序執(zhí)行效率。
圖 1 SOPC語音增強(qiáng)系統(tǒng)構(gòu)架
3.單元模塊設(shè)計(jì)
3.1 軟核OR1200
OR1200是OpenCores組織提供的基于GPL協(xié)議的開放源代碼處理器,性能介于ARM7和ARM9之間,適合一般的嵌入式系統(tǒng)使用。OpenCores組織提供了大量的源代碼IP核供研究人員使用,OR1200在使用0.18um及6層金屬工藝時,主頻可以運(yùn)行在300MHz,可以提供300Dhrystone、2.1MIPS和300次的32x32 DSP乘加操作。OR1200是32位標(biāo)量RISC處理器,具有哈佛結(jié)構(gòu)、5級整數(shù)流水線、支持MMU和Cache,帶有基本的DSP功能。外部數(shù)據(jù)和地址總線采用Wishbone片上總線標(biāo)準(zhǔn)。
3.2組合麥克風(fēng)
目前市面上,最為流行駐極體麥克風(fēng)(ECM),但硅麥克風(fēng)大有取而代之的趨勢,這主要由于硅麥克風(fēng)有駐極體麥克風(fēng)不可比擬的優(yōu)勢。硅麥克風(fēng)就單個器件來說,半徑是駐極體麥克風(fēng)的 1/3 或 1/4,尺寸大大減小,有更高的集成度。能耗為 ECM 的 1/2。不僅如此,硅麥克風(fēng)有更強(qiáng)的抗射頻干擾(RFI)和電磁干擾(EMI),可以在惡劣的電磁場環(huán)境正常工作,同時能夠承受表面貼裝工藝的高溫度而性能不變。MEMS麥克風(fēng)[5]非常適合麥克風(fēng)安保和監(jiān)視應(yīng)用,可同時改善采集和波束成型體驗(yàn)。ADMP421[6]可以提供一流的SNR和擴(kuò)展頻率響應(yīng),音質(zhì)出色,聲音高度清晰,適用于高清語音/聲音識別。器件間的容差極小,增強(qiáng)了波束成形的方向性,同時卓越的PSRR和小封裝尺寸使設(shè)計(jì)人員可以極其靈活地放置麥克風(fēng)。
另外ADMP421數(shù)字麥克風(fēng)有著塵埃過濾器,工作性能不會隨著時間的推移而下降。
ADMP421與FPGA的接口為通用的SPI串行控制方式,控制方式比較簡單。[!--empirenews.page--]
圖 2 ADMP421典型接口電路[7]
3.3 WM8731音頻輸出模塊
WM8731[8]是一款專用低功耗立體CODECs,內(nèi)置了耳機(jī)驅(qū)動。該芯片是專門為MP3播放器設(shè)計(jì)的,音頻采樣和播放的芯片,其原理圖如下:
圖 3 WM8731原理圖[8]
該芯片支持立體聲輸入和播放,內(nèi)置時鐘發(fā)生器,支持多種時鐘模式,通過一個12MHz時鐘,該器件可以直接生成44.1kHz、48kHz和96kHz等采樣率,以及MP3標(biāo)準(zhǔn)定義的其他采樣率,完全不需要一個獨(dú)立的鎖相環(huán)(phase locked loop)或晶振。音頻采樣和播放采用24位AD和DA,控制信號可用IIC協(xié)議和SPI協(xié)議,數(shù)字音頻信號輸入輸出可采用Right justified 、Left justified ,IIS和 DSP 四種模式。
4.1. 硬件設(shè)計(jì)
本系統(tǒng)使用組合麥克風(fēng)得到語音信號[9]。系統(tǒng)將使用6個背靠背的ADMP421并使用隔音效果比較好的墊片將它們隔離,這樣就可以構(gòu)成簡單的差動結(jié)構(gòu),差動輸出的信號就可以簡單的消除來自不同方向的噪聲干擾。
4.2. 相位調(diào)制
由于聲音信號是有一個比較寬的頻率范圍,大致在300Hz-3400Hz[10],雖然ADMP421體積較小,但是它們收到的聲音信號相互之間還是存在著相位差的。例如,兩個麥克風(fēng)之間相距0.5cm,由于聲音的傳播速度是340m/s(室溫下),那么其傳播時間相差即為14.7微秒,其相對應(yīng)的頻率即為68K Hz。那么頻率為17K Hz的信號就會因?yàn)橄嗖?0°的相位,而不能由差分的信號消除。而在別的頻率的信號也會由于相位差的原因而出現(xiàn)不同的相減差別。在相位接近180°的情況下,甚至?xí)霈F(xiàn)噪聲增強(qiáng)的現(xiàn)象。[!--empirenews.page--]
所以,在本系統(tǒng)中,首先要進(jìn)行距離匹配,使各路信號基本實(shí)現(xiàn)相位之間的匹配。下面給出兩個具體的方案:①采用頻域的分析方法,將語音信號解析,然后根據(jù)麥克風(fēng)之間的距離計(jì)算相位差,之后補(bǔ)償。②在數(shù)據(jù)流中加入數(shù)字濾波器,使濾波器的相頻相應(yīng)恰恰可以補(bǔ)償相位差。前者較為精細(xì),處理效果好,但是要耗費(fèi)大量的系統(tǒng)資源;后者是較為通用的方案,雖然不能實(shí)現(xiàn)完全的匹配,但是效果還是可以接受的。
4.3用戶特色語音設(shè)定
由用戶預(yù)先在較為安靜的環(huán)境中進(jìn)行麥克風(fēng)測試。用戶對著主麥克風(fēng)說話,然后由內(nèi)部的匹配算法,將各個方向的麥克風(fēng)的信號收集然后根據(jù)用戶的語音信息進(jìn)行合理的配置,盡量增大各個麥克風(fēng)的該用戶的語音特征音量輸出。
之后,在噪聲環(huán)境中,用戶可以選擇相應(yīng)的配置,增大用戶的特征音量,減小環(huán)境噪聲。如果噪聲的頻率特性較用戶語音的差別較大,這種方法就比較有效。
4.4其他語音濾波算法的應(yīng)用
隨著DSP(數(shù)字信號處理)技術(shù)的發(fā)展和在各種應(yīng)用中的深入,數(shù)字信號處理算法的研究是當(dāng)前的一個熱點(diǎn)。其中自適應(yīng)濾波算法以其卓越的自學(xué)習(xí)和自跟蹤性能在以上的產(chǎn)品中得到廣泛的應(yīng)用,也是本文要研究的方向。自適應(yīng)濾波的基本理論通過幾十年的發(fā)展己日趨成熟,近十幾年來自適應(yīng)濾波器的研究主要針對算法與硬件實(shí)現(xiàn)。算法研究主要是對算法速度和精度的改進(jìn),其方法大都采用軟件C、MATLAB等仿真軟件對算法的建模和修正[11]。
自適應(yīng)濾波算法有以下幾種常見的實(shí)現(xiàn)方式:RLS算法,SIGN一ERROE一LMS算法,LMS算法,NLMS算法。而本系統(tǒng)可以根據(jù)不同的噪聲背景選擇,不同的消噪模式。
5.設(shè)計(jì)流程
SOC設(shè)計(jì)一般采用經(jīng)典的自頂向下的設(shè)計(jì)流程。它開始于規(guī)范制定、功能劃分,結(jié)束于系統(tǒng)集成和驗(yàn)證。主要包括以下步驟:① 為系統(tǒng)和子系統(tǒng)制定全面的設(shè)計(jì)規(guī)范。② 精簡設(shè)計(jì)中的結(jié)構(gòu)和算法。如果必要的話,包括軟件設(shè)計(jì)和軟硬件協(xié)同仿真。③ 把芯片功能劃分為定義好了的核。④ 設(shè)計(jì)或者選擇合適的核。⑤ 把核進(jìn)行集成,進(jìn)行功能驗(yàn)證和時序驗(yàn)證。⑥ 把子系統(tǒng)或系統(tǒng)提交給下一級更高層次的集成,如果是最頂層,則可以Tapeout(投片)⑦ 驗(yàn)證設(shè)計(jì)的所有方面(功能、時序等等)。
圖 4 SOC設(shè)計(jì)流程
本系統(tǒng)做為SOPC設(shè)計(jì)方法的獨(dú)特之處在于:1.高級算法建模,可以利用matlab仿真之后,使用DSPbuilder將算法生成為VHDL的硬件描述語言代碼,直接在FPGA中生成電路,驗(yàn)證算法。相對于仿真模擬,可靠性進(jìn)一步增加。2.由于采用SOPC的設(shè)計(jì)方案,在整個系統(tǒng)設(shè)計(jì)完成后,可以利用FPGA直接做成板級產(chǎn)品,投入市場?,F(xiàn)在的低端FPGA的成本已經(jīng)下降很多,對于本應(yīng)用的規(guī)模電路設(shè)計(jì),其完全可以滿足需求。待市場明細(xì)后,可快速生成SOC方案,進(jìn)一步降低成本,降低投資風(fēng)險(xiǎn)。
6.可行性分析
麥克風(fēng)的差動結(jié)構(gòu)之前就有人研究過,不過都是很簡單的直接將不同方向的信號進(jìn)行相減操作,未充分考率信號中的相位延遲問題。對于相位調(diào)制的方法,使用FFT硬件算法的方案已經(jīng)比較成熟。
OR1200已經(jīng)比較成熟。當(dāng)使用0.18 m和6層金屬工藝時,OR1200的主頻可達(dá)300 MHz,此時可以提供300 Dhrystone 2.1 MIPS和300M 次/秒的32×32的DSP乘加操作能力[12]。OR1200在2002年9月被Flextronics公司選中,用于集成在Flextronics的設(shè)計(jì)中,并提供商業(yè)服務(wù)。2003年8月,F(xiàn)lextronics公司成功實(shí)現(xiàn)了集成OR1200、10Mbps/100Mbps自適應(yīng)以太網(wǎng)MAC控制器、32位33MHz/66MHzPCI接口、16550兼容UART和Memory控制器的SoC芯片,并成功運(yùn)行了μClinux和Linux操作系統(tǒng)。另外,由于OR1200是由OpenCores組織負(fù)責(zé)開發(fā)和維護(hù)、免費(fèi)、開源的RISC處理器內(nèi)核家族,現(xiàn)在其已經(jīng)支持以下IP:
·Wishbone 總線互連
·CPU Debug 模塊;
·通用 I /O 控制器;
·片內(nèi)高速 RAM 控制器;
·16550 兼容 UART 控制器;
·Memory 控制器;
·10Mbps/100Mbps 自適應(yīng)以太網(wǎng) MAC 控制器;
·VGA/LCD 控制器;
·8042 兼容 PS/2 控制器。
故OR1200能滿足一般的用戶需求,而且其開源性將引來更多的開源IP的加入。