陳文云
百色學院 廣西 百色 533000
語音識別是指將語音轉換為計算機可讀的語言符號的過程[1],是人工智能的重要分支,在自然語言處理(Natural Language Processing)技術中起關鍵作用[2]。語音識別技術涉及多門學科的交叉科學,其中包括數字信號處理、機器學習、計算機科學、聲學、語言學、生理學和心理學等。語音識別應用非常廣泛,如語音檢索、命令控制、聊天機器人以及機器翻譯等。
語音識別是一個極具挑戰性的任務,主要是由于音素繁多,音節包含的音素多變,詞或詞組包含的音節個數也不固定,語調也變化多樣,組合空間巨大;不同人的口音導致相同的詞或詞組參數分布差異;同一人由于心理或生理的不同狀態會影響發音;發音方式和習慣產生連讀會省略部分發音;信道會導致語音傳輸的失真等[3]。
語音識別的建模大致分為語音模型和語言模型。語音模型主要通過隱馬爾可夫和神經網絡兩種方法對音素或音節建模,語言模型是通過對語音組成的詞進行統計建模而得。
如圖1所示,語音識別系統由訓練器和識別器兩部分組成。訓練器由語音和語法訓練器組成,分別訓練出語音和語言模型。語音訓練器以語音聲學特征參數和相應語音標注為輸入,訓練得到語音模型;語法訓練器以正確語法句子為輸入,訓練得到語言模型。識別器由語音識別器和語法過濾器組成。語音識別器以語音聲學特征和語音模型作為輸入,生成初始的備選語言符號,這些語言符號再通過語言模型進行語法過濾,生成一組語法正確的句子。
模擬語音首先經過模數轉換得到數字信號,在經過特征提取模塊提取合適的聲學特征參數,常用的語音聲學特征參數為梅爾倒譜系數MFCC,該特征參數既可作為訓練器的輸入,也可作為識別器的輸入。
一個句子由多個詞或詞組組成,詞或詞組由字組成,而字的發音是一個音節,由單個含有語調的韻母或一個聲母與一個含語調的韻母構成,一個音節由若干音素組成。漢語有22個聲母,38個韻母,構成音節的音素有輔音22個、單元音13個、復元音13個和復鼻尾音16個。
鑒于語音的短時平穩性,利用隱馬爾可夫模型HMM建立音素間的轉移模型是最佳選擇,HMM通常運用動態規劃DP算法實現可變長音節/音素的分段和分類,利用高斯多模統計模型對音節/音素的觀測值(倒譜系數)進行學習。
字的發音有長有短,一句話中字與字間的間隔不是固定的。為簡化問題,先從單個字的語音模型開始。由上可知,每個音節字都由若干特征觀測值MFCC序列表示:
根據貝葉斯據策論,單個字的識別問題可表示為:
根據貝葉斯定理可知,
為了通用性和避免下溢風險,通常使用最大對數似然概率代替總似然概率:
從而可以運用Viterbi動態規劃算法進行快速求解。
為了讓訓練結果更穩定可靠,輸出概率 通常使用高斯混合GMM模型訓練:
單字語音HMM模型由于狀態值缺失,適宜利用EM算法進行訓練[4]。EM算法分為兩步,其中E步可通過前向概率
根據極大似然估計,M步可求得狀態 的輸出正態分布的均值、方差:
連續語音模型可以將訓練語音中每個單字HMM按順序相連得到,形成復合HMM模型。復合HMM模型的訓練同樣采用EM算法,由于連續語音中每個字的邊界是不確定的,不能單獨訓練其中每個HMM模型,而是采用并行方式,同時訓練。
由于復合HMM的特殊性,計算前向概率和后向概率過程稍有不同。假設復合HMM由個HMM組成,用表示其中某一個HMM,則:
前向概率遞推公式為:
再運用類似式3、式4和式5進行學習,而得每個HMM參數。
基于HMM語音識別技術具有自動尋找可變長音節的邊界,在同類技術中識別準確率高的優點。但由于同音字、多音字、連讀和方言等情況的影響,只依賴語音模型進行語音識別會帶來額外錯誤識別率,需要引入語言模型來對基于語音模型的識別結果進行過濾和校正,從而找到語法正確、符合人們發音習慣的正確識別結果。