王德欣 卓嘎 張瑞
摘要
在語音識別的領(lǐng)域內(nèi),BP神經(jīng)網(wǎng)絡(luò)和VQ有著廣泛的運用。本文中主要內(nèi)容為:采用VQ技術(shù)中LBG來實現(xiàn)對藏文字母的識別,并使用MATLAB R2014a進(jìn)行算法的仿真。此算法對已經(jīng)采集好的藏語30個字母的語音進(jìn)行了語音預(yù)處理和端點檢測,并提取了MFCC特征參數(shù),隨后開始進(jìn)行識別工作的開展。
【關(guān)鍵詞】語音識別 矢量量化 LBG算法
1 矢量量化
1.1 矢量量化概述
矢量量化的步驟是:首先,通過k個樣本值在k維空間Rk中形成矢量,然后量化在第一步驟中形成的數(shù)據(jù)。接著,通過一些適當(dāng)?shù)母纳?,盡可能的降低失真和量化噪聲。與標(biāo)量量化相比,矢量量化具有顯著的數(shù)字速率的降低。矢量量化可以看作是一種壓縮方法,是不可逆的,它可以有效地利用矢量中各分量的相互特性(線性相關(guān)、非線性相關(guān)等),以消除冗余度,具備比特率低、譯碼簡單、失真較小等優(yōu)點。矢量量化的理論基礎(chǔ)是香農(nóng)的速率失真理論。
1.2 率一失真理論
速率失真理論是通過給定的失真D,計算率一失真函數(shù)R(D),并且R(D)是:給定的失真條件可以達(dá)到的最小速率(按維度計算);或者,他的反函數(shù)可以計算,并且將D(R)稱為失真率函數(shù),定義為在給定的速率條件下所能夠達(dá)到的最小失真。
1.3 失真測度
編碼器的設(shè)計是矢量量化器設(shè)計過程中非常重要的一個部分,解碼器的工作只是一個簡單的表查找過程。在設(shè)計的過程中,我們會接觸到失真測度,并且,它的選擇會對VQ的性能產(chǎn)生直接的影響。
1.4 矢量量化器原理
矢量量化器原理框圖如圖1所示。
2 語音處理
2.1 語音提取
本設(shè)計中語音的讀取用的是wavread函數(shù),提取出來后直接對提取出來的參數(shù)進(jìn)行了1024點的快速傅里葉變換;隨后,用plot函數(shù)將原始語音的時域圖以及頻譜圖畫了出來。
2.2 語音的預(yù)處理
在該算法中,語音的預(yù)處理的步驟分別是量化處理和預(yù)加重處理。在量化處理中,本設(shè)計設(shè)置的階數(shù)為16階,隨后用MATLAB中的1pc函數(shù)對信號進(jìn)行了進(jìn)一步的處理,并畫出了相關(guān)的圖形,以方便后續(xù)的操作。在預(yù)加重過程中,先將語音數(shù)據(jù)用double函數(shù)轉(zhuǎn)換為雙精度浮點數(shù),再用filter函數(shù)(一維數(shù)字濾波器)對高頻部分進(jìn)行處理,隨后在對其進(jìn)行1024點的fft變換,最后畫出經(jīng)過此過程處理后的信號的波形和頻譜。在此設(shè)計中預(yù)加重的系數(shù)為0.9375。
2.3 分幀加窗
本設(shè)計中采用的是漢明窗。在本設(shè)計分幀處理的過程中,幀移設(shè)置的為80。在加窗過程中,窗長設(shè)定的為256。本階段處理完成后,將二者處理后的信號的波形和頻譜圖都畫了出來。
2.4 語音特征參數(shù)提取
本設(shè)計中采用的倒譜系數(shù)。
2.5 語音端點檢測
本設(shè)計中采用的是雙門限的檢測。其中,幀長設(shè)定為256,未重疊部分設(shè)定為128,短時能量門限設(shè)定為10,能量的兩個閾值設(shè)定為2,過零率的閾值為10,過零率的兩個閾值為5。
3 LBG算法的設(shè)計與實現(xiàn)
3.1 LBG算法的實現(xiàn)流程
LBG算法在VQ中是一個基本算法。LBG算法可用于已知源的分布特征和未知源分布的特征的情況,但有必要知道其輸出值(稱為訓(xùn)練序列)。在實際應(yīng)用中,它經(jīng)常用于訓(xùn)練序列中以設(shè)計矢量量化器。
設(shè)計算法的流程圖如圖2所示。
4 MATLAB仿真
4.1 MATLAB R2014a平臺簡介以及語音數(shù)據(jù)來源
MATLAB在語音方面的應(yīng)用:
4.1.1 語音分析(語音信號的特征參數(shù)提取)
我們從語音信號中提取特征參數(shù),比較合成語音與自然語音的特征參數(shù)并計算其距離,通過特征參數(shù)距離來描述合成語音與自然語音之間的距離。
經(jīng)過大量實驗,人們提出了基于不同頻率人耳感知的梅爾頻率概念。由于藏文是一種調(diào)諧語言,梅爾頻率是人耳聽到的藏文音調(diào)的量度。通過MATLAB工具計算這個參數(shù)將很好地描述藏語語音的感知。
4.1.2 語音識別
在本設(shè)計中,我們的語音數(shù)據(jù)來自項目小組成員的親自錄制。在錄制過程中,我們采用個人手機(jī)先進(jìn)行錄制;隨后,將錄制好的語音傳到電腦中,再利用快轉(zhuǎn)軟件將語音格式轉(zhuǎn)換為wav格式,從而得到可以進(jìn)行相關(guān)處理和識別的語音資料。同時,語音的說話人都是藏族同學(xué),從而,在一定程度上可以保證藏文語音的發(fā)音的標(biāo)準(zhǔn)性和準(zhǔn)確性。
4.2 LBG算法仿真
在這個程序中利用MATLAB來編譯程序。碼本的選擇是通過隨機(jī)選擇方法實現(xiàn)的。
具體實現(xiàn)這個過程的參數(shù)設(shè)計是在本設(shè)計中,碼書的大小為8,碼書的維數(shù)維7,參加訓(xùn)練樣本的個數(shù)為100,碼書訓(xùn)練循環(huán)次數(shù)設(shè)定為25。在初始碼書的選取中,我們每隔2個樣本取一個樣本,從而得到初始碼書。隨后對初始碼書進(jìn)行處理,當(dāng)相對失真小于。一。是結(jié)束循環(huán),從而得到訓(xùn)練好的碼書,也就是最終碼書。隨后,我們把訓(xùn)練好的碼書寫到了文本中;最后我們逐個顯示了,算法的執(zhí)行時間、算法的平均失真、每個碼書的樣本個數(shù)、程序的循環(huán)次數(shù),以及最終訓(xùn)練好的碼書。
4.3 仿真結(jié)果
由程序結(jié)果我們可以看出,LBG算法的理論算法結(jié)構(gòu)相對嚴(yán)謹(jǐn),并且較為容易實現(xiàn);與此同時,此算法還能作為其他算法的附加算法,以優(yōu)化提取的初始碼本。由圖6可以看出在每次迭代的過程中平均失真具有單調(diào)遞減的特性,所以可以實現(xiàn)上述要求。
在對比上述仿真結(jié)果的基礎(chǔ)上,我們通過改變初始語音的含義以及說話人,利用MATLAB仿真工具對輸入的語音信號進(jìn)行相關(guān)處理;隨后,根據(jù)程序的運行結(jié)果進(jìn)行數(shù)據(jù)分析,與此同時,我們還研究了:在LBG算法中,語音中少許的噪音和語音聲音的大小,不同的說話人的音色對算法識別效果的影響。
數(shù)據(jù)結(jié)果分析:根據(jù)以上不同說話人和語音聲音大小,以及是否有噪音下的語音識別結(jié)果可以看出,循環(huán)次數(shù)逐漸加大,平均失真和相對失真只有著些許的變化,識別結(jié)果根據(jù)語音的不同,識別結(jié)果也不同。如表I所示。
4.4 仿真結(jié)論
LBG算法在保持著初始變量不變的情況下,平均失真和相對失真的變化不大,但是循環(huán)次數(shù)和運行時間卻因為語音數(shù)據(jù)的不同,存在著一些少許的變化。
與此同時,根據(jù)識別結(jié)果可以看出LBG識別算法對語音的要求較高。語音信號在非純凈語音的情況下,語音噪音的不同,說話人聲音大小的不同等因素都會影響識別結(jié)果。
5 總結(jié)
本設(shè)計重點采用矢量量化LBG算法,在碼書的選取過程中,我們選擇了隨機(jī)選取的方法;隨后依靠MATLAB R2014a仿真工具得到仿真結(jié)果;接著,通過仿真結(jié)果對LBG算法的性能參數(shù)進(jìn)行了一些分析。通過上述的一系列測試,我們可以看出,LBG算法對語音的質(zhì)量要求相對較高,語音中一些噪音會影響識別的結(jié)果,說話人聲音的大小也會影響語音識別的結(jié)果。另外,我們還發(fā)現(xiàn):在同一語音錄制的環(huán)境中,一些藏語語音(同一個藏文字母,不同的發(fā)音人)會對采樣頻率以及進(jìn)行傅里葉變換的點數(shù)有要求,若采樣頻率或者進(jìn)行傅里葉變換的點數(shù)不能滿足要求,則程序不能正常運行;同時,一些藏語語音(同一個藏文字母,不同的發(fā)音人)提取出來的特征參數(shù)也會有著比較大的差距,從而會對初始碼書的選取有著一些影響。
目前關(guān)于上述現(xiàn)象,我們還沒有弄明白問題出現(xiàn)的原因。我們猜測可能是因為藏語是拼音型文字,每個人在發(fā)音時,發(fā)音的部位可能不相同,或是不準(zhǔn)確,從而導(dǎo)致這種現(xiàn)象出現(xiàn);另外,我們也有著這樣的猜測:程序依舊存在一些缺陷,從而導(dǎo)致不能很好的對語音進(jìn)行處理和識別。但是,以上觀點僅僅是本項目小組成員的猜測。由于項目組成員的能力有限,以上的問題僅僅只停留于猜測的層面,還未進(jìn)行進(jìn)一步的研究和實踐。
本設(shè)計所做的主要工作有:
首先,介紹了本設(shè)計中的一些步驟以及所涉及到的基本概念和原理,另外還包括一些重點步驟中的一些重要參數(shù)和部分用到的函數(shù)。隨后,根據(jù)需求寫出程序,利用MATLABR2014a對算法進(jìn)行了仿真,得到仿真結(jié)果。最后,根據(jù)仿真結(jié)果對性能進(jìn)行了一些分析與猜測。
綜上所述,由于個人的能力,本文只實現(xiàn)了語音識別算法,沒有根據(jù)識別成功率的大小和影響識別成功的一些因素對程序進(jìn)行進(jìn)一步優(yōu)化。同時,也并未對我們的猜測進(jìn)行進(jìn)一步的研究和證明。
參考文獻(xiàn)
[1]數(shù)字語音處理及MATLAB仿真/張雪英主編[M].北京:電子工業(yè)出版社,2016.
[2]賀玲玲,周元.基于改進(jìn)MFCC的異常聲音識別算法[J].重慶工商大學(xué)學(xué)報(自然科學(xué)版),2012,29(02):52-57.
[3]張俊.基于VQ和DTW相結(jié)合的語音識別算法研究[D].武漢理工大學(xué)碩士論文,2016.
[4]蔣剛毅,張禮和,鄭義.語音信號的矢量量化碼書特性研究[J].電子學(xué)報,1995(11):55-59.
[5]周萍,李曉盼,李杰,景新幸.混合MFCC特征參數(shù)應(yīng)用于語音情感識別[J].計算機(jī)測量與控制,2013,21(07):1966-1968+1986.
[6]黃成玉,張全柱,賴斌.聲紋識別中MEL參數(shù)的提取研究[J].電源技術(shù),2011,35(04):433-435.
[7]吳婷婷.矢量量化中碼書設(shè)計的研究[D].南京師范大學(xué)碩士論文,2016.
[8]黃榜.矢量量化圖像編碼算法的研究[D].江南大學(xué),2011.
[9]閥大順,趙永安,文先林,李蓓基于DHMM和VQ的關(guān)鍵詞識別系統(tǒng)研究[J].武漢理工大學(xué)學(xué)報,2011,33(02):140-143+152.
[10]王彪.一種改進(jìn)的語音信號特征參數(shù)提取算法研究[J].電子設(shè)計工程,2011,19(21):59-61.
[11]祝鵬.短語音條件下的說話人識別研究[D].燕山大學(xué),2012.
[12]郭浩.基于矢量量化編碼技術(shù)的數(shù)據(jù)壓縮方法[J].科技與企業(yè),2012(15):126.
[13]歐陽星辰.語音信號的優(yōu)化處理[J].中國電子商務(wù),2012(10): 68-68.
[14]呂晶晶,陳娟,張培,馬艷娥.基于VQ的語音識別技術(shù)研究[J].伺服控制,2011(04):68-69+36.