基於SVM的語音情感識別系統設計
目錄
本內容部分原創,因作者才疏學淺,偶有紕漏,望不吝指出。本內容由靈聲訊音頻-語音算法實驗室整理創作,轉載和使用請與“靈聲訊”聯繫,聯繫方式:QQ(245051943)
1 引言
隨着信息技術的不斷髮展,情感信息處理及識別正在受到學者越來越廣泛的重視。語音信號中,除了與語言內容相關的信息之外,還包含着說話人的情感信息。這些情感信息在交流中同樣具有着重要的作用。不同的情感一般是由說話人通過調整發音器官的動作,改變了語音信號的聲學特徵所表達出來的。這些特徵包括音質特徵、韻律特徵、共振峯特徵等等。
在相對研究較少的漢語情感識別方面,我們在趙力[2]、蔣丹寧[4]等人所做工作的基礎之上,
建立情感語音數據庫是漢語普通話情感語音識別研究的基礎。爲此我們建立了一個小規模的普通話情感語音數據庫,進而對數據庫中的各種聲學特徵與情感狀態之間的關係作了統計分析。
本文組織如下:第二章介紹了語音情感信號的採集和數據庫的建立;第三章介紹了從情感語音數據庫中提取基音、能量、共振峯等特徵的方法;第四章介紹了分類器的設計和各種特徵參數與情感的統計關係;最後一章給出了分類的結論和需要進行的後續工作。
2 情感語音信號的採集
本文所研究的情感語料對單個特定人共包括5類情感:憤怒、平靜、悲傷、高興、驚訝;對三個人組成的特定人羣包括3類情感:憤怒、悲傷、平靜。共有超過500句的情感語句,包括了陳述句、祈使句、疑問句等句子類型,以及各種聲調組合及語句長度等情況。爲方便情感的表達,不同的情感語音文本不完全相同。錄音者就是本文的三位作者。錄音軟件爲CoolEdit2000,語音的文件格式爲單聲道,16KHz採樣,量化比特數爲16。
爲了檢驗所收集的語音情感的有效性,我們找了另外3位同學,隨機播放所錄製的情感語音,要求他們通過主觀評判說出所播放語音的情感類別,實驗結果如表1。根據聽取結果剔除了一些語句,最後採用了的情感語句共480句。
表1:情感語音聽取實驗結果
情感類別 |
憤怒 |
平靜 |
悲傷 |
高興 |
驚訝 |
錯誤率(%) |
憤怒 |
120 |
6 |
0 |
2 |
5 |
9.8 |
平靜 |
0 |
120 |
3 |
0 |
0 |
2.4 |
悲傷 |
0 |
2 |
120 |
0 |
0 |
1.6 |
高興 |
2 |
0 |
0 |
60 |
2 |
6.3 |
驚訝 |
3 |
2 |
0 |
1 |
60 |
9.1 |
3. 特徵參數
§3.1 基音頻率參數
對於基音頻率的處理,我們的作法是利用自相關法求出基音頻率,並對基頻曲線進行中心消波和線性平滑處理,然後對基頻曲線的下列特徵進行了研究,並對特徵能夠較好區分的情感作了統計。繪製的圖像見附表。
爲方便起見,下文中五種情緒簡化表示如下:
p:平靜 b:悲傷 j:驚訝 f:憤怒 g:高興
表2:基音頻率參數的統計結果
特徵名稱 |
各情感參數 |
效果 |
能夠較好區分的情感 |
||||
憤怒 |
平靜 |
悲傷 |
驚訝 |
高興 |
|||
基頻最大值 |
337.5 |
231.5 |
314.4 |
322.2 |
351.6 |
良 |
P+J |
基頻最小值 |
64.2 |
44.6 |
57.2 |
60.9 |
66.8 |
中 |
無 |
基頻變化範圍 |
273.3 |
186.9 |
257.2 |
261.2 |
284.8 |
中 |
無 |
基頻局部最小值分佈 |
223.6 |
127.4 |
166.3 |
179.2 |
256.7 |
良 |
P+F |
基頻的均值 |
233.4 |
132.9 |
167.0 |
181.2 |
264.4 |
好 |
P+J+G+F |
基頻方差 |
4.27e3 |
1.38e3 |
3.68e3 |
5.39e3 |
3.49e3 |
中 |
無 |
基頻變化率的均值 |
-2.4e-3 |
-9.7e-4 |
-8.7e-4 |
-3.5e-3 |
-4.6e-4 |
中 |
無 |
基頻變化率的方差 |
7.6e-3 |
3.4e-3 |
6.5e-3 |
6.3e-3 |
4.2e-3 |
中 |
無 |
§3.2 共振峯參數
共振峯是反映聲道特性的一個重要參數,我們通過對語音流中加漢明窗再對其進行傅立葉變換的方法求得共振峯,並對其以下特徵進行了研究。
表3:共振峯參數的統計結果
特徵名稱 |
各情感參數 (第一行爲均值,第二行爲方差) |
效果 |
能夠較好區分的情感 |
||||
憤怒 |
平靜 |
悲傷 |
驚訝 |
高興 |
|||
第一共振峯均值 |
28.3 |
17.4 |
10.4 |
22.3 |
32.0 |
好 |
B+J+G |
共振峯方差 |
16.4 |
6.94 |
19.9 |
8.87 |
27.6 |
中 |
無 |
§3.3 能量參數
在能量方面,考慮到音量的絕對大小並不應該成爲表達情感的主要參數,所以我們主要研究了能量變化率等相對變化的特徵參數。
其中重音特徵能夠把情感區分爲“憤怒、驚訝、高興”組成的激動類情感和“平靜、悲傷”組成的平緩類情感。
表4:能量參數的統計結果
特徵名稱 |
各情感參數 (第一行爲均值,第二行爲方差) |
效果 |
能夠較好區分的情感 |
||||
憤怒 |
平靜 |
悲傷 |
驚訝 |
高興 |
|||
能量變化率的均值 |
1.3e-5 |
1.9e-5 |
4.7e-5 |
1.1e-5 |
1.4e-5 |
中 |
無 |
能量變化率的方差 |
3.3e-5 |
3.5e-5 |
5.4e-5 |
4.1e-5 |
2.2e-5 |
良 |
B+G |
能量變化率的變化率 |
1.59 |
1.26 |
2.09 |
1.88 |
1.02 |
良 |
B+G |
語速 |
6.15 |
5.89 |
7.09 |
6.25 |
6.19 |
中 |
無 |
重音 |
0.285 |
0.0034 |
0.0179 |
0.1756 |
0.3166 |
良 |
激動+平緩 |
4 語音情感的識別
§4.1 採用高斯分佈模型的分類
實驗中我們採用的是一種比較簡單的高斯分佈模型,將每類特徵的分佈視爲多個高斯分佈的加權和。公式描述爲:,其中,M爲高斯分佈的個數,分別爲第i個高斯分佈的均值和方差。最後加權和概率最大的類別C即爲分類結果。
§4.2 SVM分類器的原理
SVM法即支持向量機(Support Vector Machine)法,由Vapnik等人於1995年提出,具有相對優良的性能指標。該方法是建立在統計學習理論基礎上的機器學習方法。通過學習算法,SVM可以自動尋找出那些對分類有較好區分能力的支持向量,由此構造出的分類器可以最大化類與類的間隔,因而有較好的適應能力和較高的分準率。該方法只需要由各類域的邊界樣本的類別來決定最後的分類結果。支持向量機算法的目的在於尋找一個超平面H(d),該超平面可以將訓練集中的數據分開,且與類域邊界的沿垂直於該超平面方向的距離最大,故SVM法亦被稱爲最大邊緣(maximum margin)算法。待分樣本集中的大部分樣本不是支持向量,移去或者減少這些樣本對分類結果沒有影響,SVM法對小樣本情況下的自動分類有着較好的分類結果.
SVM方法是通過一個非線性映射p,把樣本空間映射到一個高維乃至無窮維的特徵空間中(Hilbert空間),使得在原來的樣本空間中非線性可分的問題轉化爲在特徵空間中的線性可分的問題。簡單地說,就是升維和線性化。升維,就是把樣本向高維空間做映射,一般情況下這會增加計算的複雜性,甚至會引起“維數災難”,因而人們很少問津。但是作爲分類、迴歸等問題來說,很可能在低維樣本空間無法線性處理的樣本集,在高維特徵空間中卻可以通過一個線性超平面實現線性劃分(或迴歸)。一般的升維都會帶來計算的複雜化,SVM方法巧妙地解決了這個難題:應用核函數的展開定理,就不需要知道非線性映射的顯式表達式;由於是在高維特徵空間中建立線性學習機,所以與線性模型相比,不但幾乎不增加計算的複雜性,而且在某種程度上避免了“維數災難”。這一切要歸功於核函數的展開和計算理論。 選擇不同的核函數,可以生成不同的SVM,常用的核函數有以下4種:
(1)線性核函數K(x,y)=x·y;
(2)多項式核函數K(x,y)=[(x·y)+1]^d;
(3)徑向基函數K(x,y)=exp(-|x-y|^2/d^2);
(4)二層神經網絡核函數K(x,y)=tanh(a(x·y)+b);
§4.3 數據分析及整理
在提取了前面的特徵參數之後,通過分類器對其進行了分類,結果列於下面的表5至表10中。
下面的表5表6反映了單個特定人情況下訓練集與測試集數目關係對正確率的影響。
表格5:(單個特定人)三種特徵下訓練集與測試集數目關係對正確率的影響
訓練集數目 |
測試集數目 |
錯誤率統計 |
錯誤句數 |
測試集正確率(%) |
|||||||||||||
訓練集(錯誤數目及種類) |
測試集(錯誤數目及種類) |
||||||||||||||||
平靜 |
悲傷 |
驚訝 |
憤怒 |
高興 |
平靜 |
悲傷 |
驚訝 |
憤怒 |
高興 |
||||||||
20*5 |
40*5 |
0 |
1j1p |
0 |
2g |
1f |
2b |
3j |
1f |
3g5j |
2f |
5+16 |
92 |
||||
30*5 |
30*5 |
0 |
1j1p |
0 |
3g1j |
2f |
0 |
2j |
0 |
1g3j |
2f |
8+8 |
94.7 |
||||
40*5 |
20*5 |
0 |
1j2p |
1f |
3g1j |
1f |
0 |
0 |
0 |
2g3j |
1f |
9+6 |
94 |
||||
50*5 |
10*5 |
0 |
1j1p |
1f |
5g1j |
2f |
0 |
0 |
0 |
2g3j |
0 |
11+5 |
90 |
||||
60*5 |
無 |
0 |
4j3p |
1f |
6g2j |
4f |
|
20+0 |
|
||||||||
表格6:(單個特定人)兩種特徵下訓練集與測試集數目關係對正確率的影響
訓練集數目 |
測試集數目 |
錯誤率統計 |
錯誤句數 |
測試集正確率(%) |
|||||||||
訓練集(錯誤數目及種類) |
測試集(錯誤數目及種類) |
||||||||||||
平靜 |
悲傷 |
驚訝 |
憤怒 |
高興 |
平靜 |
悲傷 |
驚訝 |
憤怒 |
高興 |
||||
10*5 |
50*5 |
0 |
0 |
0 |
0 |
0 |
0 |
4f6j |
3f |
2g2j |
5f |
0+22 |
91.2 |
20*5 |
40*5 |
0 |
2j |
0 |
3g1j |
0 |
0 |
2j |
1f |
4g5f |
0 |
6+12 |
94 |
30*5 |
30*5 |
0 |
2j1p |
0 |
4g1j |
0 |
0 |
2j |
1f |
3g3j |
0 |
8+9 |
94 |
40*5 |
20*5 |
0 |
1j1p |
0 |
7g2j |
0 |
0 |
0 |
0 |
1g2j |
0 |
11+3 |
97 |
50*5 |
10*5 |
0 |
2j1p |
0 |
9g3j |
0 |
0 |
0 |
0 |
2g1j |
0 |
15+3 |
94 |
60*5 |
無 |
0 |
2j1p |
1f |
9g3j |
0 |
|
16+0 |
|
下面的表7反映了單個人情況下特徵數目隊正確率的影響
表格7:(單個特定人)特徵數目對正確率的影響
特徵數目 |
錯誤率統計 |
錯誤句數 |
測試集正確率(%) |
|||||||||
訓練集40*5句(錯誤數目及種類) |
測試集20*5句(錯誤數目及種類) |
|||||||||||
平靜 |
悲傷 |
驚訝 |
憤怒 |
高興 |
平靜 |
悲傷 |
驚訝 |
憤怒 |
高興 |
|||
兩種 (基音均值 +第一共振峯均值) |
0 |
1j1p |
0 |
7g2j |
0 |
0 |
0 |
0 |
1g2j |
0 |
11+3 |
97 |
三種 (基音均值 +第一共振峯均值 +能量變化率的方差) |
0 |
1j2p |
0 |
3g1j |
1f |
0 |
0 |
0 |
2g3j |
1f |
9+6 |
94 |
三種 (基音均值 +第一共振峯均值 +能量變化率的變化率) |
1b |
2j3p |
0 |
2g2j |
2f |
0 |
0 |
0 |
2g |
1f |
12+3 |
97 |
四種 (基音均值 +第一共振峯均值 +能量變化率的變化率 +能量變化率的方差) |
1b |
2j3p |
0 |
1g1j |
6f |
0 |
0 |
2f |
1g4j |
3f |
14+10 |
90 |
從上面幾個表格中可以看出,“憤怒”和“高興”兩種情感比較容易混淆,下面就以訓練集40*4句,測試集20*4句的情況,比較憤怒和高興不同時出現的正確率,結果見表8。
表格8:(單個特定人)憤怒Vs高興
情感數 |
錯誤個數 |
錯誤句數 |
||||
P |
B |
J |
F |
G |
||
P+B+J+G |
0+0 |
1j1p+0 |
0+0 |
|
0+0 |
2+0 |
P+B+J+F |
0+0 |
1j1p+0 |
0+0 |
2j+2j |
|
4+2 |
下面的表格9反映了組成特定人羣的三位錄音人,在只有“憤怒”“悲傷”“平靜”三種情感語音下的正確率。
表格9:三套單個特定人(三種情緒)的對比
錄音人 |
總句數 |
悲傷錯誤句數 |
平靜錯誤句數 |
憤怒錯誤句數 |
共錯 |
葛林 |
180 |
1p |
0 |
0 |
1 |
張吉 |
129 |
2f |
1f |
1b |
4 |
王文韜 |
60 |
1p |
0 |
0 |
1 |
下面的表格10是特定人羣的研究,先是兩個人組成的特定人羣,然後是三個人組成的特定人羣。分類時仍採用高斯分佈模型,利用基音頻率的均值、能量變化率的方差、第一共振峯的均值三個特徵。分類時,對每個特定人的每種情感建立一個高斯分佈,進而分別求出這9個高斯分佈的值,然後分別對每類情感的3個特定人的分佈求和,概率最大的那類情感就是分類結果。
表格10:特定人羣正確率
人羣 |
測試集句數 |
測試集錯誤統計 |
共錯 |
正確率(%) |
||
平靜 |
悲傷 |
憤怒 |
||||
葛+張 |
258 |
1f |
2f2p |
1b |
6 |
97.7 |
張+王 |
120 |
1f |
2f1p |
2b |
6 |
95 |
葛+王 |
120 |
1b |
2f2p |
0 |
5 |
95.8 |
三人 |
180 |
1f1b |
3f4p |
1b |
10 |
94.4 |
5 實驗結果
§5.1 實驗結果的小結
經過特徵的提取和分析,我們發現,“基音頻率的均值”、“第一共振峯的均值”這兩個特徵具有最好的區分效果,“能量變化率的方差”、“能量變化率的變化率”、“基頻最大值”等特徵也具有一定的區分效果。
對單個特定人的憤怒、悲傷、驚訝、高興、平靜五種情感區分,採用“基音頻率的均值”、“第一共振峯的均值”的兩個特徵具有最好的區分效果,識別正確率平均可達93.7%,其中憤怒和高興兩種情緒比較容易混淆。
對三個特定人組成的特定人羣的憤怒、悲傷、平靜三種情感區分,採用“基音頻率的均值”、“第一共振峯的均值”以及“能量變化率的方差”的三個特徵具有最好的區分效果,識別正確率平均可達94.4%。
§5.2 系統展示
參考文獻:
[1]楊行俊,遲惠生等,語音信號數字處理,電子工業出版社,1995
[2]王治平等,語音信號中的情感特徵的分析和識別,東南大學無線電工程
[3]蔣丹寧,蔡蓮紅,基於韻律特徵的漢語情感語音分類,清華大學計算機系
[4]陳建廈,語音情感識別綜述,廈門大學計算機科學系
本內容部分原創,因作者才疏學淺,偶有紕漏,望不吝指出。本內容由靈聲訊音頻-語音算法實驗室整理創作,轉載和使用請與“靈聲訊”聯繫,聯繫方式:QQ(245051943)