帶有SpeechSense算法的AGC在音頻系統中的應用

自動增益控制(簡稱爲“AGC”)可以在信號的輸出端提供穩定增益,而不受輸入端增益不同的影響。本文主要闡述了AGC的工作原理以及在音頻系統中的具體應用。
一直以來,傳統的AGC在應用中存在一個嚴重的技術缺陷,即:當環境噪聲大於所設定的閾值 並且講話者停止講話時,AGC會自動將環境噪聲放大至所需電平。此時在系統中會出現極大的噪聲。 如果我們將閾值提高又會出現講話聲音小的人無法正常啓動AGC。Biamp開發了一種叫做“SpeechSense (人聲辨識)算法”可以智能化地創建閾值和提供可選的“語言模式”,此功能限制了AGC只有在識別到人聲的時候纔對信號進行AGC處理, 從而徹底消除AGC誤啓動的問題。在本文中,將會詳細的介紹SpeechSense算法的工作原理以及在音頻系統中的具體應用和系統調試中的注意事項。

1)什麼是AGC?

AGC 是英文“Automatic Gain Control”(自動增益控制)的縮寫。AGC在各個行業中的應用非常廣泛。在模擬電路時代, AGC的控制精度和速率是由模擬電路的設計和電子元件的精度所決定的,我們稱之爲AGC的工作特性。

大家都知道,現在的音頻處理核心產品大都採用DSP芯片進行設計,因此我們將之統稱爲音頻DSP處理器。實際上,與以往的模擬AGC電路不同,DSP處理器的電路設計大同小異,所採用的芯片也大都雷同。而所有的DSP處理器所支持的功能,如:濾波器,分頻器,路由器,混音器,AGC等等都是由“算法”來實現的。因此,AGC的工作特性完全能取決於AGC算法。

2)爲什麼音頻系統需要AGC?

在實際的音頻會議系統應用中,經常會出現以下這些情況:

由於性別的原因或講話者的各自習慣不同,有的人聲音大些,有的人聲音小些,有的人喜歡離話筒遠些,有的人喜歡離話筒近些,這些情況會導致在音頻系統的輸出端的音量幅度產生巨大的差別。

在這裏插入圖片描述
AGC可以針對上述這些情況自動給與“增益補償”。通俗一點的講,當講話者的聲音太大的時候, AGC會自動降低增益,從而使會議的擴聲維持在一個恆定的音量上;反之,講話者的聲音太小,AGC會自動提高增益,以確保系統仍然維持在恆定的音量。在音頻系統中,AGC可以根據“要求”對聲音信號自動給予“增益補償”。因此通常用於調節各種會議系統的不同講話者的聲音音量平衡。

3)傳統AGC是如何解決這些問題的呢?

首先,我們先來學習幾個技術名詞:

  • Level源信號電平:講話者的聲音經話筒拾音,進入音頻處理器的原始電平;
  • Min Threshold 最小電平閾值:啓動AGC的最小電平值;
  • Target Level 目標電平:我們所需要的,經過AGC自動調整的電平。 當輸入電平大於所設定的Min Threshold, AGC會啓動並自動根據所設定的Target Level對源信號進行增益補償,並保持輸入信號爲恆定的Target Level.

當源信號電平大於最小電平閾值(Min Threshold)但小於目標電平(Target Level)時, AGC啓動並對源信號自動提高增益至目標電平 (Target Level)。如圖一所示:
在這裏插入圖片描述

                (圖一)源信號電平大於最小電平閾值

紅色代表經AGC調整後的 電平曲線,藍色代表未經AGC調整的源信號電平曲線。當源信號電平小於最小電平閾值(Min Threshold), AGC關閉,從而防止AGC將噪聲電平放大輸出。見圖二:
在這裏插入圖片描述

				(圖二)源信號電平小於最小電平閾值

當源信號電平大於最小電平閾值(Min Threshold),並大於目標電平(Target Level)時, AGC啓動並自動衰減輸入信號增益至目標電平(Target Level)。從而實現對輸入信號的自動增益控制,並且在輸出端維持一個相對恆定的 音量。見圖三:
在這裏插入圖片描述

				(圖三)源信號電平大於目標電平

4)傳統AGC在實際應用中的問題

上文中我們提到,當源信號大於所設定的Min Threshold,AGC不工作。 其目的是避免AGC電路錯誤地提升系統的噪聲信號。只有在源信號大於某一設定值時,我們才認爲此信號爲有用信號並對此信號進行AGC平衡電平。

這種設計方案看似非常合理,但在實際工作中卻屢屢出錯。比如:我們所用的所有的語音通信軟件(如:QQ, Skype, Lync等等)都支持AGC, 但在實際使用中經常出現的問題是,當兩端的人都不講話的時候,可以非常明顯地感覺到對方的噪聲的提升。

究其原因, 在實際工作環境中,噪聲的值實際上很難預測,它與有用信號之間有很大的重疊區域,但我們給定一個Min Threshold的時候,不是當有用信號非常低時AGC沒有啓動,就是噪聲信號高於Min Threshold, AGC錯誤的啓動。

因此,在很長的一段時間,業內都沒有一個徹底地解決方案。

5)帶有SpeechSense (人聲辨識)算法的AGC的工作原理

下面我們來看一下BIAMP的AGC是如何解決這個問題的。

綜上所述,其實只有一種辦法能夠徹底地解決AGC不能正確啓動的難題。那就是,真正判斷源信號是否爲有用信號。通常在絕大多數情況下,AGC是用在傳聲話筒的鏈路裏,因此,只要我們能夠判斷源信號是否爲人聲就可以了。

其實,人聲辨識已經不是一個新課題了。經研究,人們發現所有人類的語言有兩種元素是與動物和環境聲截然不同的。即Plosive 爆破音和Fricative摩擦音。比如:中文的“破”和“刺”, 或英文中的“Bob”和“Fish”。因此,只要我們對源信號進行採樣並辨識是否有爆破音和摩擦音的存在,就可以判定此信號是否爲人聲。

從原理上講,似乎並不困難。但如前文所提到的,AGC的性能完全取決於算法。在極短的時間內(通常只有十幾毫秒),SpeechSense AGC算法要完成對源信號的採樣、分析、 運算,因此對算法的效率要求極高,並且對信號的人聲片斷分析的準確性要求極爲嚴格,要在最大限度內保證AGC啓動的準確性。BIAMP的AGC不僅可以快速準確的完成增益自動補償,更重要的是它可以非常準確地辨識出源信號是否爲人聲,從而確保AGC只有在講話者使用時啓動,有效的避免了AGC誤啓動所造成的噪聲過大的問題。

6)SpeechSense (人聲辨識)算法的AGC的參數設定

下面我們來具體看一下有關SpeechSense AGC的一些參數是如何配置的。
  在這裏插入圖片描述
  輸入源電平:通常,我們調試話筒的時候, 要確保講話者與話筒的距離比較合理,且用正常的聲調對着話筒講話,此時在輸入源電平的讀數應在“0dB”左右。 由於傳聲話筒的靈敏度和指向性以及所在環境的空間噪聲不同,在無人講話的時候,輸入源的最低電平應該在-40dB到-20dB之間(如電平顯示過高,則表明現場環境噪聲過大)。此時,最小電平閾值(Min Threshold)應該調整爲略高於無人講話時的輸入源的最低電平。(有關增益結構的詳細內容可到http://cn.Biamp.com/ , 點擊進入audia, 參考“增益結構”的視頻)。

輸出增益調節指示:是指在AGC自動增益調節之後的音頻輸出補償的數值。補償是根據目標電平和輸入電平之差所決定的。例如:當源信號的電平爲-10dB, 目標電平爲0dB,那麼輸出補償爲+10dB.

AGC增益保持時間:當AGC不滿足啓動條件時(比如:源信號電平低於Min Threshold或源信號爲非語音信號), 輸出增益調節所保持的時間。例如:如圖當系統檢測到AGC在60秒後仍然沒有啓動,輸出增益調節會自動歸零。

最大AGC提升增益:可以設定AGC自動增益的提升範圍。最大值爲30dB,在實際使用中, 我們建議的範圍是012dB。因爲,如以正常情況來調試系統,一般會議系統的本地擴聲的淨空爲614dB。也就是說,如果AGC將話筒的音量提升高過淨空值時,系統會產生嘯叫。因此,最大AGC提升增益永遠略低於系統的淨空值。

最大AGC衰減增益:可以設定AGC自動增益的衰減範圍。最大值爲30dB。

增益變化速率:設定AGC的增益變化速率。例如:如圖Max Adjustment Rate爲5.0,當AGC啓動時,會以每秒5dB的速率進行提升或衰減從而最終達到輸出補償的要求。 在實際應用中,如果我們不希望與會者覺察到明顯的聲音增益變化,可以保持默認設置或適當降低速率。如在演示環節,可以適當提升速率,從而使受衆明顯感覺到AGC的工作。

SpeechSense聲音辨識:當此按鈕關閉時,AGC恢復傳統AGC的工作模式。當此按鈕開其實, AGC只在檢測到人聲時纔會啓動,而任何其它噪聲不會誤觸發AGC。

Limiter On壓限器:當此功能激活時, 系統會自動監測AGC之後的電平值並在電平值高於+24dBu時進行壓限,從而確保電平在峯值範圍之內。同時壓限器指示會點亮。

AGC Active:當AGC啓動時,此指示燈會點亮。

Advanced:高級設定。點擊進入,可以看到輸入電平,噪聲電平以及SNR信噪比電平。

因爲無法識別人聲與噪聲,所以所有的傳統的AGC都沒有這一選項。而Biamp AGC 的SpeechSense的算法不僅能夠準確的識別出人聲,還可以進而精確的計算出人聲與環境噪聲之間的比值,即信噪比。

因此,在這裏可以對聲音的信噪比進行設定。當源信號的信噪比高於設定值時,SNR爲綠色。當源信號的信噪比低於設定值時,SNR爲紅色。AGC只有在SNR爲綠色時,即:源信號的信噪比高於設定值時才能啓動。
  在這裏插入圖片描述

			(話筒所拾取的聲音信噪比小於設定值“30dB”)

在這裏插入圖片描述

			(話筒所拾取的聲音信噪比大於設定值“30dB”)

那麼SNR的調整在實際項目中如何應用呢? 我們下面來看一個例子。
在這裏插入圖片描述
第一種情況是,在實際應用中往往存在多隻話筒,且話筒間距離較近。實際上我們只希望當演講者有目的的對着話筒講話時,AGC才根據電平自動調節,並且不希望講話者的聲音影響到鄰近的話筒;另一種情況是,當講話者遠離話筒與其他的與會者細聲交流的時候,他們當然不希望系統對這些“交流”也進行AGC自動增益補償。由於傳統的AGC不具備信噪比調節的功能,所以上圖示例中,傳統AGC就無法使用了,或者很難調試。而帶有SpeechSense (人聲辨識)算法的AGC,通過合理調節信噪比,就可以讓每一隻話筒處於需要的AGC工作狀態。

以上是對AGC在音頻系統中應用的一些總結,如何更好的發揮AGC在具體應用中的作用還需要進一步的探索與思考。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章