如何基於遷移學習快速識別出講話的人是誰?
譯者|郝毅
編輯|Debra
AI 前線導讀:UBC Luanch Pad 提出了一種基於遷移學習的講話人識別方法,該方法旨在多人對話場景中區分出不同講話者的音頻信息。目前在簡單場景下已經取得了較為理想的結果,但是在複雜情況下仍然需要改進。作者同時發布了他們的講話人識別應用庫,可以直接通過 Python 介面使用。
更多乾貨內容請關注微信公眾號「AI 前線」,(ID:ai-front)
講話者識別是指在複雜的語音環境下,根據講話者身份不同,將音頻分離並給予標註信息。該技術在許多智能硬體領域有廣泛的應用,例如 Google Home 需要檢測是誰在說話 (而不是判斷講話的內容,這是兩個不同的問題)。講話者識別是一個開放性的問題,但是通過使用現代深度學習技術得到了快速的發展。在 UBC Luanch Pad 團隊這一年,我們 (UBC Launch Pad 團隊,本文以第一人稱進行編譯) 建立了一個用於講述人識別的庫,這個庫使用 Python 語言編寫,我們叫它 Minutes。
研究目標
講話者識別的難點主要有兩個。如果你無法控制數據採集過程中的環境影響,講話者識別系統必須能夠處理音頻樣本中的大量變化。此外,演算法模型需要通過一小段的訓練樣本來預測分類結果 (即講話者),因為對於一個新類 (一個新的講話者) 來說,獲得大量的樣本是比較困難的。而典型的預測模型在訓練過程中,對於每一類目標都需要使用上千個樣本進行訓練,但是 Google Home 的要求是能夠通過少量的樣本達到同樣的分辨能力。遷移學習是一種能夠達到這種目標的關鍵技術。假設一個公司會議的場景,每個與會者都使用客戶端預採集了少量的語音,整個會議內容會被記錄並上傳到伺服器。在伺服器端,這些對話使用訓練好的模型被分為不同講話者的記錄然後被轉錄成文本。對於伺服器系統,要解決的主要問題便是快速、經濟的生成新的模型,該模型要求能預測新添加得類別,並且不需要重新學習語音識別相關的內容。
我們的數據集
得益於音頻轉錄的快速發展,目前已經有一些大型的公開數據集可以使用。LibriSpeech ASR Corpus 是一個英語演講的的大型數據集。在這項工作中,我們簡單地將音頻文件以一秒 (採樣率 48000Hz) 為間隔進行分解,並用發言者的 ID 標記每個音頻段,這樣就得到了我們的訓練樣本。這個間隔時間是一個超參數,我們稱之為每次觀測的樣本 (samples per observation)。下面是 10 個這樣的觀測值串聯在一起的可視化效果。
通過分割資料庫,我們將每個觀測值轉換為聲譜圖。由於圖像識別是機器學習領域發展最為迅速的一個方向,因此使用聲譜圖為利用卷積神經網路 (CNN) 和其他大量先進技術提供了機會。
遷移學習
搭建一個神經網路非常容易,它可以很好地預測服從訓練集分布的的數據。比如下面這個使用 Keras 庫的例子,經過 15-25 個 epoch 後它在 5 個類上可以達到 97% 的驗證準確率。當然,該模型在訓練結束後同樣不能對從未見過的類別進行預測。
現在,我們來介紹一下遷移學習,這是一種在一個新數據集上使用生成的基礎模型繼續訓練的技術 (該方法可以加速後續模型的訓練過程 )。由於硬體資源的限制和訓練集數據的大小,生成一個比上述模型更複雜的模型會耗費更多的時間。我們的目標是最大程度地復用基本模型,Keras 框架可以輕鬆地實現這個功能——只需要固定某些層地參數,然後改變最後一層地大小就可以使用少量地數據進行訓練。
基本模型的可復用程度與基本模型利用率 (model utilization) 相關,你可以通過輸出 Keras 模型摘要來統計這個值。
增加利用率會直接影響到隨後生成遷移模型的代價,因為更多的參數需要在訓練時被優化。
需要注意的是,利用率越高,我們就能更快地將模型訓練到 85% 以上的準確率,在利用率為 4%、21%、47% 時。分別需要 15、10、5 個 epoch。圖像識別 CNN 的最後一般是有很多參數的密集層,重新訓練這些參數會嚴重降低利用率。我們發現了一些簡單的技巧可以有效地減緩這些影響:
更早的使用 pooling 層來減少後面參數矩陣的大小。
添加額外的卷積層以降低下游數據的維度。
使用遷移學習的方法,我們可以預測新類,並且可以顯著地減少訓練模型所需地時間。
在 YouTube 上的準確率
我們收集了 YouTube 上的對話並對其進行整理、標記,得到了一個真實場景下的有監督數據集。使用上述的遷移學習方法,我們能在包含 3-4 個講話者的對話場景中達到 60% 的準確率,例如 SciShow。我們對這一現象解釋是:其一可能是由於真實場景下的對話音頻會比 LibriVox 數據集更為複雜,其二可能是因為 YouTube 的時間戳標記不準確。目前,在二分類問題或相對簡單的情況下,例如兩個講話者的通話情況中,遷移學習的結果是比較理想的。而且。簡單的數據增強技術可能會使模型更加健壯地應對音頻清晰度的變化。
下一步工作
針對講話者分離任務,我們發布了 Minutes。我們希望通過儘可能多地重用基本模型來提高講話者識別的學習速度。請留意 Minutes 的 Python 庫和我們 Facebook 主頁上的數據集。
查看英文原文:
https://medium.com/@ubclaunchpad/speaker-diarisation-using-transfer-learning-47ca1a1226f4
AI前線
緊跟前沿的AI技術社群
┏(^0^)┛歡迎點贊和分享,明天見!


※如何使用Mask RCNN模型進行圖像實體分割?
※AI一周熱聞:商湯融資6億美元;GPU或將擊敗摩爾定律;中科院用強化學習解決《星際爭霸》中的微操問題
TAG:AI前線 |