端到端的文本相關說話人確認
論文:Heigold G, Moreno I, Bengio S, et al. End-to-end text-dependent speaker verification[A]. ICASSP, IEEE International Conference on Acoustics, Speech and Signal Processing - Proceedings[C]. 2016, 2016-May: 5115–5119.
大數據訓練是這篇論文的重點,端到端的模式產生了更加顯著的性能。
摘要
在大數據的文本相關說話人確認中,G. Heigold 提出了一種端到端的系統,該系統將一段測試語音和一組註冊語音進行匹配,直接投影爲確認的得分。該方法由單個神經網絡結構組成,採用聯合優化的方式訓練系統各個組成部分,包括確認評估的過程。在 “OK Google” 的測試場景中,提出的端到端方法優於 i-vector 系統和 d-vector,並實現了 EER 從 3% 到 2% 的提升。結果還表明:1)在說話人確認任務中,段層次的特徵優於幀層次的特徵;2)RNN 結構能夠進一步達到 1.5% EER,但會產生 10 倍以上的計算量;3)softmax 損失可以進一步採用得分歸一化、候選人採樣和 dropout 層提供性能,但得分歸一化對端到端模型沒有提升效果。
引言
文本相關的說話人確認系統是一種通行短語受限的系統,常用的短語形式是密碼、關鍵詞、數字序列,這類短語的時長較短,例如 “OK Google” 短語大約 0.6 秒。這類系統常用於關鍵詞發現系統和語音搜索系統。
G. Heigold 提出的系統是端到端的系統,即之間從語音建模,獲得最終的評分,評分的過程會被整合到優化過程中。相對於級聯的說話人確認系統,例如 i-vector 與 PLDA 的系統、d-vector 與 PLDA 的系統,減少了對特定知識的需求和模型的假設。
說話人確認的協議可以分爲三部分:訓練、註冊與評估。
- 訓練:訓練用於獲得語音的說話人表示,進而用於得分計算。與說話人表示學習相關的因素有三種,分別是
- 模型類型,例如高斯子空間、DNN
- 表示層次,例如幀層次、段層次
- 模型訓練損失,例如最大似然、softmax
- 註冊:在註冊階段,一個說話人提供多個語音,這些語音用於估計說話人模型。常見的方法是將同一個人的多個語音的說話人向量(例如 i-vector, d-vector)取均值。
- 評估:在評估階段,計算測試語音與註冊說話人模型之間的評分,其中註冊說話人模型來自注冊階段。常見的方法有 Cosine 函數或者 PLDA。
方法
-
基準 1:i-vector,具體地,13 PLPs + Delta + Delta Delta,1024 高斯成分,300-d i-vector
-
基準 2:i-vector + PLDA,具體地,150-d i-vector,PLDA 在 2M_train 數據集上訓練(4k 人,50 段語音/人)
-
基準 3:幀層次 + DNN + softmax,訓練方法與 d-vector 系統。
-
基準 4:d-vector
-
模型:輸入 DNN Cosine
-
輸入:“OK Google”,約 0.6 秒,40 log-filterbanks,80 幀(snippet 最後的 80 幀,不滿足則剪切或者補全開始未知),10 ms 幀間距。
-
DNN:504(ReLU) 504(ReLU) 504(ReLU) 504(線性)
- 嵌入:一段語音的所有幀輸入 DNN,網絡最後隱藏層的激活向量(線性層)輸出,然後對所有幀進行取均值。
-
Cosine:餘弦函數 t-norm 得分歸一化,
-
訓練方法:批量大小 32,損失函數 softmax
-
不足:d-vector 的 softmax 損失無法拓展到更多的數據,其原因如下:
-
隨着訓練集說話人的數量增加,計算複雜度線性增加;
-
每一個說話人需要一個最小數量以上的數據,用來估計針對說話人的權重和偏差。
-
-
-
端到端模型:
-
模型:輸入 端到端
-
輸入:與基準 3 相同,形式爲:測試語音 1 段,註冊語音 N 段
-
端到端:神經網絡 + Cosine + 邏輯迴歸,神經網絡採用 d-vector 的神經網絡結構或者 LSTM。
- 損失函數:端到端損失 ,,
- 確認的得分閾值:
-
訓練方法:訓練集訓練整個網絡,隨後,註冊集訓練帶偏差的一維邏輯迴歸;其它方式與 d-vector 相同。
-
-
其它神經網絡結構 LSTM:作爲 DNN 的替換結構,單層隱藏層,504 階段,無映射層,patch 大小 ;輸入與 DNN 相同,按幀沿時間順序。
- 嵌入:LSTM 最後的輸出與損失函數連接,形成段層級說話人表示。
數據
數據的基本情況如表 1 所示。
數據/統計 | 語音數量(增益後的數量) | 說話人數量 | 人均語音數 |
---|---|---|---|
train_2M | 2M(9M) | 4k | >500 |
train_22M | 22M(73M) | 80k | >150 |
註冊數據 | 18k | 3k | 1-9 |
評估數據 | 20k | 3k | 3-5 |
數據集是來自匿名的語音搜索日誌,“OK Google”,約 0.6 秒。訓練數據 train_2M 與 train_22M 採用人工加噪聲的方式進行增益,採用的噪聲類型是車輛噪聲、咖啡廳噪聲,採用多種 SNRs,模擬說話人與麥克風的不同距離。模型與訓練數據的關係見表 2 所示,DNN 與 LSTM 表示 d-vector 或者端到端的結構。
訓練數據/模型 | i-vector | PLDA | DNN | LSTM |
---|---|---|---|---|
train_2M | YES | 子集(4k 說話人,50段語音/人) | YES | YES |
train_22M | NO | NO | YES | YES |
系統性能
實驗評估從三個方面測試端到端的性能以及和其它基準方法的差別:幀層次表示 vs. 段層次表示、softmax vs. 端到端損失、前饋 vs. 循環神經網絡以及最優註冊語音數。
幀層次表示 vs. 段層次表示
表 3 描述了幀層次特徵與段層次特徵之間的區別,其中 DNN 的線性層使用了 50% dropout 層。結果表明 d-vector 優於 幀層次表示。
表示層次 | 系統 | 原始 EER (%) | t-norm 之後 EER (%) |
---|---|---|---|
幀層次 | i-vector | 5.77 | 5.11 |
i-vector + PLDA | 4.66 | 4.89 | |
DNN, softmax | 3.86 | 3.32 | |
段層次 | d-vector | 2.90 | 2.28 |
softmax vs. 端到端損失
表 4 描述了不同損失的模型性能。結果表明:1)t-norm 能夠提升 softmax 損失 20 %;2)端到端方法通過不同噪聲增益學習了歸一化的得分,使得額外的得分歸一化顯得多餘了;3)DNN softmax 初始化再進行端到端訓練,能夠實現 2.86% -> 2.25% 的提升。
loss/訓練數據 | EER (%), 原始/t-norm 之後 | |
---|---|---|
train_2M | train_22M | |
softmax | 2.90 / 2.28 | 2.69 / 2.08 * |
end-to-end | 2.86 / 2.85 | 2.04 / 2.14 |
前饋 vs. 循環神經網絡以及最優註冊語音數
表 4 描述了不同端到端模型的性能。不同模型意味着不同模型規模和計算時間,LSTM 乘法與加分次數更多,超過 DNN 10 倍,但實現了最優的性能。
表 5 描述了不同註冊語音數量與 DNN 性能的關係。結果表明 5 段註冊語音相對最優,1 段註冊語音也有 2.25% EER。
模型 | 幀層次 DNN 基準(基準 3) | 小型 DNN | 最好 DNN (5 隱藏層) | LSTM |
---|---|---|---|---|
EER(%) | 3.32 * | 2.04 | 1.87 | 1.36 |
註冊語音數量 | 1 | 2 | 5(默認) | 10 | 16 |
---|---|---|---|---|---|
EER(%) | 2.25 | 2.13 | 2.04 | 2.15 | 2.39 |
參考文獻
- Chen Y, Lopez-Moreno I, Sainath T N, et al. Locally-Connected and Convolutional Neural Networks for Small Footprint Speaker Recognition. 16th Annual Conference of the International Speech Communication Association. 2015: 1136–1140.
作者信息:
CSDN:https://blog.csdn.net/i_love_home?viewmode=contents
Github:https://github.com/mechanicalsea
2019級同濟大學博士研究生 王瑞 [email protected]
研究方向:說話人識別、說話人分離