學習說話人識別和驗證的判別特徵
Learning Discriminative Features for Speaker Identification and Verification
學習說話人識別和驗證的判別特徵
摘要
任何文字獨立的說話者識別和/或驗證系統的成功依賴於系統學習辨別特徵的能力。
在本文中,我們提出了一種基於流行的非常深VGG [1] CNN的卷積神經網路(CNN)架構,通過關鍵修改來適應可變長度頻譜圖輸入,減少模型磁碟空間要求並減少引數數量,從而產生在培訓時間顯著減少。我們還提出了一個統一的深度學習系統,用於文字無關的說話人識別和說話人驗證,通過在Softmax損失和中心損失的共同監督下訓練擬議的網路架構。
[2]獲得適用於說話人識別和驗證任務的高度辨別力的深度特徵。
我們使用最近釋出的VoxCeleb資料集[3],其中包含超過1200名屬於不同種族的名人的數十萬個現實世界話語,用於對我們的方法進行基準測試。我們最好的CNN模型獲得了84.6%的前1準確度,比Vox-Celeb的方法有4%的絕對改進,而與Center Loss相結合的訓練將Top-1準確度提高到89.5%,絕對值提高了9% Voxceleb的方法。
索引術語:說話人識別,說話人識別,說話人驗證,卷積神經網路,判別特徵學習
1.簡介
隨著在大量現實場景中具有重要應用的大型資料集的出現,以卷積神經網路為先導的深度學習已經成為計算機視覺領域的首選方法[4],[5] ,語音識別[6],[7]和其他相關領域,由於其固有的處理現實世界的能力,嘈雜的資料集,不需要手工製作的特徵工程。
由於外在和內在的變化,在無約束條件下的文字獨立說話人識別是一個具有挑戰性的問題;外在變化是背景喋喋不休,音樂,笑聲,混響,錯誤的錄音裝置和傳輸介質引起的失真;而內在的變化包括說話者的年齡,口音,情緒和語調等。 [8]
學習辨別功能的先天能力對任何說話人識別系統表現良好至關重要。最近的工作重點是利用DNN的瓶頸功能[9],培訓深層嵌入以供PLDA後端使用[10]或使用Constrastive Loss [3]或Triplet Loss [11]訓練端到端深度CNN嵌入]。這些方法需要培訓各種各樣的網路,以儘量減少不同的目標函式集,這需要大量的培訓和計算。
最近推出的VNG系列CNN [1]證明,僅由小型3x3卷積濾波器組成的非常深的CNN比ImageNet [4]競爭中的先前基線有了顯著的改進。這種成功主要歸功於較小的感受野(3x3核心)的使用以及增加的網路深度,這得益於3x3核心的引數有效性。
在本文中,我們提出了一種新的基於VGG Config-A和Config-B [1]的卷積神經網路體系結構,由於它們具有上述特性,其關鍵模型可以適應可變長度頻譜圖輸入並減少網路引數和儲存空間要求。
然後出現了一個問題:由於說話人識別和說話人驗證的任務具有相同的基本目標,即識別先前已知的說話者以及學習區分不同的說話者,所以不具有益處。一個能夠解決這兩個問題的統一方法?為此,我們還提出了一個統一的深度學習系統,用於獨立於文字的說話人識別和說話人驗證,在對Softmax損失和中心丟失的聯合監督下訓練CNN [2],從而減少對培訓的需求兩個任務的不同網路。
我們利用Voxceleb [3]資料集來量化和比較我們提出的方法在說話人識別和驗證方面的表現。 Voxceleb資料集是一個大規模,性別均衡的資料集,包含超過140,000個話語,屬於1251個不同民族的不同名人,在現實條件下。
2.相關作品
說話人識別是一個領域,其中高斯混合模型(GMMs)在該領域佔據了相當長的一段時間([12],[13]),聯合因子分析(JFA)[14]和基於i-向量的方法[15]在最近的時間裡超越了他們。所有上述方法都依賴於低維Mel頻率倒譜系數(MFCC)作為輸入特徵。已知MFCC在現實世界噪聲條件下遭受效能下降,如[16],[17]所示,這為最近向各種基於語音的應用的深層迴圈神經網路轉變鋪平了道路[18] ,[19],[20]。
說話人識別包括兩個子任務:說話人識別和說話人驗證。通常,與上述兩個任務相關的訓練網路的方法是不同的,其中識別(在封閉集中)通常被視為n路分類問題,並且基於Softmax Loss的分類模型被訓練對於相同的[3],而揚聲器驗證,其涉及確定給定話語和目標模型之間是否匹配,而通過訓練判別嵌入([10],[11])或使用分類中的瓶頸特徵來解決模型[9]。
最近,[19]研究了各種用於聲學場景分類的CNN架構,確立了用於聲學場景分類中的影象分類的CNN的直接模擬的有效性。 相比之下,我們提出了一種專門為說話人識別而開發的架構,與聲學場景分類相比,這是一種細粒度的分類任務。 此外,他們評估的網路架構,即流行的影象分類CNN的直接爭議,無法處理可變長度輸入,這是揚聲器識別的一個重要特徵。
[20]研究了用於說話人識別和聚類的最佳CNN設計,並詳細闡述瞭如何應用轉移學習,即將經過訓練的說話人識別網路轉移到說話人聚類。 但是,與提出的架構相比,它們的CNN架構也不支援可變長度輸入。
3.Proposed Approach
以下小節描述了提議的方法:
3.1.Model Architecture
- 基於他們最近在眾多計算機視覺任務中的成功,以及相對簡單的設計與更近的網路([21],[22],[23])相比,我們決定將我們的CNN基於VGG ConvNet配置A和B(VGG 11和VGG 13)網路如[1]中提出的那樣,經過修改以適應輸入特徵併為可變長度輸入提供支援。我們提出的網路在每個Conv-ReLU [25]對之後使用批量標準化[24]。受[21],[22]的啟發,我們在CNN特徵提取器之後立即移除完全連線的層。卷積層(最終最大池層)的輸出要素在要素圖維度上摺疊,然後進行平均。 CNN特徵的這種時間平均產生低維向量,允許可變長度輸入的有效和密集聚合,從而使網路能夠有效地控制可變長度輸入。接下來是n維(FC-ndims)的瓶頸層,在該層上應用中心損失(3)。對於基於VGG 13的網路,此設定將網路引數的數量從134M大幅減少到9.6M,遠低於[3]中具有67M引數的最佳效能網路。還嘗試了具有中間完全連線層的網路的其他變體,但沒有提供改進。為了幫助過度擬合,Dropout在瓶頸層之前和之後施加了40%的下降率。
網路A和網路B分別基於VGG-config A和VGG config B(表1)。為清楚起見,表中未顯示ReLU和批量標準化層。我們只使用具有3x3核心的2-D卷積層,步幅和填充均等於1.除了第一個Max Pooling層(其具有3x3核心和步幅為2)之外,所有Max Pooling層都具有2x2核心和步幅2。
我們的網路設計選擇還會導致所提出的架構具有以下令人滿意的特性:
1.引數效率:網路僅使用小型3x3核心。如[1]所示,與7x7或5x5相比,3x3卷積的引數效率更高,7x7核心需要81%的引數。
2.Model Size:原始VGG Config-A和Config-B網路的大部分引數都位於其大型完全連線層中。最新的CNN架構已經證明,大的FC層不是提高分類效能的先決條件([21],[22],[23])。因此,我們決定刪除這些FC層。這大大減少了引數的數量,從而減少了模型磁碟空間要求並加快了推理速度。
3.2。特徵提取
MFCC功能在噪聲條件下表現出效能下降[16],[17],以及僅關注短幀的整體頻譜包絡,MFCC可能缺乏揚聲器區分特徵(如音調資訊)[3]。在最近的語音工作([3],[11],[27])中已經普及的對數光譜圖不具備MFCC的上述缺點,因此被使用。在VoxCeleb [3]中的特徵提取過程之後,所有音訊首先以16kHz取樣率轉換為單通道16位流。然後使用漢明視窗以及均值和方差歸一化以滑動視窗方式生成頻譜圖。但是,與VoxCeleb不同,我們使用的視窗寬度為20ms,步長為10ms,最大為160點。這就產生了一個尺寸為1x161x301的頻譜圖,用於3秒的音訊剪輯,與VoxCeleb不同,VoxCeleb對於同一個剪輯具有更大的1x512x300大小的光譜。這導致更低的記憶體佔用,並幫助我們在單個Titan-Z GPU上訓練大型CNN。 Python流行的LibROSA模組用於特徵提取。
3.3。聯合監督目標損失函式
為了最大化CNN的判別力,我們建議在Soft-max損失和中心損失的聯合監督下訓練網路[2]。 Center Loss最初是針對人臉識別任務提出的,它在各種基準面資料集上進行了明顯的表現,如野外標記面(LFW),Youtube Faces(YTF)和MegaFace挑戰。 還證明了以這種方式學習的特徵與使用替代深度度量學習技術(例如三重損失或約束損失)學習的特徵相當。 Center Loss背後的直覺是最小化類內變化同時保持不同類的特徵可分離是學習判別特徵的關鍵。 中心損失可以表述為:
3.4。實施和培訓細節
我們所有的工作都是使用PyTorch深度學習框架完成的,並且在NVIDIA Titan-Z GPU上進行了培訓。 Adam [28]優化器用於訓練具有預設超引數值的網路。 為了減少過度擬合,我們通過在時域中隨機抽取3秒作物來增加資料,就像[3]一樣,以及隨機噪聲注入。 在訓練時使用固定長度輸入可減少儲存器佔用空間和計算要求。
識別與驗證:與[3]不同,網路架構和培訓方法(如損失函式)對於識別和驗證任務都是相同的。
測試:網路具有處理可變長度序列的固有能力,在使用完全連線的層之前進行特徵平均。
4.Experiments
本節描述了說話人識別和驗證任務的實驗設定,並將提出的方法的效能與許多方法進行了比較,這些方法的效能已經在[3]中進行了基準測試。
4.1。 實驗裝置
演講者識別:對於演講者識別,培訓和測試的興趣人員(POI)保持不變(所有1,251個不同的發言者,表2)。 因此,該任務被視為跨1,251類的直接多類分類。 使用的開發/測試拆分由[3]提供。 對於每個POI,來自一個視訊的語音段被保留用於測試。 為了識別,報告了前1和前5的準確度。
說話人驗證:在[3]之後,所有名稱以“E”開頭的POI都保留用於測試,剩下1,211個POI用於培訓(表3)因此,驗證任務的網路被訓練為1,211路多類別分類 使用方程2中給出的目標函式的問題。在測試時,分別計算測試對(a,b)的瓶頸特徵,瓶頸和瓶頸,並使用餘弦距離來測量瓶頸與瓶頸之間的相似性b2向量。 我們使用等誤差率(EER)(一種流行的揚聲器驗證效能指標)來量化測試集上網路的效能。
4.2. Baselines
我們將我們的結果與以下基線進行比較,所有基線都在[3]中進行了評估。
GMM-UBM:GMM-UBM系統使用尺寸為13的MFCC作為輸入。 倒譜平均值和方差標準化(CMVN)應用於特徵。 遵循傳統的GMM-UBM框架,對來自訓練資料的10次迭代訓練1024個混合分量的單個與揚聲器無關的通用背景模型(UBM)。
I-vectors / PLDA:性別獨立的i-vector提取器
[15]在VoxCeleb資料集上進行了訓練,以生成400維i向量。 然後使用概率LDA(PLDA)[29]將i向量的維數減少到200.推論:
為了識別,針對每個揚聲器m(m 1 ... K)訓練一對二靜態SVM分類器。 SVM的所有特徵輸入都是L2標準化的,並且使用保持的驗證集來確定C引數(確定最大化邊際和懲罰訓練誤差之間的權衡)。 在測試時間內的分類是通過選擇對應於最高SVM分數的說話者來完成的。 PLDA評分函式[29]用於驗證。
VoxCeleb的方法:VoxCeleb提出了一個基於VGG-M [30] CNN的CNN架構,並進行了適當的修改以適應頻譜圖輸入。 使用寬度為25ms,步長10ms和1024點FFT的滑動視窗生成頻譜圖,給出3秒語音剪輯的大小為512×300的頻譜圖。 說話人識別被視為直接的多級分類任務,而暹羅網路則受到對比性損失的訓練,這需要大量的培訓工作。
4.3。結果
結果分別在表4和5中提供。
表4提供了發言人識別任務的結果。前四個條目是[3]中評估的基線。所提出的CNN,網路A和網路B使用Softmax Loss進行訓練,然後再次在Softmax損失和中心損失(表中標記為Joint)的聯合監督下進行訓練,如(等式3)所示。兩個CNN網路都大大優於現有的基準測試,Network-B在softmax-only和聯合培訓方面都是表現最佳的網路。
為了識別,使用聯合監督訓練的ndims = 128的Network-B CNN架構表現最佳,在1,251個POI上實現了前1個分類準確率89.5%,與之前的最佳結果相比,絕對提高了9%。 80.5%(“CNN”條目,表4)。
表5提供了揚聲器驗證任務的結果。前四個條目是[3]中評估的基線。由於資源限制,我們僅評估網路B,具有不同的瓶頸維度值。所有驗證網路都在softmax損失和中心損失的共同監督下進行了培訓。因此,與[3]相比,他們通過使用複雜硬負挖掘使用恆定損失微調分類模型來應用轉移學習,我們的統一方法可以在更短的培訓時間內實現更好的效能,而無需複雜的對挖掘技術。
為了驗證,具有ndims = 128的Network-B實現了4.9%的EER,比先前的最佳(CNN-256D嵌入,表5)絕對改善了3.0%,考慮到嵌入尺寸減小50%,這是顯著的改進,因此展示了擬議的培訓方法的能力,以提高網路學習歧視性功能的能力。
5。結論
在本文中,我們提出了一種使用卷積神經網路(CNN)的端到端深度學習系統,該系統在Softmax損失和中心損失的聯合監督下進行訓練,以獲得適用於文字無關的高度辨別力的深度特徵。 說話人識別和說話人驗證。 中心丟失最初被提議用於面部識別任務,其中它確立了其提高CNN學習辨別特徵的能力的能力。 我們的結果表明,使用所提出的方法訓練的網路在說話人識別和驗證任務方面優於當前基線,引數數量少得多,從而確立了所提出的與文字無關的說話人識別方法的有效性。