郭皓婷, 鄭 方,羅燦華,李銀國
(1. 重慶郵電大學(xué) 自動化學(xué)院,重慶 400065;
2. 清華信息科學(xué)技術(shù)國家實驗室技術(shù)創(chuàng)新與開發(fā)部 語音和語言技術(shù)中心,北京 100084)
在嵌入式平臺上實現(xiàn)文本相關(guān)說話人識別系統(tǒng)是有很大困難的,這是因為嵌入式平臺的硬件條件不足以達(dá)到運(yùn)算量大的說話人識別系統(tǒng)的實時處理要求。對于基于動態(tài)時間彎折(Dynamic Time Warping,DTW)算法的文本相關(guān)說話人識別系統(tǒng)來說,在普通PC機(jī)器上很容易達(dá)到實時的效果,但當(dāng)將其移植到多普達(dá)掌上電腦P800(CPU主頻僅為201MHz)上時,訓(xùn)練和識別速度就會很慢,很難滿足實時性要求。在P800上,一般對于一個內(nèi)容為三個中文字的語音(有效語音數(shù)約為100幀),訓(xùn)練時間需要10秒鐘以上,而識別時間需要5秒鐘以上。
為了使文本相關(guān)說話人識別系統(tǒng)在嵌入式平臺上得以實用,必須在保證一定識別精度的前提下,提高訓(xùn)練和識別速度。目前,國內(nèi)外針對嵌入式文本相關(guān)的說話人識別實現(xiàn)的研究,鮮有與運(yùn)算速度相關(guān)的。
考慮到文本相關(guān)說話人識別本質(zhì)上有兩個部分,一是對說話人身份的識別(傳統(tǒng)的說話人識別),一是對內(nèi)容的識別(文本相關(guān)性)?;诖?,有理由認(rèn)為語音識別的一些技術(shù)可以借鑒。另一方面,分析基于DTW算法的說話人識別,不難看出,時間主要耗費(fèi)在兩個模板(特征序列)之間近乎逐幀的匹配計算上。目前最流行和最具有效果的說話人識別莫不是基于高斯混合模型(Gaussian Mixture Model,GMM),而語音識別則莫不是基于隱馬爾可夫模型(Hidden Markov Model,HMM)的,這里的一個重要概念就是狀態(tài)以及狀態(tài)內(nèi)特征空間的混合高斯描述方法。因此,引入狀態(tài)對文本相關(guān)的說話人識別不失為一種可行的方法。
鑒于語音識別中的非線性分塊(Non-Linear Partition,NLP)算法[1-4]對資源有限的語音識別有一定的效果,本文在研究NLP算法的基礎(chǔ)上提出了改進(jìn)的文本相關(guān)的說話人識別系統(tǒng)的建模和識別方式。實驗結(jié)果表明,基于NLP算法的說話人識別系統(tǒng)具有可接受的識別效果,且訓(xùn)練和識別速度有較大的提升。
NLP是這樣的一種算法,它根據(jù)語音特征信息能量的變化情況,將特征序列分為相對平穩(wěn)的幾塊。對不同的發(fā)音來說,語音特征信息的變化情況在時間軸上的分布不同,但對同一發(fā)音來說都存在著較好的穩(wěn)定性,這樣就起到了壓縮信息和時間規(guī)整的目的[1]。在實驗中,我們使用NLP算法劃分語音內(nèi)容為N塊,并且對劃分好的語音特征塊分別使用高斯模型來刻畫說話人的特性。這樣就兼顧了語音內(nèi)容和說話人的雙重特性。
NLP算法描述如下:
設(shè)有語音觀察序列X=(x1,…,xT),其中xt為K階特征矢量。定義語音特征變化信息為[1]:
1≤t≤T-1
(1)
其中W=(W1,…,WK)是距離加權(quán)矢量。定義平均變化信息:
(2)
則當(dāng)ni(1≤i≤N,令n0=0)滿足下式時:
(3)
以特征序列(xni-1+1~xni)作為第i塊,長度為ni-ni-1。每塊特征可以看作是文本相關(guān)的說話人模型的相同狀態(tài)的輸出。
文本相關(guān)的說話人識別系統(tǒng)的原理見圖1,整個過程包括訓(xùn)練和識別兩部分。
圖1 基于NLP算法的說話人識別系統(tǒng)框圖
在訓(xùn)練階段,首先提取特征矢量,并按照上述規(guī)則將訓(xùn)練語音的特征序列分為N塊,標(biāo)注為分塊1,分塊2,……分塊N,對每塊分別使用單高斯模型(Single Gaussian Model,SGM)建模。在識別階段,按照同樣的方法將識別語音的特征序列分成N塊,每塊在相應(yīng)的訓(xùn)練模型上面打分,最終得到最后分?jǐn)?shù)。
在說話人識別系統(tǒng)中,常用的建模方式是高斯混合模型GMM[5]。GMM相當(dāng)于單狀態(tài)的隱馬爾可夫模型。它的結(jié)構(gòu)中蘊(yùn)含了基于事件的說話人識別模型,具有明確的物理意義[6]。在GMM中,每一個分量可以理解成用來描述一類具有相近聲學(xué)特征的語音事件,當(dāng)分量數(shù)足夠多時,可以用一個分量描述一個事件的分布。根據(jù)高斯函數(shù)的指數(shù)衰減特性和同說話人、同事件的幀間距離最小的假定,容易知道理想情況下,從描述一個事件的高斯分布生成屬于另一個事件的矢量的概率接近于零。
本實驗使用的模型是單高斯模型SGM,用它來表征說話人的信息。高斯密度函數(shù)用公式表示為:
其中X=(x1,…,xT)
(4)
我們假設(shè)每一維的特征矢量都是相互獨(dú)立的,只考慮Σ為對角矩陣的情況。這樣,訓(xùn)練的任務(wù)就是計算每塊語音中的兩個參數(shù):矢量中心μ=(μ1,μ2…,μK)和對角協(xié)方差矩陣Σ=(Σ1,Σ2…ΣK)。
訓(xùn)練的具體步驟如下:
1. 對每幀訓(xùn)練語音計算得到其特征向量,從而獲得整段語音對應(yīng)的特征序列,對得到的特征序列按照NLP分塊原則將其分成N塊;
2. 對每個訓(xùn)練語音,從i=1到N進(jìn)行分塊訓(xùn)練,第i塊語音的模型即為:
μi=(μi1,μi2…,μiK)
Σi=(σi1,σi2…,σiK)
其中:
(5)
(6)
3. 當(dāng)訓(xùn)練多次的時候,我們可以對模型進(jìn)行簡單的處理:假如,第一次訓(xùn)練語音的第一塊有m11幀,模型為(μ11,Σ11);第N塊有m1N幀,模型為(μ1N,Σ1N)。第二次訓(xùn)練語音的第N塊語音有m2N幀,模型為(μ2N,Σ2N);這樣,兩遍訓(xùn)練的新模型的第i塊語音參數(shù)即為:
(7)
(8)
多次訓(xùn)練的方法以此類推。最終可以將一個人的多次語音訓(xùn)練成一個模型。
原先采用的識別算法大都采取逐幀比較的方法,或者采取限制路徑、剪枝算法等手段。本文采取的打分策略是將測試語音的特征矢量序列劃分為與訓(xùn)練時相同的N塊,每一塊分別在對應(yīng)的訓(xùn)練模板上打分。
識別過程如下:
1. 測試語音和訓(xùn)練語音如果幀數(shù)差別太大就直接拒絕。
2. 對待識別語音O=(o1,…,oT),將其非線性分為N塊,按照下面的公式計算它的得分:
(9)
3. 公式(9)的結(jié)果沒有考慮到測試語音的幀數(shù)對識別結(jié)果的影響。如果按照公式(9)的結(jié)論,幀數(shù)越多,分?jǐn)?shù)會越大,這個顯然是不合理的,為此,對識別分?jǐn)?shù)做歸一化處理:
(10)
(10)式計算的得分即為識別的最終分?jǐn)?shù),歸一化的處理同時也對每塊語音的幀數(shù)進(jìn)行了綜合。
對于確認(rèn)系統(tǒng)而言,需要判斷最終分?jǐn)?shù)與規(guī)定閾值之間的關(guān)系:如果得分大于閾值則予以確認(rèn),否則予以拒絕。閾值的設(shè)定要看實際應(yīng)用中系統(tǒng)對安全的要求。
為了驗證算法的性能,我們進(jìn)行了三組實驗。實驗選用的數(shù)據(jù)庫介紹如下:
在實驗室環(huán)境下,由40個人發(fā)音10個文本,每個文本每人發(fā)5遍,其中,女性22人,男性18人。每個文本包含兩個中文字或三個中文字的語音內(nèi)容,例如:“中國”,“您好”,“馬拉松”等。兩個中文字和三個中文字的語音各有5個。采樣率是16KHz,特征矢量采用是16維的MFCC和16維的一階MFCC差分。
實驗1:分塊準(zhǔn)則中權(quán)重的選擇
NLP算法的關(guān)鍵在于分塊,分塊準(zhǔn)則的優(yōu)劣直接影響著系統(tǒng)的性能。我們分塊的依據(jù)是根據(jù)特征間的變化,按照公式(1)劃分的。可以看出,公式(1)中的權(quán)重Wk對分塊合理與否起著至關(guān)重要的作用。在我們的實驗中,權(quán)重的選擇有以下幾種[7](1≤k≤K):
1. 索引加權(quán):Wk=k2;
3. 對數(shù)索引加權(quán):Wk=[ln(ck+1)]2,常數(shù)c=2,1或者1/2;
實驗中我們選擇分塊數(shù)M=4,驗證不同權(quán)重選擇對系統(tǒng)性能的影響,測試結(jié)果見表1。
表1 不同權(quán)重對系統(tǒng)的影響(訓(xùn)練1次)/%
表1的結(jié)果驗證了每一維的倒譜系數(shù)所含的有用信息是不一樣的,所以對各維系數(shù)要使用不同的權(quán)重。從表1中可以看到,方差倒數(shù)加權(quán)(即系數(shù)4)取得了最好的性能,因此在以后的實驗中,分塊權(quán)重的選擇就以此為標(biāo)準(zhǔn)。
實驗2 :訓(xùn)練次數(shù)對識別結(jié)果的影響
由于所用的數(shù)據(jù)庫文本只有兩個中文字和三個中文字的情況,訓(xùn)練語音非常短,這樣就會造成模型刻畫的不精確?,F(xiàn)在分別統(tǒng)計訓(xùn)練一次、訓(xùn)練兩次和訓(xùn)練三次的情況下系統(tǒng)的等錯誤率(Equal Error Rate, EER)。識別判決的準(zhǔn)則是,只有文本和說話人這兩個信息都匹配的時候才能接受,其余情況都予以拒絕。測試結(jié)果見表2。
表2 訓(xùn)練次數(shù)對系統(tǒng)的影響
按照這種判決準(zhǔn)則,則會出現(xiàn)四種錯誤:文本相同,說話人也相同的情況,系統(tǒng)予以拒絕(錯誤拒絕);文本相同,但是說話人不同的情況下,系統(tǒng)予以接受(錯誤接收);文本不同,說話人相同的情況下予以接受(錯誤接收);文本不同,說話人也不同的情況下予以接受(錯誤接收)。針對表2中訓(xùn)練次數(shù)為3的實驗,對系統(tǒng)錯誤類型的具體分析結(jié)果如表3所示:
表3 錯誤結(jié)果分析
表3中,第一種錯誤是錯誤拒絕(False Rejection),后三種錯誤都是錯誤接受(False Acceptance)。表中統(tǒng)計的比例,是相應(yīng)類型的錯誤個數(shù)占其試驗樣本總數(shù)的比例,分別對應(yīng)錯誤拒絕率或錯誤接受率。
從表2的結(jié)果可以看出,當(dāng)訓(xùn)練一次的情況,系統(tǒng)的性能并不理想。但是當(dāng)訓(xùn)練二次和三次的時候,系統(tǒng)的識別率得到很大的提高。我們分析其理由是,實驗選取的語音內(nèi)容只包括兩個或者三個中文字,時間只有一秒到兩秒,有效語音幀數(shù)則只有50—150幀,因此,一次訓(xùn)練獲得的模型,很可能由于有效語音幀數(shù)太少而訓(xùn)練得不夠充分。而當(dāng)訓(xùn)練次數(shù)增多時,對模型的刻畫會隨著參與訓(xùn)練的語音幀數(shù)的增加而更加充分,識別率的提高也是必然。在實際的使用過程中可以采用多次訓(xùn)練的方式提高系統(tǒng)的性能。但是由表3的結(jié)果可以看出,在訓(xùn)練次數(shù)增加的情況下,雖然對語音的刻畫越來越精確,但是說話人的個性特征卻沒有得到很好的突出,使得系統(tǒng)對說話人信息的判別不太準(zhǔn)確。
實驗3 :算法的時間開銷
我們引進(jìn)NLP的思想,就是希望通過壓縮信息和時間規(guī)整,以期達(dá)到提高系統(tǒng)運(yùn)行速度的目的。因為DTW算法以其簡單有效,小計算量而得到了廣泛的應(yīng)用,并且效果和HMM算法相差不大,因此,本論文的基線系統(tǒng),是采用了傳統(tǒng)的DTW算法的說話人識別系統(tǒng)。
時間消耗測試所用的平臺是多普達(dá)(dopod)掌上電腦P800的模擬器,P800的CPU主頻為201MHZ,其存儲空間為128M的ROM和64M的SDRAM。測試結(jié)果見表4:
表4 DTW和NLP算法時間消耗比較
表4的試驗結(jié)果是訓(xùn)練和識別時,每幀所消耗的時間。對于一個內(nèi)容為三中文字的短語語音來說,其有效幀數(shù)大約為100幀,那么其訓(xùn)練時間由大約12秒降低到大約3秒,速度提高了4倍;識別時間由大約4.5秒降低到大約2秒,速度提高了2.5倍。而且,對多遍訓(xùn)練的情況來說,基線系統(tǒng)由于訓(xùn)練了多個模型,導(dǎo)致訓(xùn)練和識別的時間會隨著訓(xùn)練次數(shù)增加而線性增長;而采用NLP的系統(tǒng)只保留整合后的一個模型,故識別時間隨著訓(xùn)練次數(shù)的增加幾乎沒有增長。由于多遍訓(xùn)練的普遍存在(為了提高識別性能),這大大增加了系統(tǒng)的實用性。
混合高斯模型能夠較好地刻畫說話人的特性,當(dāng)高斯混合數(shù)越多的情況下,刻畫也就越準(zhǔn)確。本實驗采取的是單高斯模型,所以對目標(biāo)說話人區(qū)分能力較弱,因此一個直觀的想法就是增加混合數(shù)目。但是,對于嵌入式應(yīng)用中訓(xùn)練遍數(shù)不多的情形,這必然引起訓(xùn)練數(shù)據(jù)不足的問題。一個解決的方法是引入通用背景模型(Universal Background Model, UBM)并利用自適應(yīng)算法進(jìn)行說話人模型訓(xùn)練。當(dāng)然,引進(jìn)UBM勢必會增加系統(tǒng)的時間開銷,因此我們計劃在未來的研究中,UBM的訓(xùn)練脫機(jī)完成,說話人模型的訓(xùn)練采用快速自適應(yīng)算法并僅取最大似然的前幾個高斯混合,這可以大大降低建模過程的時間消耗,而不至于影響說話人模型的描述精度。
[1] 蔣力. 基于概率統(tǒng)計模型的非特定人語音識別方法與系統(tǒng)的研究[D]. 北京:清華大學(xué),1989.11.
[2] 鄭方.非特定人連續(xù)數(shù)字識別方法與漢語語音數(shù)據(jù)庫的研究[D].北京:清華大學(xué),1992.
[3] 鄭方,吳文虎,方棣棠. CDCPM 及其在語音識別中的應(yīng)用[J]. 軟件學(xué)報, 1996, 7:69-75.
[4] Thomas Fang Zheng, Chai Haixin, Shi Zhijie. A real-world speech recognition system based on CDCPMs[C]//Int’l Conf. on Computer Processing of Oriental Languages (ICCPOL’97), 1997, 1: 204-207.
[5] Reynolds A. Reynolds. Speaker identification and verification using Guassian mixture speaker models[C]//Speech Communication. 1995, 17(1-2): 91-108.
[6] N. Z. Tisby. On the application of mixture AR hidden Markov models to text independent speaker recognition[C]//IEEE Trans. Signal Processing, March 1991, 39(3): 563-570.
[7] Zheng, F., Wu, W.-H., Fang, L.-T., A Log-Index Weight Cepstral Distance Measure for Speech Recognition [J]. J. of Computer Science and Technology (JCST), 1997, 12(2):177-184.