摘要:針對(duì)語音識(shí)別的特點(diǎn),對(duì)BP神經(jīng)網(wǎng)絡(luò)在語音識(shí)別技術(shù)中的應(yīng)用進(jìn)行了探索性研究,進(jìn)而結(jié)合人工智能領(lǐng)域較為有效的方法——遺傳(GA)算法,針對(duì)傳統(tǒng)BP算法識(shí)別準(zhǔn)確率高但訓(xùn)練速度慢的缺點(diǎn),對(duì)BP網(wǎng)絡(luò)進(jìn)行改進(jìn),構(gòu)建了一種基于遺傳神經(jīng)網(wǎng)絡(luò)的語音識(shí)別算法(GABP),并建立相應(yīng)的語音識(shí)別系統(tǒng)。仿真實(shí)驗(yàn)表明,該算法有效地縮短了識(shí)別時(shí)間,提高了網(wǎng)絡(luò)訓(xùn)練速度和語音的識(shí)別率。
關(guān)鍵詞:語音識(shí)別;神經(jīng)網(wǎng)絡(luò);遺傳算法;遺傳神經(jīng)網(wǎng)絡(luò)
中圖分類號(hào):TP183文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2008)22-774-03
Research of Speech Recognition Based on Genetic Neural Network
ZHAO Feng
(Computer School of Wuhan University,Wuhan 430081,China)
Abstract:This Paper mainly studies the application of the BP neural network in the research of speech recognition. BP neural network can get higher identification precision, but its training speed is very low. a new recognizing algorithm based on BP algorithm by combining with the good effect method in ANN which named genetic algorithm(GA) was proposed and used to improve the BP neural network . Experiment results show that the training speed can be accelerated by the method and the recognition performance is also promoted.
Key words: speech recognition; neural network; genetic algorithm; genetic neural network
1 引言
語音識(shí)別SR(Speech Recognition)是指讓機(jī)器聽懂人說的話,即在各種情況下,準(zhǔn)確地識(shí)別出語音的內(nèi)容,從而根據(jù)其信息,執(zhí)行人的各種意圖[1]?,F(xiàn)代語音識(shí)別技術(shù)以神經(jīng)網(wǎng)絡(luò)為主要發(fā)展趨勢(shì),進(jìn)入20世紀(jì)90年代以來,神經(jīng)網(wǎng)絡(luò)已經(jīng)成為語音識(shí)別的一條重要途徑。由于神經(jīng)網(wǎng)絡(luò)反映了人腦功能的基本特征,故具有自組織性、自適應(yīng)性和連續(xù)學(xué)習(xí)能力等特點(diǎn),特別適合于解決像語音識(shí)別這類模擬人的認(rèn)知過程和智能處理能力,難以用算法來描述而又有大量樣本可供學(xué)習(xí)的問題[2]。
人工神經(jīng)網(wǎng)絡(luò)(ANN)是采用大量的簡單處理單元廣泛連接起來構(gòu)成的一種復(fù)雜信息處理網(wǎng)絡(luò)。網(wǎng)絡(luò)的訓(xùn)練學(xué)習(xí)是應(yīng)用一系列輸入矢量,通過已確定的算法逐步調(diào)整網(wǎng)絡(luò)的權(quán)值,最終達(dá)到期望的目標(biāo)。BP神經(jīng)網(wǎng)絡(luò)是神經(jīng)網(wǎng)絡(luò)中前向神經(jīng)網(wǎng)絡(luò)的核心部分,BP算法的學(xué)習(xí)過程由信號(hào)的正向傳播和誤差的反向傳播組成。隨著誤差逆?zhèn)鞑バ拚牟粩噙M(jìn)行,網(wǎng)絡(luò)對(duì)輸入模式響應(yīng)的正確率不斷上升。然而BP算法是一種梯度下降算法,梯度下降存在多極值問題,且BP網(wǎng)絡(luò)學(xué)習(xí)訓(xùn)練速度慢,容易陷入局部最小或振蕩。因此,參數(shù)的選擇非常重要。為克服標(biāo)準(zhǔn)BP算法存在的各種缺點(diǎn),本文研究用BP算法結(jié)合人工智能領(lǐng)域較為有效的方法——遺傳(GA)算法來訓(xùn)練網(wǎng)絡(luò)進(jìn)行語音識(shí)別,仿真實(shí)驗(yàn)表明,GABP算法使BP網(wǎng)絡(luò)在收斂速度上有了很大提高,尤其是克服了容易陷入局部最小值的缺點(diǎn),基于GABP的語音識(shí)別系統(tǒng)的最高識(shí)別率和平均識(shí)別率都有了很大的提高。
2 語音識(shí)別的基本原理
大部分基于神經(jīng)網(wǎng)絡(luò)的語音識(shí)別系統(tǒng)實(shí)現(xiàn)識(shí)別功能都要經(jīng)過從特征參數(shù)提取到應(yīng)用識(shí)別算法進(jìn)行識(shí)別的過程,該過程如下圖1所示:
■
圖1 語音識(shí)別系統(tǒng)原理框圖
該文主要面向孤立數(shù)字識(shí)別系統(tǒng)作一些改進(jìn)研究,其基本識(shí)別過程也符合上圖1描述:輸入的語音信號(hào)首先進(jìn)行預(yù)處理,包括抗混疊濾波、聲音的預(yù)加重、加窗分癥處理與端點(diǎn)檢測(cè)等。預(yù)加重的目的是在于濾出低頻干擾,尤其是50Hz或60Hz的工頻干擾,將對(duì)于語音識(shí)別更為有用的高頻部分的頻譜進(jìn)行提升,以便于語音參數(shù)分析。
預(yù)加重濾波器傳遞函數(shù)為: H(Z)=1-0.9375Z-1(1)
若S(n)為預(yù)加重前語音信號(hào),則經(jīng)過預(yù)加重濾波器后得到的信號(hào)■(n)為:
■(n)= S(n)-0.9375 S(n-1)(2)
該文主要完成孤立數(shù)字識(shí)別,所要求識(shí)別的字?jǐn)?shù)不多,對(duì)環(huán)境的噪聲的適應(yīng)能力的要求也并不高,因此采用了目前比較流行的雙門限端點(diǎn)檢測(cè)算法,借助于語音信號(hào)短時(shí)平均能量和短時(shí)過零率來判定語音有效范圍的開始和結(jié)束。
語音信號(hào)經(jīng)過預(yù)處理后,接下來很重要的一環(huán)就是進(jìn)行特征提取,常用的特征包括短時(shí)平均能量和幅度、短時(shí)平均過零率、線性預(yù)測(cè)系數(shù)(LPC)、短時(shí)傅里葉變換和Mel頻率倒譜系數(shù)(MFCC)。語音特征參數(shù)的時(shí)間序列構(gòu)成了語音的模式,將其與通過應(yīng)用一系列已知信號(hào)訓(xùn)練提取的參考模式逐一進(jìn)行比較,獲得最佳匹配的參考模式便是識(shí)別結(jié)果。本文中對(duì)于預(yù)處理的每個(gè)有效語音信號(hào)段,都要提取其12個(gè)一階MFCC系數(shù),提取過程為:用漢明窗將語音切割成長短一致的語音幀,對(duì)每幀語音進(jìn)行正反傅里葉變換,經(jīng)對(duì)數(shù)和離散余弦變換后取前12個(gè)數(shù)作為MFCC系數(shù)來描述每一個(gè)幀。最后將每個(gè)語音信號(hào)對(duì)應(yīng)的MFCC系數(shù)序列用K-means聚類算法進(jìn)行聚類,分為4個(gè)聚類,使得每個(gè)語音信號(hào)都得到相應(yīng)的12個(gè)4維一階MFCC系數(shù),即可作為語音的特征參數(shù)成為神經(jīng)網(wǎng)絡(luò)的輸入信號(hào)。
3 語音識(shí)別中的BP網(wǎng)絡(luò)構(gòu)造
語音識(shí)別中的BP網(wǎng)絡(luò)構(gòu)造主要包括輸入層、隱層、輸出層、初始權(quán)值、學(xué)習(xí)速率與期望誤差的選取幾個(gè)方面的問題。
1) 網(wǎng)絡(luò)層數(shù):理論上,在不限制隱層節(jié)點(diǎn)數(shù)的情況下,兩層(只有一個(gè)隱層)的BP網(wǎng)絡(luò)可以實(shí)現(xiàn)任意非線性映射。當(dāng)模式樣本很多時(shí),減小網(wǎng)絡(luò)規(guī)模,增加一個(gè)隱層是必要的,但BP網(wǎng)絡(luò)隱層數(shù)一般不超過兩層。本文所要求識(shí)別的模式樣本不多,因此一個(gè)隱層已經(jīng)足夠。
2) 輸入層節(jié)點(diǎn)數(shù):在BP網(wǎng)絡(luò)語音識(shí)別系統(tǒng)中,輸入層節(jié)點(diǎn)數(shù)與選取的語音信號(hào)特征參數(shù)的維度和階數(shù)有關(guān)。本文中每個(gè)語音信號(hào)都得到相應(yīng)的12個(gè)4維一階MFCC系數(shù),故輸入層的節(jié)點(diǎn)數(shù)為12×4=48。
3) 輸出層節(jié)點(diǎn)數(shù):輸出層的節(jié)點(diǎn)數(shù)取決于輸出數(shù)據(jù)的類型和表示該類型所需的數(shù)據(jù)大小。當(dāng)BP網(wǎng)絡(luò)用于語音識(shí)別時(shí),以二進(jìn)制形式來表示不同的識(shí)別結(jié)果,則輸出層的節(jié)點(diǎn)數(shù)可根據(jù)訓(xùn)練模板的語音數(shù)來確定。本文設(shè)定輸出節(jié)點(diǎn)數(shù)為10,分別對(duì)應(yīng)于0~9這10個(gè)數(shù)字。
4) 隱層節(jié)點(diǎn)數(shù):通過采用一個(gè)隱層,增加其神經(jīng)元數(shù)的方法來達(dá)到網(wǎng)絡(luò)訓(xùn)練精度的提高,這在結(jié)構(gòu)上,要比增加更多的隱層簡單的多。但究竟選取多少個(gè)隱層節(jié)點(diǎn)才合適?在理論上并沒有個(gè)明確的規(guī)定。在具體設(shè)計(jì)時(shí),比較實(shí)際的做法是通過對(duì)不同神經(jīng)元數(shù)進(jìn)行訓(xùn)練對(duì)比,然后適當(dāng)?shù)募由弦稽c(diǎn)余量[4]。一般可利用下面式子決定:
n1=■+a(3)
其中n1為隱層節(jié)數(shù);m為輸入節(jié)點(diǎn)數(shù);n為輸出節(jié)點(diǎn)數(shù);a為取1~10的常數(shù)。本實(shí)驗(yàn)中輸入節(jié)點(diǎn)數(shù)為48,輸出節(jié)點(diǎn)數(shù)為10,a選取為常數(shù)4,因此隱層節(jié)點(diǎn)數(shù)n1=12。
5) 初始權(quán)值:由于系統(tǒng)是非線性的,初始值對(duì)于學(xué)習(xí)是否達(dá)到局部最小、是否能收斂以及訓(xùn)練時(shí)間的長短關(guān)系很大。一般總是希望經(jīng)過初始加權(quán)后的每個(gè)神經(jīng)元的輸出值都接近于零。所以,一般取初始值在(-1,1)之間的隨機(jī)數(shù)。
6) 學(xué)習(xí)速率與期望誤差的選?。簩W(xué)習(xí)速率決定每一次循環(huán)訓(xùn)練中所產(chǎn)生的權(quán)值變化量。小的學(xué)習(xí)速率雖然會(huì)導(dǎo)致收斂速度慢,不過能保證網(wǎng)絡(luò)的誤差值不跳出誤差表面的低谷而最終趨于最小值。所以,一般情況下,學(xué)習(xí)速率的選取范圍在0.01~0.8之間。期望誤差0.000001。
解決了上述幾個(gè)方面的問題后,本文采用三層結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò),如圖2所示:輸入層各節(jié)點(diǎn)將輸入信號(hào)經(jīng)權(quán)重藕合到隱層的每個(gè)節(jié)點(diǎn),隱層各節(jié)點(diǎn)對(duì)來自前一層的信號(hào)加權(quán),經(jīng)激發(fā)函數(shù)轉(zhuǎn)換后再藕合到輸出層。
4 基于遺傳神經(jīng)網(wǎng)絡(luò)的語音識(shí)別
本文研究引用遺傳算法對(duì)網(wǎng)絡(luò)的初始連接權(quán)值進(jìn)行優(yōu)化處理,用BP算法完成給定精度的學(xué)習(xí)。
4.1 個(gè)體編碼方案
編碼對(duì)于網(wǎng)絡(luò)進(jìn)化過程的性能和效率影響很大,因此,編碼技術(shù)是連接權(quán)值進(jìn)化過程中學(xué)解決的首要問題和關(guān)鍵步驟。本文中考慮到BP網(wǎng)絡(luò)的節(jié)點(diǎn)數(shù)和結(jié)構(gòu)已經(jīng)固定,可以采用實(shí)數(shù)編碼方案,將網(wǎng)絡(luò)的權(quán)值和各節(jié)點(diǎn)的閥值依此排列得到一個(gè)向量。
假設(shè)一個(gè)具有m個(gè)節(jié)點(diǎn)的n層BP網(wǎng)絡(luò),如果第i個(gè)節(jié)點(diǎn)對(duì)應(yīng)的權(quán)值分別為vi(vi[-1,+1]),則一個(gè)個(gè)體用實(shí)數(shù)向量表示為X=(v1,v2,…vm)。
4.2 適應(yīng)度函數(shù)的選擇
一個(gè)網(wǎng)絡(luò)連接權(quán)值優(yōu)劣的標(biāo)準(zhǔn),是根據(jù)網(wǎng)絡(luò)對(duì)一組輸入得到的實(shí)際輸出與期望輸出之間的誤差大小來制定的。BP網(wǎng)絡(luò)中誤差平分和小,則表示該網(wǎng)絡(luò)性能比較好。本文中適應(yīng)度函數(shù)為:
f(x)=■(4)
其中,E為神經(jīng)網(wǎng)絡(luò)的輸出誤差,即:
■(5)
其中n為學(xué)習(xí)樣本總數(shù),yk,■k為第k個(gè)個(gè)體的期望輸出和實(shí)際輸出向量。
4.3 進(jìn)化參數(shù)
連接權(quán)的進(jìn)化過程中所涉及到的主要進(jìn)化參數(shù)有:種群規(guī)模、交叉率、變異率和進(jìn)化代數(shù)等等。交叉是最主要的進(jìn)化操作,交叉率是指各代中交叉產(chǎn)生的后代數(shù)與種群規(guī)模之比。常用的交叉率取值范圍為0.6~1.0。變異率是指種群中變異的基因數(shù)占總基因數(shù)的比例,其值控制了新基因引入的比例。常用變異率的數(shù)量級(jí)范圍為0.1~0.001。 種群規(guī)模是連接權(quán)進(jìn)化過程首先需要確定的參數(shù),是算法會(huì)否陷入局部解的主要影響因素。綜合考慮BP網(wǎng)絡(luò)的初始連接權(quán)值和交叉率、變異率的選擇,這里選擇種群規(guī)模為50。
5 仿真實(shí)驗(yàn)結(jié)果
仿真實(shí)驗(yàn)為針對(duì)非特定人的孤立數(shù)字詞語音識(shí)別。語音數(shù)據(jù)由二男二女(0到9共10個(gè)數(shù)字的普通話發(fā)音)通過PC話筒輸入,每個(gè)音每人發(fā)20遍,共計(jì)1000次發(fā)音,其中以每人每個(gè)音的前10次作訓(xùn)練樣本,后10次作測(cè)試樣本,錄音環(huán)境為安靜實(shí)驗(yàn)室,采樣頻率為11.025kHz。
經(jīng)過反復(fù)實(shí)驗(yàn),不斷改善實(shí)驗(yàn)環(huán)境,基于演化神經(jīng)網(wǎng)絡(luò)的識(shí)別得到了相對(duì)較高的識(shí)別率。對(duì)實(shí)驗(yàn)結(jié)果分析可知,結(jié)合了GA算法的BP網(wǎng)絡(luò)通過GA全局搜索得到一個(gè)權(quán)值最優(yōu)解,只迭代了151次便使得誤差值為0.000001 ,而普通BP算法要迭代517才能勉強(qiáng)達(dá)到期望誤差,由此可知,結(jié)合了GA算法的BP網(wǎng)絡(luò)避免了局部極小,減低了學(xué)習(xí)速率,提高了收斂速度。
表1 基于遺傳神經(jīng)網(wǎng)絡(luò)與普通BP網(wǎng)絡(luò)語音識(shí)別系統(tǒng)對(duì)比表
■
通過表1對(duì)比可知,基于演化神經(jīng)網(wǎng)絡(luò)識(shí)別算法的語音識(shí)別系統(tǒng)無論是在訓(xùn)練時(shí)的收斂速度還是在最后的識(shí)別率上,都要優(yōu)于普通的BP網(wǎng)絡(luò)語音識(shí)別系統(tǒng)。
6 結(jié)論
語音信號(hào)處理和神經(jīng)網(wǎng)絡(luò)均是目前研究的熱點(diǎn),文章主要針對(duì)語音識(shí)別的特點(diǎn),結(jié)合人工智能領(lǐng)域兩種比較有效的方法——BP網(wǎng)絡(luò)和GA算法,構(gòu)建了一種基于遺傳神經(jīng)網(wǎng)絡(luò)的語音識(shí)別算法。仿真實(shí)驗(yàn)結(jié)果表明,該算法避免了傳統(tǒng)BP算法容易陷入局部極小的缺點(diǎn),減低了訓(xùn)練時(shí)間,有效的提高了系統(tǒng)識(shí)別率。
參考文獻(xiàn):
[1] 趙力.語音信號(hào)處理[M].北京:機(jī)械工業(yè)出版社,2003.
[2] 蔡蓮紅,黃德智,蔡銳.現(xiàn)代語音技術(shù)基礎(chǔ)于應(yīng)用[M].北京:清華大學(xué)出版社,2003.
[3] 易克初.語音信號(hào)處理[M].北京:國防工業(yè)出版社,2000.
[4] 孫寧,孫勁光,孫宇.基于神經(jīng)網(wǎng)絡(luò)的語音識(shí)別技術(shù)研究[J].計(jì)算機(jī)與數(shù)字工程,2005,34(3):58-61.
[5] 何英.Matlab擴(kuò)展編程[M].北京:清華大學(xué)出版社,2002.
[6] 夏克文,李昌彪,沈鈞毅.前向神經(jīng)網(wǎng)絡(luò)隱含層節(jié)點(diǎn)數(shù)的最優(yōu)算法[J].計(jì)算機(jī)科學(xué),2005,32(10):143-145.
[7] Lippman R P.Review of Neural Network for Speech Recognition[J].Neural Computation,1989,1(1):1-38.