闕大順,王虹,楊杰
摘要:針對語音信號分析與處理的特點,利用Matlab開發了通用語音信號處理虛擬實驗平臺,可完成語音信號的采集、預處理、語音分析和語音處理等功能及其結果顯示。闡述了系統總體設計思路,給出了多種語音分析和處理的功能實現舉例。整個系統界面友好,且具有易擴展的特點。實踐證明,該平臺可使學生更好地理解和掌握課程的基本理論,有利于提高學生的分析問題能力和綜合實踐能力,培養學生創新意識。
關鍵詞:語音處理;虛擬實驗;Matlab;圖形用戶界面GUI
中圖分類號:TN911.72 文獻標志碼:A 文章編號:1674-9324(2012)01-0203-02
一、引言
語音信號處理是以語音語言學和數字信號處理等為基礎的涉及面很廣的交叉學科,是許多信息領域應用的核心技術之一。目前高校中的語音信號處理課程主要從基礎理論、算法實現及實際應用等幾個方面來展開教學。由于該課程的理論涵蓋面廣、數學公式推導較多,學生學習理論知識會顯得枯燥難懂,且感覺理論和實際應用脫節。針對這種情況,本文利用美國NI公司的圖形化虛擬儀器開發平臺Matlab/Simulink,完成了語音信號處理的虛擬實驗仿真平臺設計。借助該平臺,學生能較為完整的深化學習該門課程的基礎理論,扎實掌握課程的知識網絡結構,探索語音信號處理算法的實現方法,同時能將語音信號處理系統的各個部分內容有機地銜接起來,極大地方便了學生進行語音信號處理的學習,有利于學生對理論算法的理解,加強了動手能力,提高了學習的主動性,有助于學生創新綜合能力的培養。
二、實驗平臺總體設計
本實驗平臺采用圖形化虛擬儀器開發平臺Matlab/Simulink,它是一種圖標代替文本行創建應用程序的圖形化編程語言,Matlab采用基于流程圖的圖形化編程方式,它編程簡單、易于理解、效率高,針對數據采集、儀器控制、信號分析和數據處理等任務,設計提供了豐富完善的功能圖標,且能解決極其復雜的數值運算。語音信號處理包含語音信號的數字表達方法、語音信號的數字處理的各種方法以及語音處理理論和技術應用等三個方面的內容。開發的實驗平臺結構框圖如圖1所示。
實驗平臺的語音信號采集由語音采集卡、調理電路和PC機接口組成,也可由麥克風和聲卡將接受的語音信號經COOL EDIT或Praat等語音編輯軟件來完成,以形成待處理的音頻文件,再進行預加重、端點檢測等語音預處理,然后完成語音信號分析、特征參數提取和語音信號處理及應用等實驗。
三、實驗平臺功能實現舉例
語音信號在Matlab下對信號分析算法和處理算法進行調試,無誤后導入matlab Script節點中。設計完成的虛擬實驗平臺界面如圖2所示。
程序運行時,用戶可通過編輯設計用戶菜單,點擊菜單欄中的下拉菜單選項,程序會自動彈出相應的前面板,選擇好文件路徑,程序將對語音數據進行分析,同時實時顯示分析處理結果。
1.端點檢測實驗的功能實現。語音預處理的端點檢測常用的方法是雙門限法,利用短時能量和短時過零率參數來實現。由于語音的起點可能是能量很弱的清輔音,此時不能用能量來區別這種清輔音和無聲,必須采用過零率。搜索過零率的時間少于要一個語音幀的長度。圖3為端點檢測VI。當程序運行時選擇待分析的語音信號,“驗證數組操作”中顯示信號時域波形,“短時能量”和“過零率”即為該語音的對應參數顯示。利用短時能量檢測的語音端點顯示在“端點幀數”表格中。
2.基音周期檢測實驗的功能實現。根據語音信號的短時平均幅度差函數來確定基音周期,圖4為基音周期檢測的前面板設計?!岸虝r平均幅度差”顯示語音信號的平均幅度差函數,檢測得到的濁音周期在“基音周期”表格中顯示出來。
3.倒譜分析實驗的功能實現。倒譜定義為信號短時振幅譜的對數傅里葉反變換,倒譜域中基音信息與聲道信息相對分離,采取簡單的倒濾波方法可以分離并恢復出聲門脈沖激勵和聲道響應,并求出基音周期和共振峰。圖5為倒譜法求語音的共振峰的前面板。
4.頻譜分析實驗的功能實現。調用Matlab中的譜分析函數模塊,先對語音信號進行分幀,再將分幀后的語音信號數據轉換為波形數據類型,采樣率為8kHz。頻譜子VI前面板,如圖6所示。
利用譜分析中的“STFT時頻圖”模塊,可對分幀語音信號進行聯合時頻分析,通過改變前面板中頻域窗長,可實現寬帶和窄帶語譜圖的仿真實現。
5.孤立詞識別實驗的功能實現?;贖MM模型的孤立詞識別原理框圖,如圖7所示。語音識別系統底層由語音輸入模塊、預處理模塊、特征提取模塊、識別模塊以及訓練模塊等5部分組成。
在語音采集過程中,以0~9這10個數字作為實驗對象,每個語音有200份樣本,分別來自10位男生和10位女生,每個數字每人采集10份,共得到2000個語音樣本。同樣將實驗數據分為三組:第一組用于訓練,選擇8位女生和7位男生作為參與訓練的人,每人每個數字取2份,共計300份語音樣本;第二組用于檢測系統的識別率,由15個參與訓練的人的剩下的語音構成;第三組用于檢測系統的識別率,由未參與訓練的5個人的語音組成。
實驗中點擊系統“語音識別”的二級菜單中的“輸入語音”菜單,可以通過麥克風錄音,如數字“0”;然后完成語音信號的分幀和端點檢測等“預處理”;“特征提取”模塊可完成對語音信號特征參數的提取,本實驗提取的是12維MFCC及其12維一階導數,共24維,這樣可以反映語音信號的靜態和動態特征;“識別”模塊完成對所錄入的語音和模板庫內的語音的匹配,選擇累計概率最大的一個作為識別結果。對錄入數字“0”的識別結果的輸出界面如圖8所示。
重復上述過程,可完成數字語音0~9的孤立詞識別。通過實驗分析,可進一步完成系統對參與訓練人的語音識別與第三組中未參與訓練人的識別率的統計結果比較。
本文設計完成了一種運用Matlab圖形化編程環境進行語音信號處理的虛擬實驗平臺,能很好地結合學生的書本理論,方便地完成對語音信號的采集、預處理、語音分析和語音處理等功能及其結果顯示。系統具有用戶界面簡潔和易于擴展實驗功能的特點。
參考文獻:
[1]趙力.語音信號處理(第2版)[M].北京:機械工業出版社,2009.
[2]張志涌,楊祖櫻.MATLAB教程[M].北京:北京航空航天大學版社,2010.
[3]張德豐.MATLAB/Simulink建模與仿真[M].北京:電子工業出版社,2009.
課題項目:湖北省高等學校省級教學研究項目“大學生研究性學習與創新性實驗研究”(20070089)
作者簡介:闕大順(1963-),男,教授,博士,主要研究方向為信號與信息處理的科研與教學。