【聲紋識別】attention在聲紋識別中的應用

Paper1:Attentive Statistics Pooling for Deep Speaker Embedding

Abstract

這篇paper提出了對於深度說話人嵌入(deep speaker embedding)的注意力統計池。在傳統的說話人嵌入中,幀級特徵(frame-level features)是在單個話語的所有幀上平均以形成話語水平特徵(utterance-level feature)。文章的方法是使用注意力機制給不同的幀不同的權重,並且同時生成加權平均數、加權標準差。在這種方式下,它可以有效地捕獲到更長期的說話人特徵變化。最終在NIST SRE 2012評測和VoxCeleb數據集上的表現證明了模型的對於speaker recognition有效性。

Introduction

這一部分列了一些說話人識別的發展歷史、背景的介紹

  1. 說話人識別結合i-vector發展的非常快,i-vector主要是把說話人表徵在固定低維度的特徵向量。
  2. 深度學習用於speech中的特徵提取。但是這和GMM-UBM模型對比的差別還是依賴於大量的語音數據。才能提出比較魯棒、好的特徵,但是語音的數據標註很麻煩、非常貴。
  3. 近年來,DNNs可以獨立於i-vector框架,單獨提取說話人識別特徵向量。這種方法取得更好的效果,特別是在短時間的話語條件下。如果文本相關(text-dependent)
  4. 文本無關說話人認證中,加入了一個平均池化層使得輸入不定長語音的幀級特徵可以被整合爲語句級別特徵
  5. 注意力機制從一開始用於NLP,目前也在逐漸被應用到這個領域。
  6. 提出了一種新的池化方式,叫做注意力統計池化能夠輸出權重標準差、幀級特徵的權重平均值,規避了上面3說到的DNN提特徵方法往往對於短時語音效果的缺點,即也可以應用於長時語音。

在這裏插入圖片描述
上圖中首先是我們的音頻會分成很多幀,由幀級特徵提取器提出不同的幀,幀級特徵進入池化層,池化層的作用就是把這些幀級特徵平均,得到言語級的特徵。再根據言語級的特徵辨識出說話人的特徵。

那麼,是如何進行統計池化的呢?首先統計幀級特徵的平均值如(1)式所示;計算基於幀級特徵ht的標準差。
在這裏插入圖片描述
注意力模型在原始的DNN,並且爲幀級特徵計算了大量分數et,其中v轉置不知道?f(Wht+b)+k是一個激活函數。就像tanh或者ReLU等函數。
在這裏插入圖片描述
接下來這個et通過softmax激活函數後,可以得到at。
在這裏插入圖片描述
經過at ht的激活函數結果是平均值u
在這裏插入圖片描述
由此得到加權後的平均值和標準差
在這裏插入圖片描述
在這裏插入圖片描述

Evaluation

下面採用了5種embedding的方法,測試NIST SRE2012 通用場景2; NIST SRE2012 說話時長; VoxCeleb共三種情況。
比較神奇的是i-vector經常作爲一種baseline方案,居然有如此低的EER,文中給出的解釋是NIST 2012數據集中的數據語音本身就比較長。
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

Conclusion

我們已經提出了注意力統計池化方式來提取deep speaker embedding,**池化層計算的是經過注意力機制作用的加權特徵平均值、加權特徵標準差。**這使得說話人其納入能夠focus重要的幀。不僅如此,長時間的偏差能夠被說話人統計在標準差中。比如結合了注意力機制和標準差提供了協同效應。

Paper2:Self-Attentive Speaker Embeddings for Text-Independent Speaker Verification

Abstract

這篇文章提出了一種文本無關場景說話人場景用DNN提取特徵。通常,說話人嵌入是分類DNN平均了說話人幀上的隱藏向量;所有幀產生的隱藏向量被認爲是同等重要的。我們反駁了這一假設,將說話人嵌入作爲幀級隱藏向量的加權平均值進行計算。其權重是由自相關機制自動確定的。多個注意頭對說話人輸入語音不同方面的影響,最後,用PLDA分類器比較嵌入對。在NIST SRE 2016上,將提出的自相關說話人嵌入系統和強大的DNN嵌入baseline進行比較。我們發現,self-attentive的embedding具有卓越的性能,其改進對於長時、短時的語音都有不錯的效果。

Introduction

  1. 說話人識別(聲紋識別)的目的是從幾句人說的話來確認一個人的身份。有兩種系統:一種是文本相關、一種文本無關。
  2. 近些年對於文本無關的聲紋識別方案主要是:結合i-vectors和使用PLDA(概率線性判別分析)
  3. 另外,將訓練好的DNN用於ASR或者其他方案。不僅如此,這個方案的成功率已經主要地獨立於英語數據集
  4. ICASSP 2016【End-to-end text-dependent speaker verification】 提出了一種端到端系統,用於文本相關的說話人識別任務,聯合的訓練來匹配說話人嵌入的幀級特徵,並且學習一些相似度比較尺度來匹配embedding pairs。
  5. Interspeech 2017【Deep neural network embeddings for text-independent speaker verification】 將端到端系統分爲兩個部分:a. 產生說話人嵌入的DNN; b. 比較嵌入對的單獨訓練的PLDA分類器。與端到端方法相比,該方法需要的有效數據更少,並且有利於重用多年來開發的用於處理和比較i-vector的方法的附加好處。
  6. 大多數基於DNN的聲紋識別系統使用池化機制來匹配可變長度的語音->定長的embeddings。在一個前饋架構【啥是前饋結構??】裏,這通常被池化層使能,並且能夠在全語音輸入部分平均一些幀級DNN的特徵。早期的系統中,如d-vector,DNN是在幀級別上訓練的,並且通過對輸入話語的所有幀上的最後一個隱藏層
  7. 這篇文章提出了一種x-vector的架構。爲了更好地在輸入語音中使用說話人信息,我們提出用結構化的自注意力機制幀級權重,用自注意機制和加權的統計池化層。不同於STL 2016 【End-to-end attention based text-dependent speaker verification】, 這篇文章的工作是文本無關並且是訓練、測試數據不同的。因此語音信息可能沒有幫助甚至無法使用。
  8. 然而在最先進的工作中,這些池化機制分配同等權重和幀級特徵。張等人提出了一種注意力模型來對於文本相關的說話人識別應用,結合幀級特徵。

Speaker verification system

作者把自己的方案和兩個x-vector的baseline方案進行了對比。
在這裏插入圖片描述
其中圖一這個網絡結構:L1~ L5使用了時延神經網絡,tdnn可以很大程度上保留上下文信息,起到取代rnn的作用,而且tdnn是卷積網絡,可以並行計算,rnn不行,tdnn比rnn快,kaldi裏面也是強推tdnn,具體L1~ L5的操作如下圖所示:
xv每次卷積計算的時候第一層只取輸入的5幀,第二層取第一層的3幀,但是這三幀是隔一幀取一幀,第三層取第二層的三幀,隔兩幀取一幀。
在這裏插入圖片描述
然後統計池化層聚合了所有幀級輸出向量,計算他們的平均值和標準差。池化的作用使DNN可以從變化長度的語音中產生定長的表徵向量。平均和標準偏差合併在一起,然後向前傳送到L6和L7,最後輸出到softmax層。
在這裏插入圖片描述
比如一段說話時長爲T的語音,其輸出向量爲H = {h1, h2, …, hT},ht是輸入幀xt的隱藏表徵(通過了L1 ~ L5的TDNN時延神經網絡的隱含表示)。我們認爲ht的維度是dh。那麼,整個H語音隱含向量是dhT。自注意力機制將整個隱含表達H向量作爲input,並且輸出矩陣A:
在這裏插入圖片描述
H維度dh
T;W1維度dhda;W2維度dadr,另外dr是一個超參數,表達注意力機制的多頭個數。g(·)是ReLU,softmax是column-wise (按照列分類的)。所以最後得,softmax(T*dr維) => dr維的行向量結果。
在這裏插入圖片描述
因爲由(1)知道,A是自注意後得到的權重矩陣,每一個A矩陣的列向量是符號向量,表示了不同ht的權重。當注意力頭數是1時,就是一個簡單從H中計算得來的加權平均向量。

很明顯的是,不同說話人特徵不同的原因有多個方面,特別是當語音片段很長的時候。通過增加dr,我們能夠輕鬆的獲得多注意力頭來學習一個說話人語音的不同方面。爲了增加向量的多樣性,因此每個注意力透能夠從相同的語音片段中獲得不同的信息。一個懲罰函數表示如下:
在這裏插入圖片描述
P和L2範式非常接近,所以它是想讓這個A的權重平方越來越小。

Experiment

在這裏插入圖片描述
對於baseline的i-vector方案來說(最後一行)廣東話的錯誤率8.3%,DCF16最小檢測代價指標0.549;對於菲律賓語遷移能力差一些,pool是指將兩者測試集混合起來。

補充知識

什麼是x-vector的baseline系統?The x-vector baseline system

可以認爲x-vector baseline system就是訓練了一個專門的DNN模型,能夠把輸入的語音轉化爲輸出的speaker embedding向量,把這個向量稱爲x-vector,然後經過PLDA模型是用來進行比較這些speaker embedding,最終轉化爲結果的。

最小檢測代價(Minimum Detection Cost Function, minDCF):

【轉載自https://blog.csdn.net/qq_33811075/article/details/85101874
DCF 是 NIST SRE 中定義且常用的一種性能評定方法。其定義爲:

其中 CFR和 CFA 分別代表錯誤拒絕和錯誤接受的懲罰代價,Ptarget和1 − Ptarget 分別爲真實說話測試和冒認測試的先驗概率。可以根據不同的應用環境來設定它們的值。比如在軍事門禁系統中,我們希望嚴格控制出入人員,即希望錯誤接受的概率比較小,那麼可以增大 CFA 的值;在監控犯罪人員的語音時,我們希望不漏掉可能的目標語音,則可以增大CFR 的值。當 CFR、CFA 、Ptarget 和 1 − Ptarget取定後,EFR 與 EFA 的某一組取值使得 DCF 最小,此時的 DCF 成爲 minDCF 。
在日常使用 DCF 時,通常以 NIST SRE 2008 設定的CFR = 10,CFA = 1,Ptarget= 0.01 爲準。minDCF 不僅考慮了兩類錯誤的不同代價,還考慮了兩種測試情況的先驗概率,比 EER 更合理。

Evaluation

下圖代表的是隻做平均處理的系統,當SRE16數據集中的粵語+菲律賓語混合做爲測試集時。兩者會融合起來,DET曲線的橫縱軸將FAR和FER轉爲對數度量,這時候曲線越靠近原點,說明系統的EER錯誤識別率越小,性能越好。
在這裏插入圖片描述
下圖代表的是使用平均化且拼接標準差的系統,當SRE16數據集中的粵語+菲律賓語混合做爲測試集時。兩者會融合起來,DET曲線的橫縱軸將FAR和FER轉爲對數度量,這時候曲線越靠近原點,說明系統的EER錯誤識別率越小,性能越好。
在這裏插入圖片描述
除了在模型上的評估。文章還對語音的長度影響做了評判:得到了3個意料之內的結果:

  • 自注意機制嵌入能夠帶來性能提高,不論是什麼語音長度。
  • 持續時間長的語音識別效果更好,因爲說的話越多,speaker的信息就越充分。
  • 自注意機制如果有比較多的注意頭會性能更優秀。
    在這裏插入圖片描述

Conclusion

我們提出了一種提取說話人embedding的方法,對於文本無關的說話人驗證,通過把self-attention機制加入到DNN embedding中。這種新的speaker embedding方法成功地在SRE 16上面進行評測,這個數據集的難點在於訓練數據是說英語的,但是測試數據是用廣東話或者菲律賓語的。結果當然是這個文中提出的方法好於基於傳統i-vector和DNN embedding的方案啦…通過增加attention heads數,效果更好了。

future works: 我們打算通過調整訓練策略,比如使用更大的數據集。另外,調研不同的多頭注意力懲罰機制。

Reference

[1]: Attentive Statistics Pooling for Deep Speaker Embedding
[2]: Self-Attentive Speaker Embeddings for Text-Independent Speaker Verification

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