本發(fā)明屬于聲紋識(shí)別、模式識(shí)別與機(jī)器學(xué)習(xí)技術(shù)領(lǐng)域,特別地涉及一種基于二次建模的說(shuō)話人識(shí)別方法。
背景技術(shù):
說(shuō)話人識(shí)別是指根據(jù)包含在語(yǔ)音中的和說(shuō)話人相關(guān)的信息來(lái)識(shí)別說(shuō)話人身份,隨著信息技術(shù)和通信技術(shù)的迅速發(fā)展,說(shuō)話人識(shí)別技術(shù)越來(lái)越受到重視并在諸多領(lǐng)域得到廣泛的應(yīng)用。如身份鑒別,緝拿電話信道罪犯,法庭中根據(jù)電話錄音做身份確認(rèn),電話語(yǔ)音跟蹤,提供防盜門(mén)開(kāi)啟功能?;ヂ?lián)網(wǎng)應(yīng)用和通信領(lǐng)域,說(shuō)話人識(shí)別技術(shù)可以應(yīng)用于聲音撥號(hào)、電話銀行、電話購(gòu)物、數(shù)據(jù)庫(kù)訪問(wèn)、信息服務(wù)、語(yǔ)音e-mail、安全控制、計(jì)算機(jī)遠(yuǎn)程登錄等領(lǐng)域。
說(shuō)話人識(shí)別首先要對(duì)語(yǔ)音數(shù)據(jù)進(jìn)行預(yù)處理,提取特征。最常用的特征是一種基于人耳聽(tīng)感知理論的梅爾倒譜特征,目前廣泛應(yīng)用于說(shuō)話人識(shí)別、語(yǔ)種識(shí)別以及連續(xù)語(yǔ)音識(shí)別等。梅爾倒譜特征提取首先對(duì)語(yǔ)音數(shù)據(jù)進(jìn)行預(yù)加重和分幀加窗,然后對(duì)分幀加窗后的數(shù)據(jù)進(jìn)行快速傅里葉變換,得到對(duì)應(yīng)的頻譜,并通過(guò)梅爾頻標(biāo)三角窗濾波器進(jìn)行濾波,最后進(jìn)行離散余弦變換得到梅爾倒譜特征。
近年來(lái),基于深度神經(jīng)網(wǎng)絡(luò)(DNN)的說(shuō)話人識(shí)別模型受到越來(lái)越多的關(guān)注,相比于傳統(tǒng)的高斯混合模型(GMM),DNN模型的描述能力更強(qiáng),能夠更好地模擬非常復(fù)雜的數(shù)據(jù)分布,基于DNN的系統(tǒng)取得顯著的性能提升。一個(gè)DNN模型包含輸入層、隱含層和輸出層三個(gè)層次:輸入層對(duì)應(yīng)語(yǔ)音數(shù)據(jù)的特征,輸入層的節(jié)點(diǎn)數(shù)根據(jù)語(yǔ)音數(shù)據(jù)對(duì)應(yīng)特征的維數(shù)而定;輸出層對(duì)應(yīng)各個(gè)說(shuō)話人的概率,輸出層的節(jié)點(diǎn)數(shù)根據(jù)總共需要識(shí)別的說(shuō)話人的個(gè)數(shù)而定;隱含層層數(shù)和節(jié)點(diǎn)數(shù)根據(jù)應(yīng)用需要及工程經(jīng)驗(yàn)定義。DNN模型訓(xùn)練時(shí),先進(jìn)行非監(jiān)督訓(xùn)練再進(jìn)行監(jiān)督訓(xùn)練。非監(jiān)督訓(xùn)練時(shí)把每相鄰的兩層網(wǎng)絡(luò)當(dāng)成一個(gè)受限玻爾茲曼機(jī),用對(duì)比散度(CD)算法逐層進(jìn)行訓(xùn)練。進(jìn)行監(jiān)督訓(xùn)練時(shí),使用非監(jiān)督訓(xùn)練得到的DNN模型參數(shù)作為初始值,再用后向傳播算法對(duì)DNN模型參數(shù)進(jìn)行精確調(diào)整。目前為止,基于DNN模型的說(shuō)話人識(shí)別的方法都只使用一個(gè)DNN模型,但一個(gè)DNN模型很難同時(shí)對(duì)說(shuō)話人之間的宏觀特征和微觀特征進(jìn)行建模。這導(dǎo)致使用一個(gè)DNN模型對(duì)說(shuō)話人進(jìn)行識(shí)別時(shí),有些語(yǔ)音可以很容易區(qū)分,而有些語(yǔ)音卻容易混淆。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是為克服已有技術(shù)的不足之處,提出了一種基于二次建模的說(shuō)話人識(shí)別方法。本發(fā)明通過(guò)建立兩個(gè)DNN模型,同時(shí)考慮了說(shuō)話人宏觀特征和微觀特征,可有效地提高說(shuō)話人識(shí)別的準(zhǔn)確率。
一種基于二次建模的說(shuō)話人識(shí)別的方法,分為為模型訓(xùn)練階段和說(shuō)話人識(shí)別階段兩個(gè)階段;在模型訓(xùn)練階段,獲取所有待識(shí)別說(shuō)話人的訓(xùn)練語(yǔ)音數(shù)據(jù)并預(yù)處理;根據(jù)訓(xùn)練語(yǔ)音數(shù)據(jù)訓(xùn)練得到第一個(gè)DNN模型;利用第一個(gè)DNN模型,對(duì)訓(xùn)練語(yǔ)音數(shù)據(jù)進(jìn)行識(shí)別,提取易混語(yǔ)音數(shù)據(jù);根據(jù)易混語(yǔ)音數(shù)據(jù)訓(xùn)練得到第二個(gè)DNN模型;在說(shuō)話人識(shí)別階段,獲取待識(shí)別語(yǔ)音數(shù)據(jù)并預(yù)處理;利用第一個(gè)DNN模型對(duì)待識(shí)別語(yǔ)音數(shù)據(jù)進(jìn)行識(shí)別,若識(shí)別概率大于判定閾值,則識(shí)別結(jié)果中輸出概率最大值所對(duì)應(yīng)的說(shuō)話人為該條待識(shí)別語(yǔ)音數(shù)據(jù)的說(shuō)話人;否則通過(guò)第二個(gè)DNN模型對(duì)待識(shí)別語(yǔ)音數(shù)據(jù)進(jìn)行第二次識(shí)別,識(shí)別結(jié)果中輸出概率最大值所對(duì)應(yīng)的說(shuō)話人為該條待識(shí)別語(yǔ)音數(shù)據(jù)的說(shuō)話人。該方法包括以下步驟:
1)模型訓(xùn)練階段;具體包括以下步驟:
1-1)獲取所有待識(shí)別說(shuō)話人的訓(xùn)練語(yǔ)音數(shù)據(jù),且每條訓(xùn)練語(yǔ)音數(shù)據(jù)所對(duì)應(yīng)的說(shuō)話人為已知;對(duì)獲取的訓(xùn)練語(yǔ)音數(shù)據(jù)進(jìn)行預(yù)處理,提取所有訓(xùn)練語(yǔ)音數(shù)據(jù)對(duì)應(yīng)的梅爾倒譜特征,并計(jì)算梅爾倒譜特征的一階、二階導(dǎo)數(shù),共60維;
1-2)建立第一個(gè)DNN模型并進(jìn)行訓(xùn)練,具體包括以下步驟:
1-2-1)設(shè)置第一個(gè)DNN模型的層數(shù)和節(jié)點(diǎn)數(shù);
第一個(gè)DNN模型分為輸入層,隱含層和輸出層三個(gè)層次;輸入層對(duì)應(yīng)訓(xùn)練語(yǔ)音數(shù)據(jù)的特征,輸入層節(jié)點(diǎn)數(shù)為步驟1-1)得到的訓(xùn)練語(yǔ)音數(shù)據(jù)的梅爾倒譜特征及其一階、二階導(dǎo)數(shù)共60維,則輸入層節(jié)點(diǎn)數(shù)設(shè)置為60個(gè);輸出層對(duì)應(yīng)各個(gè)說(shuō)話人的概率,輸出層節(jié)點(diǎn)數(shù)為所有待識(shí)別說(shuō)話人的個(gè)數(shù),每個(gè)節(jié)點(diǎn)輸出分別對(duì)應(yīng)每個(gè)說(shuō)話人的概率;隱含層用于自動(dòng)提取不同層次的特征,每層隱含層的節(jié)點(diǎn)數(shù)代表該層隱含層提取的特征的維度;
1-2-2)對(duì)第一個(gè)DNN模型進(jìn)行訓(xùn)練,得到第一個(gè)DNN模型參數(shù);
根據(jù)所有待識(shí)別的說(shuō)話人的訓(xùn)練語(yǔ)音數(shù)據(jù)的梅爾倒譜特征及其一階、二階導(dǎo)數(shù),對(duì)第一個(gè)DNN模進(jìn)行訓(xùn)練,模型參數(shù)包括相鄰兩層的連接權(quán)重和每個(gè)節(jié)點(diǎn)的偏置;先進(jìn)行非監(jiān)督訓(xùn)練再進(jìn)行監(jiān)督訓(xùn)練:非監(jiān)督訓(xùn)練時(shí),把第一個(gè)DNN模型中每相鄰的兩層,當(dāng)成一個(gè)受限玻爾茲曼機(jī),用對(duì)比散度算法依次訓(xùn)練所有的受限玻爾茲曼機(jī),得到第一個(gè)DNN模型參數(shù)的初始值;進(jìn)行監(jiān)督訓(xùn)練時(shí),使用非監(jiān)督訓(xùn)練得到的第一個(gè)DNN模型參數(shù)的初始值,利用后向傳播算法對(duì)第一個(gè)DNN模型參數(shù)進(jìn)行精確調(diào)整,最后得到第一個(gè)DNN模型參數(shù);
1-3)提取易混語(yǔ)音數(shù)據(jù);
根據(jù)步驟1-2)訓(xùn)練得到的第一個(gè)DNN模型,對(duì)所有待識(shí)別的說(shuō)話人的訓(xùn)練語(yǔ)音數(shù)據(jù)進(jìn)行識(shí)別并設(shè)定閾值;如果一條訓(xùn)練語(yǔ)音數(shù)據(jù)的識(shí)別結(jié)果中該條訓(xùn)練語(yǔ)音數(shù)據(jù)對(duì)應(yīng)的說(shuō)話人的概率小于設(shè)定的閾值,則說(shuō)明該條語(yǔ)音數(shù)據(jù)的識(shí)別結(jié)果區(qū)分性不好,將此條訓(xùn)練語(yǔ)音數(shù)據(jù)提取作為易混語(yǔ)音數(shù)據(jù),用于第二個(gè)DNN模型的訓(xùn)練;若識(shí)別結(jié)果大于等于設(shè)定的閾值,則說(shuō)明該條訓(xùn)練語(yǔ)音數(shù)據(jù)易于區(qū)分,不作為易混語(yǔ)音數(shù)據(jù);
1-4)建立第二個(gè)DNN模型并進(jìn)行訓(xùn)練,具體包括以下步驟:
1-4-1)設(shè)置第二個(gè)DNN模型的層數(shù)和節(jié)點(diǎn)數(shù);
第二個(gè)DNN模型分為輸入層,隱含層和輸出層三個(gè)層次;輸入層對(duì)應(yīng)訓(xùn)練語(yǔ)音數(shù)據(jù)的特征,輸入層節(jié)點(diǎn)數(shù)為步驟1-3)提取的易混語(yǔ)音數(shù)據(jù)的梅爾倒譜特征及其一階、二階導(dǎo)數(shù)共60維,則輸入層節(jié)點(diǎn)數(shù)設(shè)置為60個(gè);輸出層對(duì)應(yīng)各個(gè)說(shuō)話人的概率,輸出層節(jié)點(diǎn)數(shù)為易混語(yǔ)音數(shù)據(jù)中所包含的說(shuō)話人個(gè)數(shù),每個(gè)節(jié)點(diǎn)輸出分別對(duì)應(yīng)每個(gè)說(shuō)話人的概率;隱含層用于自動(dòng)提取不同層次的特征,每層隱含層的節(jié)點(diǎn)數(shù)代表該層隱含層提取的特征的維度;
1-4-2)對(duì)第二個(gè)DNN模型進(jìn)行訓(xùn)練,得到第二個(gè)DNN模型參數(shù);
根據(jù)步驟1-3)得到的易混語(yǔ)音數(shù)據(jù)的梅爾倒譜特征及其一階、二階導(dǎo)數(shù),對(duì)第二個(gè)DNN模型進(jìn)行訓(xùn)練,模型參數(shù)包括相鄰兩層的連接權(quán)重和每個(gè)節(jié)點(diǎn)的偏置;先進(jìn)行非監(jiān)督訓(xùn)練再進(jìn)行監(jiān)督訓(xùn)練:非監(jiān)督訓(xùn)練時(shí)把第二個(gè)DNN模型中每相鄰的兩層當(dāng)成一個(gè)受限玻爾茲曼機(jī),用對(duì)比散度算法依次訓(xùn)練所有的受限玻爾茲曼機(jī),得到第二個(gè)DNN模型參數(shù)的初始值;進(jìn)行監(jiān)督訓(xùn)練時(shí),使用非監(jiān)督訓(xùn)練得到的第二個(gè)DNN模型參數(shù)的初始值,利用后向傳播算法對(duì)第二個(gè)DNN模型參數(shù)進(jìn)行精確調(diào)整,最后得到第二個(gè)DNN模型參數(shù);
2)說(shuō)話人識(shí)別階段;具體包括以下步驟:
2-1)獲取所需識(shí)別的說(shuō)話人中的某一個(gè)人的待識(shí)別語(yǔ)音數(shù)據(jù),對(duì)待識(shí)別的語(yǔ)音數(shù)據(jù)進(jìn)行預(yù)處理,提取待識(shí)別語(yǔ)音數(shù)據(jù)的梅爾倒譜特征及其一階、二階導(dǎo)數(shù),共60維;
2-2)將步驟2-1)得到待識(shí)別語(yǔ)音數(shù)據(jù)的60維的特征輸入到步驟1-2)得到的第一個(gè)DNN模型中進(jìn)行識(shí)別,輸出層輸出待識(shí)別語(yǔ)音數(shù)據(jù)的識(shí)別結(jié)果,即該條語(yǔ)音數(shù)據(jù)分別對(duì)應(yīng)訓(xùn)練語(yǔ)音數(shù)據(jù)中每個(gè)說(shuō)話人的概率,輸出層每個(gè)節(jié)點(diǎn)的輸出分別對(duì)應(yīng)一個(gè)說(shuō)話人的概率;
2-3)設(shè)置判定閾值,判斷步驟2-2)的識(shí)別結(jié)果中是否存在概率大于判定閾值的結(jié)果:若有,則第一個(gè)DNN模型識(shí)別結(jié)果中輸出概率最大值所對(duì)應(yīng)的說(shuō)話人即為該條待識(shí)別語(yǔ)音數(shù)據(jù)的說(shuō)話人,識(shí)別結(jié)束;若沒(méi)有,則轉(zhuǎn)入步驟2-4);
2-4)若步驟2-3)的識(shí)別結(jié)果中沒(méi)有概率大于判定閾值的結(jié)果,則對(duì)該條待識(shí)別語(yǔ)音數(shù)據(jù)使用第二個(gè)DNN模型進(jìn)行第二次識(shí)別;第二個(gè)DNN模型識(shí)別結(jié)果中輸出概率最大值所對(duì)應(yīng)的說(shuō)話人即為該條待識(shí)別語(yǔ)音數(shù)據(jù)的說(shuō)話人,識(shí)別結(jié)束。
本發(fā)明的特點(diǎn)及有益效果在于:
與現(xiàn)有技術(shù)相比,本發(fā)明的第一個(gè)DNN模型對(duì)說(shuō)話人之間的宏觀特征進(jìn)行建模,第二個(gè)DNN模型對(duì)說(shuō)話人之間的微觀特征進(jìn)行建模。本發(fā)明方法增加了對(duì)不同說(shuō)話人易混語(yǔ)音數(shù)據(jù)的鑒別性,具有很好的系統(tǒng)穩(wěn)定性,同時(shí)考慮了宏觀特征和微觀特征,可以提高說(shuō)話人識(shí)別的準(zhǔn)確率。
附圖說(shuō)明
圖1是本發(fā)明方法的流程圖。
圖2是本發(fā)明實(shí)施例中的第一個(gè)DNN模型結(jié)構(gòu)圖。
圖3是本發(fā)明實(shí)施例中的第二個(gè)DNN模型結(jié)構(gòu)圖。
具體實(shí)施方式
本發(fā)明提出的一種基于二次建模的說(shuō)話人識(shí)別方法,下面結(jié)合附圖和具體實(shí)施例進(jìn)一步詳細(xì)說(shuō)明如下。
本發(fā)明提出的一種基于二次建模的說(shuō)話人識(shí)別方法,分為為模型訓(xùn)練階段和說(shuō)話人識(shí)別階段兩個(gè)階段;在模型訓(xùn)練階段,獲取所有待識(shí)別說(shuō)話人的訓(xùn)練語(yǔ)音數(shù)據(jù)并預(yù)處理;根據(jù)訓(xùn)練語(yǔ)音數(shù)據(jù)訓(xùn)練得到第一個(gè)DNN模型;利用第一個(gè)DNN模型,對(duì)訓(xùn)練語(yǔ)音數(shù)據(jù)進(jìn)行識(shí)別,提取易混語(yǔ)音數(shù)據(jù);根據(jù)易混語(yǔ)音數(shù)據(jù)訓(xùn)練得到第二個(gè)DNN模型;在說(shuō)話人識(shí)別階段,獲取待識(shí)別語(yǔ)音數(shù)據(jù)并預(yù)處理;利用第一個(gè)DNN模型對(duì)待識(shí)別語(yǔ)音數(shù)據(jù)進(jìn)行識(shí)別,若識(shí)別概率大于判定閾值,則識(shí)別結(jié)果中輸出概率最大值所對(duì)應(yīng)的說(shuō)話人為該條待識(shí)別語(yǔ)音數(shù)據(jù)的說(shuō)話人;否則通過(guò)第二個(gè)DNN模型對(duì)待識(shí)別語(yǔ)音數(shù)據(jù)進(jìn)行第二次識(shí)別,識(shí)別結(jié)果中輸出概率最大值所對(duì)應(yīng)的說(shuō)話人為該條待識(shí)別語(yǔ)音數(shù)據(jù)的說(shuō)話人。該方法流程圖如圖1所示,包括以下步驟:
1)模型訓(xùn)練階段;具體包括以下步驟:
1-1)獲取所有待識(shí)別說(shuō)話人的訓(xùn)練語(yǔ)音數(shù)據(jù),且每條訓(xùn)練語(yǔ)音數(shù)據(jù)所對(duì)應(yīng)的說(shuō)話人為已知,獲取方式可以為現(xiàn)場(chǎng)錄音或電話錄音;對(duì)獲取的訓(xùn)練語(yǔ)音數(shù)據(jù)進(jìn)行預(yù)處理,提取所有訓(xùn)練語(yǔ)音數(shù)據(jù)對(duì)應(yīng)的梅爾倒譜特征,并計(jì)算梅爾倒譜特征的一階、二階導(dǎo)數(shù),共60維;
1-2)建立第一個(gè)DNN模型并進(jìn)行訓(xùn)練,具體包括以下步驟:
1-2-1)設(shè)置第一個(gè)DNN模型的層數(shù)和節(jié)點(diǎn)數(shù);
第一個(gè)DNN模型分為輸入層,隱含層和輸出層三個(gè)層次;輸入層對(duì)應(yīng)訓(xùn)練語(yǔ)音數(shù)據(jù)的特征,輸入層節(jié)點(diǎn)數(shù)為步驟1-1)得到的訓(xùn)練語(yǔ)音數(shù)據(jù)的梅爾倒譜特征及其一階、二階導(dǎo)數(shù)共60維,則輸入層節(jié)點(diǎn)數(shù)設(shè)置為60個(gè);輸出層對(duì)應(yīng)各個(gè)說(shuō)話人的概率,輸出層節(jié)點(diǎn)數(shù)為所有待識(shí)別說(shuō)話人的個(gè)數(shù),每個(gè)節(jié)點(diǎn)輸出分別對(duì)應(yīng)每個(gè)說(shuō)話人的概率;隱含層主要用于自動(dòng)提取不同層次的特征,隱含層的層數(shù)和節(jié)點(diǎn)數(shù)根據(jù)需要及經(jīng)驗(yàn)設(shè)定,一般設(shè)置隱含層層數(shù)為3-5層;每層隱含層的節(jié)點(diǎn)數(shù)代表該層隱含層提取的特征的維度,中間位置的隱含層節(jié)點(diǎn)數(shù)一般設(shè)置為300-500個(gè),其他隱含層節(jié)點(diǎn)數(shù)一般設(shè)置為1000-2000個(gè);
1-2-2)對(duì)第一個(gè)DNN模型進(jìn)行訓(xùn)練,得到第一個(gè)DNN模型參數(shù);
根據(jù)所有待識(shí)別的說(shuō)話人的訓(xùn)練語(yǔ)音數(shù)據(jù)的梅爾倒譜特征及其一階、二階導(dǎo)數(shù),對(duì)第一個(gè)DNN模進(jìn)行訓(xùn)練,模型參數(shù)包括相鄰兩層的連接權(quán)重和每個(gè)節(jié)點(diǎn)的偏置;先進(jìn)行非監(jiān)督訓(xùn)練再進(jìn)行監(jiān)督訓(xùn)練:非監(jiān)督訓(xùn)練時(shí)把第一個(gè)DNN模型中每相鄰的兩層,當(dāng)成一個(gè)受限玻爾茲曼機(jī),用對(duì)比散度(CD)算法依次訓(xùn)練所有的受限玻爾茲曼機(jī),得到第一個(gè)DNN模型參數(shù)的初始值;進(jìn)行監(jiān)督訓(xùn)練時(shí),使用非監(jiān)督訓(xùn)練得到的第一個(gè)DNN模型參數(shù)的初始值,利用后向傳播算法對(duì)第一個(gè)DNN模型參數(shù)進(jìn)行精確調(diào)整,最后得到第一個(gè)DNN模型參數(shù);
1-3)提取易混語(yǔ)音數(shù)據(jù);
根據(jù)步驟1-2)訓(xùn)練得到的第一個(gè)DNN模型,對(duì)所有待識(shí)別的說(shuō)話人的訓(xùn)練語(yǔ)音數(shù)據(jù)進(jìn)行識(shí)別并設(shè)定閾值,根據(jù)經(jīng)驗(yàn),閾值范圍一般設(shè)為0.7-0.9;如果一條訓(xùn)練語(yǔ)音數(shù)據(jù)的識(shí)別結(jié)果中該條訓(xùn)練語(yǔ)音數(shù)據(jù)對(duì)應(yīng)的說(shuō)話人的概率小于設(shè)定的閾值,則說(shuō)明該條語(yǔ)音數(shù)據(jù)的識(shí)別結(jié)果區(qū)分性不好,將此條訓(xùn)練語(yǔ)音數(shù)據(jù)提取作為易混語(yǔ)音數(shù)據(jù),用于第二個(gè)DNN模型的訓(xùn)練;若識(shí)別結(jié)果大于等于設(shè)定的閾值,則說(shuō)明該條訓(xùn)練語(yǔ)音數(shù)據(jù)易于區(qū)分,不作為易混語(yǔ)音數(shù)據(jù);
1-4)建立第二個(gè)DNN模型并進(jìn)行訓(xùn)練,具體包括以下步驟:
1-4-1)設(shè)置第二個(gè)DNN模型的層數(shù)和節(jié)點(diǎn)數(shù);
第二個(gè)DNN模型分為輸入層,隱含層和輸出層三個(gè)層次;輸入層對(duì)應(yīng)訓(xùn)練語(yǔ)音數(shù)據(jù)的特征,輸入層節(jié)點(diǎn)數(shù)為步驟1-3)提取的易混語(yǔ)音數(shù)據(jù)的梅爾倒譜特征及其一階、二階導(dǎo)數(shù),共60維,則輸入層節(jié)點(diǎn)數(shù)設(shè)置為60個(gè);輸出層對(duì)應(yīng)各個(gè)說(shuō)話人的概率,輸出層節(jié)點(diǎn)數(shù)為易混語(yǔ)音數(shù)據(jù)中所包含的說(shuō)話人個(gè)數(shù),每個(gè)節(jié)點(diǎn)輸出分別對(duì)應(yīng)每個(gè)說(shuō)話人的概率;隱含層一般設(shè)置層數(shù)為3-5層,中間位置的隱含層節(jié)點(diǎn)數(shù)一般設(shè)置為300-500個(gè),其他隱含層節(jié)點(diǎn)數(shù)一般設(shè)置為1000-2000個(gè);
1-4-2)對(duì)第二個(gè)DNN模型進(jìn)行訓(xùn)練,得到第二個(gè)DNN模型參數(shù);
根據(jù)步驟1-3)得到的易混語(yǔ)音數(shù)據(jù)的梅爾倒譜特征及其一階、二階導(dǎo)數(shù),對(duì)第二個(gè)DNN模進(jìn)行訓(xùn)練,模型參數(shù)包括相鄰兩層的連接權(quán)重和每個(gè)節(jié)點(diǎn)的偏置;先進(jìn)行非監(jiān)督訓(xùn)練再進(jìn)行監(jiān)督訓(xùn)練:非監(jiān)督訓(xùn)練時(shí)把第二個(gè)DNN模型中每相鄰的兩層當(dāng)成一個(gè)受限玻爾茲曼機(jī),用對(duì)比散度(CD)算法依次訓(xùn)練所有的受限玻爾茲曼機(jī),得到第二個(gè)DNN模型參數(shù)的初始值;進(jìn)行監(jiān)督訓(xùn)練時(shí),使用非監(jiān)督訓(xùn)練得到的第二個(gè)DNN模型參數(shù)的初始值,利用后向傳播算法對(duì)第二個(gè)DNN模型參數(shù)進(jìn)行精確調(diào)整,最后得到第二個(gè)DNN模型參數(shù);
2)說(shuō)話人識(shí)別階段,具體包括以下步驟:
2-1)獲取所需識(shí)別的說(shuō)話人中的某一個(gè)人的待識(shí)別語(yǔ)音數(shù)據(jù),對(duì)待識(shí)別的語(yǔ)音數(shù)據(jù)進(jìn)行預(yù)處理,提取待識(shí)別語(yǔ)音數(shù)據(jù)的梅爾倒譜特征及其一階、二階導(dǎo)數(shù),共60維;
2-2)將步驟2-1)得到待識(shí)別語(yǔ)音數(shù)據(jù)的60維的特征輸入到步驟1-2)得到的第一個(gè)DNN模型中進(jìn)行識(shí)別,輸出層輸出待識(shí)別語(yǔ)音數(shù)據(jù)的識(shí)別結(jié)果,即該條語(yǔ)音數(shù)據(jù)分別對(duì)應(yīng)訓(xùn)練語(yǔ)音數(shù)據(jù)中每個(gè)說(shuō)話人的概率,輸出層每個(gè)節(jié)點(diǎn)的輸出分別對(duì)應(yīng)一個(gè)說(shuō)話人的概率;
2-3)設(shè)置判定閾值,判斷步驟2-2)的識(shí)別結(jié)果中是否存在概率大于判定閾值的結(jié)果:若有,則第一個(gè)DNN模型識(shí)別結(jié)果中輸出概率最大值所對(duì)應(yīng)的說(shuō)話人即為該條待識(shí)別語(yǔ)音數(shù)據(jù)的說(shuō)話人,識(shí)別結(jié)束;若沒(méi)有,則轉(zhuǎn)入步驟2-4);
2-4)若步驟2-3)的識(shí)別結(jié)果中沒(méi)有概率大于判定閾值的結(jié)果,則對(duì)該條待識(shí)別語(yǔ)音數(shù)據(jù)使用第二個(gè)DNN模型進(jìn)行第二次識(shí)別;第二個(gè)DNN模型識(shí)別結(jié)果中輸出概率最大值所對(duì)應(yīng)的說(shuō)話人即為該條待識(shí)別語(yǔ)音數(shù)據(jù)的說(shuō)話人,識(shí)別結(jié)束。
下面結(jié)合一個(gè)具體實(shí)施例對(duì)本發(fā)明方法進(jìn)一步詳細(xì)說(shuō)明如下。值得說(shuō)明的是,下文所描述的實(shí)施例僅僅是本發(fā)明的一個(gè)實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有付出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
該實(shí)施例中需要識(shí)別800個(gè)說(shuō)話人,具體步驟如下:
1)模型訓(xùn)練階段,具體包括以下步驟:
1-1)獲取所需識(shí)別的800個(gè)說(shuō)話人的訓(xùn)練語(yǔ)音數(shù)據(jù),且每條訓(xùn)練語(yǔ)音數(shù)據(jù)所對(duì)應(yīng)的說(shuō)話人為已知的,獲取方式為電話錄音;對(duì)獲取的訓(xùn)練語(yǔ)音數(shù)據(jù)(即電話錄音)進(jìn)行預(yù)處理,提取所有訓(xùn)練語(yǔ)音數(shù)據(jù)對(duì)應(yīng)的梅爾倒譜特征,并計(jì)算梅爾倒譜特征的一階、二階導(dǎo)數(shù),共60維;
1-2)建立第一個(gè)DNN模型并進(jìn)行訓(xùn)練,具體包括以下步驟:
1-2-1)設(shè)置第一個(gè)DNN模型的層數(shù)和節(jié)點(diǎn)數(shù);
第一個(gè)DNN模型結(jié)構(gòu)如圖2所示:第一個(gè)DNN模型總共有7層,第1層為輸入層,第2-6層為隱含層(共5層隱含層),第7層為輸出層。其中交叉線表示節(jié)點(diǎn)的連接關(guān)系,第一個(gè)DNN模型相鄰兩層的節(jié)點(diǎn)之間是全連接的,而每個(gè)層內(nèi)的節(jié)點(diǎn)之間是無(wú)連接的。第一個(gè)DNN模型的輸入層對(duì)應(yīng)訓(xùn)練語(yǔ)音數(shù)據(jù)的特征,本實(shí)施例為步驟1-1)得到的訓(xùn)練語(yǔ)音數(shù)據(jù)的梅爾倒譜特征及其一階、二階導(dǎo)數(shù),共60維,則輸入層節(jié)點(diǎn)數(shù)設(shè)置為N1=60個(gè);輸出層對(duì)應(yīng)各個(gè)說(shuō)話人的概率,輸出層的節(jié)點(diǎn)數(shù)等于所需識(shí)別的說(shuō)話人個(gè)數(shù),為N7=800個(gè),每個(gè)節(jié)點(diǎn)輸出分別對(duì)應(yīng)每個(gè)說(shuō)話人的概率;隱含層主要用于自動(dòng)提取不同層次的特征,本實(shí)施例隱含層層數(shù)設(shè)置為5層(一般設(shè)置為3-5層),隱含層所提的特征從第2層的低級(jí)抽象逐漸向第6層的高級(jí)抽象過(guò)渡。每層隱含層的節(jié)點(diǎn)數(shù)代表該層隱含層提取的特征的維度,本實(shí)施例中中間位置的隱含層(即第4層)的節(jié)點(diǎn)數(shù)設(shè)置為N4=400個(gè)(一般設(shè)置為300-500個(gè)),其余隱含層的節(jié)點(diǎn)數(shù)N2、N3、N5和N6設(shè)置為1024個(gè)(一般設(shè)置為1000-2000個(gè)。
1-2-2)對(duì)第一個(gè)DNN模型進(jìn)行訓(xùn)練,得到第一個(gè)DNN模型參數(shù);
根據(jù)800個(gè)待識(shí)別的說(shuō)話人的訓(xùn)練語(yǔ)音數(shù)據(jù)的梅爾倒譜特征及其一階、二階導(dǎo)數(shù),對(duì)第一個(gè)DNN模進(jìn)行訓(xùn)練,模型參數(shù)包括相鄰兩層的連接權(quán)重:
其中,Wi,i+1為Ni行Ni+1列的矩陣,其中表示第一個(gè)DNN模型第i層中第m個(gè)節(jié)點(diǎn)和第i+1層中第n個(gè)節(jié)點(diǎn)的連接權(quán)重。
每個(gè)節(jié)點(diǎn)的偏置:
其中,表示第一個(gè)DNN模型第j層中第k個(gè)節(jié)點(diǎn)的偏置。
先進(jìn)行非監(jiān)督訓(xùn)練再進(jìn)行監(jiān)督訓(xùn)練。非監(jiān)督訓(xùn)練時(shí)把第一個(gè)DNN模型中每相鄰的兩層,即圖2中的第1層和第2層、第2層和第3層、……、第6層和第7層,當(dāng)成一個(gè)受限玻爾茲曼機(jī),共有6個(gè)受限玻爾茲曼機(jī)。用對(duì)比散度(CD)算法逐個(gè)進(jìn)行訓(xùn)練,即先訓(xùn)練第1層和第2層組成的受限玻爾茲曼機(jī),得到第一個(gè)DNN模型參數(shù)中的B1、B2、W12;接著訓(xùn)練第2層和第3層組成的受限玻爾茲曼機(jī),得到第一個(gè)DNN模型參數(shù)中的B3、W23;依次訓(xùn)練所有的受限玻爾茲曼機(jī),得到第一個(gè)DNN模型參數(shù)的初始值;進(jìn)行監(jiān)督訓(xùn)練時(shí),使用非監(jiān)督訓(xùn)練得到的第一個(gè)DNN模型參數(shù)的初始值,利用后向傳播算法對(duì)第一個(gè)DNN模型參數(shù)進(jìn)行精確調(diào)整,最后得到第一個(gè)DNN模型參數(shù)。
1-3)提取易混語(yǔ)音數(shù)據(jù);
根據(jù)步驟1-2)訓(xùn)練得到的第一個(gè)DNN模型,對(duì)800個(gè)說(shuō)話人的所有訓(xùn)練語(yǔ)音數(shù)據(jù)進(jìn)行識(shí)別。設(shè)定閾值為0.85(一般設(shè)置為0.7-0.9)。如果一條訓(xùn)練語(yǔ)音數(shù)據(jù)的識(shí)別結(jié)果中該條訓(xùn)練語(yǔ)音數(shù)據(jù)對(duì)應(yīng)的說(shuō)話人的概率小于設(shè)定的閾值,則說(shuō)明該條訓(xùn)練語(yǔ)音數(shù)據(jù)識(shí)別結(jié)果區(qū)分性不好,將此條訓(xùn)練語(yǔ)音數(shù)據(jù)作為易混語(yǔ)音數(shù)據(jù),用于第二個(gè)DNN模型的訓(xùn)練;若識(shí)別結(jié)果大于等于設(shè)定的閾值,則說(shuō)明該條訓(xùn)練語(yǔ)音數(shù)據(jù)易于區(qū)分,不作為易混語(yǔ)音數(shù)據(jù);
1-4)建立第二個(gè)DNN模型并進(jìn)行訓(xùn)練,具體包括以下步驟:
1-4-1)設(shè)置第二個(gè)DNN模型的層數(shù)和節(jié)點(diǎn)數(shù);
第二個(gè)DNN模型結(jié)構(gòu)如圖3所示:第二個(gè)DNN模型總共有5層,第1層為輸入層,第2-4層為隱含層(共3層隱含層),第5層為輸出層。其中交叉線表示節(jié)點(diǎn)的連接關(guān)系,第二個(gè)DNN模型相鄰兩層的節(jié)點(diǎn)之間是全連接的,而每個(gè)層內(nèi)的節(jié)點(diǎn)之間是無(wú)連接的。第二個(gè)DNN模型的輸入層對(duì)應(yīng)語(yǔ)音數(shù)據(jù)的特征,本實(shí)施例為步驟1-3)提取的易混語(yǔ)音數(shù)據(jù)的梅爾倒譜特征及其一階、二階導(dǎo)數(shù),共60維,則第二個(gè)DNN模型輸入層節(jié)點(diǎn)個(gè)數(shù)設(shè)置為N1=60;輸出層對(duì)應(yīng)各個(gè)說(shuō)話人的概率,輸出層的節(jié)點(diǎn)數(shù)為易混語(yǔ)音數(shù)據(jù)中所包含的說(shuō)話人個(gè)數(shù),此實(shí)施例中也為800個(gè);,由于訓(xùn)練數(shù)據(jù)對(duì)應(yīng)的說(shuō)話人是已知的,而易混語(yǔ)音數(shù)據(jù)又是從訓(xùn)練數(shù)據(jù)中提取出來(lái)的,所以我們可以知道每幀易混語(yǔ)音數(shù)據(jù)對(duì)應(yīng)的說(shuō)話人,從而可以計(jì)算易混語(yǔ)音數(shù)據(jù)中總的說(shuō)話人個(gè)數(shù)。隱含層的層數(shù)設(shè)置為3層(一般設(shè)置為3-5層),中間位置的隱含層(即第3層)的節(jié)點(diǎn)個(gè)數(shù)設(shè)置為N3=300(一般設(shè)置為300-500個(gè)),其余隱含層的節(jié)點(diǎn)數(shù)N2,N4設(shè)置為1024個(gè)(一般設(shè)置為1000-2000)。
1-4-2)對(duì)第二個(gè)DNN模型進(jìn)行訓(xùn)練,得到模型參數(shù);
根據(jù)步驟1-3)得到的易混語(yǔ)音數(shù)據(jù)的梅爾倒譜特征及其一階、二階導(dǎo)數(shù),對(duì)第二個(gè)DNN模進(jìn)行訓(xùn)練。第二個(gè)DNN模型的參數(shù)包括相鄰兩層的連接權(quán)重Wi,i+1(i=1,…,4)和每個(gè)節(jié)點(diǎn)的偏置Bj(j=1,…,5)。先進(jìn)行非監(jiān)督訓(xùn)練再進(jìn)行監(jiān)督訓(xùn)練。非監(jiān)督訓(xùn)練時(shí)把第二個(gè)DNN模型中每相鄰的兩層,即圖3中的第1層和第2層、第2層和第3層、……、第4層和第5層,當(dāng)成一個(gè)受限玻爾茲曼機(jī),共4個(gè)受限玻爾茲曼機(jī),用對(duì)比散度(CD)算法逐層進(jìn)行訓(xùn)練,即先訓(xùn)練第1層和第2層組成的受限玻爾茲曼機(jī),得到第二個(gè)DNN模型參數(shù)中的B1、B2、W12;接著訓(xùn)練第2層和第3層組成的受限玻爾茲曼機(jī),得到第二個(gè)DNN模型參數(shù)中的B3、W23;依次訓(xùn)練所有的受限玻爾茲曼機(jī),得到第二個(gè)DNN模型參數(shù)的初始值。進(jìn)行監(jiān)督訓(xùn)練時(shí),使用非監(jiān)督訓(xùn)練得到的第二個(gè)DNN模型參數(shù)的初始值,利用后向傳播算法對(duì)第二個(gè)DNN模型參數(shù)進(jìn)行精確調(diào)整,最后得到第二個(gè)DNN模型參數(shù)。
上述步驟為模型訓(xùn)練階段,得到兩個(gè)DNN模型后即可進(jìn)行說(shuō)話人識(shí)別;
2)說(shuō)話人識(shí)別階段,具體包括以下步驟:
2-1)獲取所需識(shí)別的800個(gè)說(shuō)話人中的某一個(gè)人的待識(shí)別語(yǔ)音數(shù)據(jù),待識(shí)別語(yǔ)音數(shù)據(jù)也通過(guò)電話錄音得到,但該語(yǔ)音數(shù)據(jù)對(duì)應(yīng)的說(shuō)話人未知,需要通過(guò)本發(fā)明提出的方法對(duì)說(shuō)話人進(jìn)行識(shí)別。待識(shí)別語(yǔ)音數(shù)據(jù)與訓(xùn)練語(yǔ)音數(shù)據(jù)是不同的語(yǔ)音。對(duì)待識(shí)別的語(yǔ)音數(shù)據(jù)進(jìn)行預(yù)處理,提取待識(shí)別語(yǔ)音數(shù)據(jù)的梅爾倒譜特征及其一階、二階導(dǎo)數(shù),共60維。
2-2)將步驟2-1)得到待識(shí)別語(yǔ)音數(shù)據(jù)的60維的特征輸入到第一個(gè)DNN模型中進(jìn)行識(shí)別,輸出層輸出待識(shí)別語(yǔ)音數(shù)據(jù)的識(shí)別結(jié)果,即該條語(yǔ)音數(shù)據(jù)分別對(duì)應(yīng)這800個(gè)人的概率,輸出層每個(gè)節(jié)點(diǎn)的輸出分別對(duì)應(yīng)每個(gè)說(shuō)話人的概率,共800個(gè)。
2-3)設(shè)置判定閾值,判斷識(shí)別結(jié)果中的800個(gè)概率是否有大于閾值0.85的結(jié)果:如果有,則將這個(gè)概率所對(duì)應(yīng)的說(shuō)話人判斷為該條待識(shí)別語(yǔ)音數(shù)據(jù)的說(shuō)話人,識(shí)別結(jié)束;否則轉(zhuǎn)入步驟2-4);
2-4)如果步驟2-3)的識(shí)別結(jié)果中沒(méi)有概率大于判定閾值0.85的,則對(duì)該條待識(shí)別的語(yǔ)音數(shù)據(jù)使用第二個(gè)DNN模型進(jìn)行第二次識(shí)別;根據(jù)第二個(gè)DNN模型的識(shí)別結(jié)果,輸出概率最大值所對(duì)應(yīng)的說(shuō)話人即判斷為該條待測(cè)語(yǔ)音數(shù)據(jù)的說(shuō)話人,識(shí)別結(jié)束。
本發(fā)明所述方法,本領(lǐng)域普通技術(shù)人員可以理解為,上述說(shuō)話人識(shí)別的方法可以通過(guò)程序來(lái)完成的,所述的程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中。
以上所述的僅為本發(fā)明的一個(gè)具體實(shí)施例而已,顯然不能以此來(lái)限定本發(fā)明之權(quán)利范圍,因此依本發(fā)明權(quán)利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。