亚愽娱乐app

    當前位置:首頁 > 科學傳播 > 科普文章

科普文章

聲紋識別:你的聲音是這樣被“破譯”的!

  • 發表日期:2017-10-25 【 【打印】【關閉】
  •    在《最強大腦》第四季的節目中,有了一名特殊的選手叫做——小度,它攜帶著一項特殊的技能“聲紋識別”走進大眾的視野。(聲紋識別,真的不是小編打錯字了嗎?只聽說過指紋,聲音看不見摸不著,怎么會還有“紋”)沒錯,就是聲紋識別,這是一種抽象的表述,學術上一般稱為“說話人辨認(Speaker Identification)”。還有另一相似的術語叫做說話人確認(Speaker Veridiction),兩者之間的區別僅僅在于說話人確認是在待識別語音與注冊語音是不是同一個人,說話人辨認是找出待識別語音對應的說話人,兩者都屬于說話人識別范疇。

      節目中的比賽規則是這樣的:從21位性別相同、年齡相仿、聲線極為相似的專業合唱團中,選出三位每個人讀一句話,加密后成為斷斷續續的聲音樣本再交給小度和人類選手,要求他們從合唱聲音中識別出三名線人的聲音。(什么加密什么樣本,你說慢點好不好)簡單說就是根據聲音片段從21個人中挑選出對應的人。那個結果是,小度與一名很有聽力天賦的少年打成平手,但是已經超過了我們一般人的水平。

        下面就讓我們一起嘮嘮說話人識別。 

    亚愽娱乐app  首先背一下書本上面的概念,語音具有特殊性和穩定性。特殊性在于,每個人都具有屬于自己的一套發聲器官,它們的形態構造千差萬別,聲音的產生需要多個器官的相互配合,引起空氣振動。這也決定了不同人的語音的物理屬性(音質、音長、音高、音強)是不同的。不同的人具有不同的聲音特征,在語音圖譜上表現為參數上的差異,我們可以根據特征參數,確定是否是同一個人。穩定性在于,當一個人發音器官發育成熟之后,其解剖結構和生理狀態是穩定不變的,加之發音人的言語習慣等語音的社會心理屬性,使得不同人在不同的時段內所說的相同文本內容的話,基本語音特征是穩定不變的。很喜歡某網友舉的例子,管樂中包括很多種號,長號、短號、圓號等由于聲道長短形狀差異,吹出來的音色也是不一樣的。

      鑒于語音的特殊性和穩定性,我們可以將語音作為特征來區分說話人。聲紋識別本質上是一個模式識別問題,解決這個問題最經典的方法就是GMM-UBM了。

    亚愽娱乐app  其中GMM是大家都熟悉的高斯混合模型,而UBM是通用背景模型(Universal Back-ground Model)。實際中,每一個說話人的語音數據很少,訓練不充分,導致對說話人建模的精度不夠,因此提出了UBM模型。UBM模型是在大量說話人數據混合訓練而成的,因此可以認為UBM用來表征說話人的共性特征。UBM實際上就是一個大的混合高斯模型,最簡單的方法是利用EM算法迭代訓練,當應用于性別無關的說話人識別測試時,應該注意男性女性說話人數據的均衡。

      通過在UBM的基礎上,利用最大后驗概率(MAP)的方法自適應得到具體的說話人GMM模型,因此可以看作是具體說話人的GMM模型表示個性特征。MAP自適應只是修改UBM和目標說話人特征中相近部分的高斯描述,體現說話人的個性特征,而那些與說話人特征分布較遠的部分不作變動,作為說話人之間的共性特征。自適應的過程可以用經典論文《Speaker Verification Using Adapted Gaussian Mixture Models》中,四個圓圈表示四個高斯分布,上面兩個橢圓變圓的過程就是在UBM基礎上對說話人特征進行自適應的過程。在具體表示上,這個模型實際上就是把高斯混合模型的每個高斯分量的均值向量排列在一起組成一個超向量作為某一個說話人的模型,稱為均值超矢量。 

      UBM模型就好像我有整個中國所有人的聲音,我用這些聲音計算出了一個通用的聲音,這個通用的聲音和每個人的聲音都有相似的地方。自適應后產生的說話人GMM模型就好像,我們在這個通用聲音上面稍微進行點兒修改,增加自己獨特的特征,例如沙啞的嗓音,就得到了我獨特的聲音。

    亚愽娱乐app  得到了特征向量(均值超矢量),我們接下來就是計算輸入語音與系統中注冊的說話人模型之間的相似性,也就是進行打分。在說話人確認中采用的一種方法就是計算似然比得分。已知H0表示測試語音X來自說話人S,已知H1表示測試語音X不是來自說話人S,那么似然比得分可以表示為

      當得分Score(X)大于閾值時,表示測試語音屬于說話人S,小于閾值則不屬于該說話人。

      在說話人識別中最令人頭疼的一個問題是信道的魯棒性,GMM-UBM把不同說話人之間的信道差異也作為說話人個性特征,這有些不妥當。因此GMM-UBM的均值超矢量可以分成三個空間本征空間、信道空間和殘差空間。

    亚愽娱乐app  Dehak提出I-Vector,實際上是從上面GMM均值超矢量的基礎上提取的一個更為緊湊的矢量,稱之為Identity Vector,相當于說話人的身份標識。I-vector方法采用全局差異空間代替信道空間和殘差空間。

      (既然信道空間影響準確性,那為什么不直接去掉呢?Dehak的又一研究表示,聯合因子分析建模后的信道因子不僅包含了信道效應也夾雜著說話人的信息。)

    亚愽娱乐app  GMM-UBM的高斯均值超矢量可以用矩陣M來表示,其中m表示一個與特定說話人和信道無關的超矢量,全局差異空間T完成沖高維空間到低維空間的映射,從而獲得更為緊湊的超矢量w用于進一步分類和識別,w就是I-Vector。

      模型首先訓練一個UBM模型,以該模型為基礎計算子空間數據的各階統計量。然后利用各階統計量,采用EM算法進行全局差異空間T的訓練。訓練完成后即可進行I-Vector的提取。

    亚愽娱乐app  提取到的I-vector可以直接作為特征進行計算,可以直接計算注冊人語音與測試語音I-vector之間的cos距離作為相似性得分。但是考慮到全局差異空間T中的說話人信息和信道信息不再區分,提取出的I-vector可能不是最優,因此可以考慮進行信道補償,以提高I-vector的準確性。實現信道補償的常用算法是PLDA(概率線性區分性分析)。 

      上面介紹的這些模型都是經典模型,深度學習在說話識別場景下的普及并沒有在圖像和語音識別領域那么迅速,2017年上半年百度提出了一種新型的深度模型用于說話人識別場景——DeepSpeaker。  

    亚愽娱乐app  相比于傳統I-Vector而言,Deep Speaker是一種端到端的結構,將特征提取和分類融合到了一起,最終直接打分結果。論文中提出的深度結構如下圖所示。

      文章提出使用深度殘差CNN(ResCNN,單元結構如下圖所示)逐幀的從語句中提取特征,然后將同一個語句的多個幀級特征求平均,也就是將幀級別的特征表示轉變為語句級別的特征表示,然后通過一個affine層和長度歸一化層,將語句級特征變為說話人特征,即Speaker Embedding。網絡的核心是采用了用于人臉識別中的triplet loss作為損失函數進行訓練。

    亚愽娱乐app   采用triplet loss訓練,實際上就是用一個來自特定說話人的樣本作為Anchor,一個來自同一說話人的樣本作為positive,一個來自不同人的樣本作為negative,訓練過程就是最小化同類說話人之間的余弦距離,最大化不同說話人之間余弦距離的過程。

      論文中除了采用ResCNN逐幀提取特征之外,還用了CNN與三層GRU組合的深度結構來提取特征,后面的average sentence層,affine層,lengthnormolization層以及訓練規則都是相同的。

    亚愽娱乐app  實驗在三個數據集上都取得了很大的性能提升。

      說話人識別實際上是一個很有趣的方向,結合其他技術能創造出很有價值的產品,例如,可以使用聲紋來登錄設備,說話人的驗證也可以作為金融交易的額外安全措施。此外,像智能家居助理這樣的共享設備可以利用這種技術來根據當前用戶提供個性化服務。

        

      參考文獻: 

      [1]Reynolds, Douglas A., T. F. Quatieri, and R. B. Dunn. "SpeakerVerification Using Adapted Gaussian Mixture Models." Digital SignalProcessing 2000:19–41.

    亚愽娱乐app  [2] DeepSpeaker: an End-to-End Neural Speaker Embedding System