第四章 KNN 與 SVM 於語音情緒辨識之實驗與分析
4.1 KNN 語音情緒辨識
4.1.2 KNN 語音情緒辨識實驗結果與分析
min(
) max(
) min(
,
i i
i i
norm
i x x
x x x
(4.1.2)
) min(
) max(
) min(
,
i i
i i
norm
i y y
y y y
(4.1.3)
其中(xi,norm,yi,norm)為KNN 之參數正規化值,min(xi)與min(yi)為特
徵參數x 與y 於資料庫中之最小值,max(xi)與max(yi)為特徵參數 x 與y 於資料庫中之最大值。
4.1.2KNN 語音情緒辨識實驗結果與分析
本論文使用 KNN 作為語音情緒辨識的主要流程如圖 4-2 所示,
首先,測試語者必須先講一段中性語調之語句,由此計算出正規化特 徵參數因子(如流程中之虛線所示),接著,進入語音情緒辨識流程,
在得到語者一段情緒語音訊號後,先計算出原始特徵參數,並經由正 規化特徵參數因子對原始特徵參數做正規化計算,最後,將正規化特 徵參數與KNN 正規化特徵資料庫作比對與分類,辨識出使用者的情 緒。
由於 KNN 分類器的分類效果取決於最近鄰是屬於哪一個分類的 多寡來決定,因此,K的選定會對分類結果有直接的影響,在此,我 們利用德國語料庫所有語料隨機取各情緒一半當作訓練資料,另一半 則當作測試資料,圖4-3為不同 K值所得之辨識結果,由辨識結果顯 示,當K大於 20時,辨識率開始降低,而K值若取太小時,由於參 考樣本不足,也容易造成誤判的情形發生,因此,本文中所使用之 K 值在參考其他文獻與測試結果後,將固定 K 值為 11,以避免過大或 過小產生辨識效果不佳或誤判的情況。以下將分別針對KNN 分類器 在語者相關(User dependent)以及語者獨立(User independent)的情況進 行實驗測試與分析,同時,也將針對KNN 分類器在訓練語料與測試 語料不同的情況進行實驗測試與分析。
首先,先針對訓練資料庫與測試資料庫為語者相關做實驗測試,
以德國語料所有資料當作訓練資料,也就是悲傷有62筆、中性有 79 筆、快樂有 71 筆、生氣有 127 筆訓練資料,並以訓練資料當作測試 資料,對德國語料作 Inside Test。表4-1為使用正規化特徵參數KNN
Inside Test鑑別矩陣(Discriminant matrix),由辨識結果顯示,使用正 規化特徵參數做KNN Inside Test 時,悲傷62筆測試資料有 52筆資 料被辨識為悲傷,10 筆資料被辨識為中性,悲傷之辨識正確率為 84%,中性79筆測試資料有 79筆資料被辨識為中性,中性之辨識正 確率 100%,快樂 71 筆測試資料有 2 筆資料被辨識為中性,45 筆資 料被辨識為快樂,24 筆資料被辨識為生氣,快樂之辨識正確率63%, 生氣127 筆測試資料有1筆資料被辨識為中性,1筆資料被辨識為快 樂,125筆資料被辨識為生氣,生氣之辨識正確率98%,整體之辨識 正確率為88.8%,從鑑別矩陣顯示,悲傷與中性在識別上,比較容易 產生混淆,而快樂則與生氣易產生混淆,造成悲傷與快樂之辨識度較 低。
接著,考慮語者獨立的情況,也就是使用者資料不在訓練資料內 的情況,同樣的,以德國語料庫當作實驗語料,首先,將 Person 1(P1) 的語料當作測試語料,並以Person 2 ~ Person 10語料當作訓練語料,
因此悲傷有7筆、中性有 11筆、快樂有7筆、生氣有14 筆測試語料,
而在訓練語料中,悲傷有 55 筆、中性有68 筆、快樂有 64 筆、生氣 有113筆,接著,以Person 2 當測試資料,另外9人(P1以及P3 ~ P10) 當作訓練資料,進行P2 KNN Outside Test,以此類推,對P3 至P10 進行KNN Outside Test,表4-2為 P1 ~ P10 使用原始特徵參數KNN
Outside Test鑑別矩陣(P1 ~ P10各情緒之辨識正確率詳見附錄A),由 鑑別矩陣結果顯示,悲傷 62 筆測試資料中有 35 筆資料被辨識為悲 傷,27筆資料被辨識為中性,悲傷之辨識正確率為56%,中性 79筆 測試資料有 2 筆資料被辨識為悲傷,77 筆資料被辨識為中性,中性 之辨識正確率97%,快樂71 筆測試資料中有3筆資料被辨識為中性,
32 筆被辨識為快樂,36 筆資料被辨識為生氣,快樂之辨識正確率 45%,生氣127筆測試資料中有 2筆資料被辨識為中性,4筆被辨識 為快樂,121 筆資料被辨識為生氣,生氣之辨識正確率 95.3%,整體 之辨識正確率為78.2%。當測試資料不在訓練資料中時,明顯的,悲 傷與快樂的辨識率大幅度下降,悲傷有一大部分資料容易被辨識成中 性,而快樂則大部分容易被辨識成生氣,KNN 分類方法對於悲傷與 快樂並沒有良好的分類效果。
同樣的,使用正規化特徵參數進行KNN Outside Test,表 4-3為 P1 ~ P10 使用正規化特徵參數 KNN Outside Test鑑別矩陣(P1 ~ P10 各情緒之辨識正確率詳見附錄A),由鑑別矩陣結果顯示,悲傷62筆 測試資料中有41 筆資料被辨識為悲傷,21筆資料被辨識為中性,悲 傷之辨識正確率為66%,中性79 筆測試資料中有79筆資料被辨識為 中性,中性之辨識正確率 100%,快樂71筆測試資料中有5筆資料被 辨識為中性,39 筆被辨識為快樂,27 筆資料被辨識為生氣,快樂之
辨識正確率55%,生氣127筆測試資料中有 1筆資料被辨識為悲傷,
1 筆資料被辨識為中性,4 筆被辨識為快樂,121 筆資料被辨識為生 氣,生氣之辨識正確率95.3%,整體之辨識正確率為 82.6%,整體之 辨識正確率比使用原始特徵參數做 KNN Outside Test 時提升約 4.4%,由原始與正規化特徵參數之KNN Outside Test 辨識結果可以看 出,使用正規化特徵參數可以有效縮小語者之間在特徵參數上的差 異,增加各情緒之間的分類效果。若從正規化特徵參數之KNN Outside Test鑑別矩陣來看,其結果與原始參數結果相近,悲傷容易被辨識成 中性,而快樂則容易被辨識成生氣,此結果顯示KNN 分類方法不論 使用原始或正規化特徵參數皆對悲傷及快樂沒有良好的分類效果。
最後,由於不同地區、不同種族對於語音的發音以及表達情緒的 方式皆不同,當以特定語系訓練好之分類器應用在不同語系或不同國 家時,由於各情緒在特徵參數之間的差異,辨識效果將大為不同,因 此,我們同樣針對KNN 分類器在訓練語料與測試語料為不同語系情 況下進行辨識,在此,我們以德國語料庫所有資料當作訓練資料,並 以工業技術研究院所錄製之語料(表3-2)當作測試語料,表4-4為KNN 使用正規化特徵參數在訓練與測試為不同語系下之鑑別矩陣,由辨識 結果顯示,KNN 對於中性有極佳之辨識效果,辨識率為95.8%,而 悲傷情緒只有16.2%被辨識為悲傷,有 83.3%的悲傷情緒會被辨識為
中性,此結果表示中文語系悲傷之特徵參數與德國語料庫之中性特徵 參數相近,因此,若以德國語料庫當作訓練資料時,中文語系之悲傷 情緒容易被辨識為中性,而快樂與生氣情緒辨識結果與悲傷相當類 似,快樂與生氣情緒各有65.8%以及 90.2%會被辨識為中性,快樂被 正確辨識為快樂的機率有22.5%,而生氣僅有 2.3%的機率被正確辨 識為生氣,整體之正確辨識率為 34.2%,由以上各情緒之辨識結果可 以發現,工研院四種情緒皆容易被辨識為中性,此結果與台灣人個性 較為內斂有關,在表達情緒時,各情緒之特徵不若德國演員各情緒之 呈現,因此,在辨識上,容易被辨識為中性。