帶有SpeechSense算法的AGC在音頻係統中的應用
技術
作者:Kane Zhang
[摘要] 自動增益控製(簡稱為“AGC”)可以在信號的輸出端提供穩定增益,而不受輸入端增益不同的影響。本文主要闡述了AGC的工作原理以及在音頻係統中的具體應用。
一直以來,傳統的AGC在應用中存在一個嚴重的技術缺陷,即:當環境噪聲大於所設定的閾值並且講話者停止講話時,AGC會自動將環境噪聲放大至所需電平,此時在係統中會出現極大的噪聲。如果我們將閾值提高又會出現講話聲音小的人無法正常啟動AGC。Biamp開發了一種叫做“SpeechSense(人聲辨識)”的算法,可以智能化地創建閾值和提供可選的“語言模式”,此功能限製了AGC隻有在識別到人聲的時候才對信號進行AGC處理,從而徹底消除AGC誤啟動的問題。在本文中,將會詳細介紹SpeechSense算法的工作原理以及在音頻係統中的具體應用和係統調試中的注意事項。
什麼是AGC?
AGC是英文“Automatic Gain Control”(自動增益控製)的縮寫。AGC在各個行業中的應用非常廣泛。在模擬電路時代,AGC的控製精度和速率是由模擬電路的設計和電子元件的精度所決定的,我們稱之為AGC的工作特性。
大家都知道,現在的音頻處理核心產品大都采用DSP芯片進行設計,因此我們將之統稱為音頻DSP處理器。實際上,與以往的模擬AGC電路不同,DSP處理器的電路設計大同小異,所采用的芯片也大都雷同。而所有的DSP處理器所支持的功能,如:濾波器、分頻器、路由器、混音器、AGC等等都是由“算法”來實現的。因此,AGC的工作特性完全取決於AGC算法。
為什麼音頻係統需要AGC?
在實際的音頻會議係統應用中,經常會出現以下這些情況:
由於性別的原因或講話者的各自習慣不同,有的人聲音大些,有的人聲音小些,有的人喜歡離話筒遠些,有的人喜歡離話筒近些,這些情況會導致在音頻係統輸出端的音量幅度產生巨大的差別。
AGC可以針對上述這些情況自動給與“增益補償”。通俗一點的講,當講話者的聲音太大的時候,AGC會自動降低增益,從而使會議的擴聲維持在一個恒定的音量上;反之,講話者的聲音太小,AGC會自動提高增益,以確保係統仍然維持在恒定的音量。在音頻係統中,AGC可以根據“要求”對聲音信號自動給予“增益補償”。因此通常用於調節各種會議係統的不同講話者的聲音音量平衡。
傳統AGC是如何解決這些問題的呢?
首先,我們先來學習幾個技術名詞:
·Level源信號電平:講話者的聲音經話筒拾音,進入音頻處理器的原始電平;
·Min Threshold最小電平閾值:啟動AGC的最小電平值;
·Target Level目標電平:我們所需要的,經過AGC自動調整的電平。當輸入電平大於所設定的Min Threshold,AGC會啟動並自動根據所設定的Target Level對源信號進行增益補償,並保持輸入信號為恒定的Target Level。
當源信號電平大於最小電平閾值(Min Threshold)但小於目標電平(Target LeveI)時,AGC啟動並對源信號自動提高增益至目標電平(Target Level)。如圖一所示:
紅色代表經AGC調整後的電平曲線,藍色代表未經AGC調整的源信號電平曲線。當源信號電平小於最小電平閾值(Min Threshold).AGC關閉,從而防止AGC將噪聲電平放大輸出。見圖二: