本發(fā)明屬于語音信號處理領(lǐng)域和深度學(xué)習(xí)領(lǐng)域,具體涉及一種基于DNN模型和支持向量機(jī)模型的說話人個數(shù)估計方法。
背景技術(shù):
隨著語音信號處理技術(shù)和語音識別技術(shù)的快速發(fā)展,說話人標(biāo)記的應(yīng)用場景越來越復(fù)雜,從簡單的如電話記錄的兩個說話人場景,到今天廣泛應(yīng)用的如會議記錄的多個說話人場景。由于說話人標(biāo)記的效果和說話人個數(shù)估計密切相關(guān),提高說話人個數(shù)估計的準(zhǔn)確率能夠改進(jìn)說話人標(biāo)記系統(tǒng),提升標(biāo)記的準(zhǔn)確率。
說話人個數(shù)估計首先要對語音數(shù)據(jù)進(jìn)行預(yù)處理,提取特征。最常用的特征是一種基于人耳聽感知理論的梅爾倒譜特征,目前廣泛應(yīng)用于說話人識別、語種識別以及連續(xù)語音識別等。梅爾倒譜特征提取首先對語音數(shù)據(jù)進(jìn)行預(yù)加重和分幀加窗,然后對分幀加窗后的數(shù)據(jù)進(jìn)行快速傅里葉變換,得到對應(yīng)的頻譜,并通過梅爾頻標(biāo)三角窗濾波器進(jìn)行濾波,最后進(jìn)行離散余弦變換得到梅爾倒譜特征。
現(xiàn)有的說話人數(shù)個數(shù)估計方法大多采用凝聚層次聚類(Agglomerative Hierarchical Cluster,AHC)方法,該方法首先進(jìn)行說話人變化點檢測,對語音數(shù)據(jù)進(jìn)行分割,以達(dá)到對說話人進(jìn)行分割,再對分割后的各段語音數(shù)據(jù)基于貝葉斯信息準(zhǔn)則進(jìn)行聚類,最終確定說話人數(shù)目。現(xiàn)有技術(shù)中估計說話人個數(shù)的結(jié)果的準(zhǔn)確性完全依賴于說話人分割和聚類的準(zhǔn)確性,而說話人分割受到步長的影響,步長多是根據(jù)經(jīng)驗確定,所以難免出現(xiàn)設(shè)定的步長不合適的情況,從而影響說話人分割的準(zhǔn)確性及后續(xù)聚類的準(zhǔn)確性;此外,在聚類時貝葉斯距離受語音時長的影響,主要表現(xiàn)為一般情況下語音時長越長其貝葉斯距離越大,因而在對不同時長的語音進(jìn)行說話人聚類時,難以用統(tǒng)一的閾值進(jìn)行聚類停止條件的判斷,使得說話人數(shù)目判斷存在較大誤差,最終影響說話人標(biāo)記的效果。
支持向量機(jī)(Support Vector Machine,SVM)是一種二類分類模型,需要找到特征空間上的間隔最大的線性分類器,即支持向量機(jī)模型的學(xué)習(xí)策略便是間隔最大化。它的最終模型只由少數(shù)支持向量決定,計算復(fù)雜度取決于支持向量的個數(shù),而不是所有的樣本,有助于抓住關(guān)鍵樣本、剔除大量冗余樣本,從而使算法更具穩(wěn)健性,增加或刪除一些訓(xùn)練樣本對最終模型的影響很小,并可以很好地避免維數(shù)災(zāi)難和局部極小值問題。由于這些優(yōu)點,SVM模型在說話人識別領(lǐng)域中廣泛應(yīng)用。
深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Network,DNN)是一種模擬人腦神經(jīng)網(wǎng)絡(luò),以實現(xiàn)類人工智能的機(jī)器學(xué)習(xí)技術(shù)。近年來,基于深度神經(jīng)網(wǎng)絡(luò)DNN模型的說話人識別系統(tǒng)受到越來越多的關(guān)注,相比于傳統(tǒng)的高斯混合模型(Gaussian Mixture Model,GMM),DNN模型的描述能力更強(qiáng),能夠更好地模擬非常復(fù)雜的數(shù)據(jù)分布,充分逼近復(fù)雜的非線性關(guān)系,基于DNN模型的說話人識別系統(tǒng)取得顯著的性能提升。DNN模型包含輸入層、隱含層和輸出層。輸入層對應(yīng)語音數(shù)據(jù)的特征,輸入層節(jié)點數(shù)根據(jù)特征的維數(shù)而定。輸出層對應(yīng)各個說話人的概率,輸出層節(jié)點數(shù)根據(jù)總共需要識別的說話人的個數(shù)而定。隱含層層數(shù)和節(jié)點數(shù)根據(jù)應(yīng)用需要及工程經(jīng)驗定義。DNN模型訓(xùn)練時,先進(jìn)行非監(jiān)督訓(xùn)練再進(jìn)行監(jiān)督訓(xùn)練。非監(jiān)督訓(xùn)練時把每相鄰的兩層網(wǎng)絡(luò)當(dāng)成一個受限玻爾茲曼機(jī),用CD‐k算法逐層進(jìn)行訓(xùn)練。進(jìn)行監(jiān)督訓(xùn)練時,使用非監(jiān)督訓(xùn)練得到的DNN模型參數(shù)作為初值,再用后向傳播算法對DNN模型參數(shù)進(jìn)行精確調(diào)整。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是為克服已有技術(shù)的不足之處,提供一種基于DNN模型和支持向量機(jī)模型的說話人個數(shù)估計方法。該方法解決多說話人場景中說話人個數(shù)計算不準(zhǔn)確的問題,提高語音數(shù)據(jù)中說話人個數(shù)估計的準(zhǔn)確率。
本發(fā)明提出的一種基于DNN模型和支持向量機(jī)模型的說話人個數(shù)估計方法,分為模型訓(xùn)練階段和說話人個數(shù)估計階段兩個階段,包括以下步驟:
1)模型訓(xùn)練階段;模型訓(xùn)練階段分為DNN模型訓(xùn)練階段和支持向量機(jī)SVM模型訓(xùn)練階段兩個階段;具體包括以下步驟:
1‐1)DNN模型訓(xùn)練階段:獲取N個說話人的訓(xùn)練語音數(shù)據(jù),提取每條訓(xùn)練語音數(shù)據(jù)的特征,設(shè)置DNN模型的層數(shù)和節(jié)點數(shù),對DNN模型進(jìn)行訓(xùn)練,得到DNN模型參數(shù);
1‐2)支持向量機(jī)SVM模型訓(xùn)練階段:獲取M個說話人的訓(xùn)練語音數(shù)據(jù),提取M個說話人的訓(xùn)練語音數(shù)據(jù)的特征,輸入到步驟1‐1)得到的DNN模型中,產(chǎn)生M組說話人各自對應(yīng)的N維特征,得到M個說話人的各自對應(yīng)的SVM模型;
2)說話人個數(shù)估計階段,具體包括以下步驟:
2‐1)獲取待測語音數(shù)據(jù),對待測語音數(shù)據(jù)進(jìn)行預(yù)處理,得到待測語音數(shù)據(jù)對應(yīng)的梅爾倒譜特征及其一階、二階導(dǎo)數(shù),共60維;
2‐2)將步驟2‐1)得到的每條待測語音數(shù)據(jù)的梅爾倒譜特征輸入到步驟1‐1)得到的DNN模型中,每條待測語音數(shù)據(jù)的60維梅爾倒譜特征對應(yīng)得到DNN模型的輸出層輸出的該條待測語音數(shù)據(jù)的N個輸出概率,將得到的每條待測語音數(shù)據(jù)的N個輸出概率組成該條待測語音數(shù)據(jù)的N維特征;
2‐3)將步驟2‐2)得到的任意一條待測語音數(shù)據(jù)的N維特征依次輸入到步驟1‐2)得到的M個說話人各自對應(yīng)的對應(yīng)的SVM模型中,每個SVM模型對該條待測語音數(shù)據(jù)進(jìn)行評分,根據(jù)每個SVM模型評分結(jié)果判斷該條待測語音數(shù)據(jù)對應(yīng)的說話人和SVM模型所對應(yīng)的M個說話人的相近程度,得分最高的SVM模型即為該條待測語音數(shù)據(jù)所對應(yīng)的類別,該SVM模型所對應(yīng)的說話人即為該條待測語音數(shù)據(jù)的近似說話人;
2‐4)重復(fù)步驟2‐3),將所有待測語音數(shù)據(jù)的N維特征分別輸入M個SVM模型中,對所有待測語音數(shù)據(jù)進(jìn)行分類,得到的類別總個數(shù)Q即為估計得到的待測語音數(shù)據(jù)的說話人個數(shù),Q≤M。
所述步驟1-2)DNN模型訓(xùn)練階段,具體包括以下步驟:
1‐1‐1)獲取N個說話人的訓(xùn)練語音數(shù)據(jù);對訓(xùn)練語音數(shù)據(jù)進(jìn)行預(yù)處理,提取每條訓(xùn)練語音數(shù)據(jù)的梅爾倒譜特征及其一階、二階導(dǎo)數(shù),總共60維;
1‐1‐2)設(shè)置DNN模型的層數(shù)和節(jié)點數(shù);
DNN模型分為輸入層、隱含層和輸出層三個層次;其中,輸入層對應(yīng)步驟1‐1‐1)得到的每條訓(xùn)練語音數(shù)據(jù)的梅爾倒譜特征及其一階、二階導(dǎo)數(shù),共60維,則輸入層節(jié)點數(shù)設(shè)置為60個;輸出層的節(jié)點數(shù)等于所需識別的說話人個數(shù)N,每個節(jié)點的輸出分別對應(yīng)每個說話人的概率;隱含層用于自動提取不同層次的特征,每層隱含層的節(jié)點數(shù)代表該層隱含層所提取的特征的維度;
1‐1‐3)對DNN模型進(jìn)行訓(xùn)練,得到DNN模型參數(shù);
根據(jù)步驟1‐1‐1)得到的N個說話人的訓(xùn)練語音數(shù)據(jù)的梅爾倒譜特征及一階、二階導(dǎo)數(shù),對DNN模型進(jìn)行訓(xùn)練,得到DNN模型參數(shù);DNN模型參數(shù)包括相鄰兩層的連接權(quán)重和每個節(jié)點的偏置;
相鄰兩層的連接權(quán)重,表達(dá)式如式(1)所示:
式中,Wi,i+1為有Pi行、Pi+1列的矩陣,其中表示DNN模型第i層的第m個節(jié)點和第i+1層的第n個節(jié)點的連接權(quán)重;
每個節(jié)點的偏置,表達(dá)式如式(2)所示:
式中,表示DNN模型第j層中第k個節(jié)點的偏置;
對DNN模型先進(jìn)行非監(jiān)督訓(xùn)練:把DNN模型中每相鄰的兩層組成一個受限玻爾茲曼機(jī),利用對比散度CD算法對每個受限玻爾茲曼機(jī)分別進(jìn)行訓(xùn)練;依次訓(xùn)練所有的受限玻爾茲曼機(jī),得到DNN模型參數(shù)的初始值;再進(jìn)行監(jiān)督訓(xùn)練:使用非監(jiān)督訓(xùn)練得到的DNN模型參數(shù)初始值,利用后向傳播算法對DNN模型參數(shù)進(jìn)行精確調(diào)整,得到DNN模型參數(shù)的最終值。
所述步驟1-3)支持向量機(jī)SVM模型訓(xùn)練階段,具體包括以下步驟:
1‐2‐1)獲取M個說話人的訓(xùn)練語音數(shù)據(jù),對M個說話人的訓(xùn)練語音數(shù)據(jù)進(jìn)行預(yù)處理,得到M個說話人的訓(xùn)練語音數(shù)據(jù)對應(yīng)的梅爾倒譜特征及一階、二階導(dǎo)數(shù),共60維;
1‐2‐2)將步驟1‐2‐1)得到的M個說話人的訓(xùn)練語音數(shù)據(jù)對應(yīng)的60維梅爾倒譜特征分別輸入到步驟1‐1)得到的DNN模型中,每個說話人的訓(xùn)練語音數(shù)據(jù)的60維梅爾倒譜特征對應(yīng)得到DNN模型的輸出層輸出的的該說話人的N個輸出概率,將得到的每個說話人的N個輸出概率組成該說話人的N維特征,共產(chǎn)生M組說話人各自對應(yīng)的N維特征;
1‐2‐3)將M個說話人中第i個說話人的訓(xùn)練語音數(shù)據(jù)作為一類,i∈1~M,類別標(biāo)簽定為1;其余M‐1個說話人作為另一類,類別標(biāo)簽定為‐1,得到二分類SVM模型;根據(jù)步驟1‐2‐2)得到的M組說話人各自對應(yīng)的N維特征及類別標(biāo)簽,對二分類SVM模型進(jìn)行訓(xùn)練,得到第i個說話人的SVM模型;
1‐2‐4)重復(fù)步驟1‐2‐3),讓i的取值分別從1到M,最終得到M個說話人的各自對應(yīng)的SVM模型,共M個。
本發(fā)明的特點及有益效果在于:
本發(fā)明提出的一種基于DNN模型和支持向量機(jī)模型的說話人個數(shù)估計方法,與現(xiàn)有的凝聚層次聚類方法相比,該方法不需用到分割聚類算法,因而不用擔(dān)心語音分割步長對說話人個數(shù)估計的影響,也不會因為聚類語音時長的不同而難以選擇合適的閾值,更有穩(wěn)健型;該方法充分結(jié)合了深度神經(jīng)網(wǎng)絡(luò)DNN模型和支持向量機(jī)模型兩者的優(yōu)點,能夠計算出待測語音數(shù)據(jù)中總的說話人個數(shù);該方法還可以對待測語音數(shù)據(jù)中的說話人個數(shù)進(jìn)行在線估計;可以完成待測語音數(shù)據(jù)的說話人變換點檢測。
附圖說明
圖1為本發(fā)明方法的流程框圖。
圖2為本發(fā)明實施列中DNN模型結(jié)構(gòu)示意圖。
具體實施方式
本發(fā)明提出的一種基于DNN模型和支持向量機(jī)模型的說話人個數(shù)估計方法,下面結(jié)合附圖及具體實施例對本發(fā)明進(jìn)一步詳細(xì)說明如下。以下實施例是示例性的,僅用于解釋本發(fā)明,而不能解釋為對本發(fā)明的限制。
本發(fā)明提出的一種基于DNN模型和支持向量機(jī)模型的說話人個數(shù)估計方法,流程框圖如圖1所示,分為模型訓(xùn)練階段和說話人個數(shù)估計階段兩個階段,
包括以下步驟:
1)模型訓(xùn)練階段;模型訓(xùn)練階段分為DNN模型訓(xùn)練階段和支持向量機(jī)SVM模型訓(xùn)練階段兩個階段;具體包括以下步驟:
1‐1)DNN模型訓(xùn)練階段;獲取N個說話人的訓(xùn)練語音數(shù)據(jù),提取每條訓(xùn)練語音數(shù)據(jù)的特征,設(shè)置DNN模型的層數(shù)和節(jié)點數(shù),對DNN模型進(jìn)行訓(xùn)練,得到DNN模型參數(shù);具體包括以下步驟:
1‐1‐1)獲取N個說話人的的訓(xùn)練語音數(shù)據(jù),N的取值范圍為為300至600;所述訓(xùn)練語音數(shù)據(jù)來源于NIST SRE 2012,可以通過網(wǎng)絡(luò)下載或購買得到;對訓(xùn)練語音數(shù)據(jù)進(jìn)行預(yù)處理,提取每條訓(xùn)練語音數(shù)據(jù)的梅爾倒譜特征及其一階、二階導(dǎo)數(shù),總共60維。
1‐1‐2)設(shè)置DNN模型的層數(shù)和節(jié)點數(shù);
DNN模型分為輸入層、隱含層和輸出層三個層次;其中,輸入層對應(yīng)步驟1‐1‐1)得到的每條訓(xùn)練語音數(shù)據(jù)的梅爾倒譜特征及其一階、二階導(dǎo)數(shù),共60維,則輸入層節(jié)點數(shù)設(shè)置為60個;輸出層的節(jié)點數(shù)等于所需識別的說話人個數(shù)N,每個節(jié)點的輸出分別對應(yīng)每個說話人的概率;隱含層用于自動提取不同層次的特征,每層隱含層的節(jié)點數(shù)代表該層隱含層所提取的特征的維度,中間位置的隱含層的節(jié)點數(shù)一般設(shè)置為100‐300個,其余隱含層的節(jié)點數(shù)一般設(shè)置為500‐1000個。
1‐1‐3)訓(xùn)練DNN模型參數(shù);
根據(jù)步驟1‐1‐1)得到的N個說話人的訓(xùn)練語音數(shù)據(jù)的梅爾倒譜特征及一階、二階導(dǎo)數(shù),對DNN模型進(jìn)行訓(xùn)練,得到DNN模型參數(shù);DNN模型參數(shù)包括相鄰兩層的連接權(quán)重和每個節(jié)點的偏置;
相鄰兩層的連接權(quán)重,表達(dá)式如式(1)所示:
式中,Wi,i+1為有Pi行、Pi+1列的矩陣,其中表示DNN模型第i層的第m個節(jié)點和第i+1層的第n個節(jié)點的連接權(quán)重。
每個節(jié)點的偏置,表達(dá)式如式(2)所示:
式中,表示DNN模型第j層中第k個節(jié)點的偏置。
對DNN模型先進(jìn)行非監(jiān)督訓(xùn)練:把DNN模型中每相鄰的兩層組成一個受限玻爾茲曼機(jī),利用對比散度(CD)算法對每個受限玻爾茲曼機(jī)分別進(jìn)行訓(xùn)練;依次訓(xùn)練所有的受限玻爾茲曼機(jī),得到DNN模型參數(shù)的初始值;再進(jìn)行監(jiān)督訓(xùn)練:使用非監(jiān)督訓(xùn)練得到的DNN模型參數(shù)初始值,利用后向傳播算法對DNN模型參數(shù)進(jìn)行精確調(diào)整,得到DNN模型參數(shù)的最終值。
1‐2)支持向量機(jī)SVM模型訓(xùn)練階段:獲取M個說話人的訓(xùn)練語音數(shù)據(jù),提取M個說話人的訓(xùn)練語音數(shù)據(jù)的特征,輸入到步驟1‐1)得到的DNN模型中,產(chǎn)生M組說話人各自對應(yīng)的N維特征,得到M個說話人的各自對應(yīng)的SVM模型;具體包括以下步驟:
1‐2‐1)獲取M個說話人(M一般取值為待測語音數(shù)據(jù)中最多可能存在的說話人個數(shù))的訓(xùn)練語音數(shù)據(jù),訓(xùn)練語音數(shù)據(jù)來源于NIST SRE 2012數(shù)據(jù)庫,可以由網(wǎng)上下載或購買得到,所述M個說話人可以和步驟1‐1)的DNN模型訓(xùn)練階段所選取的N個說話人不同。對M個說話人的訓(xùn)練語音數(shù)據(jù)進(jìn)行預(yù)處理,得到M個說話人的訓(xùn)練語音數(shù)據(jù)對應(yīng)的梅爾倒譜特征及一階、二階導(dǎo)數(shù),共60維。
1‐2‐2)將步驟1‐2‐1)得到的M個說話人的訓(xùn)練語音數(shù)據(jù)對應(yīng)的60維梅爾倒譜特征分別輸入到步驟1‐1)得到的DNN模型中,每個說話人的訓(xùn)練語音數(shù)據(jù)的60維梅爾倒譜特征對應(yīng)得到DNN模型的輸出層輸出的的該說話人的N個輸出概率,將得到的每個說話人的N個輸出概率組成該說話人的N維特征,共產(chǎn)生M組說話人各自對應(yīng)的N維特征。
1‐2‐3)將M個說話人中第i個說話人的訓(xùn)練語音數(shù)據(jù)作為一類,i∈1~M,類別標(biāo)簽定為1;其余M‐1個說話人作為另一類,類別標(biāo)簽定為‐1,得到二分類SVM模型;根據(jù)步驟1‐2‐2)得到的M組說話人各自對應(yīng)的N維特征及類別標(biāo)簽,對二分類SVM模型進(jìn)行訓(xùn)練,得到第i個說話人的SVM模型;
1‐2‐4)重復(fù)步驟1‐2‐3),讓i的取值分別從1到M,最終得到M個說話人的各自對應(yīng)的SVM模型,共M個。
1)說話人個數(shù)估計階段,具體包括以下步驟:
2‐1)獲取待測語音數(shù)據(jù),待測語音數(shù)據(jù)的說話人可以和DNN模型訓(xùn)練階段的N個說話人以及支持向量機(jī)SVM模型訓(xùn)練階段的M個說話人都不相同。對待測語音數(shù)據(jù)進(jìn)行預(yù)處理,得到待測語音數(shù)據(jù)對應(yīng)的梅爾倒譜特征及其一階、二階導(dǎo)數(shù),共60維;
2‐2)將步驟2‐1)得到的每條待測語音數(shù)據(jù)的梅爾倒譜特征輸入到步驟1‐1)得到的DNN模型中,每條待測語音數(shù)據(jù)的60維梅爾倒譜特征對應(yīng)得到DNN模型的輸出層輸出的該條待測語音數(shù)據(jù)的N個輸出概率,將得到的每條待測語音數(shù)據(jù)的N個輸出概率組成該條待測語音數(shù)據(jù)的N維特征。
2‐3)將步驟2‐2)得到的任意一條待測語音數(shù)據(jù)的N維特征依次輸入到步驟1‐2)得到的M個說話人各自對應(yīng)的對應(yīng)的SVM模型中,每個SVM模型對該條待測語音數(shù)據(jù)進(jìn)行評分,根據(jù)每個SVM模型評分結(jié)果判斷該條待測語音數(shù)據(jù)對應(yīng)的說話人和SVM模型所對應(yīng)的M個說話人的相近程度,得分最高的SVM模型即為該條待測語音數(shù)據(jù)所對應(yīng)的類別,該SVM模型所對應(yīng)的說話人即為該條待測語音數(shù)據(jù)的近似說話人。
2‐4)重復(fù)步驟2‐3),將所有待測語音數(shù)據(jù)的N維特征分別輸入M個SVM模型中,對所有待測語音數(shù)據(jù)進(jìn)行分類,得到的類別總個數(shù)Q即為估計得到的待測語音數(shù)據(jù)的說話人個數(shù),Q≤M。
本發(fā)明提出的一種基于DNN模型和支持向量機(jī)模型的說話人個數(shù)估計方法,下面結(jié)合一個具體實施例對本發(fā)明進(jìn)一步說明如下。
本發(fā)明提出的一種基于DNN模型和支持向量機(jī)模型的說話人個數(shù)估計方法,分為模型訓(xùn)練階段和說話人個數(shù)估計階段兩個階段,其中,模型訓(xùn)練階段分為DNN模型訓(xùn)練階段和支持向量機(jī)SVM模型訓(xùn)練階段兩個階段;包括以下步驟:
1)模型訓(xùn)練階段:獲取N個說話人的訓(xùn)練語音數(shù)據(jù),提取每條訓(xùn)練語音數(shù)據(jù)的特征,設(shè)置DNN模型的層數(shù)和節(jié)點數(shù),對DNN模型進(jìn)行訓(xùn)練,得到DNN模型參數(shù);具體包括以下步驟:
1‐1)DNN模型訓(xùn)練階段;具體包括以下步驟:
1‐1‐1)獲取N個說話人的的訓(xùn)練語音數(shù)據(jù),本實施例中N取值為400;所述訓(xùn)練語音數(shù)據(jù)來源于NIST SRE 2012,可以通過網(wǎng)絡(luò)下載或購買得到;對訓(xùn)練語音數(shù)據(jù)進(jìn)行預(yù)處理,提取每條訓(xùn)練語音數(shù)據(jù)的梅爾倒譜特征及其一階、二階導(dǎo)數(shù),總共60維。
1‐1‐2)設(shè)置DNN模型的層數(shù)和節(jié)點數(shù);
本實施例中DNN模型結(jié)構(gòu)如圖2所示,分為輸入層、隱含層和輸出層三個層次;本實施例中,DNN模型總共有5層,第1層為輸入層,第2‐4層為隱含層,共有3層隱含層,第5層為輸出層。DNN模型的輸入層對應(yīng)語音數(shù)據(jù)的特征,本發(fā)明為步驟1‐1‐1)得到的每幀訓(xùn)練語音數(shù)據(jù)的梅爾倒譜特征及其一階、二階導(dǎo)數(shù),共60維,則輸入層節(jié)點數(shù)P1設(shè)置為60個;輸出層的節(jié)點數(shù)P5等于所需識別的說話人個數(shù),本實施例為400個,每個節(jié)點的輸出分別對應(yīng)每個說話人的概率;隱含層用于自動提取不同層次的特征,本實施例隱含層層數(shù)設(shè)置為3層,隱含層所提的特征從第2層的低級抽象逐漸向第4層的高級抽象過渡;每層隱含層的節(jié)點數(shù)代表該層隱含層所提取的特征的維度,本實施例中中間位置的隱含層(即第3層)的節(jié)點數(shù)設(shè)置為P3=100個(一般設(shè)置為100‐300個),其余隱含層的節(jié)點數(shù)P2和P4分別設(shè)置為800個(一般設(shè)置為500‐1000個)。
1‐1‐3)訓(xùn)練DNN模型參數(shù);
根據(jù)步驟1‐1‐1)得到的400個人的訓(xùn)練語音數(shù)據(jù)的梅爾倒譜特征及一階、二階導(dǎo)數(shù),對DNN模型進(jìn)行訓(xùn)練,得到DNN模型參數(shù);DNN模型參數(shù)包括相鄰兩層的連接權(quán)重和每個節(jié)點的偏置;
相鄰兩層的連接權(quán)重,表達(dá)式如式(1)所示:
式中,Wii+1為有Pi行、Pi+1列的矩陣,其中表示DNN模型第i層的第m個節(jié)點和第i+1層的第n個節(jié)點的連接權(quán)重。
每個節(jié)點的偏置,表達(dá)式如式(2)所示:
式中,表示DNN模型第j層中第k個節(jié)點的偏置。
對DNN模型先進(jìn)行非監(jiān)督訓(xùn)練:把DNN模型中每相鄰的兩層組成一個受限玻爾茲曼機(jī),本實施例中即圖2中的第1層和第2層、第2層和第3層、……、第4層和第5層,當(dāng)成一個受限玻爾茲曼機(jī),共有4個受限玻爾茲曼機(jī);用對比散度(CD)算法對每個受限玻爾茲曼機(jī)分別進(jìn)行訓(xùn)練,即先訓(xùn)練第1層和第2層組成的受限玻爾茲曼機(jī),得到DNN模型參數(shù)中的B1、B2、W12;接著訓(xùn)練第2層和第3層組成的受限玻爾茲曼機(jī),得到DNN模型參數(shù)中的B3、W23;依次訓(xùn)練所有的受限玻爾茲曼機(jī),得到DNN模型參數(shù)的初始值。再進(jìn)行監(jiān)督訓(xùn)練:使用非監(jiān)督訓(xùn)練得到的DNN模型參數(shù)初始值,利用后向傳播算法對DNN模型參數(shù)進(jìn)行精確調(diào)整,得到DNN模型參數(shù)的最終值。
1‐2)支持向量機(jī)SVM模型訓(xùn)練階段:獲取M個說話人的訓(xùn)練語音數(shù)據(jù),提取M個說話人的訓(xùn)練語音數(shù)據(jù)的特征,輸入到步驟1‐1)得到的DNN模型中,產(chǎn)生M組說話人各自對應(yīng)的N維特征,得到M個說話人的各自對應(yīng)的SVM模型;具體包括以下步驟:
1‐2‐1)獲取M個說話人(M一般取值為待測語音數(shù)據(jù)中最多可能存在的說話人個數(shù))的訓(xùn)練語音數(shù)據(jù),本實施例中M取值為5個,訓(xùn)練語音數(shù)據(jù)來源于NIST SRE 2012數(shù)據(jù)庫,可以由網(wǎng)上下載或購買得到,這5個說話人可以和步驟1‐1)的DNN模型訓(xùn)練階段所選取的400個說話人不同。對M個說話人的訓(xùn)練語音數(shù)據(jù)進(jìn)行預(yù)處理,得到M個說話人的訓(xùn)練語音數(shù)據(jù)對應(yīng)的梅爾倒譜特征及一階、二階導(dǎo)數(shù),共60維。
1‐2‐2)將步驟1‐2‐1)得到的M個說話人的訓(xùn)練語音數(shù)據(jù)對應(yīng)的60維梅爾倒譜特征分別輸入到步驟1‐1)得到的DNN模型中,每個說話人的訓(xùn)練語音數(shù)據(jù)的60維梅爾倒譜特征對應(yīng)得到DNN模型的輸出層輸出的的該說話人的400個輸出概率,將得到的每個說話人的400個輸出概率組成該說話人的400維特征,共產(chǎn)生5組說話人各自對應(yīng)的400維特征。
1‐2‐3)將5個說話人中第i個說話人的訓(xùn)練語音數(shù)據(jù)作為一類,i∈1~5,類別標(biāo)簽定為1;其余4個說話人作為另一類,類別標(biāo)簽定為‐1,得到二分類SVM模型;根據(jù)步驟1‐2‐2)得到的5組說話人各自對應(yīng)的400維特征及類別標(biāo)簽,對二分類SVM模型進(jìn)行訓(xùn)練,得到第i個說話人的SVM模型;
1‐2‐4)重復(fù)步驟1‐2‐3),讓i的取值分別從1到5,最終得到5個說話人的各自對應(yīng)的SVM模型,共5個。
2)說話人個數(shù)估計階段,具體包括以下步驟:
2‐1)獲取待測語音數(shù)據(jù),本實施例中待測語音數(shù)據(jù)來自錄音得到的會議記錄。該待測語音數(shù)據(jù)的說話人可以和DNN模型訓(xùn)練階段的400個說話人以及支持向量機(jī)SVM模型訓(xùn)練階段的5個說話人都不同。對待測語音數(shù)據(jù)進(jìn)行預(yù)處理,得到待測語音數(shù)據(jù)對應(yīng)的梅爾倒譜特征及其一階、二階導(dǎo)數(shù),共60維;
2‐2)將步驟2‐1)得到的每條待測語音數(shù)據(jù)的梅爾倒譜特征輸入到步驟1)得到的DNN模型中,每條待測語音數(shù)據(jù)的60維梅爾倒譜特征對應(yīng)得到DNN模型的輸出層輸出的該條待測語音數(shù)據(jù)的400個輸出概率,將得到的每條待測語音數(shù)據(jù)的400個輸出概率組成該條待測語音數(shù)據(jù)的400維特征。
2‐3)將步驟2‐2)得到的任意一條待測語音數(shù)據(jù)的400維特征依次輸入到步驟1‐2)得到的5個說話人各自對應(yīng)的對應(yīng)的SVM模型中,每個SVM模型對該條待測語音數(shù)據(jù)進(jìn)行評分,根據(jù)每個SVM模型評分結(jié)果判斷該條待測語音數(shù)據(jù)對應(yīng)的說話人和SVM模型所對應(yīng)的5個說話人的相近程度,得分最高的SVM模型即為該條待測語音數(shù)據(jù)所對應(yīng)的類別,該SVM模型所對應(yīng)的說話人即為該條待測語音數(shù)據(jù)的近似說話人。
2‐4)重復(fù)步驟2‐3),將所有待測語音數(shù)據(jù)的400維特征分別輸入5個SVM模型中,對所有待測語音數(shù)據(jù)進(jìn)行分類,得到的類別總個數(shù)Q即為估計得到的待測語音數(shù)據(jù)的說話人個數(shù),Q≤M,本實施例中類別總個數(shù)Q小于等于SVM模型個數(shù)5。
至此,完成說話人個數(shù)估計。
本發(fā)明關(guān)于說話人個數(shù)估計方法,是通過待測語音數(shù)據(jù)按幀進(jìn)行輸入,并識別該測試語音數(shù)據(jù)每條幀所對應(yīng)的說話人,這使得該方法具有有效的實時性?;谠摲椒▽崟r性的特點,能夠?qū)Υ郎y語音數(shù)據(jù)中的說話人個數(shù)進(jìn)行在線估計;該方法是對待測語音數(shù)據(jù)按幀識別對應(yīng)的說話人的類別,由此可以得出待測語音數(shù)據(jù)的每幀說話人類別,如果相鄰的兩幀對應(yīng)的說話人不同,則該點即為說話人變換點,完成待測語音數(shù)據(jù)的說話人變換點檢測。
值得注意的是,本實施例在以本發(fā)明技術(shù)方案為前提進(jìn)行實施,但本發(fā)明的保護(hù)范圍不僅限于該實施例。凡是在本發(fā)明的實質(zhì)精神范圍之內(nèi),對以上實施例所作的適當(dāng)改變和變化,都落在本發(fā)明要求保護(hù)的范圍之內(nèi)。