鄧 力, 梁向東
(桂林理工大學 南寧分校,南寧 530001)
基于DFT的嵌入式普通話語音快速識別
鄧 力, 梁向東
(桂林理工大學 南寧分校,南寧 530001)
基于選定的頻率普通話發(fā)音識別技術,由定義的輸入普通話語音拾取的普通話語音識別腔共振曲線,通過對中文分詞、韻母聲母頻譜識別,對中文語音的聲母、韻母、聲調集成、輸出的中文拼音詞序列組合,形成句子的中文拼音序列。通過韻母分析方法進行單音節(jié),頻域幅頻特性分析技術,不需要學習或培訓事先要用于一個特定的人的聲音,能夠識別非特定的單詞和句子的普通話語音,采用速率自適應梳狀(Discrete Fourier Transform,DFT)譜分析算法,只需極少量的計算,就能夠確定地包含4個聲調的普通話,具有響應速度快,所需存儲空間小,能方便的移植到嵌入式設備的應用程序中。
語音識別; 頻譜分析; DFT算法
當前語音識別的主要有基于語音知識和聲道模型、基于模板匹配和人工神經(jīng)網(wǎng)絡3種方法[1]。
(1) 基于語音知識和聲道模型方法。語言是有限數(shù)量的不同語言基元,并可以通過它們的聲音信號在頻率域和時間域的特征來區(qū)分工作。此方法分為兩個階段: ① 取時間為縱軸,對語音進行離散處理,得到不同的語音段,每個語音段信號其聲學特性對應于一個或多個語音,每個語音的信號的聲學特性都會有其對應的信號標簽[2]。② 將前面通過語音離散得到的每個時間段的信號標簽轉換成對應的語音信號基礎網(wǎng)格[3]。
(2) 基于人工神經(jīng)網(wǎng)絡方法。人工神經(jīng)網(wǎng)絡是自適應非線性動態(tài)系統(tǒng),人工神經(jīng)網(wǎng)絡通過模擬人的神經(jīng)活動[4],可實現(xiàn)語音識別,但系統(tǒng)訓練所需時間較長,而且也不能很好地描述語音信號的時間動態(tài)[5],當前該技術還未進入應用階段。
(3) 模板匹配方法成熟,現(xiàn)已達到實用階段[6]。模板匹配有以下步驟:特征提取、 模板培訓、 模板分類、 判斷[7]。常用的有動態(tài)時間規(guī)整 (DTW)、 隱馬爾可夫 (HMM) 理論、 矢量量化(VQ)技術[8]。
在實際的應用過程中,目前幾乎所有成功的語音識別方法都是基于統(tǒng)計的、概率的或信息理論的方法。但是這些識別方法需要的計算復雜,數(shù)據(jù)庫龐大,對系統(tǒng)硬件的要求高,難以在便攜式設備上使用。
針對現(xiàn)有技術的不足,本文的普通話語音識別方法根據(jù)音頻特點并結合時域頻譜特征[9-10],可以判斷普通話發(fā)音的聲母、韻母、聲調,聲母、韻母經(jīng)算法組合后輸出對應的中文拼音,從而實現(xiàn)語音識別。
本文提出的普通話語音識別技術,能提供一種不需要在使用前對特定人聲進行學習,能識別出非特定人的普通話語音單字和句子的普通話語音識別方法。該方法運算量小,識別速度快,對硬件要求較低,適用于嵌入式系統(tǒng)。
1.1 輸入的語音信號預處理
過AD轉換使輸入的語音成為對應的數(shù)字語音信號,然后對轉換得到的數(shù)字語音信號序列音節(jié)界定[11]。
(1) 普通話語音輸入后通過AD轉換生成數(shù)字語音信號序列,對語音信號預加重,提升高頻部份,其系統(tǒng)傳輸公式為:
設s(n)為輸入的語音信號,對信號預加重后所得的信號為:
(2) 對預加重后得到的信號加漢明窗。利用語音信號具有短時平穩(wěn)特性的特征[12],將截取的一段語音信號進行分幀[13],通過將窗函數(shù)加入語音信號來實現(xiàn),
w(n)=
(3) 對語音信號進行離散傅里葉變換[14]。DFT(Discrete Fourier Transform)獲得語音信號的離散傅立葉變換為:
其中:X(n)為輸入的語音信號;N表示DFT的點數(shù)。
(4) 將信號能量譜通過一組三角形濾波器組[15]。定義一個有M個濾波器的濾波器組,采用的濾波器為三角濾波器,中心頻率為f(m),m=1,2,…M。
三角濾波器的頻率響應定義為:
Hm(k)=
(5) 對每個濾波器組輸出的能量累加后取對數(shù):
(6) 經(jīng)離散余弦變換(DCT)得到MFCC系數(shù):
MFCC系數(shù)階數(shù)取12。
1.2 音節(jié)界定
音節(jié)是聽覺的基本單元,普通話每個音節(jié)的共性是可分為聲母、 韻母、 聲調3個部分。將普通話交談信號每個音節(jié)的停頓或突變作為提供音節(jié)定義的條件,同時還需將當前背景噪聲或無聲音信號分離,通過信號強度和時間的周期趨勢來確定音節(jié)信息。
音節(jié)定義方法。將第1次提取到的語音數(shù)字信號中無周期性的信號和背景噪聲分離,序列中使用固有的音節(jié)停頓或突變、明確開始和結束每1個音節(jié)來獲取語序的數(shù)字語音信號。
算法所用參數(shù)的定義。對數(shù)字語音信號序列的標定出這個詞的數(shù)字語音信號序列頻率穩(wěn)定階段的開始和結束。對基波穩(wěn)定階段的波型周期定義,以相鄰波峰為1個周期,計算出基本頻率、 周期和標定出這個詞的數(shù)字語音信號序列的前端信息段。前端信息段,指數(shù)字語音信號序列的開頭部分至穩(wěn)定部份之間的信號波形。
(1) 聲調識別。根據(jù)詞的序列變化標識基本頻率的音調、音節(jié),聲調識別方法設計的描述的步驟:
如果語音信號序列周期的基本頻率的信號在周期中保持穩(wěn)定,基調的第一聲;如果連續(xù)上升,第二聲;下降后再上升,第三聲;下降,第四聲。
(2) 聲母識別 (見圖1)。對發(fā)音的數(shù)字語音信號序列的時域動態(tài)分析,根據(jù)分析瞬態(tài)響應上升時間和超調量的大小參數(shù),識別聲母,按以下方法進行聲母的識別:① 校準發(fā)音聲腔數(shù)據(jù)段。在詞語數(shù)字語音信號序列的信息前段,通過校準頻率穩(wěn)定階段的起始點; 計算第1 B序列之間的0~7位數(shù)據(jù)位。② 將發(fā)音聲腔數(shù)據(jù)段的持續(xù)時間與系統(tǒng)設定的門閾值對比,將其分類為有氣聲或無氣聲,判斷為無氣,跳轉至③,當判斷為有氣聲,跳轉至④;③ 根據(jù)前面部分的數(shù)字語音信號序列的字包絡線的瞬態(tài)響應上升時間,識別聲母w、 m、 n、 r 或l,然后根據(jù)上升響應時間,依數(shù)值大小,排列為m、 w、 n、 r、 l;④ 對該單字的語音數(shù)字信號序列的前端信息進行檢波處理,計算上升時間和超級可調節(jié)量;將超級可調節(jié)音量大小和系統(tǒng)設定的門閾值對比,劃分為有爆鳴聲(超級可調節(jié)量大) 或無爆鳴聲(超級可調節(jié)量小):有爆鳴聲,跳轉至⑤;無爆鳴聲,跳轉至⑥;⑤ 由超級可調節(jié)量大小作為識為 p、 t、 g或 k的根據(jù); 超級可調節(jié)量大小排列序列為 p、 t、 k 和 g;⑥ 氣聲腔長度。將聲音的氣聲腔長度的區(qū)分短氣和長氣聲腔兩種:當我們判斷短氣聲腔,對包絡線的瞬態(tài)響應上升時間和系統(tǒng)設定的門閾值對比,區(qū)分聲母為 b或 d;如上升時間數(shù)值為關鍵閾值標準參考值范圍內,加入超級可調節(jié)量輔助參與判斷。短上升時間/超級可調節(jié)量數(shù)值大于關鍵閾值標準考參值 的判斷是d;由氣聲腔長度來識別聲母 f、 h、 z、 c、 s、 j、 q、x、zh、ch,氣聲腔長度最大的是 f。同樣,由氣聲腔長度臨界閾值時的上升時間用于判斷其他聲母。
圖1 聲母識別的方法及過程
(3) 韻母識別(見圖2)。用數(shù)字語音信號序列中的單詞前端信息段外其余信息段作為識別處理的信息源,由基頻數(shù)據(jù)分析出信息的頻率特性,在頻率特性變化周期的選定頻率的帶寬和矩形系數(shù)曲線對應于為發(fā)音諧振腔的體積大小和張緊程度,然后收集統(tǒng)計信息的發(fā)音共振腔體積大小和張緊程度的統(tǒng)計數(shù)值進行比對,可以識別出韻母。
在測試中通過對數(shù)字語音信號序列分析發(fā)現(xiàn),韻母發(fā)音諧振腔的體積大小和張緊程度和相應的頻率特性的數(shù)字語音信號序列的選定頻率的帶寬和矩形系數(shù)曲線存在相對簡單的對應關系:共振腔(口腔和咽部)體積大時對應的數(shù)字語音信號序列的頻率特性帶寬大,諧振腔的肌肉更緊張,對應的數(shù)字語音信號序列的頻率特征矩形系數(shù)較大。韻母的發(fā)音,如 a、o、e、共鳴腔的形狀和張力有顯著不同,所以根據(jù)系統(tǒng)中存儲共振頻率曲線,做出對應的判斷。例如,窄帶寬(例如440 Hz),表明 u,或 ü,和收集統(tǒng)計的實際值比較,選擇最接近的就判斷是該韻母。
圖2 韻母識別的方法及過程
1.3 設計自適應 DFT 算法應用于韻母識別方法
韻母識別采用離離散傅里葉變換來實現(xiàn):
(1) 對數(shù)字語音信號中的每個單詞序列中前端部分的聲音信息排除,對其余部分的數(shù)字序列中按周期T分為多段數(shù)據(jù),對每1周期T內的數(shù)據(jù)進行統(tǒng)計后自適應動態(tài)生成sin(2kπ/N)及cos(2kπ/N)k=0,1,2,…,N,N為自然數(shù);
(2) 對在前面分析所得的基本頻率進行DFT計算,得出該聲音1~10次諧波幅值,對大于等于最大振幅的諧波-30 dB的所有諧波的頻率最高值來界定帶寬,其實現(xiàn)過程如下:
采樣率為44 KB/s,采樣1幀時長T=20 ms,采樣所得數(shù)據(jù)為Dcn,n=0,1,…,879。提取轉換數(shù)據(jù)Dt(n)=D(44nT),n=0,1,…,63,進行梳狀轉換。
奇點提取算法:
余弦提取算法:
對s(n)分奇偶點:
奇點a(n)=s(2n+1) (n=0,1,…,7)
偶點a(n)=s(2n) (n=0,1,…,7)
余弦轉換:
正弦轉換:
交叉算法(余弦):
交叉算法(正弦):
確定帶寬:
(1) 大于或等于1 040 Hz的帶寬,初列為a;當帶寬是小于或等于440 Hz,初列為i、 u,或 ü,同時跳轉至 (3);當帶寬為440~1 040 Hz,初列為e或o同時跳轉至(2);
(2) 對高頻諧波進行DFT分析,界定出1 000T、1 500T諧波幅度聲音,如果有1 000~1 500T諧波,該韻母被定義為e,T為語音數(shù)字序列周期;
(3) 對高頻諧波進行DFT分析,如有3~3.5 kHz語音諧波,該韻母被定義為i。
(4) 對高頻諧波進行DFT分析,如有1.7~2.5 kHz波段語音諧波計算,語音諧波,該韻母被定義為u,如果無此頻率的諧波,韻母被定義為 u。
(5) 以上確定的中文語音的聲母、韻母、音調,輸出對應字的中文拼音;
(6) 對從語音信號中識別的每個字的音頻序列進行組合,得出其對應的普通話拼音。
2.1 語音信號的AD轉換步驟和音節(jié)界定步驟
圖3是語音“跳”原始序列數(shù)字語音信號波形圖,該圖是由拾音器輸入,采用固定采樣速率(20、44 KB/s等)將聲音進行AD轉換后生成的數(shù)字語音信號序列的“跳”波形圖。數(shù)字語音信號序列中的所有數(shù)據(jù)都表示每個采樣點大小的聲音級別,該信號為無周期性的信號和背景噪聲。
圖3 未經(jīng)任何處理的數(shù)字語音信號序列的“跳”波形圖
查看圖中“跳”其波形的聲平變化隨著時間的變化,看到波形可以分為清晰、周期趨勢信號中間及無明顯的周期性信號共三段。去除無周期性的信號和部分去除背景噪聲,就得到了字“跳”數(shù)字語音信號。
2.2 聲調、聲母、韻母識別
(1) 聲調識別。根據(jù)詞的數(shù)字語音信號序列周期變化的信號周期的基本頻率的變化特征識別出音節(jié)的聲調:如果基本頻率保持穩(wěn)定,是第一聲;如果是連續(xù)的升高,是第二聲;如果頻率先低后高,是三聲;如果頻率降低,是第四聲。觀察頻率數(shù)據(jù)如圖3所示,該語序的數(shù)字語音信號基本頻率穩(wěn)定在173與119 Hz中,并保持繼續(xù)下降趨勢的變化,因此,可以確定為第四聲的聲調。
(2) 聲母識別。對數(shù)字語音信號序列的時域動態(tài)分析,包括瞬態(tài)響應上升時間和超調量的大小參數(shù),識別聲母。① 確定氣聲腔數(shù)據(jù)段。數(shù)字語音信號序列的前沿信息中0B,校準的波形平穩(wěn)后的起始點(見圖4);② 測量聲音的聲音時間為60 ms,判斷為有氣聲,可以初步確定該聲母不是w、m、n、r或l。③ 對這個詞的數(shù)字語音信號序列的前端信息段0B進行包絡檢波,測量出其上升時間23 ms,超級可調節(jié)量是17%,判斷有爆鳴聲,判斷該聲母不是b,d, f,h,z,c,s,j,q,x,和zh和ch或sh;④ 對前面的詞檢波處理,得出該詞信息的數(shù)字語音信號序列,測量上升時間和超調量,將超調量的大小由閾值分為爆鳴聲和無爆鳴聲:當我們判斷爆鳴聲,跳轉至E);無爆鳴聲,跳轉至F);⑤ 由超調量大小來識別出聲母可能性依次為t、p、g或k;⑥ 氣聲腔長度。將氣聲腔長度區(qū)分為短氣聲腔和長聲腔。
當判斷為短氣聲腔,包絡線的瞬態(tài)響應上升時間和經(jīng)驗閾值相比,區(qū)分聲母b或d;結合數(shù)據(jù)的長度確定聲母f、h、z、c、s、j、q,和x和zh,ch,和sh。再根據(jù)外部包絡解調處理的信息,聲音數(shù)據(jù)段的長度顯示上升時間和超調數(shù)據(jù)量,其首字母應該是t。
(3) 韻母識別方法。用單詞的數(shù)字語音信號序列中除了說前端信息段外其余信息段作為識別處理的信息源。
圖4中分析了普通話單字“跳”的聲音信息周期發(fā)生期T頻率特性的變化(如帶寬和峰值點),在頻率特性的選定頻率的帶寬和矩形系數(shù)曲線對應于聲母發(fā)音諧振腔的體積大小和和張力水平的數(shù)據(jù)庫值(韻母特征),然后找出韻母。① 從數(shù)字語音信號序列 0B 外截取后面順序編號的數(shù)據(jù)段的長度 T中的其余部分的統(tǒng)計數(shù)據(jù)包含,在每個數(shù)字的n、自適應動態(tài)生成sin(2kπ/N)及cos(2kπ/N)k=0,1,2,…,N,N為自然數(shù);T為每個基波周期;k=0,1,2,…,N,N是一個自然數(shù)。② 使用自適應梳狀DFT等效采樣率分析算法,計算聲音1~10的次諧波幅值,以最大諧波振幅的-30 dB為所有諧波的最高頻率定義帶寬:其帶寬大于或等于1 040 Hz的帶寬,初列為a;分析該段作為韻母識別處理的信息源的各周期變化時段的幅頻特性,在前述韻母a對應時段的前后,另可觀察到還各包括一段帶寬符合條件區(qū)間,其帶寬分別為312和725 Hz。根據(jù)本文的技術方案,可初步界定帶寬為312 Hz時韻母為i、u、或ü,帶寬為725 Hz時韻母為e或o;進而進行高次諧波的DFT分析,分別對前者計算出3~3.5 kHz及1.7~2.5 kHz所對應的語音諧波幅度、對后者計算出1.0~1.5 kHz的語音諧波幅度,根據(jù)計算結果可知:由于后者不存在1.0~1.5 kHz的諧波,因而確認對應韻母為o;由于前者存在3~3.5 kHz的諧波,因而確認對應韻母為i。
圖4 普通話單字“跳”的聲音電平隨時間變化的波形圖(已進行周期界定)
2.3 拼音識別集成步驟
把聲母t,3個韻母i,a,o和聲調(第四聲)組合,輸出該字的中文拼音tiao(第四聲)。
此方法的普通話語音識別方法基于頻率域特性和時域特點相結合,可進行單音節(jié)識別,算法簡潔,計算量小,所需存儲單元少,可以在嵌入式設備應用程序上使用。
[1] 劉宇紅, 劉 橋, 任 強. 基于模糊聚類神經(jīng)網(wǎng)絡的語音識別方法[J]. 計算機學報, 2006, 29(10): 1894-1900.
[2] 張 輝, 杜利民. 漢語連續(xù)語音識別中不同基元聲學模型的復合[J]. 電子與信息學報, 2006, 28(11): 2045-2049.
[3] 唐 赟, 劉文舉, 徐 波. 基于后驗概率解碼段模型的漢語語音數(shù)字串識別[J]. 計算機學報, 2006, 29(4): 635-641.
[4] 朱恒軍,于泓博,王發(fā)智.小波分析和支持向量機相融合的語音端點檢測算法[J].計算機科學,2012,39(6):244-246.
[5] 李如瑋,鮑長春.一種基于分帶譜熵和譜能量的語音端點檢測算法[J].北京工業(yè)大學學報,2007,33(9):920-924.
[6] 劉志偉,盧文科.孤立詞的語音識別[J].微計算機信息,2011,27(6):181-182.
[7] 劉長明,任一峰,語音識別中DTW 特征匹配的改進算法研究[J].中北大學學報:自然科學版,2007,27(1):37-40.
[8] 趙 峰.遺傳神經(jīng)網(wǎng)絡在語音識別中的研究 [J]. 電腦知識與技術,2008,3(4):774-776.
[9] 劉俊華,顏運——荊琦.遺傳算法與神經(jīng)網(wǎng)絡在語音識別中的應用 [J].機電工程,2007,24(12):20-24.
[10] 韓志艷,王 健, 倫淑嫻. 基于遺傳小波神經(jīng)網(wǎng)絡的語音識別分類器設計 [J].計算機學,2010,37(11):243-246.
[11] 嚴斌峰, 朱小燕, 張智江, 等. 基于鄰接空間的魯棒語音識別方法[J]. 軟件學報, 2007, 18(11): 878-883.
[12] 劉宇紅, 劉 橋, 任 強. 基于模糊聚類神經(jīng)網(wǎng)絡的語音識別方法[J]. 計算機學報, 2006, 29(10): 1894-1900.
[13] 唐 赟, 劉文舉, 徐 波. 基于后驗概率解碼段模型的漢語語音數(shù)字串識別[J]. 計算機學報, 2006, 29(4): 635-641.
[14] 張 輝, 杜利民. 漢語連續(xù)語音識別中不同基元聲學模型的復合[J]. 電子與信息學報, 2006, 28(11): 2045-2049.
[15] 劉耦耕, 賀素良, 龍永紅. 語音信號變速算法及其TMS320C5402 實時實現(xiàn)[J]. 中南大學學報(自然科學版),2004, 35(1): 117-121.
Fast Recognition of Embedded Mandarin Speech Based on DFT
DENGLi,LIANGXiangdong
(Guilin University of Technology at Nanning, Nanning 530001, China)
Based on the Mandarin pronunciation recognition technology, by the frequency selected from Mandarin speech input cavity resonance curve defined by the pickup, the Chinese word, vowel and consonant Pinyin word sequence can be identified. Combination of Chinese speech consonants, vowels and tones forms Chinese Pinyin sentence sequence. By the syllable by syllable analysis method, the frequency domain analysis technique of amplitude frequency does not need to learn or train for a particular person's voice, words and sentences. The adaptive DFT (Discrete Fourier Transform) spectral analysis algorithm only occupies a very small amount of calculation. The method can determine the four tones of Mandarin, have fast response speed, small storage space, and can easilybe embedded to other devices.
speech recognition; spectrum analysis; DFT algorithm
2016-10-20
廣西科學研究與技術開發(fā)計劃項目(桂科攻12118017-10);2016年度廣西職業(yè)教育教學改革研究立項項目(重點)(桂教職成〔2016〕26 號);廣西高等學校優(yōu)秀中青年骨干培養(yǎng)工程第一期(桂教人[2013]16號
鄧 力(1971-),男,瑤族,廣西梧州人,碩士,教授,研究方向為嵌入式系統(tǒng)、EDA技術。
Tel.:13367815798;E-mail:dldl021@163.com
TP 311
A
1006-7167(2017)06-0128-05