一種基於DSP的音訊實時處理系統

2021-06-02 06:26:35 字數 3220 閱讀 9993

0 引 言

聲學回聲消除成為提公升音訊通訊質量的乙個非常重要的環節。聲學回聲消除採用了自適應濾波來估計回聲產生的迴路特徵,並不斷修正自適應濾波器的係數,使得估計值更加逼近真實回聲,最後從話筒訊號中去除估計的回聲,以達到回音消除的目的。

聲學回聲具有訊號衝激響應時間長,特徵分布範圍廣且多路徑反射和時變的特點,自適應濾波器在估計回聲路徑的過程中容易受到這些不確定因素的干擾,當然外部環境的噪音也是乙個重要的因素。

本系統結合多種已有訊號處理演算法,有效提公升了聲學回聲的雙工能力和收斂速度,並有效避免了使濾波器發散的多種因素,提公升了濾波器的處理效率。同時利用高速浮點dsp 對回聲消除和雜訊消除進行了整體的實現。

系統採用了頻域的mdf 自適應濾波演算法,將mmse no ise suppresso r 和多個vad 新增到回聲消除器中。在加入濾波器係數更新模組和非線性檢測模組後,使得系統在更惡劣的噪音環境下以及雙方通話過程中,一樣具備良好的回聲消除和噪音消除能力。整個核心運算部分均在頻率域內完成,也大大降低了運算量,最後通過調整dsp 的資料結構,合理運用dsp 的資源和指令加速,實現了基於dsp 的高效能實時音訊處理器的設計。

1 音訊處理系統相關演算法

1. 1 聲學回聲消除

聲學回聲消除的基本原理是通過自適應濾波器估計聲學回聲路徑的特徵引數,產生乙個模擬的聲學路徑,得出模擬的聲學回聲訊號,並從參考訊號中減去此訊號,實現回聲的消除。圖1 給出了乙個最為常見的聲學回聲消除器aec 的原理圖。

1. 2 結合噪音消除和靜音檢測的回聲處理系統

1. 2. 1 mdf 濾波器基本結構和演算法原理

mdf( multidelay block frequency domain adaptive filter) 是一種將原有的多階濾波器分為k 個等分的子塊,在每個長度為n 的子塊能進行自適應濾波的方法。如此能降低多階自適應濾波器大量的運算量。

f 表示對2n×2n 的矩陣進行fft 變換,若v 表示訊號幀序號,而diag 表示對角矩陣運算,則:

假設實際路徑產生的回聲訊號為y ( v) ,通常也叫近端訊號,則:

假設實際路徑產生的回聲訊號為y ( v) ,通常也叫近端訊號,則:

式中,^hk = [ ^hkn ,^hkn + 1 ,… ,^hkn + n- 1 ] t ,k = 0,1,2,,k - 1,它表示濾波器估計的第k 個子濾波器的係數。

1. 2. 2 改進的回聲消除系統

如圖2 所示,通過加入靜音檢測演算法( vad) 對輸入訊號的狀態進行判斷,不僅可以減輕實際的運算量,也可降低噪音對自適應濾波器的干擾,在一定程度上避免了濾波器發散的情況。同時加入mmse short t imespect ral amplitude estimator替代了傳統的非線性處理器( nlp) 演算法。在頻域內對參與回聲的頻譜能量進行估計,計算增益,最後達到相對平滑的殘餘回聲和噪音的處理。

圖2 一種結合噪音消除的回聲消除原理圖

通過對濾波器狀態引數的跟蹤,根據濾波器當前是否正常收斂,殘餘回聲估計模組的輸出結果會自動調節估計值的大小,避免在濾波器正常收斂的情況下,抑制殘餘回聲導致處理後正常訊號損失過多的問題。

圖2 中採用的靜音檢測演算法( vad) 採用了同時檢測短時能量與過零率的方法,保證了判斷的可靠性。

在遠端語音不存在的時候,沒有必要進行回聲消除,只需要進行本地的噪音消除,若本地語音不存在則不需要做任何處理。

結合vad 系統更有效地減少了對噪音和回音估計的誤差範圍,通過對濾波器係數更新的學習和調整功能使得在雙方通話過程中音訊訊號具備更好的訊雜比。

通過非線性訊號檢測模組加強了整體消除回音的能力。

2  基於dsp 的音訊處理系統實現

2. 1 硬體平台

dsp 的選型需要考慮運算速度、成本、硬體資源以及程式的可移植性等多個問題。由於演算法的浮點特性,本文採用了美國德州儀器( t i) 的tms320c6713b 浮點dsp 作為核心處理器,通過使用jt eg 標準測試介面、edma 控制器、gipo 通用輸入輸出埠以及多通道音訊緩衝串列埠( mcasp) 等主要片外裝置來完成系統的設計。

tms320c6713b 可以工作在225 mhz 主頻上,片內有8 個並行處理單元,分為相同的兩組,其體系結構採用甚長指令字( v liw) 結構,單指令字長為32 b,8 個指令組成乙個指令包,總字長為256 b。l1 支援4 kb的程式快取以及4 kb 的資料快取,l2 支援64 kb 的快取。32 b 的外部儲存器介面( emif) 。與sdram 等無縫連線,可以定址256 mb。

由於系統執行過程中需要實現的演算法較多,僅依靠tms320c6713b 的192 kb片內ram 來執行程式是很困難的。本文使用了emif 的介面擴充套件了sdram 作為演算法和資料的儲存區域。採用tlv320aic23b 實現音訊輸入和輸出,aic23 支援48 khz 頻寬、96 khz 取樣率的雙聲道立體聲a/ d,d/ a,音訊輸入包括了*輸入和線路輸入。

系統的硬體平台如圖3 所示。

2. 2 基於dsp 的軟體實現

基於dsp 的實時處理的實現,本文將aic23 採集到的資料先儲存到sdram 中,在需要處理的時候利用edma 實現ping pong 緩衝,將待處理的資料分批搬運到片記憶體儲器,結合快取記憶體和片內記憶體設計合適的資料結構,並將資料對齊,這樣大大減小了資料搬移帶來的開銷。

dsp 處理主流程圖如圖4 所示。

圖4 dsp 處理主流程

基於ping po ng 緩衝結構的音訊處理流程如圖5所示。

圖5 基於ping po ng 緩衝結構的音訊處理流程

通過對音訊處理演算法中資料結構的調整和優化,將ping pong 緩衝架構的資料進行合理的安排,使得edma的資料傳輸和process aec 執行緒更好地並行處理。將當前需要處理的*訊號和揚聲器訊號的資料儲存在片內位址內,並將回聲消除中用到的fft 和揚聲器參考資料均放在片內位址處理。將演算法的其他輔助資料結構均放在sdram。這使得片內資源得到最大化利用,並且很大程度地提公升了整個系統的運算效率。

參考ti dsp 相關優化資料,t i 的編譯器選項使用-mv6700,-o3,-oio,-pm 開關,使得編譯的**能更多地利用tms320c6713b 的硬體資源和浮點指令,參考了ti 帶的fft 加速函式,結合實際演算法做了區域性的改進,使得所有演算法最終在ti tms320c6713b 上均能實時高效的執行。

3 結 論

聲學回聲消除以及噪音抑制等演算法在多**通訊的音訊處理中起著至關重要的作用。

Druid 乙個用於大資料實時處理的開源分布式系統

druid是乙個用於大資料實時查詢和分析的高容錯 高效能開源分布式系統,旨在快速處理大規模的資料,並能夠實現快速查詢和分析。尤其是當發生 部署 機器故障以及其他產品系統遇到宕機等情況時,druid仍能夠保持100 正常執行。建立druid的最初意圖主要是為了解決查詢延遲問題,當時試圖使用hadoop...

Druid 乙個用於大資料實時處理的開源分布式系統

druid是乙個用於大資料實時查詢和分析的高容錯 高效能開源分布式系統,旨在快速處理大規模的資料,並能夠實現快速查詢和分析。尤其是當發生 部署 機器故障以及其他產品系統遇到宕機等情況時,druid仍能夠保持100 正常執行。建立druid的最初意圖主要是為了解決查詢延遲問題,當時試圖使用hadoop...

Druid 乙個用於大資料實時處理的開源分布式系統

druid是乙個用於大資料實時查詢和分析的高容錯 高效能開源分布式系統,旨在快速處理大規模的資料,並能夠實現快速查詢和分析。尤其是當發生 部署 機器故障以及其他產品系統遇到宕機等情況時,druid仍能夠保持100 正常執行。建立druid的最初意圖主要是為了解決查詢延遲問題,當時試圖使用hadoop...