開發與維運

【技術揭祕】解決“雞尾酒會問題”的利器-基於盲源分離的前端信號處理框架

來源 阿里語音AI 公眾號

設想在一個“雞尾酒會”上,不同客人的說話聲、腳步聲、音樂聲等各種聲音混合在一起。對於宴會中的客人來說,即使處於嘈雜的環境中,他們也能夠很輕鬆的理解同伴說話的內容,然而對於計算機來說,例如語音識別程序,卻很難在這樣一個有干擾的環境下將接收到的聲音信號準確的識別成文字。但是,如果能用某種算法首先將各種聲源所產生的聲音信號從麥克風接收到的混合信號中分離開來,再選擇所需的聲源進行識別,由於消除了其它聲源的干擾,所以語音識別的準確率將會顯著提高。以上就是著名的“雞尾酒會問題(The Cocktail Party Problem)”。在人們的日常生活中,類似於“雞尾酒會問題”的例子還很多,這類問題有著共同的特點,即人們實際觀測得到的是多個源信號混合而成的結果,而各個源信號事先卻無法得知,但是在後續的處理中往往需要用到某個或某幾個源信號。

盲源分離(Blind Source Separation, BSS)是解決“雞尾酒會問題”的利器之一,其目的就是要將各個源信號,或後續問題中需要用到的某個或某些源信號從觀測得到的混合信號中分離出來。所謂“盲源”,指的是源信號本身的波形、源信號的數目、信號源的位置等關於源信號的先驗知識,以及觀測點的位置、混合環境的信息等關於混合環境的先驗知識未知,需要僅從觀測信號中進行分離。

隨著計算機、互聯網、移動互聯網、物聯網的發展,人們所常用的智能設備也在從過去的電腦、手機,向著更多樣化、小型化、可穿戴的方向發展。過去基於鍵盤鼠標、遙控器等單一的人機交互方式已經不能滿足日益多樣化的智能設備的需求。語音是人與人之間交互的最自然的方式,所以也必然會成為未來最有效的人機交互方式之一。

然而,在典型的遠講語音交互場景中,除了目標說話人的語音外,通常還存在設備回聲、非目標說話人的語音、外界噪聲干擾、房間混響等多種不利聲學因素的影響。所以,需要一個音頻前端(Front-End)來對智能設備採集到的原始音頻信號進行增強,提高目標語音的信噪比,以達到提高語音喚醒成功率、識別準確率,提高人機語音交互效率的目的。遠講語音交互場景就是一種典型的“雞尾酒會問題”,各種不利聲學因素可以看作是“雞尾酒會”上的各種噪聲和干擾。所以,可以使用盲源分離技術對設備回聲、干擾噪聲、房間混響等分別進行處理,最後得到分離後的語音信號,達到語音增強的目的,而“盲源”的特性使得基於盲源分離技術的音頻前端具有使用更加靈活,語音增強效果較好等優點。

image.png

使用盲源分離技術實現語音分離的基本原理如下圖所示:假設環境中一共有兩個聲源,兩個麥克風,若聲源和麥克風的位置在一段時間內是相對穩定的,則兩個麥克風在各個時刻觀測得到的數據就可以看作是二維平面上的點x,點x由向量a1和a2經過某個尺度縮放併疊加而成。向量a1和a2叫做導向向量(Steering Vector),分別建模了兩個源信號的傳播路徑信息,所以,x是兩個聲源混合後的結果。而分離的過程就相當於求向量b1和b2,使得b1和a2正交,而b2和a1正交,所以b1和b2分別和x做內積的話,由於正交性消掉了另一個聲源的信息,從而實現了聲源的分離。

image.png

在實際應用中,只有觀測信號x是已知的,源信號和信道信息a1,a2都未知。為了能從有限的條件中求出b1與b2,必須對當前問題做進一步的假設和限定。其中最常用的一種假設即獨立性假設:由於不同的源信號是不同的物理過程產生的,所以可以假設各個源之間是相互獨立的。將各個源信號看成是相互獨立的隨機過程所產生的隨機變量,根據概率論中的“中心極限定理”:多個相互獨立的隨機變量相互疊加,其結果越趨近於高斯分佈。所以觀測信號比源信號就更趨近於高斯分佈,而分離的過程就是不斷調整b1和b2,使得輸出信號的非高斯性,以及各個輸出分量的獨立性達到最大的過程。這類與獨立性為前提的方法也叫做獨立成分分析(Independent Component Analysis, ICA),是最典型的盲源分離方法之一。使用盲源分離技術進行噪聲抑制,最大的好處就在於其“盲源”的特性,即不需要對聲源位置及麥克風陣列拓撲結構做過多的要求就可以實現對聲源的分離,所以極大的拓寬了該技術的應用場景。

為了實現更好的人機/人人交互體驗,智能設備上通常同時裝有麥克風陣列和揚聲器,設備既可以錄音,也可以放音。所以,智能設備自己播放的聲音將被其自身的麥克風採集到,即我們通常說的聲學回聲(Acoustic Echo),而回聲消除(Acoustic Echo Cancellation, AEC)技術通常用於抑制回聲,減小其對有用信號造成的影響。傳統的回聲消除算法,例如NLMS(Normalized Least Mean Square),其信號模型一般建立在單講模型(即只有回聲或將近端信號建模為高斯噪聲的情形)之上,並結合梯度下降法在單講段進行更新。對於雙講情況(即近端語音和回聲同時出現),為了防止有用的近端語音被抑制,通常採用的方法是暫停濾波器更新或者減小迭代步長以放慢更新速度。

對於回聲消除問題,如果將回聲信號也看成是一種噪聲的話,觀測信號相當於是有用的近端語音與需要抑制的回聲信號的混合,而近端語音和回聲路徑未知。所以,回聲消除問題也滿足盲源分離的信號模型,所以也可以用盲源分離的相關技術進行求解。與傳統方法相比,基於盲源分離的回聲消除方法其最大的優點就在於盲源分離模型本身就是一個雙講模型,在模型中對近端信號有著明確建模,所以該方法在雙講段,甚至持續雙講場景中也能具有較好的表現。另外,傳統回聲消除所使用的梯度下降法中,迭代步長是一個非常關鍵的參數,步長過大時收斂速度快,但是容易造成迭代發散或在最優點處振盪,而步長過小時迭代穩定,但收斂速度慢。在實際應用中很難使得算法穩定性和收斂速度都同時達到最優。而基於盲源分離的回聲消除方法中沒有迭代步長參數,同時保證了算法穩定性和收斂速度。去混響與回聲消除技術非常類似,如果將延時後的麥克風信號看作是參考信號,則可以套用回聲消除的框架來進行處理。

本文中所介紹的噪聲抑制、回聲消除、去混響技術統一到了基於盲源分離技術的理論框架中,並且在智能電視、投影儀、會議室智能面板等項目的音頻前端系統中都用應用。典型設備端的音頻系統如下圖所示,其中主要分為前端和喚醒兩個大模塊。前端模塊主要負責語音增強,該模塊輸出增強和分離後的多通道音頻,而喚醒模塊主要負責根據喚醒詞判斷是否有人在發起交互,並選擇目標說話人的信號送給後續的語音識別。基於盲源分離技術的前端信號處理框架中,“盲源”的特性使得該技術在作為音頻前端中的噪聲抑制模塊使用時具有對麥克風陣列結構和說話人位置限制較少的優點。而對於回聲消除來說,該方法的好處在於其信號模型本身就屬於雙講模型,所以對雙講場景,甚至是持續雙講場景具有對近端語音造成的失真較小,並且收斂速度快的優點。

image.png

智能語音產品官網鏈接:
https://ai.aliyun.com/nls

image.png

Leave a Reply

Your email address will not be published. Required fields are marked *