如何基於遷移學習快速識別出講話的人是誰?

2021-09-11 09:06:03 字數 2167 閱讀 6635

譯者|郝毅

編輯|debra

講話者識別是指在複雜的語音環境下,根據講話者身份不同,將音訊分離並給予標註資訊。該技術在許多智慧型硬體領域有廣泛的應用,例如 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 主頁上的資料集。

檢視英文原文:

遷移學習(2)基於特徵對映的遷移學習

找到潛在的特徵對映空間,源域和目標域分布相同,然後去做訓練。此篇之前的遷移學習有 1.基於例項的,用不同權重對資料進行排序。2.基於特徵的,找到共同的特徵結構。這篇是將找到潛在的共享特徵空間,去建立源域和共享域的橋梁。如果兩個域有相關性,它們存在一些共同的引數 變數影響實測的資料,它們中的一些會造成...

基於深度學習的OCR識別服務

1 支援對二代居民身份證正反面的關鍵字段識別,包括姓名 性別 民族 出生日期 住址 身份證號 簽發機關 有效期限,識別準確率可達98 以上。2 支援對營業執照關鍵字段的識別,包括單位名稱 法人 位址 有效期 證件編號 社會信用 等,準確率達94 以上。整套ocr服務可以分為服務端與客戶端。服務端搭建...

android中的深度學習 快速風格遷移

1.效果 2.專案相關 3.缺點1.什麼是深度學習 2.訓練和測試 3.總結 深度學習到底是怎麼學習的呢?我們可以看見我們的訓練資料是經過人的處理的,那麼深度學習的過程就是將人的處理過程固化到我們的神經網路中,最終讓神經網路來代替人工處理的過程。4.上面只是介紹深度學習的基本流程,如果要更深入的了解...