<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          入門語音分離,從雞尾酒問題開始!

          共 6154字,需瀏覽 13分鐘

           ·

          2020-10-22 02:34



          ? ?AI作者:田 旭??

          ? AI編輯:田 旭??

          ? ? ? ??


          簡(jiǎn) 介


          ??

          谷歌這篇文章《Looking to Listen at the Cocktail Party: A Speaker-Independent Audio-Visual Model for Speech Separation》,宣稱“攻克”了雞尾酒會(huì)問題。從提供的視頻演示來看,可以通過滑動(dòng)控制只聽某一個(gè)人說話,非常神奇。


          這篇文章本身大概講了這么一個(gè)事:


          1. 提出一個(gè)視覺-聽覺聯(lián)合模型,通過視覺信息來檢測(cè)環(huán)境中誰在說什么并且分離出來;模型包含兩個(gè)網(wǎng)絡(luò)來分別分析視頻和音頻,通過融合層合并特征,最后使用傳統(tǒng)的時(shí)頻掩膜(Time-frequency masking)來分離語音部分;

          2. 訓(xùn)練過程中,搜集大量(90000)高質(zhì)量、單說話人且頭部位置比較正的視頻,選取其中說話聲音干凈的部分,通過融合不同的視頻或者給視頻加噪聲來創(chuàng)建訓(xùn)練集。


          可以看到深度學(xué)習(xí)在語音分離領(lǐng)域有著很大的推動(dòng)作用,早起的語音分離方法都是基于信號(hào)處理的傳統(tǒng)方法,再引入深度學(xué)習(xí)后,已經(jīng)可以實(shí)現(xiàn)端到端的實(shí)時(shí)分離,特別是在單通道語音分離方面,深度學(xué)習(xí)方法已經(jīng)很大程度超越了傳統(tǒng)方法,但是在多通道的語音分離方面,深度學(xué)習(xí)方法與信號(hào)處理方法還是有很大差距。下面,我們來從雞尾酒會(huì)問題開始入門語音分離。


          由于本人水平有限,如有分析不對(duì)的地方,歡迎指正和交流。




          01

          雞尾酒會(huì)問題


          人類的聽覺系統(tǒng)是除了視覺系統(tǒng)以外最重要的感覺系統(tǒng),具有多種聽覺功能,比如分辨聲音的方位和距離,感覺聲音的遠(yuǎn)近變化,選擇性聆聽感興趣的聲音等。其中,選擇性聆聽就是人類聽覺能夠在嘈雜環(huán)境中正常交流的根本原因。1953年,Colin Cherry提出了著名的”雞尾酒會(huì)”問題:在嘈雜的室內(nèi)環(huán)境中,比如在雞尾酒會(huì)中,同時(shí)存在著許多不同的聲源:多個(gè)人同時(shí)說話的聲音、餐具的碰撞聲、音樂聲以及這些聲音經(jīng)墻壁和室內(nèi)的物體反射所產(chǎn)生的反射聲等。在聲波的傳遞過程中,不同聲源所發(fā)出的聲波之間(不同人說話的聲音以及其他物體振動(dòng)發(fā)出的聲音)以及直達(dá)聲和反射聲之間會(huì)在傳播介質(zhì)(通常是空氣)中相疊加而 形成復(fù)雜的混合聲波。因此,在到達(dá)聽者外耳道的混合聲波中已經(jīng)不存在獨(dú)立的與各個(gè)聲源相對(duì)應(yīng)的聲波了。然而,在這種聲學(xué)環(huán)境下,聽者卻能夠在相當(dāng)?shù)某潭壬下牰⒁獾哪繕?biāo)語句。



          “語音分離”(Speech Separation)來自于“雞尾酒會(huì)問題”,采集的音頻信號(hào)中除了主說話人之外,還有其他人說話聲的干擾和噪音干擾。語音分離的目標(biāo)就是從這些干擾中分離出主說話人的語音。

          根據(jù)干擾的不同,語音分離任務(wù)可以分為三類:

          • 當(dāng)干擾為噪聲信號(hào)時(shí),可以稱為“語音增強(qiáng)”(Speech Enhancement)

          • 當(dāng)干擾為其他說話人時(shí),可以稱為“多說話人分離”(Speaker Separation)

          • 當(dāng)干擾為目標(biāo)說話人自己聲音的反射波時(shí),可以稱為“解混響”(De-reverberation)

          由于麥克風(fēng)采集到的聲音中可能包括噪聲、其他人說話的聲音、混響等干擾,不做語音分離、直接進(jìn)行識(shí)別的話,會(huì)影響到識(shí)別的準(zhǔn)確率。因此在語音識(shí)別的前端加上語音分離技術(shù),把目標(biāo)說話人的聲音和其它干擾分開就可以提高語音識(shí)別系統(tǒng)的魯棒性,這從而也成為現(xiàn)代語音識(shí)別系統(tǒng)中不可或缺的一環(huán)。

          基于深度學(xué)習(xí)的語音分離,主要是用基于深度學(xué)習(xí)的方法,從訓(xùn)練數(shù)據(jù)中學(xué)習(xí)語音、說話人和噪音的特征,從而實(shí)現(xiàn)語音分離的目標(biāo)。




          02

          傳統(tǒng)方法


          1
          獨(dú)立成分分析 ICA


          獨(dú)立分量分析(Independent Component Analysis,ICA)是將信號(hào)之間的獨(dú)立性作為分離變量判據(jù)的方法。由Comon于1994年首次提出。Comon指出ICA方法可以通過某個(gè)對(duì)比函數(shù)(Contrast Function)的目標(biāo)函數(shù)達(dá)到極大值來消除觀察信號(hào)中的高階統(tǒng)計(jì)關(guān)聯(lián),實(shí)現(xiàn)盲源分離。盲源分離被描述成在不知道傳輸通道特性的情況下,從傳感器或傳感器陣列中分離或估計(jì)原始源波形的問題。然而,對(duì)于某些模型,不能保證估計(jì)或提取的信號(hào)與源信號(hào)具有完全相同的波形,因此有時(shí)要求放寬到提取的波形是源信號(hào)的失真或?yàn)V波版本。



          ?2
          稀疏主成分分析 Sparse PCA?


          稀疏主成分分析即是為了解決這個(gè)問題而引進(jìn)的一個(gè)算法。它會(huì)把主成分系數(shù)(構(gòu)成主成分時(shí)每個(gè)變量前面的系數(shù))變的稀疏,也即是把大多數(shù)系數(shù)都變成零,通過這樣一種方式,我們就可以把主成分的主要的部分凸現(xiàn)出來,這樣主成分就會(huì)變得較為容易解釋。

          實(shí)現(xiàn)主成分分析稀疏化,最終會(huì)轉(zhuǎn)化為優(yōu)化問題, 也即對(duì)本來的主成分分析(PCA)中的問題增加一個(gè)懲罰函數(shù)。這個(gè)懲罰函數(shù)包含有稀疏度的信息。當(dāng)然,最終得到的問題是NP-困難問題,為了解決它,我們就需要采用一些方法逼近這個(gè)問題的解。這也是不同稀疏主成分分析算法不同的由來。


          3
          非負(fù)矩陣分解 NMF


          NMF的基本思想可以簡(jiǎn)單描述為:對(duì)于任意給定的一個(gè)非負(fù)矩陣V,NMF算法能夠?qū)ふ业揭粋€(gè)非負(fù)矩陣W和一個(gè)非負(fù)矩陣H,使得滿足 ,從而將一個(gè)非負(fù)的矩陣分解為左右兩個(gè)非負(fù)矩陣的乘積。如下圖所示,其中要求分解后的矩陣H和W都必須是非負(fù)矩陣。
          對(duì)一個(gè)M維的隨機(jī)向量v進(jìn)行了N次的觀測(cè),記這些觀測(cè)為

          其中

          NMF的目標(biāo)是求出非負(fù)的M×L的基矩陣

          和L × N的系數(shù)矩陣

          使得

          用矩陣表示為




          03

          深度學(xué)習(xí)方法


          處理雞尾酒會(huì)問題的模型已經(jīng)逐漸從基于信號(hào)處理,分解和規(guī)則的方法轉(zhuǎn)變成為通過數(shù)據(jù)驅(qū)動(dòng)形式進(jìn)行學(xué)習(xí)的方法。以深度學(xué)習(xí)的一系列方法為代表,當(dāng)前模型可以在大規(guī)模數(shù)據(jù)集上進(jìn)行訓(xùn)練,從而在給定的條件下得到比較好的效果。然而,當(dāng)前對(duì)雞尾酒會(huì)問題建模的深度學(xué)習(xí)方法雖然充分利用了大規(guī)模數(shù)據(jù)集帶來的優(yōu)勢(shì),卻也一定程度上過分依賴模型本身的優(yōu)異性能,從而忽略了從人類聽覺回路中進(jìn)行借鑒,造成了可解釋性較差,適用情況較局限等一系列問題。



          下面我們已單通道(一個(gè)麥克風(fēng))和兩個(gè)說話人為例,介紹幾種流行的深度學(xué)習(xí)語音分離方法。



          模型的輸入是一段混合語音信號(hào),表示兩個(gè)說話人的聲音疊加在一起,可以將輸入用向量來表示,例如一段采樣率16kHz的混合語音信號(hào),1秒有16k的point,表示1秒的語音信號(hào)有16k維的長(zhǎng)度。模型的輸出是分離出的兩個(gè)說話人的語音信號(hào),輸入輸出緯度是一致的。

          語音信號(hào)在時(shí)域有很強(qiáng)的時(shí)變性,在一段時(shí)間內(nèi)呈現(xiàn)出周期信號(hào)的特點(diǎn),而在另一段時(shí)間內(nèi)呈現(xiàn)出隨機(jī)信號(hào)的特點(diǎn),或者呈現(xiàn)出兩者混合的特性。將語音信號(hào)轉(zhuǎn)換到頻域或者其他變換域,此時(shí)語音信號(hào)在時(shí)域表現(xiàn)不明顯的信號(hào)特征在該變換域上表現(xiàn)得很明顯,再對(duì)表現(xiàn)出的信號(hào)特征進(jìn)行分析。

          由于語音信號(hào)的緩慢時(shí)變的特性,在進(jìn)行語音信號(hào)處理時(shí)我們常用短時(shí)傅里葉STFT方法進(jìn)行分析處理。具體做法是首先選取適當(dāng)?shù)拇昂瘮?shù)將語音信號(hào)進(jìn)行分幀處理,然后將各幀語音信號(hào)分別進(jìn)行傅里葉變換。語音信號(hào)分幀后,每幀時(shí)間較短,可將其看成短時(shí)平穩(wěn)的,這樣就可觀察語音信號(hào)的頻譜圖了。語譜圖橫軸為時(shí)間,縱軸為頻率,語譜圖可以很好的看出語音隨時(shí)間、頻率的變化特性。同時(shí)STFT變換后的語音時(shí)頻信號(hào)為二維信號(hào),可以將其看作一個(gè)矩陣,極大方便的語音的后續(xù)處理。



          在雞尾酒會(huì)(說話人分離)問題中,獨(dú)立于說話人的系統(tǒng)泛化性能較好,要求是訓(xùn)練集與測(cè)試集說話人不重疊,排列問題和說話人數(shù)目未知問題是兩個(gè)困難,現(xiàn)在的時(shí)域和頻域上的語音分離方法大多都是基于mask掩模的思想,如下圖,即語音分離可以看成矩陣分解的任務(wù),特殊在于輸入矩陣是若干輸出矩陣之和,為了利用這個(gè)相關(guān)性來利用mask方法,深度聚類方法使用IBM掩模,即每個(gè)時(shí)頻單元只屬于一個(gè)人,因此可把掩模mask估計(jì)看成時(shí)頻單元聚類(分類)的問題。

          Masking實(shí)際上屬于傳統(tǒng)信號(hào)處理方法,利用的是盲源分離的特性,我們可以把語音信號(hào)表示成一個(gè)矩陣,mask方法輸入的是一個(gè)混合語音(幾個(gè)說話人的聲音混合在一起合成)的矩陣,輸出兩個(gè)同樣大小的mask矩陣。將每個(gè)mask矩陣與混合信號(hào)矩陣做點(diǎn)乘,即可分離出每個(gè)說話人的聲音信號(hào)。



          一般使用理想二值掩蔽方法來生產(chǎn)mask,對(duì)于時(shí)頻表示的語音信號(hào),輸出有幾個(gè)信號(hào)就會(huì)生成幾個(gè)mask矩陣,以兩個(gè)說話人為例,在每個(gè)時(shí)頻點(diǎn)比較兩個(gè)說話人語音能量的大小,將能量大的一方的mask矩陣對(duì)應(yīng)位置的值設(shè)為1,另一個(gè)mask矩陣的對(duì)應(yīng)位置設(shè)為0。深度學(xué)習(xí)方法可以通過訓(xùn)練得到輸出信號(hào)對(duì)應(yīng)的mask矩陣。



          下面介紹幾種流行的深度學(xué)習(xí)語音分離方法。


          1
          深度聚類 Deep Clustering


          由于分離結(jié)果排列不確定,過去的深度學(xué)習(xí)方法通常只能做說話人相關(guān)的語音分離,即訓(xùn)練和測(cè)試的語音數(shù)據(jù)是相同的說話人的語音。Deep Clustering方法是最早應(yīng)用于說話人無關(guān)的的模型,該模型訓(xùn)練的數(shù)據(jù)是這幾個(gè)人的語音,測(cè)試數(shù)據(jù)可以是另外幾個(gè)人的語音。

          深度聚類Deep Clustering方法是MERL實(shí)驗(yàn)室Hershey等人于2016年提出的工作。Deep Clustering算法訓(xùn)練神經(jīng)網(wǎng)絡(luò)為輸入特征中的每個(gè)元素生成一個(gè)具有區(qū)分性的嵌入向量(embedding),之后利用聚類算法,如K-means,對(duì)生產(chǎn)的embedding進(jìn)行聚類,得出不同類別即是不同說話人的信號(hào)分離結(jié)果圖。Deep Clustering性能和泛化性能(訓(xùn)練在英文,測(cè)試在中文等情況)都比較好,但缺點(diǎn)是它不是一個(gè)end to end的方法,因?yàn)榫垲惙椒ú荒苡?xùn)練。

          對(duì)于是時(shí)頻域的語音信號(hào),矩陣中的每個(gè)時(shí)頻點(diǎn)只有一個(gè)元素,通過神經(jīng)網(wǎng)絡(luò)訓(xùn)練,對(duì)輸入特征的每個(gè)時(shí)頻點(diǎn)元素生產(chǎn)一個(gè)D維的embedding向量V,用以表示該時(shí)頻點(diǎn)的說話人信息,對(duì)于所有的時(shí)頻點(diǎn),則得到embedding矩陣



          模型訓(xùn)練完成后,在測(cè)試階段,輸入混合語音的頻譜特征,網(wǎng)絡(luò)會(huì)對(duì)每個(gè)時(shí)頻點(diǎn)生成embedding向量。然后把每個(gè)時(shí)頻點(diǎn)的embedding向量看作一個(gè)樣本,利用聚類方法,如K-means,對(duì)樣本集合按照設(shè)定的類別C進(jìn)行聚類,每一個(gè)類別對(duì)應(yīng)一個(gè)說話人。測(cè)試階段的聚類類別C可以與訓(xùn)練階段不同,例如訓(xùn)練時(shí)有兩個(gè)說話人,測(cè)試時(shí)可以使用3個(gè)說話人,網(wǎng)絡(luò)同樣是work的。有了分類之后,利用IBM時(shí)頻掩蔽的方式從混合信號(hào)中提取每個(gè)說話人對(duì)應(yīng)的語音信號(hào)。


          2
          置換不變訓(xùn)練 Permutation?Invariant?Train (PIT)


          PIT 是騰訊余棟等人提出來的一種end to end的語音分離方法。PIT模型的設(shè)計(jì)思想是當(dāng)模型給定,就可以給出一個(gè)確定的排列(選擇可以使得損失函數(shù)最小的那一種排列方式),反之當(dāng)排列給定可以訓(xùn)練模型,因此最初隨機(jī)初始化一個(gè)分離模型,得到一個(gè)排列,接著更新模型,反復(fù)迭代至收斂。



          假如有兩個(gè)說話人,由于輸出排列不確定,我們無法確定網(wǎng)絡(luò)的哪一個(gè)輸出與對(duì)應(yīng),哪一個(gè)與對(duì)應(yīng)。假設(shè)網(wǎng)絡(luò)對(duì)兩個(gè)說話人的估計(jì)是說話人無關(guān)語音分離需要解決的問題就是,之間如何匹配的問題。PIT網(wǎng)絡(luò)中對(duì)說話人語音的估計(jì)可以使用特征映射的方法,也可以使用時(shí)頻掩蔽的方法。此時(shí)對(duì)說話人的預(yù)測(cè)可能由下式得到:


          其中Mask1和Mask2別是網(wǎng)絡(luò)兩個(gè)輸出層的輸出,Y是混合信號(hào)的時(shí)頻表示,示元素相乘。對(duì)于,網(wǎng)絡(luò)預(yù)測(cè)與真實(shí)目標(biāo)之間可能共有兩種組合方式,可以每種組合方式計(jì)算對(duì)應(yīng)的預(yù)測(cè)誤差,選擇誤差小的那種輸出排列,利用這種排列再對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。



          3
          深度聚類 Deep Clustering


          TasNet(Time-domain Audio Separation Network)是時(shí)域的方法(直接輸入混合語音,不經(jīng)過STFT等變化得到聲音特征),由編碼器、分離網(wǎng)絡(luò)、解碼組成,與頻域方法相比,編碼過程不是固定的而是網(wǎng)絡(luò)學(xué)到的(論文中認(rèn)為對(duì)于語音而言STFT并不一定是最佳編碼方式,有兩點(diǎn)證實(shí)了此觀點(diǎn),論文中對(duì)編碼器輸出增加非負(fù)的約束會(huì)使模型變差,對(duì)編解碼器增加互逆的關(guān)聯(lián)約束使模型變差,即同一信號(hào)經(jīng)過編碼器再經(jīng)過解碼器得到同一信號(hào)),通過分離網(wǎng)絡(luò)得到兩個(gè)mask,學(xué)到的mask與編碼器輸出相乘再經(jīng)過解碼器得分離的聲音,訓(xùn)練過程使用前文提到的PIT方法,編解碼器都是一維卷積(相當(dāng)于全連接層線性變換),實(shí)驗(yàn)結(jié)果展示幅度和相位信息都被編碼器學(xué)習(xí)到了特征之中。



          編碼器Encoder實(shí)質(zhì)上是一個(gè)線性變換,將16維輸入信號(hào)變?yōu)?12維,這個(gè)變換過程相當(dāng)于做匹配濾波,Encoder的512維的權(quán)重就是匹配濾波的權(quán)重。而解碼器是與編碼器相反的過程,將編碼器的512維的輸出和分離網(wǎng)絡(luò)輸出的mask的點(diǎn)乘結(jié)果作為輸入,做線性變換后得到分離的語音信號(hào)。在訓(xùn)練過程中,編碼器和解碼器不一定是可逆的,不需要對(duì)編碼器和解碼器做額外要求。

          TasNet的分離網(wǎng)絡(luò)與WaveNet相似,采用多層的CNN網(wǎng)絡(luò),每一層都是卷積操作,涉及到的卷積主要包括因果卷積和空洞卷積(可以增大感受野,由于語音往往較長(zhǎng),空洞卷積和殘差連接是標(biāo)配)。最后一層最后一個(gè)輸出經(jīng)過sigmoid函數(shù)得到mask(0-1)矩陣,論文中認(rèn)為對(duì)于輸出的mask不需要softmax來歸一化使得輸出和為1,模型可以自己學(xué)到,另外sigmoid也不是必須的,生成的mask可以為負(fù)值,不用加特殊限制。



          對(duì)于分離網(wǎng)絡(luò),可以將上述網(wǎng)絡(luò)重復(fù)多次以達(dá)到更好的分離效果。TasNet將上述過程重復(fù)3~4次,下圖是TasNet分離網(wǎng)絡(luò)的結(jié)構(gòu)圖。這樣重復(fù)卷積的好處是可以增大感受野,將更多的信息包括進(jìn)來,當(dāng)重復(fù)三次時(shí),模型的每個(gè)輸出point可以參考1.53秒的語音信息。TasNet最開始使用LSTM網(wǎng)絡(luò)進(jìn)行訓(xùn)練,結(jié)果效果并不好,LSTM網(wǎng)絡(luò)由于存儲(chǔ)記憶特性會(huì)導(dǎo)致過擬合,用CNN網(wǎng)絡(luò)效果會(huì)好很多,每個(gè)point只用幾個(gè)sample的信息就足夠了。






          04

          總結(jié)


          語音分離在ASR領(lǐng)域具有重要的研究意義。在復(fù)雜的聲學(xué)環(huán)境下,除了目標(biāo)說話人的語音信號(hào)之外,還經(jīng)常會(huì)伴隨這其他說話人的語音,比如在室外、街道等場(chǎng)景,千擾人的信號(hào)會(huì)嚴(yán)重影響目標(biāo)人語音的識(shí)別性能,這個(gè)時(shí)候就需要語音分離技術(shù)來跟蹤目標(biāo)語音并抑制或者消除干擾語音。深度學(xué)習(xí)在單通道語音分離領(lǐng)域已經(jīng)超越了傳統(tǒng)信號(hào)處理算法,文中介紹的幾種方法已經(jīng)可以處理真實(shí)環(huán)境的語音分離,在性能和效率方面大大超過了傳統(tǒng)方法,當(dāng)然現(xiàn)在基于深度學(xué)習(xí)的方法還有很多問題沒解決,相信隨著深度學(xué)習(xí)的發(fā)展,深度學(xué)習(xí)可以很好的解決雞尾酒會(huì)問題。



          參考資料:

          1. 李宏毅深度學(xué)習(xí)(2020)課程http://speech.ee.ntu.edu.tw/~tlkagk/courses_DLHLP20.html

          2. https://www.zhihu.com/question/274090770

          3. 李宏毅深度學(xué)習(xí)(2020)學(xué)習(xí)筆記 https://zhuanlan.zhihu.com/p/137771442




          ?

          END



          機(jī)器學(xué)習(xí)算法工程師


          ? ??? ? ? ? ? ? ? ? ? ? ? ??????????????????一個(gè)用心的公眾號(hào)







          瀏覽 221
          點(diǎn)贊
          評(píng)論
          1收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          1收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美日日夜夜干 | 亚洲伊人在线 | 影音先锋成人AV资源网 | 色色色色色综合 | 秘 蜜桃视频在线播放 |