x-vector 基於dnn編碼(詳細可檢視** deep neural network embeddings for text-independent speaker verification
i-vector 並不是深度學習的模型,但是可以說是語音界最後乙個被深度學習模型打敗的模型,在16年左右,其效果比深度學習模型的效果要好。
它的思想很簡單,在訓練的時候,就是擷取語音中的一小段之後,把這段放到dnn裡去訓練,最後輸出這段話是哪個人說的。訓練結束之後,倒數第二層的feature就是我們要的speaker embedding了。
在實際**的時候,我們的輸入語音是不等長的,因此d-vector會把語音截成多段,然後取這幾段特徵的平均值作為最後的speaker embedding。
x-vector 是d-vector的公升級版,它在訓練的時候,就考慮了整段聲音頻號的資訊。它會把每一小段的聲音頻號輸出的特徵,算乙個mean 和 variance,然後concat起來,再放進乙個dnn裡去來判斷是哪個說話人說的。其他的部分和d-vector一致。
當然,今天我們再來看的時候,會把dnn直接換成rnn就可以了。
以上方法,都是train乙個speaker recoganition的模型,然後拿它的特徵來做相似度的計算(非 end-to-end模型)。
其相似度計算這部分,也可以直接放進模型裡去訓練,做成乙個end-to-end的模型。
我們的資料集還是和之前的一樣,有一堆多個speaker說的話,我們知道每句話是哪個speaker說的。再end-to-end訓練的時候,我們會把k段同乙個人a說的話放進模型裡,得到乙個平均之後的特徵,然後再從資料集中抽取一段a說的話,作為正樣本,抽取一段非a說的話,作為負樣本,然後也輸入模型得到乙個特徵。兩個特徵做相似度的計算,希望正樣本下的score越高越好,負樣本下的score越低越好。
特徵是24維的、幀長25ms,在3秒的滑動視窗上對特徵進行均值歸一化。
f代表特徵緯度,l代表訓練集中訓練語言的數量,t代表語音幀。首先上下文5幀拼為乙個幀集合,再以幀集合作為中心,拼接上下文4幀為乙個新的幀集合,以此類推到拼接15幀為乙個幀集合作為dnn的輸入。
統計資訊的池化層在時間維度上聚合資訊,以便後續層對整個音訊段進行操作。 池化層的輸入是來自前一層frame5的t 1500維向量的序列。 輸出是輸入的平均值和標準偏差(每個1500維向量)。 這些統計資料連線在一起(以生成3000維向量)並通過段級層,最後通過softmax輸出層。 啟用函式使用relu, 第6節研究的網路有420到460萬個引數。
參考:2020 年 3月 新番 李巨集毅 人類語言處理 獨家筆記 聲紋識別 - 16
除夕speaker verification hung-yi lee
chapter5_speaker_verification
聲紋識別調研
聲紋 voiceprint 是用電聲學儀器顯示的攜帶言語資訊的聲波頻譜。現代科學研究表明,聲紋不僅具有特定性,而且有相對穩定性的特點。成年以後,人的聲音可保持長期相對穩定不變。實驗證明,無論講話者是故意模仿他人聲音和語氣,還是耳語輕聲講話,即使模仿得惟妙惟肖,其聲紋卻始終不相同。聲紋識別的主要任務包...
d vector聲紋識別基礎
dnn訓練好後,提取每一幀語音的filterbank energy 特徵作為dnn輸入,從last hidden layer提取activations,l2正則化,然後將其累加起來,得到的向量就被稱為d vector。如果乙個人有多條enroll語音,那麼所有這些d vectors做平均,就是這個人...
聲紋識別概述(2)聲紋識別原理和過程
多看 聲紋識別技術簡介 化繁為簡的藝術,深入淺出了解聲紋識別。1 困難在哪?不同的人說話語音波形不同,但是相同的人用不同的語調或者在不同的身體狀態下說話其語音波形也不同,還有相同的人說不同的內容波形也不同 那要如何區分出是兩個不同人的語音?2 為什麼可識別?語音具備了乙個良好的性質,稱為短時平穩,在...