基于DSP嵌入式說話人識別系統的設計
2.4 算法實現過程中的具體考慮.
(1)FFT變換點數的選擇。FFT變換點數選擇很重要,如果選擇太大,則運算復雜度變大,使系統響應時間變長,如果選擇太小則可能造成頻率分辨率過低,提取參數誤差過大。該系統中選取的點數為240點。
(2)模型參數的選擇。首先模型階數M必須適中,必須足夠大,可以充分表示出空間的分布。然而,階數也不能太大,否則數據數量不足,也無法準確描述特征空間分布??紤]該系統對參數的存儲空間要求,并綜合以上考慮,該系統選用的階數為32階。
(3)協方差矩陣類型。考慮到減少計算量,這里采用對角陣。在高維特征空間中,對角陣比全矩陣優勢更為明顯。
(4)方差限定。當訓練數據不足或者是存在噪聲干擾時,方差幅度會很小,這樣會導致模型概率函數的奇異性,所以每次EM迭代時,都需要對方差進行限定。即:
根據實驗結果,該系統選取S2 min為0.025
(4)模型初值的設定:EM算法是尋找局部最大概率的模型。不同的初值會導致不同的局部極值。該系統中采用的是K均值法。
2.5 K均值法應注意的幾個問題
(1)聚類中心的初始化。對于聚類中心數目由GMM模型決定,假設是N。對于聚類中心的初始化,一般取前N個矢量作為聚類中心,但在實驗過程中發現,這種方法不具有針對性,往往設立的初始的聚類中心不具有很好的聚類效果。所以這里采用取質心法。具體方法為:
第一步先求出訓練集S中全體矢量X的質心,然后在S中找出一個與此質心的畸變量最大的矢量Xj,再在S中找到一個與Xj的畸變量最大的矢量Xk。以Xj和Xk為基準進行胞腔劃分,得到Sk和Sj兩個子集。對這兩個子集分別按照同樣的方法劃分得到4個子集。依次類推,得到N個子集。這N個子集的質心即為初始的聚類中心。
(2)聚類中心改進量δ的選擇。對于聚類中心改進量δ的選擇,若選擇太大,則聚類不充分,影響訓練效果;若太小,則會導致訓練無法完成,該系統通過試驗,取比較適中的數0.01。
(3)最大迭代次數的選擇。對于最大迭代次數的選擇,太小會導致誤判,太大導致訓練不成功時過多的占用系統時間。該系統迭代次數設為100,比較適中。
3 實驗結果及改進點
通過系統調試及改進,該系統最終實現10個說話人的身份識別,并自舉運行。運行時通過Switch組合可方便的選擇訓練或識別的功能,并可更新說話人。訓練,識別的進度及結果通過LED組合顯示。利用該系統對5男5女10個人進行訓練,每人500次測試,結果正確識別率為98%,識別時間為3 s左右。說明該系統可以有效的識別說話人的身份。對于該系統,識別時間及識別率上還有改進空間,以后工作可圍繞識別時間上改進。
評論