林 琴,郭玉堂,劉路路,劉亞楠
(合肥師范學(xué)院 計算機學(xué)院,安徽 合肥 230061)
《語音信號處理》課程[1]是高等學(xué)校計算機科學(xué)與技術(shù)、電子信息工程、通信工程等專業(yè)選修的課程,目的是使學(xué)生了解語音信號處理學(xué)科的原理、方法、應(yīng)用及目前的學(xué)科發(fā)展趨勢與方向,介紹智能信息處理技術(shù),現(xiàn)代信號處理技術(shù)及其他一些前沿和新興技術(shù)在語音信號處理中的應(yīng)用,以及最新的研究成果與進展。該課程內(nèi)容較多,涉及大量的數(shù)學(xué)運算和公式推導(dǎo),由于概念抽象,使得學(xué)生難以理解。因此,淡化理論的推導(dǎo)過程,使概念直觀化,將是幫助學(xué)生理解教學(xué)內(nèi)容的關(guān)鍵之一。本研究基于Matlab平臺,將教學(xué)內(nèi)容中的一些難以理解的要點或者抽象的概念用 Matlab語言開發(fā)成可執(zhí)行的程序,從而將“語音信號處理”課程中較難掌握和理解的重點理論和方法通過編程演示出來,使學(xué)生對所學(xué)知識的理解更加透徹。
Matlab(Matrix Laboratory,矩陣實驗室 )是[2]由美國TheMathWorks公司于1982年推出的一個完整的并可擴展的高性能的數(shù)值計算和可視化軟件,是一種進行科學(xué)和工程計算的交互式程序語言。Matlab功能強大、簡單易學(xué)、編程效率高,且具有信號分析工具箱,不需很強的編程能力,就可以很方便地進行信號分析、處理和設(shè)計。它還是一種有力的教學(xué)工具,在線性代數(shù)、自動控制理論、數(shù)理統(tǒng)計、數(shù)字信號處理、動態(tài)系統(tǒng)仿真等課程的教學(xué)中,已成為標(biāo)準(zhǔn)的教學(xué)工具。
“語音信號處理”課程中的理論和結(jié)論大都是經(jīng)過數(shù)學(xué)推導(dǎo)得來的,比較抽象、也較難理解。Matlab語言對如語音預(yù)處理,端點檢測,特征提取,基音檢測,語音識別等一系列問題都可通過圖形建模使之可視化。Matlab在課堂教學(xué)中的應(yīng)用主要體現(xiàn)在兩個方面,一是在課堂上將理論教學(xué)與Matlab圖形演示結(jié)合起來,使學(xué)生在接受枯燥理論知識的同時,可以看到相應(yīng)知識點的驗證演示,從而使課堂教學(xué)更加直觀、生動。二是針對課堂教學(xué)中涉及的重點、難點適當(dāng)布置課后練習(xí),讓學(xué)生利用Matlab軟件完成平時以書面形式難以完成的作業(yè),加深對所學(xué)知識的理解,提高學(xué)習(xí)興趣。以下列舉幾個例子加以說明。
端點檢測算法[3]的作用是對語音信號中的有聲片段和無聲片段進行分割,從而可以找出語音段的起始點和終止點,才有可能使采集到的數(shù)據(jù)是真正要分析的語音信號,這樣不但減少了數(shù)據(jù)量、運算量和處理時間,同時也有利于語音識別系統(tǒng)識別率的提高。端點檢測常用的方法是雙門限法,一般利用短時能量和短時平均過零率來實現(xiàn)。
3.1.1 短時能量和短時平均過零率
短時能量可以區(qū)分濁音段和清音段,因為濁音時的En值比清音時大的多,可大致判定清音和濁音的變化時刻。對于高信噪比的語音信號,可以用來區(qū)分有無語音。此時,無語音信號的噪聲能量很小,而有語音信號時短時能量值顯著地增大到某一個數(shù)值,由此可以區(qū)分語音信號的起點與終點。設(shè)經(jīng)過加窗處理后的第n幀語音信號為xn(m),幀序列長度為N,則第n幀的短時能量En的定義如下:
短時平均過零率表示一幀語音中語音信號波形穿過橫軸(零電平)的次數(shù)。過零分析是語音時域中最簡單的一種。對于連續(xù)語音信號,過零即意味著時域波形通過時間軸;而對于離散信號,如果相鄰的取樣值改變符號則稱為過零,過零率就是樣本改變符號的次數(shù)。定義語音信號xn(m)的短時平均過零率Zn,sgn[]是符號函數(shù),
3.1.2 仿真實現(xiàn)
實驗所用語音數(shù)據(jù)是在實驗室環(huán)境下,在普通PC機上,用麥克風(fēng)錄制的。語音信號采樣率為8kHz,采樣精度為16bit,單聲道模式。語音采用的文件格式為 Windows的wav格式,錄音軟件為NGWave。圖1是一段語音的短時能量和短時平均過零率,對短時能量和短時平均過零率設(shè)定相應(yīng)的門限參數(shù),就可以把語音信號的有聲段檢測出來,圖2是語音信號為數(shù)字“1”的雙門限端點檢測。
3.2.1 原理簡介
語音識別就是讓機器能聽懂人類的語音?,F(xiàn)階段大部分語音識別系統(tǒng)[4]都采用的是模式匹配的原理,主要由預(yù)處理、特征提取、模型庫及模式匹配幾個主要部分組成。預(yù)處理包括預(yù)加重、加窗、分幀和語音端點檢測等。其語音識別系統(tǒng)的原理框圖如圖3所示:
圖1 一段語音的短時能量和短時平均過零率
圖2 雙門限的端點檢測
圖3 語音識別系統(tǒng)的原理圖
在這個模式匹配過程中,首先是要對人的自然語言的語音信號進行預(yù)處理,將連續(xù)模擬信號變成離散數(shù)字信號,語音離散數(shù)字信號[5]包含大量冗余信息,能極大的影響語音識別的識別率,因此需要對語音數(shù)字信號進行特征參數(shù)提取,通常使用倒譜、Mel倒譜參數(shù)等抽取實際所需的語音特征參數(shù),這些特征參數(shù)的時間序列構(gòu)成了語音識別模板,經(jīng)過周復(fù)始的大量反復(fù)輸入、提取,最終得到最優(yōu)的語音識別模板,然后將不同詞條的大量語音模板按一定數(shù)據(jù)結(jié)構(gòu)構(gòu)建模板庫。計算機在語音識別過程中要對計算機存放模板庫中的語音模板與輸入的語音數(shù)字信號的特征進行比較,通過識別決策如搜索、匹配等策略,獲得最佳的匹配模板。模式匹配是識別的核心,針對語音信號的特點選擇和建立合適的識別模型和算法。
3.2.2 仿真實現(xiàn)
本實驗中所提取的特征參數(shù)為Mel倒譜系數(shù),模板匹配過程中采用的是DTW算法。所錄制的語音孤立詞條為:0~9十個數(shù)字和“安徽”、“大學(xué)”、“后退”、“快速”、“慢速”、“啟動”、“前進”、“停止”、“右轉(zhuǎn)”、“左轉(zhuǎn)”十個詞組。每個詞分別錄制了5遍,共100個語音樣本。圖4是DTW的訓(xùn)練界面,圖5是DTW的識別界面。圖6是基于特定人的孤立詞語音識別系統(tǒng),基于Matlab工具下的GUI編程界面。
圖4 DTW的訓(xùn)練界面
圖5 DTW的識別界面
圖6 特定人語音識別系統(tǒng)
本文圍繞語音信號的數(shù)字處理過程,以語音信號的端點檢測和語音識別系統(tǒng)的仿真實現(xiàn)為例,將Matlab運用到語音信號處理課程的教學(xué)中,加深了學(xué)生對課堂抽象理論的理解,掌握了語音信號處理中的基本分析方法和理論應(yīng)用,有效地提高學(xué)生學(xué)習(xí)的積極性和興趣,達到事半功倍的效果。
[1]趙力.語音信號處理[M].北京:機械工業(yè)出版社,2003.
[2]張志涌.精通 MATLAB 6.0[M].北京:北京航空航天大學(xué)出版社,2003.
[3]胡航.語音信號處理[M].哈爾濱:哈爾濱工業(yè)大學(xué)出版,2005.
[4]劉衛(wèi)東,孟曉靜,王艷芬.語音信號處理實驗教學(xué)研究探索[J].實驗室研究與探索,2008,27(4):73-74.
[5]李愛平,李愛勤,王小娟.MATLAB在《語音信號處理》課程教學(xué)中的應(yīng)用[J].科技教育創(chuàng)新,2010,(17):183-184.