新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于FM2010和WinCE平臺(tái)的回音消除驅(qū)動(dòng)設(shè)計(jì)

基于FM2010和WinCE平臺(tái)的回音消除驅(qū)動(dòng)設(shè)計(jì)

作者: 時(shí)間:2008-10-13 來源:網(wǎng)絡(luò) 收藏
1 開發(fā)平臺(tái)與基本概念介紹
WinCE是Microsoft公司推出的功能強(qiáng)大、緊湊高效、可伸縮的32位嵌入式操作系統(tǒng),主要面對(duì)各種各樣的嵌入式系統(tǒng)和產(chǎn)品。該系統(tǒng)所具有的多線程、多任務(wù)、完全搶占式的特點(diǎn)是專為各種具有嚴(yán)格資源限制的硬件系統(tǒng)所設(shè)計(jì)的。
FM2010是ForteMedia公司推出的一款語音處理器,具有迷你型尺寸、單芯片解決方案、高性能、低功耗,以及優(yōu)良的回聲消除和噪聲抑制功能,利用創(chuàng)新的SAM(小型陣列麥克風(fēng))技術(shù)與波束形成能力使其功率消耗僅為25 mW。FM2010具有提高電池壽命、降低功耗和節(jié)省芯片尺寸等優(yōu)點(diǎn),可滿足便攜式手持掌上電腦、筆記本電腦、平板電腦和手機(jī)的嚴(yán)格要求。


2 回聲產(chǎn)生的原理與消除方法
2.1 回聲的基本概念和產(chǎn)生原理
通常意義上的回聲可以分為電學(xué)回聲和聲學(xué)回聲,前一種是由于服務(wù)提供商的線路質(zhì)量所致,而后一種則是由于用戶端設(shè)備的質(zhì)量所致。
2.1.1 電學(xué)回聲
在PSTN (Public Switched Telephone Network,公共交換電話網(wǎng)絡(luò))中,為了降低電話中心局與電話用戶之間電話線的價(jià)格,用戶線間的連接采用兩線制,而電話中心局之間連接采用四線制。在這樣采用混合線制的電路中,由于阻抗的失配,會(huì)不可避免地產(chǎn)生電流泄漏。電流泄漏使得一部分信號(hào)的能量反射回信號(hào)源,這種反射和信道延遲結(jié)合在一起,使講話者聽到自己的聲音,即為電學(xué)回聲。
2.1.2 聲學(xué)回聲
聲學(xué)回聲是指揚(yáng)聲器播出的聲音在被受話方聽到的同時(shí),也通過多種路徑被麥克風(fēng)拾取到,傳輸?shù)秸f話方的一端,從而形成聲音回路。當(dāng)回聲返回時(shí)間超過10 ms時(shí),人耳就可聽到明顯的回聲了。多路徑反射的結(jié)果產(chǎn)生了不同延時(shí)的回聲,包括直接回聲和間接回聲。
①直接回聲是指由揚(yáng)聲器播出的聲音未經(jīng)任何反射直接進(jìn)入麥克風(fēng)。這種回聲的延時(shí)最短,它同遠(yuǎn)端說話者的語音能量,揚(yáng)聲器與麥克風(fēng)之間的距離、角度,揚(yáng)聲器的播放音量,麥克風(fēng)的拾取靈敏度等因素直接相關(guān)。
②間接回聲是指由揚(yáng)聲器播出的聲音經(jīng)過不同的路徑(如房屋或房屋內(nèi)的任何物體)的一次或多次反射后,進(jìn)入麥克風(fēng)所產(chǎn)生的回聲的集合。房屋內(nèi)的任何物體的任何變動(dòng)都會(huì)改變回聲的通道,因此,這種回聲的特點(diǎn)是多路徑的、時(shí)變的。
對(duì)于電學(xué)回聲的消除,通常由服務(wù)提供商提供解決方案。本文研究的重點(diǎn)是聲學(xué)回聲的消除機(jī)制,為了防止聲音回路的產(chǎn)生,通常需要在硬件和軟件設(shè)計(jì)中采取一定的解決方案。
如圖1所示,雙方在使用PDA或者手機(jī)進(jìn)行通話時(shí),假設(shè)B是主話方,A是受話方:

①B說話的聲音經(jīng)過電信或者移動(dòng)路徑傳輸?shù)紸的設(shè)備上;
②聲音經(jīng)過揚(yáng)聲器發(fā)出,由于硬件和機(jī)構(gòu)設(shè)計(jì)上的局限性,會(huì)有部分聲音滲透到A的麥克風(fēng);
③滲透出的聲音又傳輸回到B,導(dǎo)致B能聽到自己的聲音。
這樣,便形成了聲音回路,即產(chǎn)生了回聲。
PDA或者手機(jī)內(nèi)部結(jié)構(gòu)聲音回路示意圖如圖2所示。在全雙工的情況下,揚(yáng)聲器和麥克風(fēng)之間至少要保持4 cm以上的距離,才能比較好地避免回聲問題。在實(shí)際情況下,絕大部分的回聲回路形成于機(jī)構(gòu)內(nèi)部,而由機(jī)構(gòu)外部揚(yáng)聲器回流到麥克風(fēng)的聲音,由于距離較長(zhǎng),基本可以忽略。

由于硬件和機(jī)構(gòu)設(shè)計(jì)上的局限性,在機(jī)構(gòu)內(nèi)部不可能完全隔離聲音的傳播,因此從揚(yáng)聲器出來的聲音會(huì)有一部分會(huì)滲透到麥克風(fēng),從而產(chǎn)生回聲。
2.2 基于FM2010的回聲消除原理
FM2010使用的是自適應(yīng)回聲抵消原理,它的基本思想是:估計(jì)回聲路徑的特征參數(shù),產(chǎn)生一個(gè)模擬的回聲路徑,得出模擬回聲信號(hào),從接收信號(hào)中減去該信號(hào),實(shí)現(xiàn)回聲抵消。以圖3所示的受話端通話流程為例,圖中左上方的MIC IN是麥克風(fēng)進(jìn)入的信號(hào),即用戶的聲音輸入信號(hào),其中包含由本機(jī)揚(yáng)聲器漏進(jìn)去的部分主話端的語音信號(hào);右下方的Line IN接入是主話端的語音信號(hào),即由本機(jī)揚(yáng)聲器輸出的信號(hào)直接接入到FM2010回音消除芯片的Line IN輸入端。在FM2010內(nèi)部會(huì)經(jīng)過DSP芯片的運(yùn)算處理對(duì)兩者進(jìn)行比較,消除MIC IN信號(hào)中與LineIN端相同的信號(hào)(即回聲音頻信號(hào)),使用自適應(yīng)回聲抵消原理達(dá)到消除回聲的目的。MIC IN和Line OUT之間路徑上的寄存器需要進(jìn)行配置和調(diào)試,DSP使用這些配置的數(shù)據(jù)作為特征參數(shù)來進(jìn)行運(yùn)算處理。

3 基于FM2010的回音消除驅(qū)動(dòng)設(shè)計(jì)
3.1 硬件架構(gòu)設(shè)計(jì)

圖4是硬件架構(gòu)示意圖。CPU 通過I2C總線 來控制回音消除芯片讀/寫回音消除參數(shù)(echo parameter)。錄音信號(hào)先經(jīng)過回音消除芯片處理后經(jīng)移動(dòng)信道傳輸?shù)綄?duì)方接收設(shè)備,經(jīng)過對(duì)方音頻編解碼器處理后再通過揚(yáng)聲器或者耳機(jī)輸出。

3.2 音頻設(shè)備機(jī)構(gòu)設(shè)計(jì)
音頻設(shè)備是否產(chǎn)生回聲,很大程度上取決于機(jī)構(gòu)的設(shè)計(jì)是否合理。不合理的機(jī)構(gòu)設(shè)計(jì)會(huì)大大增加出現(xiàn)回聲的概率,而且出現(xiàn)的回聲會(huì)比較嚴(yán)重,難于消除。我們改進(jìn)了音頻設(shè)備機(jī)構(gòu)上的設(shè)計(jì),在設(shè)計(jì)之初就盡可能避免回音的產(chǎn)生,而且揚(yáng)聲器和麥克風(fēng)的距離盡可能保持一定遠(yuǎn)的距離,如圖5所示。實(shí)踐中發(fā)現(xiàn),揚(yáng)聲器和麥克風(fēng)之間的距離保持在10 cm以上,效果會(huì)比較好。

為了盡可能減少揚(yáng)聲器和麥克風(fēng)之間的聲音傳播,可以采用以下2種設(shè)計(jì)方案:方案一是把麥克風(fēng)隔離開來,如圖5(a)所
示;方案二是把揚(yáng)聲器隔離開來,如圖5(b)所示。當(dāng)然,為了達(dá)到更好的效果,可以把揚(yáng)聲器和麥克風(fēng)分別隔離開;但是鑒于成本的考慮,使用其中的一種即可達(dá)到比較好的效果。具體的實(shí)現(xiàn)方法分別是:
①用橡膠套密封揚(yáng)聲器的邊緣,盡可能避免聲音從機(jī)構(gòu)內(nèi)部回流到麥克風(fēng);同時(shí)把麥克風(fēng)密封在一個(gè)腔體之內(nèi),以隔離外
部噪聲的進(jìn)入。
②把揚(yáng)聲器密封在一個(gè)腔體之內(nèi),以盡可能隔離揚(yáng)聲器的聲音向外部傳播;同時(shí)使用橡膠套密封麥克風(fēng)的邊緣,以避免揚(yáng)聲器發(fā)出的聲音進(jìn)入。
另外,揚(yáng)聲器和麥克風(fēng)在設(shè)置的方向上也有講究,如圖6所示。兩者最好是相差180,90也可以接受;但是如果兩者的方向相同,如圖6(c)所示,則出現(xiàn)回聲的概率和程度都很大。

3.3 軟件架構(gòu)設(shè)計(jì)與實(shí)現(xiàn)
軟件架構(gòu)示意圖如圖7所示。

回音消除驅(qū)動(dòng)的開發(fā)需要完成以下幾步:
①給回音消除芯片上電,并初始化其相關(guān)的寄存器和GPIO;
②初始化I2C總線,并配置I2C速率等的寄存器,使其處于正常運(yùn)行狀態(tài);
③檢查I2C總線是否已準(zhǔn)備好;
④通過I2C總線讀取回音消除參數(shù);
⑤等待回音消除芯片處于可讀/寫狀態(tài),然后把參數(shù)寫入到芯片里,使配置的參數(shù)生效。
3.3.1 FM2010上電時(shí)序
當(dāng)對(duì)FM2010初始化時(shí),比較重要的一點(diǎn)是要按照其規(guī)格說明書定義的上電時(shí)序進(jìn)行,否則可能會(huì)導(dǎo)致錄音聲音時(shí)有時(shí)無的情況發(fā)生。具體的要求如圖8所示。在初始化FM2010時(shí),PWD high的狀態(tài)必須要在RESET high狀態(tài)之前設(shè)定,兩者之間相差5 ms。

3.3.2 讀/寫Echo parameter
FM2010芯片的初始化比較簡(jiǎn)單,只要按照上述的時(shí)序進(jìn)行初始化即可。下面重點(diǎn)剖析回音消除驅(qū)動(dòng)的開發(fā)要點(diǎn),即如何讀/寫回音消除參數(shù)(詳見代碼中的①和④)、設(shè)置回音消除芯片的工作模式(詳見②處),以及配置I2C總線(詳見③處)。


結(jié) 語
本文在分析語音通話中回聲產(chǎn)生的機(jī)理的基礎(chǔ)上,詳細(xì)研究了回聲消除的原理、基本聲學(xué)回聲產(chǎn)生根源,提出了改進(jìn)的PDA或者手機(jī)等音頻設(shè)備的機(jī)構(gòu)設(shè)計(jì)方案;針對(duì)FM2010芯片的特點(diǎn),給出了回聲消除驅(qū)動(dòng)開發(fā)的軟硬件設(shè)計(jì)方案,并且給出了回音消除驅(qū)動(dòng)程序關(guān)鍵代碼的實(shí)現(xiàn)。本文設(shè)計(jì)的軟硬件解決方案已經(jīng)在基于WinCE操作系統(tǒng)平臺(tái)和FM2010硬件平臺(tái)上得以實(shí)現(xiàn),在實(shí)際項(xiàng)目開發(fā)中得到采用,并且獲得了良好的應(yīng)用效果。



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉