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