車機從WinCE逐步進化到Android,從不能通訊到帶4G通訊,隨之帶來了一系列的新技術(shù)的應(yīng)用。今天就來介紹當前車機必須技術(shù)之語音識別技術(shù)(全稱是自動語音識別 Automatic Speech Recognition,簡稱ASR)。
發(fā)展歷史
語音識別技術(shù)最早可以追溯到20世紀二、三十年代,如早期(1939年)貝爾實驗室在紐約世博會上展示了他們的語音綜合機器。
20世紀70年代中葉見證了在孤立字識別領(lǐng)域上許多里程碑式的進步。首先俄國的研究者們展示了在語音識別中運用模式識別(Pattern Recognition)的想法,日本的研究者成功運用到了動態(tài)編程編碼(Dynamic Programming code),其次卡內(nèi)基梅隆大學在1973向世人展示了Heresay I語音理解系統(tǒng),能夠在1011個單詞的詞匯表中以較好的準確性識別語音。
80年代起在連接詞識別上獲得了比較好的成效,特別是隱馬爾可夫模型(Hidden Markov Model,下面簡稱HMM)的發(fā)展并被大范圍的接受。同時語音識別最具轉(zhuǎn)折性和建設(shè)性的發(fā)展即統(tǒng)計方法的引入也是該時期的成就,包括HMM、期望最大化(EM),最大互信息(MMI)等,還有信號表述技術(shù)的發(fā)展也是該時期出現(xiàn),如梅爾頻率倒譜系數(shù)(MFCC),感知線性預(yù)測常數(shù)(PLP)等。
時至今日,由于硬件的支持、GPU的發(fā)展使得深度學習不斷發(fā)展,許多研究者從傳統(tǒng)的高斯混合模型(GMM)和HMM結(jié)合轉(zhuǎn)向深度神經(jīng)網(wǎng)絡(luò)(DNN)與HMM結(jié)合,并取得了不小的成效。另外還有兩點可喜的發(fā)展:一是語料庫的不斷完善和數(shù)據(jù)集的不斷增多(如TIMIT、TI46數(shù)據(jù)集等),二是面向大量音頻數(shù)據(jù)處理的工具的出現(xiàn)和不斷完善(如CMU的Sphinx,劍橋大學的HTK,國內(nèi)的科大訊飛、云之聲等)。
基礎(chǔ)語音識別模型
一個標準的語音識別模型首先假定有一串輸入序列O = {O1, O2, .., On},以及符號詞典 W = {W1, W2, .., W_n},求解對于該輸入序列解碼出符號串(輸出語句)W = {W1, W2, .., Wk}。通過數(shù)學轉(zhuǎn)化成求解以下概率的最大值:
W = argmax(P(O|W)P(W))
其中P(O|W)被稱之為聲學模型,P(W)被稱為語言模型。 該模型的求解過程如下圖所示,其中的搜索,就是依據(jù)對公式中的聲學模型打分和語言模型打分,尋找一個詞模型序列以描述輸入語音信號,從而得到詞解碼序列。
大規(guī)模連續(xù)語音識別模型
大規(guī)模連續(xù)語音識別(Large Vocabulary Continuous Speech Recognition,LVCSR)不同于一般的模式識別,它需要解決一些棘手的特殊問題。比如說,在連續(xù)語音流中,每個發(fā)音都沒有一個清晰的邊界,難于進行一般的模式匹配,而且不同人之間的語音語速千差萬別,甚至同一個人不同時間的發(fā)音也有相當大的變化,這就給模型的建立提出了巨大的挑戰(zhàn)。另外,語言的規(guī)律千變?nèi)f化,使得實現(xiàn)高效智能的語音識別就更加困難。下圖為連續(xù)語音識別系統(tǒng)示意圖:
語音識別的工作流程
一般來說,一套完整的語音識別系統(tǒng)其工作過程分為7步:
對語音信號進行分析和處理,除去冗余信息。
提取影響語音識別的關(guān)鍵信息和表達語言含義的特征信息。
緊扣特征信息,用最小單元識別字詞。
按照不同語言的各自語法,依照先后次序識別字詞。
把前后意思當作輔助識別條件,有利于分析和識別。
按照語義分析,給關(guān)鍵信息劃分段落,取出所識別出的字詞并連接起來,同時根據(jù)語句意思調(diào)整句子構(gòu)成。
結(jié)合語義,仔細分析上下文的相互聯(lián)系,對當前正在處理的語句進行適當修正。
前端參數(shù)化或特征提取
在語音識別中,特征抽取的主要目的是在給定一個緊湊的輸入信號表示計算出特征向量的簡約序列。主要分成三個步驟:語音分析(語音前端聲學處理);編譯成包含動靜態(tài)的擴展特征向量;將這些擴展后的特征向量轉(zhuǎn)化成影響因子更大的向量,然后提供給識別器,還包括預(yù)加重、分幀加窗及端點檢測等。
現(xiàn)在主要有下面的一些模型:
主元成分分析(PCA);
線性判別式分析(LDA);
獨立成分分析(ICA);
線性預(yù)測編碼(Perceptual Linear Predictive,PLP);
倒譜分析;
梅爾頻率倒譜系數(shù)(Mel Frequency Cepstrum Coefficient,MFFC)
濾波器分析;
基于核函數(shù)的特征抽取等。
特別說明中文聲學特征
一般將一個字的發(fā)音切割成兩個部分,分別是聲母(initials)與韻母(finals)。而在發(fā)音的過程之中,聲母轉(zhuǎn)變至韻母是一個漸進而非瞬間的改變,因此使用右文相關(guān)聲韻母模式(Right-Context-Dependent Initial Final, RCDIF)作為分析方法,可以更精準的辨識出正確的音節(jié)(syllable)。 而根據(jù)聲母的不同特征,又可以將聲母分為下面四類:爆破音(Plosive)、摩擦音(Fricative)、爆擦音(Affricate)、鼻音(Nasal)。
而韻母又有雙元音、單元音之分,要視再發(fā)生時是否有音調(diào)的改變。而根據(jù)聲帶振動與否,又分為清音(unvoiced:聲帶不震動)、濁音等差異,以上發(fā)音時不同的方式,在時頻圖上大多可以找到相對應(yīng)的特征,透過處理二維的時頻圖,借由傳統(tǒng)影像處理的方式,達到語音辨識的目的。
聲學模型
聲學模型是語音識別系統(tǒng)中最為關(guān)鍵的一部分。聲學模型的目標是提供一種有效的方法,計算語音的特征矢量序列和每個發(fā)音模板之間的距離。聲學模型的設(shè)計和語言發(fā)音特點密切相關(guān)。模型識別單元大小(詞發(fā)音模型、字發(fā)音模型、 半音節(jié)模型或音素模型)對語音訓練數(shù)據(jù)量大小、 語音識別率,以及靈活性有較大的影響。對中等詞匯量以上的語音識別系統(tǒng)來說,識別單元小,則計算量也小,所需的模型存儲量也小,要求的訓練數(shù)據(jù)量相對也小,所需的模型存儲量也小,要求的訓練數(shù)據(jù)量相對也少,但帶來的問題是對應(yīng)語音段的定位和分割困難,以及更復(fù)雜的識別模型規(guī)則。通常大的識別單元易于包括協(xié)同發(fā)音在模型中,這有利于提高系統(tǒng)的識別率,但要求的訓練數(shù)據(jù)相對增加,當然,對于現(xiàn)在大數(shù)據(jù)處理技術(shù)來說,訓練數(shù)據(jù)的增多問題不大。
以直接對詞進行建模是最直接的,也是最簡單的。但是這就需要在訓練數(shù)據(jù)中,每個詞都有足夠多的訓練樣本。這往往難以做到,尤其是對于大詞匯量語音識別。因此,現(xiàn)在普遍采用的是對音素(Phone,多個音素組成一個詞) 這樣的子詞單元進行建 模,隨著大數(shù)據(jù)處理技術(shù)和神經(jīng)網(wǎng)絡(luò)的發(fā)展,也有按照詞為單位來建模的方式在研究。
下圖為基于隱式馬爾科夫模型HMM的音素模型:
具體識別鏈的例子:
語言模型
語言模型(Language Model,LM)是為了在語音識別的過程中有效地結(jié)合語法和語義的知識,提 高識別率,減少搜索的范圍。由于很難準確地確定詞的邊界,以及聲學模型描述語音變異性的能力有限,識別時將產(chǎn)生很多概率得分相似的詞的序列。 因此,在實用的語音識別系統(tǒng)中通常使用語言模型 P(W)從諸多候選結(jié)果中選擇最有可能的詞序列來彌補聲學模型的不足。
語言模型可以分為基于規(guī)則的語言模型和基于統(tǒng)計的語言模型?;谝?guī)則的語言模型是總結(jié)出語法規(guī)則乃至語義規(guī)則,然后用這些規(guī)則排除聲學識別中不合語法規(guī)則或語義規(guī)則的結(jié)果。統(tǒng)計語言模 型通過統(tǒng)計概率描述詞與詞之間的依賴關(guān)系,間接地對語法或語義規(guī)則進行編碼。基于規(guī)則的語言模型在特定任務(wù)系統(tǒng)中獲得很好的應(yīng)用,可較大幅度提高系統(tǒng)的識別率。由于日??谡Z對話無法用嚴格的規(guī)則描述,在大詞匯量語音識別系統(tǒng)中主要采用 基于統(tǒng)計的語言模型。
識別方法或搜索模型
對于連續(xù)語音識別來講,識別的最終目的是從各種可能的音素模型狀態(tài)序列形成的網(wǎng)絡(luò)中找出最優(yōu)的詞序列(即最優(yōu)路徑)。這實質(zhì)上屬于解碼算法或搜索算法的范疇。 語音識別算法的具體識別搜索算法的實現(xiàn)要根據(jù)語言的特點、模型的整體結(jié)構(gòu)進行設(shè)計。
語音識別的搜索算法可以分為幾類:
深度優(yōu)先(Depth-first),通常包括堆棧解碼器、A*解碼算法;
寬度優(yōu)先 (Breadth-first)。包括維特比 (Viterbi)解碼算法;
人工智能方式:基于知識的專家系統(tǒng);
神經(jīng)網(wǎng)絡(luò)方式:多隱藏層的深度神經(jīng)網(wǎng)絡(luò)(DNN),深度循環(huán)網(wǎng)絡(luò)(RNN)等。
一個完整例子:
對識別結(jié)果的評測
語音識別中的評測一般分為正確率 (Correctness)和準確率(Accuracy):
其中 , “NREF” 表示待識別詞的總數(shù), “SUB”表示替換錯誤的次數(shù),“DEL”表示刪除錯 誤的次數(shù),“INS”表示插入錯誤的次數(shù)。
語音識別的挑戰(zhàn)
處理環(huán)境噪聲和缺失信息的處理,未來的語音識別系統(tǒng)還是要更優(yōu)化地解決它。
各種變量對于語音處理的挑戰(zhàn)。比如說話風格,演說人的生理因素,年齡,情緒等。
對于語音系統(tǒng)可行度的評估分析。
對于數(shù)據(jù)中一些不能被詞典所包括的超綱詞匯以及生僻字對于語音識別的影響研究。
展望
當前簡單的語音識別技術(shù)已經(jīng)比較成熟,進入了實用階段,訓練后的識別率普遍能達到95%以上。
但是針對諸如電話交談?wù)Z音、微信交流語音,以及多方會議等復(fù)雜環(huán)境下的語音識別效果然仍需要有大的提升空間。
而對于聯(lián)系上下文對語義進行充分的識別,則還是處于初始起步階段,目前沒有很好的方式來實現(xiàn),后續(xù)隨著人工智能、深度學習的發(fā)展,看在這個方面是否能有所突破。