音頻數(shù)據(jù)引擎 (AudioDE) 是一種功耗極低、可合成的數(shù)據(jù)引擎內(nèi)核,可對其進行編程以支持跨所有終端設(shè)備目標的各種音頻和語音編解碼器。AudioDE 在其數(shù)據(jù)路徑中有許多功能單元,可以有效地執(zhí)行音頻算法。這些特定于音頻的資源、通用資源和總線基礎(chǔ)設(shè)施的組合提供了一個數(shù)據(jù)引擎,能夠針對各種算法,同時在音頻處理方面特別高效。
回聲消除就是一種這樣的算法,它可以在 AudioDE 上實現(xiàn),以利用 AudioDE 的音頻處理架構(gòu)的固有優(yōu)勢。在無線耳機、免提車載套件或移動語音終端等通信設(shè)備中,聲學回聲消除是必要的。
通過描述自適應回聲消除算法在 AudioDE 上的實現(xiàn),本應用筆記提供了 AudioDE 代碼開發(fā)流程的“入門”示例以及一些重要的系統(tǒng)注意事項。
回聲消除
回聲是由遠端揚聲器和麥克風之間存在反饋路徑引起的(圖 1)。如果沒有聲學回聲消除,對著麥克風說話的人會在說話幾毫秒后聽到他/她的聲音回聲。由于反饋路徑隨時間變化,因此需要一種自適應濾波方法來估計回聲,然后可以從傳入的語音信號中減去回聲。
可以在多個位置設(shè)置反饋路徑。在免提車載電話系統(tǒng)中,從遠處揚聲器發(fā)出的聲音可以從擋風玻璃、側(cè)窗和車頂?shù)葓杂脖砻娣瓷浠貋怼T跓o線耳機中,可以通過將麥克風和聽筒固定在一起的硬質(zhì)材料來設(shè)置反饋路徑。在每個應用中,反饋路徑的特??性是不同的。反饋路徑的一個重要特性是引入了多少延遲——大于 16ms 的延遲使得揚聲器可以檢測到回聲;延遲越大,回聲越明顯?;芈暤奈膊块L度代表所有回聲路徑引入的最大延遲長度,它決定了自適應濾波器(時域處理)的抽頭大小,以實現(xiàn)有效的回聲消除。在汽車環(huán)境中,例如,典型的尾部長度為 32 毫秒。對于以 8 kHz 采樣的語音,自適應濾波器的抽頭大小將為 256 (8000 x 0.032)。
今天的數(shù)字通信系統(tǒng)對回聲消除提出了額外的挑戰(zhàn),因為語音編碼方案會在回聲路徑中引入 100 毫秒量級的額外延遲。270ms 的尾部長度是這種回聲路徑的典型數(shù)字,它需要一個抽頭大小為 2048 的自適應濾波器!由于無線終端的價格壓力,一些回聲消除負擔會輸出到手機之外。
更復雜的頻域處理允許更有效地抑制大抽頭尺寸的回聲。它還具有允許更好地抑制非線性系統(tǒng)(模擬組件)產(chǎn)生的噪聲的優(yōu)點。但是對于本應用筆記示例,我們將堅持使用時域處理,并說明如何在 AudioDE 上實現(xiàn)最小均方 (LMS) 自適應濾波器以消除回聲。
編輯:hfy
-
麥克風
+關(guān)注
關(guān)注
15文章
662瀏覽量
55799 -
音頻處理器
+關(guān)注
關(guān)注
2文章
115瀏覽量
33636 -
數(shù)字通信
+關(guān)注
關(guān)注
1文章
147瀏覽量
22898
發(fā)布評論請先 登錄
如何將代碼從一個DSIC33移植到一個DSPIC33
將ucosii移植到STM32F103C8T6程序開始調(diào)度時就卡死
怎樣將STM32F103的代碼全部移植到STM32F042上呢
將python3移植到嵌入式中
如何將SPIFFS代碼移植到LittleFS?
將復雜代碼移植到新平臺上的方法

EE-241:SHARC?DSP到TigerSHARC?處理器代碼移植指南

EE-241 SHARC?DSP到TigerSHARC?處理器代碼移植指南

STM32與機智云連接實現(xiàn)步驟與技巧(下篇):機智云代碼移植與優(yōu)化

評論