楊 彥 ,王 浩,趙 力*
(1.鹽城紡織職業(yè)技術(shù)學(xué)院,江蘇 鹽城 650500;2.東南大學(xué)信息科學(xué)與工程學(xué)院,南京 210096)
耳語語音是人們常見的語言交流方式之一,在會場、音樂廳、圖書館等禁止大聲喧嘩的場所被廣泛應(yīng)用,如公共辦公環(huán)境下的聽寫機,這時耳語音輸入方式更為合適;在移動通信系統(tǒng)廣泛發(fā)展的今天,人們也常常采用耳語的方式來保證通話的保密性并防止打擾他人。因此,耳語音的研究具有廣泛的應(yīng)用前景[1-4]。與正常語音一樣,人們在用耳語音交流時,也可以從耳語語音中感受到說話人所帶有的情感信息。正常語音的情感計算早在上世紀90年代就已經(jīng)展開,并且隨著情感研究的深入,正常語音的情感特征分析與識別得到了很大的發(fā)展[5],而且為語音識別和語音合成等研究提供了新的思路和方法。然而,目前筆者還沒有發(fā)現(xiàn)專門研究耳語語音情感信息處理的資料。耳語語音作為一種常見而特殊的語音信號,對其情感信息處理技術(shù)的研究應(yīng)該說與正常語音同樣重要。
本文提出了一種基于改進混合蛙跳算法的支持向量機SVM(Support Vector Machine)[6-7]的耳語情感語音識別方法。標準的SVM 的訓(xùn)練算法涉及到求解線性約束的二次規(guī)劃問題。二次規(guī)劃問題求解受存儲器容量和計算量的限制,當(dāng)訓(xùn)練數(shù)集規(guī)模很大時,分類速度會受到很大影響,甚至無法完成?;旌贤芴惴⊿FLA(Shuffled Frog Leaping Algorithm)[8]是2000年由Eusuff和Lansey 提出的一種基于群體智能的優(yōu)化算法,根據(jù)全局信息交換和局部深度搜索的平衡策略來找到最優(yōu)解[9-10]。用群體智能優(yōu)化算法[11]訓(xùn)練SVM 是一種全新的探索。Paquet 等人首先提出將粒子群優(yōu)化算法用于SVM 訓(xùn)練[12],但結(jié)果并不理想。本文提出用一種改進的混合蛙跳算法(ISFLA)訓(xùn)練SVM。該算法在SFLA 基礎(chǔ)上引入模擬退火思想,極易跳出局部最優(yōu)解,改善了收斂精度和速度,且具有較強魯棒性。實驗結(jié)果表明,提出的新的識別方法的實驗結(jié)果明顯好于傳統(tǒng)的SVM 方法,證明了該方法的有效性。而且該方法便于硬件實現(xiàn)。本文介紹了基于改進混合蛙跳算法及SVM 的耳語情感語音識別方法以及該系統(tǒng)的DSP 實現(xiàn)。
支持向量機最早應(yīng)用于模式分類。不失一般性,以線性可分兩分類問題為例。訓(xùn)練集包括L個訓(xùn)練樣本:T={(x1,y1),…,(xL,yL)} xi∈X=Rn,yi∈Y={1,-1}。其中X為輸入,Y為輸出。訓(xùn)練過程就是尋求一個平面w×x+b=0,使兩類數(shù)據(jù)點距離平面盡量遠。這種最優(yōu)分類面思想導(dǎo)致了對w和b的最優(yōu)化問題:
根據(jù)最優(yōu)化理論,原始問題可轉(zhuǎn)化為對偶問題來求解。因此式(1)可轉(zhuǎn)化為式(2)求解。
求解得到最優(yōu)分類規(guī)則:
在非線性可分問題中,引入松弛變量ξ(ξi≥0),和懲罰系數(shù)C′,使式(1)優(yōu)化問題轉(zhuǎn)變?yōu)?
其對偶問題可轉(zhuǎn)變?yōu)槭?5):
得到最優(yōu)分類規(guī)則:
式(6)中不為零的ai即為支持向量。SVM 利用核函數(shù)方法將低維數(shù)據(jù)非線性映射到高維,使其線性可分,并由支持向量及其系數(shù)構(gòu)造最優(yōu)分類面。
在一個D 維的目標搜索空間中,隨機生成P 只青蛙(解)組成初始群體,第i 只青蛙表示問題的解為Xi=(xi1,xi2,…,xiD)。青蛙個體按適應(yīng)度值從優(yōu)到劣排列,將整個群體分為M個子群體。其中排名第1 的青蛙分入第1 子群體,排名第2 的青蛙分入第2 子群體,第M 只青蛙分入第M 子群體,第M+1只青蛙分入第1 子群體,第M+2 只青蛙分入第2 子群體,依次類推,直到全部青蛙劃分完畢。
每個子群體進行局部深度搜索,即在子群體的每次迭代中,首先確定當(dāng)前迭代中子群體的最差個體xw、最好個體Xb和全局最好個體Xg,只對該子群體當(dāng)前最差的個體Xw進行更新,更新策略為:
其中,rand()是均勻分布在[0,1]之間的隨機數(shù);Dmax表示青蛙所允許更新步長的最大值。如果newXw的適應(yīng)度值優(yōu)于原來的Xw,則取代原來種群中的解。如果沒有改進,則用Xg取代Xb重復(fù)執(zhí)行更新策略式(7)和式(8)。如果仍沒有改進,則隨機產(chǎn)生一個新的解取代原來的Xw。重復(fù)這種更新操作,直至滿足子群體的更新代數(shù)。當(dāng)所有子群體的局部深度搜索完成以后,將所有的青蛙個體重新混合排序并再次劃分子群體,然后再進行局部深度搜索,如此反復(fù)直到滿足混合迭代次數(shù)。
SA 算法的思想是由Metropolis 在1953年提出的[13-15],它是一個全局最優(yōu)算法,具有并行性,并且以概率1 接近最優(yōu)值[16]。SA 來源于固體退火過程,當(dāng)固體的溫度充分高時,內(nèi)部粒子變?yōu)闊o序狀,內(nèi)能較大,隨著固體緩慢冷卻,其內(nèi)部粒子漸趨有序,內(nèi)能逐漸減小;在每個溫度都會達到平衡態(tài),最后在常溫時達到基態(tài),內(nèi)能減為最小[17-18]。此算法將優(yōu)化問題比擬成一個物理系統(tǒng),將優(yōu)化問題的目標函數(shù)比擬為物理系統(tǒng)的能量,通過模擬物理系統(tǒng)逐步降溫以達到最低能量狀態(tài)的退火過程而獲得優(yōu)化問題的全局最優(yōu)解[19-21]。具體步驟如下:
(1)初始退火溫度Tk(k=0),產(chǎn)生隨機初始解X。
(2)在溫度Tk下重復(fù)執(zhí)行如下操作,直至達到溫度Tk的平衡狀態(tài):
在解X 的領(lǐng)域中產(chǎn)生新的可行解X′;
計算X′的目標函數(shù)f(X′)和X 的目標函數(shù)f(X)的差值Δf;
依照概率min{1,exp(-Δf/Tk)} >rand()接收X′,其中rand()表示[0,1]內(nèi)的隨機數(shù)。
(3)退火操作:Tk+1=C* Tk,k←k+1,其中C∈(0,1)。若滿足收斂判據(jù),則退火過程結(jié)束;否則,轉(zhuǎn)(2)。
本文利用公式x′=x+ηξ 產(chǎn)生新解,式中η為擾動幅值參數(shù),ξ為隨機變量,一般服從正態(tài)分布。SA通過退火機制所得的子代,即隨著溫度的下降,接受劣解的概率逐漸減小,從而提高算法的性能。
SVM 訓(xùn)練的數(shù)學(xué)本質(zhì)即為求解支持向量系數(shù),適應(yīng)度函數(shù)為
用改進的SFLA 算法訓(xùn)練SVM 基本流程如下:
(1)初始化蛙群,個體初始位置為[0,C′]間的隨意數(shù),種群個體總數(shù)N,個體的維數(shù)m,子種群個數(shù)M,子群局部搜索迭代次數(shù)cyc,退火的初始溫度T,溫度冷卻系數(shù)C,擾動幅值η。
(3)將當(dāng)前所有個體的適應(yīng)度值從優(yōu)到劣排序,依次將個體劃分到各子種群。
(4)利用SFLA 的更新策略,對子種群的最差個體進行更新,獲得一個較優(yōu)解X。
(5)利用SA 算法,產(chǎn)生新解X′,利用退火機制比較X和X′的質(zhì)量,獲得較優(yōu)解。
(6)對該子種群適應(yīng)度值排序,然后轉(zhuǎn)步驟(4),重復(fù)該更新策略,直至子種群內(nèi)的迭代次數(shù)滿足事先給定的要求cyc。
(7)當(dāng)所有子種群完成了更新操作后,若當(dāng)前最優(yōu)個體滿足收斂條件,則進化過程成功結(jié)束,返回全局最優(yōu)解;否則修改種群的退火溫度,即令T=CT,轉(zhuǎn)步驟(3)。
由于耳語音和正常音的發(fā)音方式有所不同,其塞音、塞擦音和清擦音的聲母部分與正常音的發(fā)音方式基本類似,而元音和濁輔音在發(fā)音時,不產(chǎn)生聲帶振動、沒有基頻,與正常音的發(fā)音方式不同,因此適用于正常音情感識別的一些特征參數(shù)就不適合用來進行耳語音情感識別。目前,關(guān)于耳語音聲學(xué)特征參數(shù)的分析主要集中在:音高、能量、聲調(diào)、共振峰、音長、Mel域參數(shù)、語速等方面。本文主要提取的用于耳語音情感識別的特征參數(shù)為:第一、第二、第三共振峰和基于TEO 變換后的四種改進的12 階MFCC。
在本文中,我們僅僅從識別的精度出發(fā),選用“One-Against-All”的SVM 網(wǎng)絡(luò)進行4 類語音情感的識別。這種“One-Against-All”SVM 網(wǎng)絡(luò)的最早由Vapnik[2]提出。對于N模式識別問題,首先構(gòu)造N個SVM,其中第i個SVM為對其中第i個模式進行識別,對于屬于第i 類的樣本,目標參數(shù)置為1,對于屬于其它類別的樣本的目標參數(shù)置-1。通過這種方式對這N個SVM 訓(xùn)練,得到N個SVM。對于每個SVM,判決函數(shù)不再選用在二模式識別時使用的符號函數(shù)作為硬判決,而是選擇具有連續(xù)輸出的函數(shù)作為軟判決,然后選擇具有最大輸出值的類別作為最終的輸出,在本文中選用如下函數(shù),式(10)作為軟判決。
在式(10)中,j為測試語句的標號,k為不同的情感,在計算出每個樣本相對于不同情感的判別結(jié)果后,識別情感為使下式取得最大值的k值。
本識別系統(tǒng)我們在基于DSP 的硬件系統(tǒng)上進行了實現(xiàn)。系統(tǒng)的DSP 采用TMS320C54X 系列芯片實現(xiàn),它是TI 公司于1996年推出的16 bit 定點低功耗數(shù)字信號處理器。它采用先進的修正哈佛結(jié)構(gòu),片內(nèi)有8條總線、CPU、片內(nèi)存儲器和在片外圍電路等硬件,加上高專業(yè)化的指令系統(tǒng)和6 級深度的指令流水線,使得C54X 具有功耗小、高度并行等優(yōu)點[22]。本系統(tǒng)采用了C54X 系列的TMS320C5416 定點DSP 來實現(xiàn)說話人識別裝置,其結(jié)構(gòu)如圖1所示。因為TMS320C5416 是定點的數(shù)字信號處理器,對定點數(shù)據(jù)處理很快,卻對浮點數(shù)據(jù)的處理卻很慢。為了能在實際應(yīng)用中滿足用戶的需求,說話人自動識別系統(tǒng)應(yīng)能以盡可能快的速度來完成識別過程,最好能達到實時。因此在開發(fā)過程中,我們對所有的浮點數(shù)據(jù)進行定點化,以提高程序執(zhí)行的效率。C5416 DSP 的片上資源有限,片上數(shù)據(jù)存儲器為64 kbyte 字,片上程序存儲器也是64 kbyte 字。為了防止數(shù)據(jù)空間不夠,在該系統(tǒng)中我們把所有的提示語音存放在程序存儲器里,而所有的碼本及采樣的語音數(shù)據(jù)都存放在數(shù)據(jù)存儲器里。
圖1 系統(tǒng)框圖
系統(tǒng)的實現(xiàn)主要包括語音信號的預(yù)處理,特征提取,訓(xùn)練,測試和實時識別過程。在本設(shè)計中需要做的預(yù)處理及特征提取是預(yù)加重、加窗、分幀、求線性預(yù)測分析系數(shù),最后求出LPC 倒譜系數(shù)和倒譜系數(shù)的r 階線性回歸系數(shù)以及估計基音和差值基音周期。
精度問題在定點DSP 中是相當(dāng)重要的,它將直接影響到識別的效果,為了能使系統(tǒng)有很高的正確識別率同時又不消耗過多的時間和內(nèi)存資源,我們在開發(fā)系統(tǒng)時盡可能地合理分配計算位數(shù),在保住精度的同時減少資源消耗。在定點化的過程中對各模塊進行了定點模擬并分析比較其誤差,確保計算的可靠性。
本實驗從數(shù)據(jù)庫中總共選取了1 000(250×4,高興、生氣、悲傷和平靜四種情感各250 條)條語句,其中訓(xùn)練語句800 條(200×4),識別語句200 條(50×4)。耳語音情感識別結(jié)果如表1所示。
表1 耳語情感語音的識別結(jié)果
由表1 識別結(jié)果可以看出,耳語音情感識別的平均識別率為77.25%,在所考慮的四種情感中,耳語音對“高興”“悲傷”“平靜”識別率相對較好?!氨瘋?、“生氣”情感容易出現(xiàn)相互誤判,且識別率不理想,而這兩種情感相對于“高興”誤判出現(xiàn)的情況相對較少??紤]“高興”、“生氣”這兩種情感在激活維上坐標接近,而在效價維上則距離較遠,這表明在識別這兩種情感時只要對應(yīng)于效價維的特征參數(shù)選擇恰當(dāng),就可以獲得好的識別率。反觀“生氣”“悲傷”這兩種情感,它們在效價維上坐標接近,在激活維上則距離較遠,因此識別這兩類情感需要有合適的激活維參數(shù)。我們在識別中所采用的特征參數(shù)主要是效價維參數(shù),而在正常音識別中充當(dāng)重要激活維參數(shù)作用的基音,由于耳語音的特殊發(fā)音方式不存在,因此,在識別“生氣”“悲傷”這兩種情感時,效果不理想。
本文提出并評價了基于改進SFLA 算法及SVM的耳語情感語音識別方法。該方法將混合蛙跳算法引入到SVM 訓(xùn)練中,并提出一種改進的混合蛙跳算法,提出了加入模擬退火的蛙跳算法。以不同的概率接受較好的和較差的個體,使蛙跳具有跳出局部最優(yōu)的能力,同時也加快了收斂速度,使訓(xùn)練算法的性能獲得很大提升。在對耳語音特征參數(shù)研究的基礎(chǔ)上,將其應(yīng)用于耳語音情感識別中,通過對高興、生氣、悲傷、平靜四種耳語音情感進行識別,實驗證明該方法在模型訓(xùn)練數(shù)據(jù)較少的情況下可以取得比較好的識別性能。
[1]沙丹青,栗學(xué)麗,徐柏齡.耳語音聲調(diào)特征的研究[J].電聲技術(shù),2003(11):4-7.
[2]楊莉莉,李燕,徐柏齡.漢語耳語音庫的建立與聽覺實驗研究[J].南京大學(xué)學(xué)報(自然科學(xué)版),2005(3):311-317.
[3]樊星,盧晶,徐柏齡.漢語耳語音轉(zhuǎn)換為正常音的研究[J].電聲技術(shù),2005(12):44-47.
[4]林瑋,楊莉莉,徐柏齡.基于修正MFCC 參數(shù)漢語耳語音的話者識別[J].南京大學(xué)學(xué)報(自然科學(xué)版),2006(1):54-62.
[5]趙力.語音信號處理[M].北京:機械工業(yè)出版社,2003:236-253.
[6]Vapnik V N.The Nature of Statistical Learning Theory[M].New York:Springer-Verlag,1995.
[7]Cortes C,Vapnik V N.Supporter Vector Networks[J].Machine Learning Machine.1995,20(3):273-297.
[8]Eusuff M M,Lansey K E.Shuffled Frog-Leaping Algorithm:A Memetic Meta-Heuristic for Discrete Optimization[J].Engineering Optimization,2006,38(2):129-154.
[9]Shi Y,Eberhart R C.A Modified Particle Swarm Optimizer[C]//IEEE International Conference on Evolutionary Computation.Anchorage,AK USA,1998:69-73.
[10]Eberhart R C,Shi Y.Comparing Inertia Weights and Constriction Factors in Particle Swarm Optimization[C]//2000 Congress on Evolutionary Computation.CA USA,La Jolla,2000:84-88.
[11]Delgado J,Sole R V.Self-Synchronization and Task Fulfillment in Ant Colonies[J].Journal of Theoretical Biology,2000,205(3):433-441.
[12]Paquet U,Engelbrecht A P.Training Support Vector Machines with Particle Swarms[C]//Processing of International Joint Conference on Neural Networks,2003,2:1593-1598.
[13]高鷹,謝勝利.基于模擬退火的粒子群優(yōu)化算法[J].計算機工程與應(yīng)用,2004,1:47-50.
[14]寇曉麗,劉三陽.基于模擬退火的粒子群算法求解約束優(yōu)化問題[J].吉林大學(xué)學(xué)報(工學(xué)版),2007,37(1):136-140.
[15]童燕,李映,白本督,等.一種改進的基于粒子群優(yōu)化的SVM訓(xùn)練算法[J].計算機工程與應(yīng)用,2008,44(20):138-141.
[16]Shan Hongbo,Li Shuxia,Gong Degang,et al.Genetic Simulated Annealing Algorithm-Based Assembly Sequence Planning[C]//Technology and Innovation Conference,6-7 Nov.2006:1573-1579.
[17]Eusuff M M,Lansey K E.Shuffled Frog-Leaping Algorithm:A Memetic Meta-Heuristic for Discrete Optimization[J].Engineering Optimization,2006,38(2):129-154.
[18]Alireza R V,Ali Hossein M.A Hybrid Multi-ObjectiveShuffled Frog-Leaping Algorithm for a Mixed-Model Assembly Line Sequencing Problem[J].Computers & Industrial Engineering,2007,53(4):642-666.
[19]Alireza R V,Ali Hossein M.Solving a Bi-Criteria Permutation Flow-Shop Problem Using Shuffled Frog-Leaping Algorithm[J].Soft Computing,2008,12(5):435-452.
[20]Alireza R V,Ali Hossein M.A Hybrid Multi-ObjectiveShuffled Frog-Leaping Algorithm for a Mixed-Model Assembly Line Sequencing Problem[J].Computers & Industrial Engineering,2007,53(4):642-666.
[21]Alireza R V,Ali Hossein M.Solving a Bi-Criteria Permutation Flow-Shop Problem Using Shuffled Frog-Leaping Algorithm[J].Soft Computing,2008,12(5):435-452.
[22]彭啟.TMS320C54X 實用教程[M].成都:電子科技大學(xué)出版社,1999:189-215.