㈠ 誰知道語音識別這方面的知識!!!
高性能漢語數碼語音識別演算法
李虎生 劉加 劉潤生
摘 要: 提出了一個高性能的漢語數碼語音識別(MDSR)系統。 MDSR系統使用Mel頻標倒譜系數(MFCC)作為主要的語音特徵參數,同時提取共振峰軌跡和鼻音特徵以區分一些易混語音對,並提出一個基於語音特徵的實時端點檢測演算法,以減少系統資源需求,提高抗干擾能力。採用了兩級識別框架來提高語音的區分能力,其中第一級識別用於確定識別候選結果,第二級識別用於區分易混語音對。由於採用了以上改進, MDSR系統識別率達到了98.8%.
關鍵詞:漢語; 數碼語音識別
分類號:TN 912.34 文獻標識碼:A
文章編號:1000-0054(2000)01-0032-03
High performance digit mandarin
speech recognition
LI Husheng LIU Jia LIU Runsheng
(Department of Electronic Engineering,Tsinghua University, Beijing 100084, China)
Abstract:High-performance mandarin digit speech recognition (MDSR) system is developed using MFCC (mel frequency cepstrum coefficient) as the main parameter identifying the speech patterns. The formant trajectory and the nasal feature are extracted to identify confused words. A feature-based, real-time endpoint detection algorithm is proposed to rece the system resource requirements and to improve the disturbance-proof ability. A two-stage recognition frame enhances discrimination by identifying candidate words in the first stage and confused word pairs in the second stage. These improvements result in a correct recognition rate of 98.8%.
Key words:mandarin;digit speech recognition▲
漢語數碼語音識別 (mandarin digit speech recognition, MDSR) 是語音識別領域中一個具有廣泛應用背景的分支,它的任務是識別「0」到「9」等10個非特定人漢語數碼語音,在電話語音撥號、工業監控、家電遙控等領域有著極大的應用價值〔1〕。但與英語數碼語音識別相比, MDSR的性能尚未達到成熟應用水平,這是因為 1) 漢語數碼語音的混淆程度較高; 2) 漢語是一個多方言語種,說話人會帶有或多或少的地方口音; 3) 在許多應用背景中,MDSR需要在運算和存儲資源都較為緊張的數字信號處理器(digital signal processor, DSP)系統上實現,這為MDSR演算法的設計帶來了很大的限制。由於以上原因,MDSR是一項相當困難的任務。
針對漢語數碼語音識別提出了一系列高性能的演算法,使MDSR識別率達到了98.8%。由這些演算法構成的識別系統框圖如圖1所示。
MDSR系統〔1〕提取的語音特徵參數包括用於識別的參數和用於端點檢測的參數。
圖1 MDSR系統框圖
1 語音前端處理
語音前端處理包括語音特徵提取和端點檢測兩部分。
1.1 語音特徵提取
1.1.1 基本識別參數
目前常用的語音識別參數有基於線性預測編碼(LPC)的線性預測倒譜系數(LPCC)和基於Mel頻標的倒譜系數(MFCC)〔2〕。實驗證明,採用MFCC參數時系統識別率高於採用LPCC參數。因此本文的基本識別參數採用MFCC參數及一階差分MFCC參數。
1.1.2 共振峰軌跡
在MDSR中,易混淆語音「2」和「8」可以由其第2,3共振峰的變化趨勢區分開〔3〕。因此可將共振峰軌跡作為識別參數之一,並選用峰值選取演算法來提取共振峰軌跡〔3〕。
1.1.3 鼻音特徵參數
漢語數碼語音中,「0」的母音具有鼻音的特徵,而「0」容易與具有非鼻化母音的「6」混淆,因此鼻音特徵可用於提高「0」的識別率。鼻音的特徵包括〔4〕:
1) 鼻音在頻譜低端(約0.25kHz左右)有1個較強的共振峰。
2) 鼻音在中頻段(約0.8~2.3kHz)的能量分布較為均勻,沒有明顯的峰或谷。
採用以下2個參數表徵鼻音的特徵:
1) 低頻能量比:
(1)
其中fn為鼻音低頻共振峰頻率, B為鼻音低頻共振峰帶寬。Fk為對語音作快速Fourior變換(FFT)後第k個頻率點的能量, 〔f1,f2〕則為語音「6」能量集中的頻帶。
2) 頻譜質心:
(2)
其中〔fL,fH〕為0.8~2.3kHz的中頻段。由於MDSR系統採用的基本識別參數為MFCC參數,其計算過程中需要作FFT,所以低頻能量比和頻譜質心兩個參數可以順帶算出,不會影響特徵提取的實時完成。
1.2 端點檢測
本文提出了基於語音特徵的實時端點檢測演算法(feature-based real-time endpoint detection, FRED),充分利用漢語數碼語音的特點,在實時提取特徵參數後完成端點檢測,檢測到的端點只精確到幀的量級。
根據語音學知識〔4〕, MDSR中各類語音的頻譜特點如表1
表1 漢語數碼語音頻譜特點
頻 譜 特 征
濁 音 元 音 低頻(0.1至0.4kHz間)能量較高; 中頻(0.64至2.8kHz)能量較高
濁輔音 低頻(0.1至0.4kHz間)能量較高; 中頻(0.64至2.8kHz)能量較低
清輔音 高頻(3.5kHz以上)能量較高
採用3個頻譜能量分布參數{R1,R2,R3}分別反應頻譜高頻、低頻和中頻的分布特徵。其定義如下:
(3)
(4)
其中: i表示第i幀, N為語音幀長,也即FFT點數, Fk為對語音幀作FFT後各頻率點能量, T為語音的總幀數,式(3),(4) 中求和號的上下限由表1中相應頻率范圍確定,當N為256,采樣頻率為實驗所用語音庫的11kHz時, f0=81, f1=9, f2 =2, f3=65, f4=15.由於進行了能量歸一化,所以上述特徵與語音的強度是無關的。由於計算MFCC參數時需要作FFT,因此頻譜能量分布參數可以順帶算出。此外,用於端點檢測的參數還包括短時能量參數E0(i)〔5〕.
由以上參數, FRED演算法過程為:
1) 根據采入信號首尾兩幀確定能量閾值;
2) 根據參數R2確定語音濁音段;
3) 根據參數R1與E0向濁音段兩端擴展式搜索語音起始幀;
4) 根據參數R3確定母音段。
FRED演算法的特點是:
1) 利用了語音的本質特徵進行端點檢測,能夠很好地適應環境的變化和干擾,實驗證明FRED演算法可以有效地提高識別率; 2) 將語音端點定在幀的量級上,保證了特徵參數在采樣時實時提取,節省了系統運行時間,大大減少了系統所需的存儲量; 3) 能夠准確地確定語音的母音段,從而將輔音與母音分割開,有利於對語音局部特徵的辨識。
2 識別演算法
實驗表明, MDSR的識別錯誤集中在少數幾對易混語音中〔1〕,因此本文採用了兩極識別框架,即第一級完成對識別結果的初步確定,第二級完成對易混淆語音的進一步辨識。
2.1 第一級識別
在第一級識別中採用的基本方法為離散隱含Malkov模型(DHMM)演算法〔5〕,用Viterbi演算法〔5〕計算各個數碼語音模型產生采入語音的概率Pr。
由於HMM是一個有人為假設的模型,所以有不可避免的缺陷。其中一個缺陷是在HMM中各狀態的持續時間呈幾何分布,即
P(Li=n)=anii(1-aii), (5)
其中: Li為狀態i的持續時間, aii為狀態i跳轉回自身的概率。按照式(5),狀態持續時間越長,其概率越小,這是不符合實際情況的。用Γ分布來描述狀態持續時間〔5〕,即
(6)
其中αi和βi為Γ分布的參數, Fi為歸一化因子參數,以上各參數在訓練時由訓練語音樣本估計出。在識別時,用Viterbi演算法獲得的最佳狀態路徑中各狀態持續時間的概率對Pr作修正:
(7)
其中: λ為加權系數, S為狀態數。識別結果則由修正後的概率P�′r獲得。實驗證明,用狀態持續時間分布對Pr進行修正所得的識別性能有明顯的提高。
2.2 第二級識別
對第一級識別的錯誤作分析,我們發現大部分錯誤都集中在少數幾對易混語音中。表2列出了識別錯誤最多的6對語音(其中「1」念為〔yao〕)占所有錯誤的百分比及其區分特徵。可見這6對語音占所有錯誤的91%,所以如果能夠在第二級識別中對這幾對語音作進一步的辯識,整個MDSR系統的性能會有很大的提高。
表2 易混語音錯誤百分比及其區分特徵
易混語音 占識別錯誤百分比/% 區分特徵
「2」「8」 45 共振峰軌跡變化趨勢
「1」「9」 12 不同的輔音
「1」「6」 11 不同的輔音
「0」「6」 11 鼻音特徵的有無
「3」「4」 8 不同的母音
「6」「9」 4 輔音的清濁性
由表2可見,易混語音「2」「8」, 「0」「6」, 「6」「9」可以用表徵其區分特徵的參數,根據一定的規則進行判決,而「1」「9」, 「1」「6」, 「3」「4」則可以利用端點檢測中元、輔音分割的結果,訓練母音部分和輔音部分的HMM參數,在識別時針對相應部分再作一次局部HMM識別。表3列出了各對易混語音第二級識別的方法。
表3 第二級識別方法
易混語音 第二級識別方法 規則判決的特徵參數或
局部HMM的辨識部位
「2」「8」 規則判決 共振峰軌跡
「1」「9」 局部HMM辨識 輔音
「1」「6」 局部HMM辨識 輔音
「0」「6」 規則判決 鼻音特徵
「3」「4」 局部HMM辨識 母音
「6」「9」 規則判決 頻譜分布參數R1
3 實驗結果
實驗使用了一個包含160人從「0」到「9」的各一遍發音的語音庫來測試系統的性能,庫中語音采樣率為11kHz,量化精度為16bit線性量化,錄音背景為普通辦公室環境。
首先測試了特徵參數採用LPCC參數,端點檢測採用快速端點檢測演算法〔6〕,只用Viterbi演算法進行一級識別時的基本結果,然後測試了逐個加入本文所提出的各種方法後的識別率,結果如表4。可見,所採用的每一種方法都使系統性能較之於基本系統有了顯著的提高,最後達到98.8%的識別率。
表4 演算法性能比較
採用的演算法 識別率/%
基本結果 91.1
採用MFCC參數 92.9
FRED演算法 95.4
狀態持續時間分布 96.0
第二級識別 98.8
4 結 論
採用了一系列演算法,有效地提高了MDSR系統的識別率,實現了一個高性能的MDSR系統,其特點為:
1) 採用了兩極識別框架,增強了對易混語音的區分能力。
2) 充分利用針對漢語數碼語音的語音學知識,提高了端點檢測的抗干擾能力,提取了用於區分易混語音的共振峰軌跡、鼻音特徵等聲學特徵,進一步提高了系統識別率。
3) 各演算法所需的運算量和存儲量都較小,有利於MDSR在DSP系統上的實現。■
基金項目:國家自然科學基金項目(69772020)和國家「八六三」高技術項目(863-512-9805-10)
作者簡介:李虎生 (1975-), 男(漢), 四川, 碩士研究生
作者單位:李虎生(清華大學,電子工程系,北京,100084)
劉加(清華大學,電子工程系,北京,100084)
劉潤生(清華大學,電子工程系,北京,100084)
參考文獻:
〔1〕顧良, 劉潤生. 漢語數碼語音識別: 困難分析與方法比較 〔J〕. 電路與系統學報, 1997, 2 (4): 32-39.
Gu Liang, Liu Runsheng. Mandarin digit speech recognition: state of the art, difficult points analysis and methods comparison 〔J〕. J of Circuits and Systems, 1997, 2(4): 32-39. (in Chinese)
〔2〕Davis S B, Mermelstein P. Comparison of parametric representations for monosyllabic word recognition in continuously spoken sentences 〔J〕. IEEE Trans, on Speech and Audio Signal Processing, 1980, 28 (4): 357-366.
〔3〕李虎生, 楊明傑, 劉潤生. 用共振峰軌跡提高漢語數碼語音識別性能 〔J〕. 清華大學學報, 1999, 39(9).
Li Husheng, Yang Mingjie, Liu Runsheng. Use formant trajectory to improve the performance of mandarin digit speech recognition 〔J〕. J of Tsinghua University, 1999, 39(9): 69-71. (in Chinese)
〔4〕吳宗濟, 林茂燦. 實驗語音學教程 〔M〕. 北京: 高等教育出版社, 1989.
Wu Zongji, Lin Maocan. Tutorial on Experimental Phonetics 〔M〕. Beijing: Higher Ecation Press, 1989. (in Chinese)
〔5〕楊行峻, 遲惠生. 語音信號數字處理 〔M〕. 北京: 電子工業出版社, 1995.
Yang Xingjun, Chi Huisheng. Digit Speech Signal Processing 〔M〕. Beijing: Publishing House of Electronic Instry, 1995. (in Chinese)
〔6〕顧良. 漢語數碼語音識別方法研究及DSP系統設計 〔D〕. 北京: 清華大學, 1997.
Gu Liang. Research on Methodologies for Mandarin Digit Speech Recognition and Design of its DSP System 〔D〕. Beijing: Tsinghua University, 1997. (in Chinese)
http://www.oxbad.com/DSP/maindoc/audio/PAGE/5.HTM
㈡ 聲學模型的介紹
聲學模型是語音識別系統中最為重要的部分之一,目前的主流系統多採用隱馬爾科夫模型進行建模。 隱馬爾可夫模型的概念是一個離散時域有限狀態自動機,隱馬爾可夫模型HMM是指這一馬爾可夫模型的內部狀態外界不可見,外界只能看到各個時刻的輸出值。對語音識別系統,輸出值通常就是從各個幀計算而得的聲學特徵。用HMM刻畫語音信號需作出兩個假設,一是內部狀態的轉移只與上一狀態有關,另一是輸出值只與當前狀態(或當前的狀態轉移)有關,這兩個假設大大降低了模型的復雜度。HMM的打分、解碼和訓練相應的演算法是前向演算法、Viterbi演算法和前向後向演算法。
㈢ 分析HMM前向演算法的原理和作用
前向演算法
前向演算法用於HMM的模型評估問題。假如我們已知HMM的三元組。假如共有N種狀態,那麼對於觀測序列O,共有N的T次方種路徑。
希望回答能夠幫助到你。
㈣ 聲學模型GMM-HMM
在語音識別中,HMM的每個狀態都可對應多幀觀察值,觀察值概率的分布不是離散的,而是連續的,適合用GMM來進行建模。HMM模塊負責建立狀態之間的轉移概率分布,而GMM模塊則負責生成HMM的觀察值概率。
模型自適應: 由於各地口音、採集設備、環境雜訊等音素的差異,已訓練過的GMM-HMM很可能和新領域的測試數據不匹配,導致識別效果變差,需要做自適應訓練。
MAP(最大後驗概率估計): 演算法本質是重新訓練一次,並且平衡原有模型參數和自適應數據的估計。
MLLR(最大似然線性回歸): 演算法核心思想是將原模型的參數進行線性變換後再進行識別,其優點是使用少量語音即可以對所有模型進行自適應訓練,只要得到線性變換矩陣即可。
每個音素(或三音素)用一個 HMM 建模,每個 HMM 狀態的發射概率對應一個 GMM。GMM-HMM 的目的即是找到每一幀屬於哪個音素的哪個狀態。GMM-HMM 的訓練使用自我迭代式的 EM 演算法,更直接的方式是採用維特比訓練,即把EM演算法應用到GMM參數的更新上,要求顯示的輸入每一幀對應的狀態,使用帶標注的訓練數據更新GMM的參數,這種訓練方法比Baum-Welch演算法速度更快,模型性能卻沒有明顯損失。
1、首次對齊時把訓練樣本按該句的狀態個數平均分段。
2、每次模型參數的迭代都需要成對的使用gmm-acc-stats-ali和gmm-est工具。
3、進行多輪迭代訓練後使用gmm-align-compiled工具通過其內部的維特比演算法生成對齊結果。
單因子模型的基本假設是:一個音素的實際發音,與其左右相鄰或相近的音素(上下文音素)無法。三因子結構中的每一個音素建模實例,都由其中心音素及其左右各一個上下文音素共同決定。無論是單因子還是三因子,通常都使用三狀態的HMM結構來建模。為了解決三因子模型參數爆炸問題,將所有的三因子模型放到一起進行相似性聚類(決策樹),發音相似的三因子被聚類到同一個模型,共享參數。訓練腳本:steps/train_deltas.sh,目標訓練一個10000狀態的三因子系統:
1、以單因子為基礎,訓練一個5000狀態的三因子模型
2、用5000狀態的模型重新對訓練數據進行對齊,其對齊質量必然比單因子系統對齊質量高
3、用新的對齊再去訓練一個10000狀態的三因子系統
phone-id:音素的 ID,參見 data/lang/phones.txt,強制對齊的結果不含 0(表示<eps>)和消歧符 ID;
hmm-state-id:單個 HMM 的狀態 ID,從 0 開始的幾個數,參見 data/lang/topo;
pdf-id:GMM 的 ID,從 0 開始,總數確定了 DNN 輸出節點數,通常有數千個;
transition-index:標識單個 Senone HMM 中一個狀態的不同轉移,從 0 開始的幾個數;
transition-id:上面四項的組合 (phone-id,hmm-state-id,pdf-id,transition-index),可以涵蓋所有可能動作,表示哪個 phone 的哪個 state 的哪個 transition 以及這個 state 對應的 pdf 和這個 transition 的概率,其中元組 (phone-id,hmm-state-id,pdf-id) 單獨拿出來,叫 transition-state,與 transition-id 都從1開始計數。
關系:transition-id可以映射到唯一的transition-state,而transition-state可以映射到唯一的pdf-id,因此transition-id可以映射到唯一的pdf-id。pdf-id不能唯一的映射成音素,因此kaldi使用transition-id表示對齊的結果。
語音識別過程是在解碼空間中衡量和評估所有的路徑,將打分最高的路徑代表的識別結果作為最終的識別結果。傳統的最大似然訓練是使正確路徑的分數盡可能高,而區分性訓練則著眼於加大這些路徑之間的打分差異,不僅要使正確路徑的分數僅可能高,還要使錯誤路徑尤其是易混淆路徑的分數盡可能低。
常用的區分性訓練准則有最大互信息、狀態級最小貝葉斯風險、最小音素錯誤。
分子:對於某條訓練數據,其正確標注文本在解碼空間中對應的所有路徑的集合。
分母:理論上值整個搜索空間。通常會通過一次解碼將高分路徑過濾出來,近似整個分母空間,從而有效的減小參與區分性優化的分母規模。
詞格(Lattice):分子、分母其實都是解碼過程中一部分解碼路徑的集合,將這些路徑緊湊有效的保存下來的數據結構就是詞格。