目錄
- 簡介
- DNN model
- end-to-end
- SD和ASR的關係
在之前的文章中我們對speaker diarization做了簡單介紹(更多請查看誰在說話?淺談 Speaker Diarization 「語者自動分段標記」),其流程大多如下圖所示,主要包含但不限於分割(segmentation,通常會去除沒有説話的片段)、嵌入提取(embedding extraction)、聚類(clustering)和重分割(resegmentation)四大部分。
但其實隨著訓練資料倍增、需求場景變換,speaker diarization領域一直都在蓬勃發展、因應著產業而不斷創新,其中最大的莫過於神經網絡的引入啦。神經網絡的應用最主要有兩個:特徵提取以及end-to-end框架。
本文將會討論speaker diarization的近期發展,一起來看看目前都取得了哪些成果吧!
以往的SD通常包含一個聚類(k-means、譜聚類等)的過程,聚類模型的結果很大程度地依靠不同説話者的特徵的區分度;與此同時,聚類是非監督式的,這意味著我們很難去根據結果調優模型,也無法利用現今越來越多的標記資料[1]。
Google AI團隊在2018年提出了UIS-RNN模型,以RNN取代clustering來預測説話者,原文用如下的一張架構圖表示説話者識別的流程。
在辨識之初,給定一個初始化隱藏層,經由第一個語音向量得到關於第一位説話者的隱藏層,該説話者被標記爲藍色。
當後面再有出現該説話者的語音向量的時候就更新隱藏層參數,若這是一個新的説話者,那麽就以初始的隱藏層參數爲它重新訓練一個隱藏層參數。像是模型在第三段語音中發現該説話者不是藍色説話者,於是就用當前的輸入和得到新的隱藏層,並標記第二位説話者為黃色。
以此類推,到第六段語音的時候,已經出現3名説話者,分別標記為藍色、黃色和紅色。當有一段新的語音輸入的時候,分別以當前的三個説話者的代表隱藏層計算説話者變換的機率。
這時候會有三大種情況:仍然是小黃説話、變回小藍或小紅説話還是一個全新的説話者小綠在説話。模型分別計算這三種的p值,取最小的為結果。
UIS-RNN相比k-means和譜聚類有以下幾個優點:
以下羅列一些UIS-RNN的參考資料和工具:
UIS-RNN-SML是在UIS-RNN的基礎上改進,以sample mean loss作爲損失函數[2]。
我們將embedding 和相應的speaker label 看成是兩個分佈,那麽原UIS-RNN的訓練過程就是最大化這兩個聯合分佈的過程,該分佈關於時間的表達式如下,
其中,sequence generation部分是由RNN建模的,包含Gated Recurrent Unit(GRU),它假設embedding符合高斯分佈
如上方左邊的示意圖所示,這裏的是對説話者來説,以參數初始的神經網絡的平均輸出值。
網絡參數可以通過最小化均方誤差(Mean Square Error)來達到最佳,表達式如下
它讓模型的輸出值和下一個觀測輸入差距最小化,但是我們最終的目的是讓模型分辨出對的説話者,所以UIS-RNN-SML的作者們重新定義了MSE函數,最小化某一個特定説話者的網絡輸出值和觀測值,表達式如下
其中,是產生觀察值的説話者的embedding分佈。
經過改進,UIS-RNN-SML在DIHARD-II資料集上,比原版UIS-RNN的效果要好,而且它可以達到和offline相近的學習速度。
以下羅列一些UIS-RNN-SML的參考資料和工具:
另一個神經網絡應用的大方向即sequence-to-sequence(seq2seq),它是一種框架,旨在大量訓練資料的加持下,直接根據一個sequence得出結果sequence,而不用對齊或要求語言學家做出語言模型。Transformer就是一個典型的seq2seq模型,它的本質是autoencode加attention機制。
Tranformer的優勢是:
相比於基於RNN的模型,Transformer勝在可以并行計算,在有大量的訓練資料的情況下,我們會選擇用Transformer。
Discriminative Neural Clustering(DNC)用tranformer處理speaker diarization中的聚類問題[3]。
DNC在預測説話者的時候考慮整個輸入序列和之前的預測,表達式:
其中,是經由自編碼器得到的,
這樣一來,隱藏層就已經包含不同輸入序列的相似度,而不需要再額外計算相似度。
DNC的優勢:
這裡羅列一些DNC的參考資料和工具: 代碼實現
基於Relation Network實現的Speaker diarization,簡稱RenoSD,它是用神經網絡計算兩段輸入屬於同一名説話者的可能性[4]。
RenoSD的核心如上圖所示,它
若語音片段不爲空語音,那麽它會被拿來與當前出現過的speaker的最初語音片段比較: 兩段embedding會通過一個relation module計算關分數
它的優勢是:
End-to-end也是一種框架,旨在用一個神經網絡取代包括語音識別和語者識別的所有模組。
在NLP領域,非end-to-end的模型通常是先extract(vector modeling),再cluster(speaker diarization);end-to-end把從特徵提取到内容識別到語者識別全部交給一個神經網絡去處理,不需要先從語音資料提取vector了。
這樣做有幾個好處:
這裏也介紹兩個end-to-end模型,EEND和SA-EEND。
end-to-end neural-networkbased speaker diarization(EEND)[5]將speaker diarization看成多元分類問題,並引入兩種permutation-free obejective function來降低語者識別的錯誤率。
第一種損失函數是permutation-invariant training (PIT)loss function,它可以考慮所有説話者的排列,表達式如下
二種是Deep Clustering (DPCL) loss function,它使得激活函數更能夠代表説話者,表達式如下
EEND可以有效處理overlapping的狀況,在多人説話的模擬資料集上,EEND的DER是12.28%,當時最新的基於聚類的方法DER是28.77%。除此之外,EEND還有以下優勢:
以下羅列一些EEND的參考資料和工具: 代碼實現
SA-EEND[6]用self-attention替代原EEND中的BLSTM模組。
它可以達到比EEND更低的DER,并且在overlap沒有那麽嚴重的資料中,SA-EEND也表現地更好,説明self-attention機制提升模型對不同overlap狀況的健壯性。
SA-EEND的相關實現也在EEND的repository中。
Laurent等人在2019年的一篇論文[9]中很好地揭示了SD和ASR之間的關係,如上圖(a)所示,那就是:
ASR和SD結合可以“誰在何時説了什麽”的問題。有非常多的應用場景,例如廣播採訪、會議、電話、視頻或醫療記錄等,可以隨著進程直接出逐字稿,而省去人工打字的時間和精力,也可以基於逐字稿做更多地應用,例如即時翻譯,是很有發展前景的領域。
有一些演算法整合了兩者,如上圖(b)所示,在辨識説話者的同時也辨識他所説的内容。如RNN-T(recurrent neural network transducer)[7],它在做語者識別的時候將語言資訊也考慮進去,適合用在語者有明確角色的語音資料中,如醫生和患者的對話;或BLSTM+Convolutional networks+fully connected networks[8],它以交叉熵和CTC(Connectionist Temporal Classification)為損失函數。
説了這麽多,可以看到自然語言處理領域引入深度學習網絡旨在解決各式現行的問題:因著經典的詞袋模型無法考慮上下文而有RNN被提出;因爲RNN有梯度問題有LSTM被提出;因爲既要特徵提取又要語義分析很麻煩所以有end-to-end模型;因著對齊很麻煩所以有sequence to sequence被提出等等。世界正是在發現問題、解決問題的交替中不斷探索與進步。機器能完全理解人類,進而更好地服務于人類,甚至能與人交流,這樣的未來指日可待!