1. 程式人生 > >一種用迴歸神經網路學習說話人嵌入的無監督神經網路預測框架

一種用迴歸神經網路學習說話人嵌入的無監督神經網路預測框架

An Unsupervised Neural Prediction Framework for Learning Speaker Embeddings using Recurrent Neural Networks

一種用迴歸神經網路學習說話人嵌入的無監督神經網路預測框架

摘要

本文提出了一種無監督的訓練框架,用於使用神經預測編碼(NPC)技術學習特定於說話者的嵌入。我們採用迴歸神經網路(RNN)訓練未標記的音訊,具有多個未知的說話人變化點。我們假設短期說話者平穩性,因此短時間接近的語音幀起源於單個說話者。相反,假設來自不同音訊流的兩個隨機短語音段源自兩個不同的說話人。基於這個假設,開發了一種二元分類場景,用於預測輸入的短語音段是否來自同一個說話人。訓練基於RNN的深暹羅網路,並且從網路的隱藏層表示中提取的所得嵌入被用作說話者嵌入。說話人變化點檢測的實驗結果顯示了所提出的方法學習短期說話者特定功能的功效。我們還通過簡單的基於統計的話語級別說話人分類任務顯示這些功能的一致性。所提出的方法優於用於說話者變化檢測的MFCC基線,以及用於說話者分類的MFCC和I-vectors基線。索引術語:無監督學習,迴圈神經網路,說話者分割,說話者分類,與文字無關的說話人識別

一,簡介

語音訊號傳達了大量不同的資訊,包括語音細節,說話者和頻道特徵,短期情緒和情緒,甚至是長期的行為線索[1]。從語音中提取說話人特有的特徵在諸如說話人識別[2],語音識別[3]和說話者分段(或說話者變換點檢測)和二分法[4]等眾多應用中起著至關重要的作用。

通常,短期[2]聲學特徵,如MFCC [5]和PLP [6],編碼不同的資訊,並且不限於僅保留說話者特定的特徵。然而,它們是許多最先進的說話人分割,二值化和識別系統的基礎。大多數這些應用程式的基本技巧是利用短期特徵並利用時間背景來建立說話人模型[2]。一種廣泛使用的方法是對短期特徵(例如,高斯)的概率分佈提出一些數學假設,並且基於此,從可變持續時間的話語中匯出固定維度說話者特定的特徵向量。例如,Reynolds等人。 [7]通過訓練GMM-UBM [7]並利用MAP的連線方式(在說話者的資料上)GMM(稱為GMM supervector [2])作為固定維度說話人依賴,提出了一種說話者驗證技術[7]。向量。基於此基礎,一系列因子分析方法[8,9]出現在圖片中,用於從音訊中分離說話人和聲道相關的潛在變化,以獲得更好的說話人模型。後來,Dehak等人提出了i-vectors [10],採用單一的總可變性矩陣來模擬通道和說話人的可變性。儘管I-vectors仍然被認為是最先進的特徵,但GMM假設[2]及其在不匹配的訓練和測試話語持續時間[11]中的效能惡化是I-vectors的兩個主要缺點,如文獻。

深度神經網路(DNN)[12]研究的最新進展吸引了語音科學家利用DNN的獨特能力來學習和從音訊中提取特定於說話者的特徵。最常見的趨勢是使用一些區分說話人的損耗函式,並提取一個或多個有意義的隱藏層表示,通常稱為“說話人嵌入”,然後將其用作說話人特定的功能。例如,[13]訓練了一個說話人分類網路,並利用說話人嵌入進行了分類。 [14]通過比較兩個輸入語音幀是否來自同一個發言者,提出了一種監督訓練方案。加西亞等人。 [15]採用了類似的方法,但他們的DNN有一個時間池層來處理可變長度的突出。斯奈德等人。 [16,17]通過為演講者分類任務培訓的DNN,在演講者驗證方面取得了最先進的表現。最近的工作[18]比較了使用卷積神經網路(CNN)和RNN進行說話人驗證的不同架構,使用三重態損耗。

上述方法的共同缺點是它們都需要用於監督學習的標記資料。在可用的標籤資料稀缺的情況下,這可能會抑制這些方法的效能,在這種情況下,如果測試環境與訓練條件完全不同,這些方法可能無法很好地執行。這就需要開發可擴充套件的無監督方法來學習說話人嵌入。過去已經完成了一些工作[19,20]用於使用DNN聚集說話人空間,並將聚類空間部署為DNN-UBM以取代傳統的GMM-UBM,但它們僅適用於說話人識別而且他們不學習短期特定於演講者的特徵。李等人。 [21]訓練DNN進行無監督的說話人分類,但是他們在TIMIT資料集[22]上進行了訓練,其中訓練話語沒有多個發言者,只進行了域內評估。

最近我們提出了Speaker2Vec [23],其中密集的DNN在無監督設定中訓練以學習說話者特定的特徵。 在我們最近的後續工作[24]中,我們提出了神經預測編碼(NPC)的一般概念。 它假定兩個時間上接近的短語音段屬於單個說話者,因此可以對兩個段進行編碼的獨特變換可以將它們投射到高維流形,在這些流形中它們彼此更接近而不是它們在 原始的MFCC特徵空間。 通過培訓DNN來學習這種獨特的轉變。 在本文中,我們通過利用RNN的時間記憶來學習來自未標記資料的說話人嵌入,從而構建了這一理念。

這項工作的貢獻如下:a)它涉及無人監督的訓練,因此它可以訓練現實生活中的資料,其中音訊流有多個說話人具有未知的說話人變化點。這使它具有高度可擴充套件性。 b)它學習短期說話人嵌入,這對於說話人分割等應用很有用(第4.2節)。此外,對整個話語進行嵌入的簡單統計可以產生話語級別的固定維度,這對於說話人識別等應用非常有用(第4.4節)。 c)門控遞迴單元(GRU)[25]利用MFCC幀中的序列資訊,並幫助我們比[24]中使用的CNN更快地學習說話者嵌入,即使引數更少。 d)與[23]中的密集架構相比,部署暹羅網路(第2.2節)減少了引數的數量。此外,它為將模型應用於說話者分段鋪平了直接的方式,並且不需要在兩個段之間擬合任何分佈和附加的散度計算(第4.2節)。

2.Methodology

NPC [24]的靈感來源於線性預測編碼[26]。在LPC中,訊號的未來值被建模為過去值的線性函式(由濾波器係數表示)。在NPC中,未來語音幀由過去幀的非線性函式描述,並且通過在大量未標記語音上訓練DNN來學習該功能。

2.1。無人監督的培訓計劃

出現的第一個問題是,這種本地資訊編碼對於學習說話人嵌入是如何有用的。在這裡,我們假設短期有源發言人站[23,24]。這是基於簡單的觀察,即在長而自然的對話中,任何隨機的連續短語音段對很可能屬於同一個說話者。換句話說,說話者改變通常在現實互動中不會非常快速地發生。雖然有一些對包含來自兩個不同說話者的語音,但我們假設在一個大而多樣的資料集中,這個概率很低。另一方面,如果我們從兩個不同的音訊流(例如,來自YouTube的兩個隨機視訊)中隨機選擇兩個短語音段,則那些屬於同一說話者的概率也非常小。通過這種方式,我們可以從未標記的資料集中建立兩組樣本。第一組包含“真正的對”[27](圖1中的(S1,S2)):兩個連續的短語音段,概率地源自單個說話者。第二組包含“冒充者對”[27](圖1中的(S1,S'2)):從資料集中的兩個隨機音訊流中隨機選擇的兩個短語音段,概率地源自兩個不同的說話者。這些樣本應用於暹羅神經網路[27]進行二元分類。圖1中描述了訓練框架以及NPC-RNN暹羅網路的草圖。在這種判別風格中訓練有兩個主要的好處(而不是我們以前的方法[23]編碼一個片段並將其解碼為獲得下一個片段)。首先,模型遇到負樣本(冒充者對)以及正面樣本(真實對)。其次,我們沒有優化精確重建,而是教導DNN,如果這兩個片段來自同一個說話人。

2.2.NPC-RNN暹羅網路

暹羅網路[27,28,29]有兩個相同的雙網(圖1中的RNN1和RNN2),其權重是共享的。它通常使用兩個雙網路的輸出之間的辨別能量函式在真實/冒充者對分類場景中訓練。在圖1中,每個RNN塊表示多層GRU網路。我們使用GRU代替LSTM,因為它們需要更少的引數,但通常發現在幾種應用中可以達到類似的效能[30]。第一段(S1)的所有d個輸入幀被提供為GRU的向量的時間序列。最後一層的最後(暫時)隱藏狀態通過完全連線的網路連線到D維“嵌入層”(以產生變換e1)。同樣具有d幀的第二段(S2或S'2)與嵌入e2類似地被變換。注意,真正的一對視窗(S1,S2)被Δ幀移動以從該音訊流生成其他真正的對。然後計算e1和e2之間的L1距離向量作為元素之間的絕對差異(靈感來自[29]):

L1 = | e1 - e2 | (1)

所以,L1也是D維的。現在,L1通過完全連線的層連線到最終的單個輸出。最終輸出具有S形非線性,用於預測輸入對是真實的(0)還是冒名頂替者(1)。如果輸入的段對是(S1,S2),則模型的最終輸出p(S1,S2)表示S1和S2來自不同說話人的概率。二進位制交叉熵損失用於優化。

2.3。評估NPC-RNN模型

NPC-RNN模型可以以兩種方式使用。

2.3.1.Speaker變換點檢測

首先,我們可以使用完整模型,並比較兩個輸入段(每個持續時間為1)來預測它們是否來自同一個說話人的概率。這對於說話人比較[14]和說話人變化點檢測(第4.2節)等應用非常有用。我們可以在音訊流上移動以時間t為中心的滑動視窗對(S1(t),S2(t)),並獲得概率曲線p(S1(t),S2(t))。任何時候概率越高,它與說話人變化點相對應的可能性就越大。該說話人分割方法還消除了分段演算法中通常使用的高斯性假設。

2.3.2。提取NPC-RNN說話人嵌入

第二個應用程式僅使用一個連體雙胞胎,直到嵌入層,從任何1個語音段中提取D維嵌入。我們可以在測試音訊流上使用1s移動視窗並將其移動1幀以建立一系列嵌入。這可以用於話語級別的說話人分類(第4.4節)。例如,整個話語上的嵌入的統計函式可以用作可變長度話語的固定長度表示,或者更高層的機器學習方法可以將這些作為特徵使用。

3.實驗設定

3.1。功能和型號引數

我們使用40維高清MFCC功能,使用Kaldi工具箱[25],使用25ms寬度和10ms移動的滑動視窗進行計算。我們使用訓練段大小,d = 1s = 100個MFCC幀,並且移位,Δ= 2s = 200幀。每個連體雙胞胎(RNN1或RNN2)具有3個GRU層,每層具有200個隱藏單元。嵌入尺寸D = 512.因此,最後一層GRU的最後隱藏狀態通過200 512完全連線的層附著到嵌入層。該模型在嵌入層之後具有一個批量歸一化層,即在進入sigmoid輸出之前。整個模型有大約732k可訓練引數。我們在兩個NVIDIA K40 GPU上訓練模型。我們採用RMSProp優化器[32],學習率為10-4和l2

正規化因子為10-6。

3.2。培訓資料集

我們在兩個不同的資料集上訓練我們的模型。第一個是在TED-LIUM訓練資料集上訓練的[33]。這最初是為語音識別目的而開發的。它有666個說話人,但我們拒絕了19個說話人,它們也出現在TED-LIUM開發(7個說話人)和測試(11個說話人)組中。之後,我們最終獲得了大約100個小時的演講資料集。考慮到真品對和冒充者對,我們從中建立了大約358,000個樣本。由於每個TED-LIUM會話主要包含一個發言者,因此該資料集不能準確地驗證我們的短期發言者平穩性假設。然而,我們使用此資料集來比較域內和域外培訓場景(第4.1節)。我們還從YouTube收集了隨機視訊,以準備更實際的未標記資料集YoUSCTube,具有大約584小時的音訊,從而產生2.1M的訓練樣本。 YoUSCTube資料集是從一些初始隨機視訊開始以無人監督的方式準備的,然後從自動YouTube推薦列表中隨機選擇多個視訊,並在我們喜歡的時間內繼續該過程。在這種情況下,我們這樣做,直到我們收集了584小時的獨特材料。對資料集的簡要分析表明,它包含來自不同語言和環境的乾淨,嘈雜,單一和多說話人語音。對於這兩個資料集,我們建立了相同數量的真實和冒充者對。

3.3。驗證和測試資料集

我們在訓練期間使用TED-LIUM開發設定作為驗證集來進行模型選擇。選擇具有最佳驗證精度的模型。我們利用了成績單中提供的話語開始和結束時間,以便驗證沒有錯誤。在這裡,我們應該記住,訓練集是嘈雜的,因為我們假設短期說話者的平穩性。如第4節所述,TED-LIUM測試裝置(沒有與訓練或驗證裝置重疊的說話人)用於測試不同應用中的NPC-RNN嵌入。

4.結果和討論

NPC-RNN模型在說話人變化點檢測和話語級說話人分類任務上進行評估。說話人變化點檢測任務的效能與NPC-RNN嵌入作為幀級特徵的有用性有關。基於統計的說話人分類實驗驗證了嵌入在整個語言中的一致性。在這兩種情況下,這些都是為了顯示所提出的嵌入的相對有效性,並且可以通過更高層次的可訓練機器學習系統提供更好的結果。

 

4.1。域內和域外(OOD)培訓

在圖2中,我們比較了兩個訓練資料集的訓練和驗證準確度:YoUSCTube和TED-LIUM。從3.3節我們可以推斷TED-LIUM遇到域內訓練,而YoUSCTube訓練是域外訓練。此外,如第3.2節所述,YoUSCTube資料集對於驗證短期演講者平穩性假設更為現實。正如我們在圖2中所看到的,在兩個資料集中,我們達到了100%的訓練準確率。對於TED-LIUM和YoUSCTube資料集的培訓,我們分別獲得了94.26%和96.93%的最大驗證效能,即使後者採用了域外驗證集。我們相信YoUSCTube的高驗證準確性既支援短期平穩性假設,也支援對大量不同和未標記資料進行無監督培訓的好處。在隨後的部分中,我們將僅報告使用NPC-RNN-YoUSCTube模型獲得的結果。

4.2。幀級:說話人變化點檢測

我們將NPC-RNN-YoUSCTube模型應用於說話人變化點檢測應用。我們使用TED-LIUM測試資料集中隨機選擇的持續時間介於1s到3s之間的音訊片段建立人工對話。它總共有200個說話人更換點。基線是廣泛使用的基於BIC度量的說話人變化檢測演算法[34]。表1顯示了

4.4。話語水平:說話人分類

我們對包含11個獨特說話人的TED-LIUM測試裝置的語音(使用提供的手動時間戳提取)進行話語級說話人分類。為此,我們使用k = 1的kNN分類器,以便分類器的簡單性使我們能夠正確評估不同特徵的強度。我們比較了原始MFCC特徵,I-vectors和NPC-RNN-YoUSCTube嵌入的效能。 i-向量系統是訓練有素的OOD(注意NPC模型也是

訓練有素的OOD)關於Fisher English資料集[37]。表2比較了不同特徵與不同入學人數[2]話語的表現。對於給定數量的登記話語n,我們隨機地為每個說話者提供5個話語用於測試,並且隨機選擇n個其他話語(作為輸入話語)以訓練kNN分類器。在每種情況下,都會針對所有不同的功能選擇相同的註冊和測試話語。整個過程重複5次(因此,11 5 5 =對6種不同的登記情景中的每一種進行275次隨機測試,並報告平均準確度。我們可以看到NPC-RNN始終優於其他人。此外,當與I-vectors連線時,有時它會向I-vectors提供補充資訊。

5.結論和未來方向

我們引入了一種無監督的訓練方案,用於學習來自未標記資料的說話人嵌入,這些資料可能包含具有未知說話人變化點的多說話人音訊流。該框架基於提出的短期發言人平穩性假設,即使使用未標記的資料集,我們也可以構建基於對比損失的二元分類方案。關於說話人變換點檢測,嵌入的幀級視覺化以及話語級別說話人分類任務的表現的實驗結果表明了該方法的有效性和有效性。

在未來,我們將構建一個基於RNN的端到端無監督框架,以生成可變長度話語的固定維度嵌入,因此將消除對話語統計的需求。我們相信這將簡化框架並提高效能。