馮志偉 詹宏偉
(杭州師范大學(xué), 杭州 311121)
提 要:本文從會(huì)話智能代理的角度,論述語(yǔ)音自動(dòng)識(shí)別的原理和方法,分析特征提取階段、聲學(xué)建模階段和解碼階段的基本原理,最后介紹語(yǔ)音識(shí)別研究的歷史與現(xiàn)狀。
在自然語(yǔ)言處理(natural language processing)中,人與計(jì)算機(jī)之間對(duì)話與會(huì)話的系統(tǒng)稱(chēng)為“會(huì)話智能代理”(conversation agent),這個(gè)術(shù)語(yǔ)中的“會(huì)話”也包括“對(duì)話”,因?yàn)榇蠖鄶?shù)的會(huì)話都以對(duì)話的方式出現(xiàn)。會(huì)話智能代理是一種能夠使用自然語(yǔ)言與用戶(hù)進(jìn)行交流的計(jì)算機(jī)程序,它可以幫助用戶(hù)使用計(jì)算機(jī)自動(dòng)地預(yù)訂機(jī)票、回答問(wèn)題或回復(fù)電子郵件。其中的許多問(wèn)題還與商業(yè)會(huì)議摘要系統(tǒng)以及其他口語(yǔ)理解系統(tǒng)相關(guān),具有重要的應(yīng)用價(jià)值(馮志偉 2017:183)。
一個(gè)完整的會(huì)話智能代理系統(tǒng)(conversation agent system)應(yīng)當(dāng)包含6個(gè)組件:語(yǔ)音識(shí)別組件(Speech Recognition)、自然語(yǔ)言理解組件(Natural Language Understanding)、自然語(yǔ)言生成組件(Na-tural Language Generation)、文本—語(yǔ)音合成組件(Text-to-Speech Synthesis)、對(duì)話管理組件(Dialogue Manager)和任務(wù)管理組件(Task Manager),如圖1所示。
圖1 會(huì)話智能代理的各組件的簡(jiǎn)化架構(gòu)圖
在會(huì)話智能代理系統(tǒng)的6個(gè)組件中,根據(jù)其功能可以大致分成3類(lèi):管理組件、輸入組件和輸出組件。對(duì)話管理組件和任務(wù)管理組件共同控制會(huì)話智能代理系統(tǒng)的整個(gè)工作過(guò)程。信息操作流程如下:用戶(hù)的會(huì)話輸入到語(yǔ)音識(shí)別組件后轉(zhuǎn)化為文本形式,自然語(yǔ)言理解組件從中抽取含義,經(jīng)過(guò)管理組件的運(yùn)算和處理,自然語(yǔ)言生成組件得到文本處理結(jié)果,最后文本—語(yǔ)音合成組件將文本處理結(jié)果映射到語(yǔ)音,輸出對(duì)話的最終結(jié)果(同上 2014:27)。
系統(tǒng)接受的語(yǔ)音信號(hào)來(lái)自用戶(hù), 用戶(hù)可以通過(guò)電話、PDA(個(gè)人數(shù)據(jù)助理)或筆記本電腦的麥克風(fēng)向系統(tǒng)發(fā)起會(huì)話。系統(tǒng)的語(yǔ)音識(shí)別組件把這些語(yǔ)音信號(hào)轉(zhuǎn)換為單詞串,輸入會(huì)話智能代理系統(tǒng)。語(yǔ)音識(shí)別組件是智能會(huì)話代理系統(tǒng)的輸入端,這個(gè)組件在智能會(huì)話代理系統(tǒng)中起到舉足輕重的關(guān)鍵作用。如果語(yǔ)音識(shí)別組件不能有效地識(shí)別輸入的語(yǔ)音,將會(huì)嚴(yán)重地影響到會(huì)話智能代理系統(tǒng)的效率。語(yǔ)音識(shí)別組件的這種功能叫做語(yǔ)音自動(dòng)識(shí)別(automatic speech recognition,簡(jiǎn)稱(chēng)ASR)。語(yǔ)音自動(dòng)識(shí)別的研究目標(biāo)就是用計(jì)算機(jī)來(lái)建立語(yǔ)音識(shí)別系統(tǒng),把聲學(xué)信號(hào)映射為單詞串(Huang et al. 2001)。近年來(lái),語(yǔ)音自動(dòng)識(shí)別的技術(shù)在某些限定的領(lǐng)域內(nèi)已經(jīng)取得可喜的成果,在會(huì)話智能代理系統(tǒng)中已經(jīng)得到一定程度的應(yīng)用,這種技術(shù)已經(jīng)逐漸成熟,我們應(yīng)當(dāng)密切關(guān)注。本文從智能會(huì)話代理的角度,嘗試以最直觀的方式來(lái)介紹語(yǔ)音自動(dòng)識(shí)別的方法和技術(shù),以滿(mǎn)足讀者更新知識(shí)的要求。
在討論語(yǔ)音識(shí)別的總體結(jié)構(gòu)前,我們先討論一下影響語(yǔ)音識(shí)別效果的4個(gè)因素,我們把這4個(gè)因素稱(chēng)為語(yǔ)音識(shí)別的“可變維度”。
(1)詞匯量的大?。河绊懻Z(yǔ)音識(shí)別的第一個(gè)可變維度是詞匯量的大小。如果要識(shí)別的話語(yǔ)中不同單詞的數(shù)量比較小,語(yǔ)音識(shí)別就會(huì)較容易。只有兩個(gè)單詞的詞匯量的語(yǔ)音識(shí)別,例如,辨別yes還是no,或者識(shí)別只包括11個(gè)單詞的詞匯量的數(shù)字序列(從英語(yǔ)的zero到nine再加上oh),也就是數(shù)字識(shí)別工作,這種語(yǔ)音識(shí)別比較容易。另一方面,對(duì)于那些包含20,000到60,000個(gè)單詞的大詞匯量語(yǔ)音識(shí)別,例如,識(shí)別人與人之間的電話會(huì)話,或者識(shí)別廣播或電視中的新聞節(jié)目,語(yǔ)音識(shí)別就相對(duì)困難得多。
(2)語(yǔ)音的流暢度和自然度:影響語(yǔ)音識(shí)別的第二個(gè)可變維度是語(yǔ)音的流暢度、自然度以及是否為對(duì)話語(yǔ)音。在孤立單詞(isolated word)的識(shí)別中,每一個(gè)單詞被它前后的停頓包圍,孤立單詞的識(shí)別比連續(xù)語(yǔ)音的識(shí)別容易得多,因?yàn)樵谶B續(xù)語(yǔ)音的識(shí)別中,單詞前后彼此連續(xù),必須進(jìn)行自動(dòng)切分。連續(xù)語(yǔ)音識(shí)別這一工作本身的困難程度也各有不同。例如,人對(duì)人說(shuō)話和人對(duì)機(jī)器說(shuō)話的流暢度、自然度不同,語(yǔ)音識(shí)別的難度也相應(yīng)不同,前者比后者更難。識(shí)別人對(duì)機(jī)器說(shuō)話的語(yǔ)音,或者是以閱讀語(yǔ)音(read speech)的方式來(lái)大聲朗讀(例如,模擬聽(tīng)寫(xiě)的工作),或者使用語(yǔ)音對(duì)話系統(tǒng)來(lái)進(jìn)行轉(zhuǎn)寫(xiě),都比較容易。在會(huì)話智能代理系統(tǒng)中,當(dāng)人對(duì)機(jī)器講話的時(shí)候,似乎總是簡(jiǎn)化自己發(fā)出的語(yǔ)音,盡量說(shuō)得慢一些,說(shuō)得清楚一些,這樣的語(yǔ)音也就比較容易識(shí)別。識(shí)別兩個(gè)人以對(duì)話語(yǔ)音的方式彼此隨意地談話的語(yǔ)音,例如,轉(zhuǎn)寫(xiě)商業(yè)會(huì)談的語(yǔ)音,這樣的語(yǔ)音識(shí)別就困難得多。
(3)信道和噪聲:影響語(yǔ)音識(shí)別的第三個(gè)可變維度是信道和噪聲,它們是信息傳遞的環(huán)境和外部條件。聽(tīng)寫(xiě)以及語(yǔ)音識(shí)別的很多實(shí)驗(yàn)研究都是在高質(zhì)量的語(yǔ)音以及頭戴擴(kuò)音器的條件下進(jìn)行。由于頭戴擴(kuò)音器就可以消除把擴(kuò)音器放在桌子上時(shí)發(fā)生的語(yǔ)音失真,因?yàn)榘褦U(kuò)音器放在桌子上時(shí),說(shuō)話人的頭會(huì)動(dòng)來(lái)動(dòng)去而造成語(yǔ)音失真。任何類(lèi)型的噪聲都會(huì)使語(yǔ)音識(shí)別的難度加大。因此,在安靜的辦公室中識(shí)別說(shuō)話人一板一拍的口授比較容易,而識(shí)別開(kāi)著窗子在高速公路上飛馳的汽車(chē)中說(shuō)話人的聲音,就困難得多。
(4)說(shuō)話人的語(yǔ)音特征:影響語(yǔ)音識(shí)別的最后一個(gè)可變維度是說(shuō)話人的口音特征和說(shuō)話人的類(lèi)別特征。如果說(shuō)話人說(shuō)的是標(biāo)準(zhǔn)的語(yǔ)音,或者說(shuō)話人的語(yǔ)音與系統(tǒng)訓(xùn)練時(shí)的數(shù)據(jù)比較匹配,那么,語(yǔ)音識(shí)別就比較容易。反之,語(yǔ)音識(shí)別就比較困難。例如,說(shuō)話人操陌生的口音,或者是兒童的語(yǔ)音(除非語(yǔ)音識(shí)別系統(tǒng)是特別地根據(jù)這些類(lèi)型的語(yǔ)音來(lái)訓(xùn)練的)。
圖2中的數(shù)據(jù)來(lái)自一些最新的語(yǔ)音識(shí)別系統(tǒng),說(shuō)明在不同的語(yǔ)音識(shí)別任務(wù)中,誤識(shí)的單詞的大致百分比,這個(gè)百分比叫做詞錯(cuò)誤率(word error rate,簡(jiǎn)稱(chēng)WER)。
圖2 ASR在不同任務(wù)中的詞匯量和詞錯(cuò)誤率
在圖2中, 廣播新聞節(jié)目(broadcast news)和電話對(duì)話語(yǔ)音(conversational telephone speech,簡(jiǎn)稱(chēng)CTS)的錯(cuò)誤率是根據(jù)特定的訓(xùn)練和測(cè)試方案得到的,可以作為一種粗略的估計(jì)數(shù)字;在這些以不同方式確定的任務(wù)中,詞錯(cuò)誤率的數(shù)值變化范圍的差別可以達(dá)到二倍之多。由于噪聲和口音而造成的變化會(huì)使錯(cuò)誤率增加很多。據(jù)報(bào)道,對(duì)于相同的識(shí)別任務(wù),帶有濃重日語(yǔ)口音或西班牙語(yǔ)口音的英語(yǔ)的詞錯(cuò)誤率比母語(yǔ)為英語(yǔ)的人說(shuō)英語(yǔ)的詞錯(cuò)誤率約高出3至4倍。如果汽車(chē)噪聲的信噪比(signal-to-noise ratio,簡(jiǎn)稱(chēng)SNR)提高10分貝(dB),詞錯(cuò)誤率可能上升2至4倍。
一般說(shuō)來(lái),語(yǔ)音識(shí)別的詞錯(cuò)誤率每年都在降低,這是因?yàn)檎Z(yǔ)音識(shí)別的性能在不斷改進(jìn)中。由于語(yǔ)音識(shí)別算法改進(jìn)和摩爾定律(Moor’s law)②雙重因素的影響,有人估計(jì),在過(guò)去的10年內(nèi),語(yǔ)音識(shí)別性能的改進(jìn)比例大約是每年提高10%左右。在本文中,描述的方法應(yīng)用范圍廣泛,可以應(yīng)用于語(yǔ)音識(shí)別的各個(gè)領(lǐng)域,目前的語(yǔ)音自動(dòng)識(shí)別選擇把重點(diǎn)放在大詞匯量連續(xù)語(yǔ)音識(shí)別(large-vocabulary continuous speech recognition,簡(jiǎn)稱(chēng)LVCSR)這個(gè)關(guān)鍵性領(lǐng)域的基礎(chǔ)性問(wèn)題。本文中的“大詞匯量”,指系統(tǒng)包含約二萬(wàn)到六萬(wàn)個(gè)單詞的詞匯;本文中的“連續(xù)”,指所有單詞是自然地、連續(xù)地說(shuō)出來(lái)的。另外,我們將討論的方法一般是“不依賴(lài)于說(shuō)話人”的(spea-ker-independent);這意味著,這些方法可以識(shí)別人的真實(shí)語(yǔ)音。由于堅(jiān)持“大詞匯量連續(xù)語(yǔ)音識(shí)別”這個(gè)原則,語(yǔ)音識(shí)別取得長(zhǎng)足的進(jìn)展,目前,語(yǔ)音識(shí)別系統(tǒng)已經(jīng)走出實(shí)驗(yàn)室,實(shí)現(xiàn)實(shí)用化和商品化,給現(xiàn)代人的生活和工作帶來(lái)極大方便,這是在21世紀(jì)語(yǔ)言學(xué)最值得稱(chēng)道的成就。
可以從噪聲信道模型(noisy channel model)的角度來(lái)看語(yǔ)音識(shí)別。這里我們來(lái)舉例說(shuō)明噪聲信道模型:源語(yǔ)言的英語(yǔ)句子if music be the food of love...經(jīng)過(guò)噪聲信道變成噪聲句子(noisy sentence),也就是圖3中的聲波。為了識(shí)別聲波,需要對(duì)這個(gè)噪聲句子進(jìn)行解碼,解碼時(shí)要考慮所有可能的句子,對(duì)于每一個(gè)句子,都要計(jì)算它生成噪聲句子的概率,然后,從中選取概率最大的句子,就可以求解出源語(yǔ)言的句子if music be the food of love...從而達(dá)到語(yǔ)音識(shí)別的目的。所以,噪聲信道模型是一個(gè)解碼模型。圖3具體地說(shuō)明這個(gè)噪聲信道模型識(shí)別語(yǔ)音的過(guò)程。
圖3 應(yīng)用于整個(gè)句子語(yǔ)音識(shí)別的噪聲信道模型
從噪聲信道模型的角度來(lái)看,語(yǔ)音識(shí)別系統(tǒng)的工作就是要搜索一個(gè)很大的潛在的源句子空間,并從中選擇在生成噪聲句子時(shí)具有最大概率的句子(馮志偉 2013a)。建立噪聲信道模型需要解決兩個(gè)問(wèn)題:
第一是為了挑選出與噪聲輸入匹配最佳的句子,需要對(duì)于最佳匹配有一個(gè)完全的度量。因?yàn)檎Z(yǔ)音是變化多端的,一個(gè)輸入句子不可能與這個(gè)句子的任何模型都匹配得天衣無(wú)縫。因此,要使用概率作為度量,并且說(shuō)明如何把不同的概率估計(jì)結(jié)合起來(lái),以便對(duì)給定的候選句子的噪聲觀察序列的概率得到一個(gè)全面的估計(jì)。第二是因?yàn)樗杏⒄Z(yǔ)句子的集合非常大,需要一個(gè)有效的算法使得我們不用搜索所有可能的句子,而只搜索那些有機(jī)會(huì)與輸入匹配的句子。這就是解碼問(wèn)題或搜索問(wèn)題。抽象地說(shuō),語(yǔ)音識(shí)別噪聲信道模型的總體結(jié)構(gòu)的目標(biāo)是:“對(duì)于給定的某個(gè)聲學(xué)輸入O,在語(yǔ)言L的所有句子中,哪一個(gè)句子W是最可能的句子?”我們可以把聲學(xué)輸入O作為單個(gè)的符號(hào)或“觀察”(observation)的序列來(lái)處理。例如,把輸入按每10微秒切分成音片,每一個(gè)音片用它的能量或頻度的浮點(diǎn)值來(lái)表示。用索引號(hào)來(lái)表示時(shí)間間隔,用有順序的oi表示在時(shí)間上前后相續(xù)的輸入音片。在下面的公式中,用大寫(xiě)字母表示符號(hào)的序列,用小寫(xiě)字母表示單個(gè)的符號(hào):
O=o1, o2, o3, ..., ot
類(lèi)似地,在識(shí)別句子時(shí),把句子看成由單詞簡(jiǎn)單地構(gòu)成的單詞串:
W=w1, w2, w3, ..., wn
不論是聲學(xué)輸入還是句子,上面的這種表示都是簡(jiǎn)化的假設(shè)。在語(yǔ)音識(shí)別中,單詞通常根據(jù)正詞法來(lái)定義。例如,oak與oaks當(dāng)作不同的單詞來(lái)處理;而助動(dòng)詞can(can you tell me...)與名詞can(I need a can of...)卻當(dāng)作相同的單詞來(lái)處理。從隱Markov模型(hidden markov model,簡(jiǎn)稱(chēng)HMM)的角度來(lái)看,語(yǔ)音識(shí)別的任務(wù)在于,根據(jù)給定的觀察O,求解隱藏在O后面的具有最大概率的句子W. 根據(jù)HMM,對(duì)于給定的某個(gè)觀察O,具有最大概率的句子W可以用每一個(gè)句子的兩個(gè)概率的乘積來(lái)計(jì)算,并且選乘積最大的句子為所求的句子(馮志偉 2013b)。HMM的計(jì)算公式如下,其中,P(W)是先驗(yàn)概率,叫做“語(yǔ)言模型”(language model);P(O|W)是觀察似然度,叫做“聲學(xué)模型”(acoustic model)。
似然度 先驗(yàn)概率
語(yǔ)音識(shí)別可分為3個(gè)階段:特征抽取階段(feature extraction stage)、聲學(xué)建模階段(acoustic modeling stage)和解碼階段(decoding stage),如圖4所示。
圖4 語(yǔ)音識(shí)別的3個(gè)階段
從HMM的觀點(diǎn)來(lái)看,在特征抽取階段可獲取觀察值O,在聲學(xué)建模階段可獲取觀察似然度P(O|W)和先驗(yàn)概率P(W),在解碼階段可獲取文本W(wǎng). 在圖4中,輸入的是語(yǔ)音,經(jīng)過(guò)這3個(gè)階段的處理后,輸出的語(yǔ)音識(shí)別結(jié)果是if music be the food of love. 在特征抽取階段,語(yǔ)音的聲學(xué)波形按照音片的時(shí)間框架(通常是10,15或20毫秒)來(lái)抽樣,把音片的時(shí)間框架轉(zhuǎn)換成聲譜特征(spectral feature)。每一個(gè)時(shí)間框架的窗口用矢量來(lái)表示,每一個(gè)矢量包括約39個(gè)特征,用以表示聲譜的信息以及能量大小和聲譜變化的信息。特征信息最普通的表示方法是Mel頻度倒譜系數(shù)(Mel frequency cepstral coefficients,簡(jiǎn)稱(chēng)MFCC)。在圖4中,這個(gè)階段具體地用“倒譜特征抽取”(cepstral feature extraction)表示,抽取到的倒譜特征MFCC就是HMM 中的觀察值O.
在聲學(xué)建模階段,對(duì)于給定的語(yǔ)言單位(單詞、音子和次音子),要計(jì)算觀察到的聲譜特征矢量的似然度。例如,我們要使用高斯混合模型(gaussian mixture model,簡(jiǎn)稱(chēng)GMM)分類(lèi)器,對(duì)于HMM中與一個(gè)音子或一個(gè)次音子W,計(jì)算給定音子與給定特征矢量的觀察似然度P(O|W)。在這個(gè)階段的輸出可以用一種簡(jiǎn)化的方法把它想象成概率矢量的一個(gè)序列,在這個(gè)序列中,每一個(gè)概率矢量對(duì)應(yīng)一個(gè)時(shí)間框架,而每一個(gè)時(shí)間框架的每一個(gè)矢量是在該時(shí)刻生成的聲學(xué)特征矢量觀察O與每一個(gè)音子單元或次音子單元W似然度(phone likelihoods)。在圖4中,這個(gè)階段具體地用“高斯聲學(xué)模型”(Gaussian acoustic model)來(lái)表示。
在解碼階段,我們?nèi)∫粋€(gè)聲學(xué)模型(acoustic model,簡(jiǎn)稱(chēng)AM),其中包括觀察似然度P(O|W),再加上一個(gè)HMM單詞發(fā)音詞典(HMM lexicon),再取一個(gè)N元語(yǔ)言模型(N-gram language model),得到先驗(yàn)概率P(W),把聲學(xué)模型的觀察似然度P(O|W)與語(yǔ)言模型的先驗(yàn)概率P(W)相結(jié)合,輸出最可能的單詞序列W. 大多數(shù)語(yǔ)音識(shí)別系統(tǒng)使用Viterbi算法(Viterbi algorithm)來(lái)解碼,還采用各種精心設(shè)計(jì)的提升方法來(lái)加快解碼的速度,這些方法有剪枝、快速匹配和樹(shù)結(jié)構(gòu)的詞典等。在圖4中,這個(gè)階段具體地用“Viterbi解碼”(Viterbi decoder)來(lái)表示。下面我們分別討論這3個(gè)階段。
我們的目標(biāo)是描述怎樣把輸入的波形轉(zhuǎn)換成聲學(xué)特征矢量(feature vector)的序列,使得每一個(gè)特征矢量代表在一個(gè)很小的窗口內(nèi)的信號(hào)的信息。有多種可能的方法來(lái)表示這樣的信息。迄今最為普通的方法是Mel頻度倒譜系數(shù)MFCC. MFCC建立在倒譜(cepstrum)這個(gè)重要的思想基礎(chǔ)之上。
首先來(lái)討論模擬語(yǔ)音波形的數(shù)字化和量化過(guò)程。語(yǔ)音處理的第一步是把模擬信號(hào)的表示(首先是空氣的壓強(qiáng),其次是擴(kuò)音器的模擬電信號(hào))轉(zhuǎn)化為數(shù)字信號(hào)。這個(gè)模擬信號(hào)—數(shù)字信號(hào)轉(zhuǎn)換(analog-to-digital conversion)的過(guò)程分為兩步:第一步是抽樣(sampling),第二步是量化(quantization)。信號(hào)是通過(guò)測(cè)定它在特定時(shí)刻的幅度來(lái)抽樣;每秒鐘抽取的樣本數(shù)叫做抽樣率(sampling rate)。為保證聲波測(cè)量的精確性,在每一輪抽樣中至少需要兩個(gè)樣本:一個(gè)樣本用于測(cè)量聲波的正側(cè)部分,一個(gè)樣本用于測(cè)量聲波的負(fù)側(cè)部分。每一輪抽樣中的樣本多于兩個(gè)時(shí),可以增加抽樣幅度的精確性,但是,如果每一輪的樣本數(shù)目少于兩個(gè),將會(huì)導(dǎo)致聲波頻度的完全遺漏。因此,可能測(cè)量的最大頻度的波就是那些頻度等于抽樣率一半的波(因?yàn)槊恳惠喅闃禹氁獌蓚€(gè)樣本)。對(duì)于給定抽樣率的最大頻度叫做Nyquist頻度(Nyquist frequency)。
對(duì)于如像Switchboard英語(yǔ)口語(yǔ)語(yǔ)料庫(kù)這種電話帶寬(telephone-bandwidth)的語(yǔ)音來(lái)說(shuō),8,000赫茲的抽樣率已經(jīng)足夠。8,000赫茲的抽樣率要求對(duì)于每一秒鐘的語(yǔ)音度量8,000個(gè)幅度,所以有效地存儲(chǔ)幅度的度量非常重要。這通常以整數(shù)存儲(chǔ),或者是8比特,或者是16比特。這個(gè)把實(shí)數(shù)值表示為整數(shù)的過(guò)程叫做量化(quantization),因?yàn)檫@是一個(gè)最小的顆粒度(量程規(guī)模),所有與這個(gè)量程規(guī)模接近的值都采用同樣的方式來(lái)表示。我們把經(jīng)過(guò)數(shù)字化和量化的波形記為x[n],其中n是對(duì)于時(shí)間的指標(biāo)。有了波形的數(shù)字化和量化的表示,就可以來(lái)抽取MFCC特征。這個(gè)過(guò)程可以分為6步,如圖5所示。
圖5 從經(jīng)過(guò)數(shù)字化和量化的波形中抽取39維的MFCC特征矢量序列的過(guò)程
從圖5可知,語(yǔ)音信號(hào)(speech signal)經(jīng)過(guò)預(yù)加重(pre-emphasis)、加窗(window)、離散傅里葉變換(DFT)、Mel濾波器組(Mel filter bank)、對(duì)數(shù)表示(log)和逆向離散傅里葉變換(iDFT)6個(gè)步驟,得到12個(gè)MFCC系數(shù)(MFCC 12 coefficients),與能量特征(energy)一起,成為Delta特征(Delta),最后得到12個(gè)倒譜系數(shù)(12 MFCC),12個(gè)Delta倒譜系數(shù)(12 ΔMFCC),12個(gè)雙Delta倒譜系數(shù)(12 ΔΔMFCC),1個(gè)能量系數(shù)(1 energy),1個(gè)Delta能量系數(shù)(1 Δ energy),1個(gè)雙Delta能量系數(shù)(1ΔΔ energy),一共39個(gè)MFCC特征。我們對(duì)圖5中的過(guò)程進(jìn)一步加以描述。
(1)預(yù)加重
MFCC特征抽取的第一個(gè)階段是加重高頻段的能量,叫做預(yù)加重(pre-emphasis)。已經(jīng)證明,如果觀察像元音這樣的有濁音的語(yǔ)音片段的聲譜,我們會(huì)發(fā)現(xiàn),低頻端的能量比高頻端的能量要高一些。這種頻度高而能量下降的現(xiàn)象叫做聲譜斜移(spectral tilt),是由于聲門(mén)脈沖的特性造成的。加重高頻端的能量可以使具有較高的共振峰的信息更加適合于聲學(xué)模型,從而改善音子探測(cè)的精確性。這種預(yù)加重使用濾波器來(lái)進(jìn)行。
(2)加窗
特征抽取的目的是得到能夠幫助我們建立音子或次音子分類(lèi)器的聲譜特征。我們不想從整段的話語(yǔ)或會(huì)話中抽取聲譜特征,因?yàn)樵谡蔚脑捳Z(yǔ)或會(huì)話中,聲譜的變化非常快。從技術(shù)上說(shuō),語(yǔ)音是非平穩(wěn)信號(hào)(non-stationary signal),因此,語(yǔ)音的統(tǒng)計(jì)特性在時(shí)間上不是恒定的。所以,我們只想從語(yǔ)音的一個(gè)小窗口上抽取聲譜特征,從而描述特定的次音子,并大致地假定在這個(gè)窗口內(nèi)的語(yǔ)音信號(hào)是平穩(wěn)的(stationary),也就是假定語(yǔ)音的統(tǒng)計(jì)特性在這個(gè)區(qū)域內(nèi)是恒定的。為此使用加窗(windowing)的方法,使用窗口來(lái)抽取這種大致平穩(wěn)的語(yǔ)音部分,在窗口內(nèi)的某個(gè)區(qū)域內(nèi)語(yǔ)音信號(hào)可不為零或?yàn)榱?,?duì)語(yǔ)音信號(hào)運(yùn)行這個(gè)窗口,抽出在這個(gè)窗口內(nèi)的波形。
(3)離散傅里葉變換
下一步是抽取加窗信號(hào)的聲譜信息。我們需要知道在不同頻帶上信號(hào)包含的能量有多少。對(duì)于抽樣的離散時(shí)間信號(hào)的離散頻帶,抽取其聲譜信息的工具是離散傅里葉變換(discrete Fourier transform,簡(jiǎn)稱(chēng)DFT)。計(jì)算DFT的常用算法是快速傅里葉變換(fast Fourier transform,簡(jiǎn)稱(chēng)FFT)。用FFT算法來(lái)實(shí)現(xiàn)DFT是很有效的。
(4)Mel 濾波器組
計(jì)算MFCC時(shí),可以建立一個(gè)濾波器組(filter bank)來(lái)實(shí)現(xiàn)這樣的直覺(jué)。在這個(gè)濾波器組中,收集來(lái)自每一個(gè)頻帶的能量,低于1,000赫茲的頻帶的10個(gè)濾波器遵循線性分布,而其他的高于1,000赫茲的頻帶的濾波器則遵循對(duì)數(shù)分布。圖6說(shuō)明實(shí)現(xiàn)這種思想的三角形濾波器組,圖中顯示出Mel聲譜(Mel Spectrum)。在圖6中,每一個(gè)三角形濾波器收集來(lái)自給定頻度范圍的能量。
圖6 Mel濾波器組
(5)對(duì)數(shù)表示
最后,我們使用對(duì)數(shù)來(lái)表示Mel聲譜的值。在一般情況下,人類(lèi)對(duì)于信號(hào)級(jí)別的反應(yīng)是按照對(duì)數(shù)來(lái)計(jì)算的;在振幅高的階段,人類(lèi)對(duì)于振幅的輕微差別的敏感性比在振幅低的階段低得多。使用對(duì)數(shù)來(lái)估計(jì)特征的時(shí)候,對(duì)于輸入的變化也不太敏感。例如,由于說(shuō)話人口部運(yùn)動(dòng)的收縮或由于使用擴(kuò)音器等功率變化而導(dǎo)致的輸入變化,使用對(duì)數(shù)來(lái)估計(jì)時(shí)都是不敏感的。
(6)倒譜的逆向傅里葉變換
使用Mel聲譜作為語(yǔ)音識(shí)別的特征表示是可能的,但是,這樣的聲譜仍然存在某些問(wèn)題。MFCC特征抽取的下一步就是計(jì)算倒譜(cepstrum)。倒譜在語(yǔ)音處理時(shí)具有很多長(zhǎng)處,它可以改善語(yǔ)音識(shí)別的性能。
把聲源(source)和濾波器(filter)分開(kāi),是理解倒譜的一種有效的途徑。當(dāng)帶有特定的基本頻度的聲門(mén)的聲源波形通過(guò)聲腔的時(shí)候,其形狀會(huì)帶上特定的濾波器特征。但是,聲門(mén)產(chǎn)生的聲源的很多特征(例如,它的基頻特征和聲門(mén)脈沖的細(xì)節(jié)特征,等等),對(duì)于區(qū)別不同的音子并不是重要的。正是由于這個(gè)原因,對(duì)于探測(cè)音子最有用的信息在于濾波器,也就是聲腔的確切位置。如果已知聲腔的形狀,也就知道將會(huì)產(chǎn)生出什么樣的音子來(lái)。這意味著如果找到一種途徑把聲源和濾波器區(qū)別開(kāi)來(lái),只給我們提供聲腔濾波器,那么,就可以找到音子探測(cè)的有用特征。已經(jīng)證明,倒譜是達(dá)到這個(gè)目的的一種途徑。
圖7 振幅表示的聲譜(a),對(duì)數(shù)表示的聲譜(b),倒譜(c)
在圖7中,縱軸表示振幅(amplitude),聲譜的橫軸表示規(guī)范頻度(normalise frequency),倒譜的橫軸表示樣本(sample),為了有助于看清楚聲譜,對(duì)(a)和(b)兩個(gè)聲譜的上部進(jìn)行平滑處理。為了簡(jiǎn)單起見(jiàn),我們忽略MFCC中的預(yù)加重和Mel變形等部分,而只研究倒譜的基本定義。倒譜可以被想象成聲譜對(duì)數(shù)的聲譜(spectrum of the log of the spectrum)。這樣的表達(dá)似乎有些晦澀。讓我們首先來(lái)解釋比較容易的部分:聲譜對(duì)數(shù)(log of the spectrum)。倒譜是從標(biāo)準(zhǔn)的振幅聲譜開(kāi)始的,正如圖7(a)中所示的元音聲譜。然后我們對(duì)于這個(gè)振幅聲譜取對(duì)數(shù),也就是說(shuō),對(duì)于振幅聲譜中的每一個(gè)振幅的值,用它們相應(yīng)的對(duì)數(shù)值來(lái)表示,如圖7(b)所示。
下一步把這個(gè)對(duì)數(shù)聲譜本身也看成似乎是一個(gè)波形。換句話說(shuō),我們這樣考慮圖7(b)中的對(duì)數(shù)聲譜:把軸上的標(biāo)記(x軸上的頻度)去掉,使我們不至于把它想象成聲譜,而想象成是正在處理一個(gè)正規(guī)的語(yǔ)音信號(hào),它的x 軸表示時(shí)間,而不是表示頻度。那么,對(duì)于這個(gè)“假的信號(hào)”(pseudo-signal)的聲譜,我們注意到,在這個(gè)波中,存在著高頻的重復(fù)成分:對(duì)于一百二十赫茲左右的頻度,小波沿著x軸每1,000個(gè)約重復(fù)八次。這個(gè)高頻成分是由信號(hào)的基頻引起的,在信號(hào)的每一個(gè)諧波處,表示為聲譜的一個(gè)小波峰。此外,在這個(gè) “假的信號(hào)”中還存在著某些低頻成分,例如,對(duì)于更低的頻度,包絡(luò)結(jié)構(gòu)或共振峰結(jié)構(gòu)在窗口中有約四個(gè)大的波峰。
圖7(c)是倒譜:倒譜是對(duì)數(shù)聲譜的聲譜,上文已經(jīng)描述過(guò)。這個(gè)倒譜的英文單詞cepstrum是由spectrum(聲譜)前4個(gè)字母倒過(guò)來(lái)書(shū)寫(xiě)而造出來(lái)的,所以叫做“倒譜”。圖中的倒譜在x軸上的標(biāo)記是樣本。這是因?yàn)榈棺V是對(duì)數(shù)聲譜的聲譜,我們不再理會(huì)聲譜的頻度領(lǐng)域,而回到時(shí)間領(lǐng)域。已經(jīng)證明,倒譜的正確單位是樣本。
細(xì)心地檢查這個(gè)倒譜會(huì)看到,120附近有一個(gè)大的波峰,相當(dāng)于F0,表示聲門(mén)的脈沖。在x軸的低值部分,還存在著其他的各種成分。它們表示聲腔濾波器(舌頭的位置以及其他發(fā)音器官的位置)。因此,如果對(duì)于探測(cè)音子有興趣,那么,就可以使用這些比較低的倒譜值。如果對(duì)于探測(cè)音高有興趣,那么,就可以使用較高的倒譜值。為抽取WFCC,一般只取頭12個(gè)倒譜值。這12個(gè)參數(shù)僅僅表示關(guān)于聲腔濾波器的信息,它們與關(guān)于聲門(mén)聲源的信息的區(qū)別是涇渭分明的。
已經(jīng)證明,倒譜系數(shù)有一個(gè)非常有用的性質(zhì):不同的倒譜系數(shù)之間的方差(variance)傾向于不相關(guān)。而這對(duì)于聲譜是不成立的,因?yàn)椴煌l帶上的聲譜系數(shù)是相關(guān)的。倒譜特征不相關(guān)這個(gè)事實(shí)意味著,高斯聲學(xué)模型或高斯混合模型不必表示各個(gè)MFCC特征之間的協(xié)方差(covariance),這就大大地降低參數(shù)的數(shù)目。倒譜還可以更加形式化地定義為信號(hào)的DFT的對(duì)數(shù)振幅的逆向DFT,也就是iDFT.
(7)Delta特征與能量
語(yǔ)音信號(hào)的另外一個(gè)重要的事實(shí)是:從一個(gè)幀到另一個(gè)幀,語(yǔ)音信號(hào)是不恒定的。共振峰在轉(zhuǎn)換時(shí)的斜坡的變化,塞音從成阻到爆破的變化,這些都可能給語(yǔ)音的探測(cè)提供有用的線索。由于這樣的原因,我們還可以加上倒譜特征中與時(shí)間變化有聯(lián)系的一些特征。
我們使用對(duì)于13個(gè)特征每一個(gè)特征都加上Delta特征(Delta feature)或速度特征(velocity feature)以及加上雙Delta特征(double Delta feature)或加速度特征(acceleration feature)的辦法來(lái)做到這一點(diǎn)。這13個(gè)Delta特征中的每一個(gè)特征表示在相應(yīng)的倒譜/能量特征中幀與幀之間的變化,而這13個(gè)雙Delta特征中的每一個(gè)特征表示在相應(yīng)的Delta特征中幀與幀之間的變化。在給12個(gè)倒譜特征加上能量特征并進(jìn)一步添加Delta特征和雙Delta特征之后,我們最后得到如下39個(gè)MFCC特征:
表139個(gè)MFCC特征
12個(gè)倒譜系數(shù)
12個(gè)Delta倒譜系數(shù)
12個(gè)雙Delta倒譜系數(shù)
1個(gè)能量系數(shù)
1個(gè)Delta能量系數(shù)
1個(gè)雙Delta能量系數(shù)
關(guān)于MFCC特征的最有用的事實(shí)之一就是倒譜系數(shù)傾向于不相關(guān)。這一事實(shí)使得聲學(xué)模型變得更加簡(jiǎn)單。上文介紹過(guò)語(yǔ)音識(shí)別中的特征提取階段,說(shuō)明怎樣從波形抽取表示聲譜信息的MFCC特征,并在每10毫秒內(nèi)產(chǎn)生39個(gè)MFCC特征矢量。
現(xiàn)在來(lái)介紹語(yǔ)音識(shí)別的聲學(xué)建模階段,研究怎樣計(jì)算這些特征矢量與給定的HMM狀態(tài)的似然度。這個(gè)輸出的似然度是通過(guò)HMM的概率函數(shù)B來(lái)計(jì)算的。概率函數(shù)B也就是觀察似然度的集合。對(duì)于給定的單獨(dú)狀態(tài)qi和觀察ot,在矩陣B中的觀察似然度是p(ot|qi),我們把它叫做bt(i)。在詞類(lèi)標(biāo)注中,每一個(gè)觀察ot是一個(gè)離散符號(hào)(一個(gè)單詞),我們只要數(shù)一數(shù)在訓(xùn)練集中某個(gè)給定的詞類(lèi)標(biāo)記生成某個(gè)給定的觀察的次數(shù),就可以計(jì)算出一個(gè)給定的詞類(lèi)標(biāo)記生成一個(gè)給定觀察的似然度。不過(guò),在語(yǔ)音識(shí)別中,MFCC矢量是一個(gè)實(shí)數(shù)值,不可能使用計(jì)算每一個(gè)這樣的矢量出現(xiàn)的次數(shù)的方法來(lái)計(jì)算給定的狀態(tài)(音子)生成MFCC矢量的似然度,因?yàn)槊恳粋€(gè)矢量都有自己的獨(dú)特性,它們各不相同。
不論在解碼時(shí)還是在訓(xùn)練時(shí),都需要一個(gè)能夠?qū)τ趯?shí)數(shù)值的觀察ot計(jì)算p(ot|qi) 的觀察似然度函數(shù)。在解碼時(shí),我們有一個(gè)觀察ot,需要對(duì)于每一個(gè)可能的HMM狀態(tài),計(jì)算概率p(ot|qi),使得我們能夠選擇出最佳的狀態(tài)序列。為此需要進(jìn)行矢量的量化。有一個(gè)辦法可以使MFCC矢量看起來(lái)像可以記數(shù)的符號(hào),這個(gè)辦法就是建立一個(gè)映射函數(shù)把每一個(gè)輸入矢量映射為少量符號(hào)中的一個(gè)符號(hào)。然后就可以使用計(jì)算這些符號(hào)的方法來(lái)計(jì)算概率。這種把輸入矢量映射為可以量化的離散符號(hào)的思想,叫做矢量量化(vector quantization,簡(jiǎn)稱(chēng)VQ)。雖然矢量量化做起來(lái)就像現(xiàn)代的LVCSR系統(tǒng)中的聲學(xué)模型那樣簡(jiǎn)單,但是,這是一個(gè)行之有效的步驟在ASR各色各樣的領(lǐng)域中起著重要作用,所以,我們使用矢量量化作為討論聲學(xué)模型的開(kāi)始。
在矢量量化時(shí),我們通過(guò)把每一個(gè)訓(xùn)練特征矢量映射為一個(gè)小的類(lèi)別數(shù)目的方法,建立起一個(gè)規(guī)模很小的符號(hào)集,然后,分別使用離散符號(hào)來(lái)表示每一個(gè)類(lèi)別。更加形式地說(shuō),一個(gè)矢量量化系統(tǒng)是使用3個(gè)特征來(lái)刻畫(huà)的,這3個(gè)特征分別是碼本(codebook)、聚類(lèi)算法(clustering algorithm)和距離測(cè)度(distance metric)。
碼本是可能類(lèi)別的表,是組成詞匯V={v1,v2,...,vn}的符號(hào)的集合。對(duì)于碼本中的每一個(gè)代碼vk,要列出模型矢量(prototype vector),叫做碼字(vector word)。碼字是一個(gè)特定的特征矢量。例如,如果選擇使用256個(gè)碼字,就可以使用從0到255的數(shù)值來(lái)表示每一個(gè)矢量。由于我們使用一個(gè)8比特的數(shù)值來(lái)表示每一個(gè)矢量,所以叫做8比特的矢量量化(8-bit VQ)。這256個(gè)數(shù)值中的每一個(gè)數(shù)值都與一個(gè)模型化的特征矢量相關(guān)聯(lián)。
我們使用聚類(lèi)算法來(lái)建立碼本,聚類(lèi)算法把訓(xùn)練集中所有的特征矢量聚類(lèi)為256個(gè)類(lèi)別。然后,從這個(gè)聚類(lèi)中選擇一個(gè)有代表性的特征矢量,并把它作為這個(gè)聚類(lèi)的模型矢量或碼字,經(jīng)常使用K-均值聚類(lèi)(K-means clustering)。
一旦建立這樣的碼本,就可以把輸入的特征矢量與256個(gè)模型矢量相比較,使用某種距離測(cè)度來(lái)選擇最接近的模型矢量,用這個(gè)模型矢量的索引來(lái)替換輸入矢量,這個(gè)過(guò)程如圖8所示。
圖8 矢量量化(VQ)過(guò)程
從圖8可以看出,在矢量量化時(shí),把輸入的特征矢量(input feature vector)與碼本中的每一個(gè)碼字相比較,使用某種距離測(cè)度選擇出最接近的條目,輸出最接近的碼字的索引(output index of best vector)。 矢量量化VQ的長(zhǎng)處在于,由于類(lèi)別的數(shù)目有限,當(dāng)使用狀態(tài)來(lái)標(biāo)注和歸一化的時(shí)候,對(duì)于每一個(gè)類(lèi)別vk,通過(guò)簡(jiǎn)單地?cái)?shù)一數(shù)該類(lèi)別在某一個(gè)訓(xùn)練語(yǔ)料庫(kù)中出現(xiàn)次數(shù)的方法,就可以計(jì)算出給定的HMM狀態(tài)或次音子生成該類(lèi)別的概率。
聚類(lèi)過(guò)程和解碼過(guò)程都要求進(jìn)行距離測(cè)度或失真測(cè)度(distortion metric)的計(jì)算,以便說(shuō)明兩個(gè)聲學(xué)特征矢量的相似程度。距離測(cè)度用于建立聚類(lèi),找出每一個(gè)聚類(lèi)的模型矢量,并對(duì)輸入矢量與模型矢量進(jìn)行比較。 聲學(xué)特征矢量的最簡(jiǎn)單的距離測(cè)度是Euclidean距離(Euclidean distance)。Euclidean距離是在N維空間中由兩個(gè)矢量定義的兩個(gè)點(diǎn)之間距離。在實(shí)際應(yīng)用中,我們使用“Euclidean距離”這個(gè)短語(yǔ)經(jīng)常意味著“Euclidean距離的平方”。Mahalanobis距離(Mahalanobis distance)是一個(gè)稍微復(fù)雜的距離測(cè)度,這樣的距離測(cè)度要考慮到每一個(gè)維度中不同的方差。
其中,vk是最接近矢量ot的碼字。
矢量量化的優(yōu)點(diǎn)是計(jì)算起來(lái)非常容易,而且只需要很小的存儲(chǔ)。盡管有這樣的優(yōu)點(diǎn),矢量量化還不是語(yǔ)音處理的一個(gè)好模型。因?yàn)樵谑噶苛炕袛?shù)量很小的碼字不足以捕捉變化多端的語(yǔ)音信號(hào)。而且,語(yǔ)音現(xiàn)象并不簡(jiǎn)單地是一個(gè)范疇化的、符號(hào)化的過(guò)程。因此,現(xiàn)代語(yǔ)音識(shí)別算法一般不使用矢量量化來(lái)計(jì)算聲學(xué)似然度,而是直接根據(jù)實(shí)數(shù)值的、連續(xù)的輸入特征矢量來(lái)計(jì)算觀察概率。這些聲學(xué)模型是建立在連續(xù)空間上計(jì)算概率密度函數(shù)(probability density function,簡(jiǎn)稱(chēng)pdf)的基礎(chǔ)之上的。目前最常用的計(jì)算聲學(xué)似然度的方法是高斯混合模型的概率密度函數(shù)(pdf),此外,還可使用神經(jīng)網(wǎng)絡(luò)(neural network),支持向量機(jī)(support vector machines,簡(jiǎn)稱(chēng)SVMs)和條件隨機(jī)場(chǎng)(condition random fields,簡(jiǎn)稱(chēng)CRFs)等方法。
語(yǔ)音識(shí)別的最后一個(gè)階段是解碼階段(decoding stage),在解碼階段,我們?nèi)∫粋€(gè)聲學(xué)模型,其中包括聲學(xué)似然度的序列,再加上一個(gè)HMM的單詞發(fā)音詞典,再取一個(gè)語(yǔ)言模型(language model,簡(jiǎn)稱(chēng)LM,一般是一個(gè)N元語(yǔ)法),把聲學(xué)模型與語(yǔ)言模型結(jié)合起來(lái),采用Viterbi算法進(jìn)行解碼,發(fā)現(xiàn)對(duì)于給定聲學(xué)事件具有最大概率的單詞序列,得到語(yǔ)音識(shí)別的結(jié)果。
圖9是語(yǔ)音識(shí)別系統(tǒng)總體結(jié)構(gòu)圖,圖中顯示從語(yǔ)音波形經(jīng)過(guò)特征抽取、聲學(xué)建模和解碼等階段,最后輸出英語(yǔ)的單詞串I need a...的過(guò)程。
圖9 語(yǔ)音識(shí)別系統(tǒng)總體結(jié)構(gòu)圖
近年來(lái),語(yǔ)音自動(dòng)識(shí)別的研究發(fā)展迅速,已經(jīng)進(jìn)行商品化的開(kāi)發(fā),在人機(jī)對(duì)話、口語(yǔ)機(jī)器翻譯、智能人機(jī)接口和會(huì)話智能代理等領(lǐng)域中得到廣泛應(yīng)用。在會(huì)話智能代理系統(tǒng)中,語(yǔ)音識(shí)別組件接受音頻信號(hào),經(jīng)過(guò)語(yǔ)音識(shí)別之后返回一個(gè)與音頻信號(hào)相應(yīng)的單詞串進(jìn)行輸入。
會(huì)話智能代理中的語(yǔ)音識(shí)別組件在許多方面都可能做特殊優(yōu)化。例如,用于聽(tīng)寫(xiě)或轉(zhuǎn)錄的基于大詞匯量的語(yǔ)音識(shí)別組件,專(zhuān)注于識(shí)別任意話題的使用任意單詞的任意句子。但是,對(duì)于具有領(lǐng)域特殊性的對(duì)話系統(tǒng),識(shí)別任意的、各色各樣的句子并沒(méi)有多大作用。這時(shí),語(yǔ)音識(shí)別組件需要識(shí)別的句子僅僅是那些可以被自然語(yǔ)言理解組件所理解的句子。因此,商業(yè)的對(duì)話系統(tǒng)普遍使用基于有限狀態(tài)文法(finite state grammar)的非概率語(yǔ)言模型,這些語(yǔ)言模型的文法通常都由人工編寫(xiě),并明確指定系統(tǒng)能理解的所有回答,并不要求能夠識(shí)別任意話題的使用任意單詞的任意句子。
在會(huì)話智能代理系統(tǒng)中,因?yàn)橛脩?hù)對(duì)系統(tǒng)所說(shuō)的話與系統(tǒng)所處的對(duì)話狀態(tài)密切相關(guān),系統(tǒng)所用的語(yǔ)言模型通常是依賴(lài)對(duì)話狀態(tài)的。例如,如果會(huì)話智能代理系統(tǒng)剛剛問(wèn)用戶(hù)What city are you departing from?(你要從哪個(gè)城市出發(fā)?),語(yǔ)音識(shí)別組件的語(yǔ)言模型會(huì)被約束為只包括城市名,或者可能只有形如I want to (leave|depart) from[CITYNAME](我想從[CITYNAME](出發(fā)|離開(kāi)))的句子。這種特定于對(duì)話狀態(tài)的語(yǔ)言模型一般由人工編寫(xiě)的有限狀態(tài)語(yǔ)法或上下文無(wú)關(guān)語(yǔ)法(context-free grammar)組成,每個(gè)對(duì)話狀態(tài)對(duì)應(yīng)一個(gè)特定的語(yǔ)法。在某些會(huì)話智能代理系統(tǒng)中,如果要識(shí)別的句子的集合很大,就可以使用一個(gè)N-元語(yǔ)言模型(N-gram language model)來(lái)取代有限狀態(tài)文法,這個(gè)語(yǔ)言模型的概率近似為在對(duì)話狀態(tài)中的條件概率。
無(wú)論是使用有限狀態(tài)文法、上下文無(wú)關(guān)文法,還是使用N-元語(yǔ)言模型,我們將這些依賴(lài)于對(duì)話狀態(tài)的語(yǔ)言模型稱(chēng)為約束文法(restrictive grammar)。當(dāng)會(huì)話智能代理系統(tǒng)希望約束用戶(hù)對(duì)系統(tǒng)的上一個(gè)話段做出回應(yīng)時(shí),就可以使用約束文法;當(dāng)系統(tǒng)希望用戶(hù)有多個(gè)選擇時(shí),就可以將這個(gè)特定狀態(tài)的語(yǔ)言模型與一個(gè)更普遍的語(yǔ)言模型融合在一起即可,選擇策略可以根據(jù)用戶(hù)被授予的主動(dòng)權(quán)進(jìn)行調(diào)整(馮志偉 余衛(wèi)華 2015:80)。對(duì)話以及聽(tīng)寫(xiě)等其它應(yīng)用中的語(yǔ)音識(shí)別有一個(gè)特征,即說(shuō)話人的標(biāo)識(shí)在許多話段中都保持不變,這時(shí)可以使用說(shuō)話人自適應(yīng)技術(shù)來(lái)改進(jìn)語(yǔ)音識(shí)別的性能。
語(yǔ)音自動(dòng)識(shí)別的早期,只能識(shí)別單個(gè)的語(yǔ)音。例如,20世紀(jì)20年代出現(xiàn)的世界上第一臺(tái)能夠識(shí)別語(yǔ)音的機(jī)器,是一個(gè)名字叫做Radio Rex的商品玩具狗。當(dāng)人們說(shuō)Rex的時(shí)候,狗就會(huì)在人的叫喚聲的控制下走過(guò)來(lái)。在20世紀(jì)40年代末50年代初,Bell實(shí)驗(yàn)室的系統(tǒng)可以識(shí)別一個(gè)單獨(dú)說(shuō)話人的10個(gè)數(shù)字中的任何一個(gè),識(shí)別正確率達(dá)到97%至99%。Fry和Denes在倫敦大學(xué)院建立一個(gè)音位識(shí)別系統(tǒng),根據(jù)類(lèi)似的模式識(shí)別原則,該系統(tǒng)能夠識(shí)別英語(yǔ)中的4個(gè)元音和9個(gè)輔音。Fry和Denes的系統(tǒng)首次使用音位轉(zhuǎn)移概率來(lái)對(duì)語(yǔ)音識(shí)別系統(tǒng)進(jìn)行約束(Huang et al. 2001)。
在20世紀(jì)60年代末70年代初,語(yǔ)音自動(dòng)識(shí)別技術(shù)有較大的突破:(1)出現(xiàn)一系列的特征抽取算法,在語(yǔ)音中的應(yīng)用倒譜處理,在語(yǔ)音編碼中研制線性預(yù)測(cè)編碼(linear predictive coding,簡(jiǎn)稱(chēng)LPC)。(2)提出一些處理翹曲變形(warping)的方法,在與存儲(chǔ)模式匹配時(shí),通過(guò)展寬和收縮輸入信號(hào)的方法來(lái)處理說(shuō)話速率和切分長(zhǎng)度的差異。解決這些問(wèn)題的最自然的方法是動(dòng)態(tài)規(guī)劃,在研究這個(gè)問(wèn)題的時(shí)候,同樣的算法被多次地重新提出。Itakura把動(dòng)態(tài)規(guī)劃的思想和LPC系數(shù)相結(jié)合并首先在語(yǔ)音編碼中使用。他建立的系統(tǒng)可以抽取輸入單詞中的LPC特征并使用動(dòng)態(tài)規(guī)劃的方法把這些特征與所存儲(chǔ)的LPC模板相匹配。這種動(dòng)態(tài)規(guī)劃方法的非概率應(yīng)用是對(duì)輸入語(yǔ)音進(jìn)行模板匹配,叫做動(dòng)態(tài)時(shí)間翹曲變形(dynamic time warping)。(3)HMM的興起。1972年前后,有兩個(gè)實(shí)驗(yàn)室獨(dú)立地應(yīng)用HMM來(lái)研究語(yǔ)音問(wèn)題。一方面的應(yīng)用是由一些統(tǒng)計(jì)學(xué)家的工作引起的,Baum和他的同事們?cè)谄樟炙诡D(Princeton)的國(guó)防分析研究所研究HMM,并把它應(yīng)用于解決各種預(yù)測(cè)問(wèn)題。James Baker在卡耐基梅隆大學(xué)(Carnegie-Mellon University)做研究生期間,學(xué)習(xí)Baum等人的工作,并把他們的算法應(yīng)用于語(yǔ)音處理。與此同時(shí),在IBM華生研究中心,Jelinek,Mercer和Bahl 獨(dú)立地把HMM應(yīng)用于語(yǔ)音研究,他們?cè)谛畔⒄撃P头矫娴难芯渴艿较戕r(nóng)(Shannon)的影響。IBM的系統(tǒng)和Baker的系統(tǒng)非常相似,特別是他們都使用貝葉斯方法。他們之間早期工作的一個(gè)不同之處是解碼算法。Baker的DRAGON系統(tǒng)使用Viterbi動(dòng)態(tài)規(guī)劃解碼,而IBM系統(tǒng)則應(yīng)用Jelinek的棧解碼算法。Baker在建立語(yǔ)音識(shí)別公司的DRAGON系統(tǒng)之前,曾經(jīng)短期參加過(guò)IBM小組的工作。IBM的語(yǔ)音識(shí)別方法在20世紀(jì)末期完全地支配這個(gè)領(lǐng)域。IBM實(shí)驗(yàn)室確實(shí)是把統(tǒng)計(jì)模型應(yīng)用于自然語(yǔ)言處理的推動(dòng)力量,他們研制基于類(lèi)別的N元語(yǔ)法模型,研制基于HMM的詞類(lèi)標(biāo)注系統(tǒng),研制統(tǒng)計(jì)機(jī)器翻譯系統(tǒng),他們還使用熵和困惑度作為評(píng)測(cè)的度量(Huang et al. 2001)。
此后,HMM逐漸在語(yǔ)音處理界流傳開(kāi)來(lái)。這種流傳的原因之一是由于美國(guó)國(guó)防部高級(jí)研究計(jì)劃署(the Advanced Research Projects Agency,簡(jiǎn)稱(chēng)ARPA)發(fā)起一系列的研究和開(kāi)發(fā)計(jì)劃。第一個(gè)5年計(jì)劃開(kāi)始于1971年。第一個(gè)5年計(jì)劃的目標(biāo)是建立基于少數(shù)說(shuō)話人的語(yǔ)音識(shí)別系統(tǒng),這個(gè)系統(tǒng)使用一個(gè)約束性的語(yǔ)法和一個(gè)詞表(包括1,000單詞),要求語(yǔ)義錯(cuò)誤率低于10%。ARPA資助4個(gè)系統(tǒng),而且對(duì)它們進(jìn)行比較。這4個(gè)系統(tǒng)是:系統(tǒng)開(kāi)發(fā)公司的系統(tǒng)(System Development Corporation,簡(jiǎn)稱(chēng)SDC);Bolt, Beranek和Newman (BBN)的HWIM系統(tǒng);卡耐基梅隆大學(xué)的Hearsay-II系統(tǒng);Harpy系統(tǒng)。其中,Harpy系統(tǒng)使用Baker的基于HMM的DRAGON系統(tǒng)的一個(gè)簡(jiǎn)化版本,在評(píng)測(cè)系統(tǒng)時(shí)得到最佳的成績(jī)。對(duì)于一般的任務(wù),這個(gè)系統(tǒng)的語(yǔ)義正確率達(dá)到94%,這是唯一達(dá)到ARPA計(jì)劃原定目標(biāo)的系統(tǒng)。
從20世紀(jì)80年代中期開(kāi)始,ARPA資助一些新的語(yǔ)音研究計(jì)劃。第一個(gè)計(jì)劃的任務(wù)是“資源管理”(Resource Management,簡(jiǎn)稱(chēng)RM)。這個(gè)計(jì)劃的任務(wù)與ARPA早期的課題一樣,主要是閱讀語(yǔ)音(說(shuō)話人閱讀的句子的詞匯量有1,000個(gè)單詞)的轉(zhuǎn)寫(xiě)(也就是語(yǔ)音識(shí)別),但這個(gè)系統(tǒng)還包括一個(gè)不依賴(lài)于說(shuō)話人的語(yǔ)音識(shí)別裝置。其他的任務(wù)包括華爾街雜志(WallStreetJournal)的句子閱讀識(shí)別系統(tǒng),這個(gè)系統(tǒng)開(kāi)始時(shí)的詞匯量限制在5,000個(gè)單詞之內(nèi),最后的系統(tǒng)已經(jīng)沒(méi)有詞匯量的限制。事實(shí)上,大多數(shù)系統(tǒng)已經(jīng)可以使用約六萬(wàn)個(gè)單詞的詞匯量。后來(lái)的語(yǔ)音識(shí)別系統(tǒng)識(shí)別的語(yǔ)音已經(jīng)不再是閱讀的語(yǔ)音,而是可以識(shí)別更加自然的語(yǔ)音。其中識(shí)別廣播新聞的系統(tǒng)可以轉(zhuǎn)寫(xiě)廣播新聞,包括轉(zhuǎn)寫(xiě)那些非常復(fù)雜的廣播新聞。例如,街頭現(xiàn)場(chǎng)采訪的新聞;還有CallHome系統(tǒng)、CallFriend系統(tǒng)和Fisher系統(tǒng)可以識(shí)別朋友之間或者陌生人之間在電話里的自然對(duì)話??罩薪煌ㄐ畔⑾到y(tǒng)(air traffic information system, 簡(jiǎn)稱(chēng)ATIS)是一個(gè)語(yǔ)音理解的課題,它可以幫助用戶(hù)預(yù)定飛機(jī)票,回答用戶(hù)關(guān)于可能乘坐的航班、飛行時(shí)間、日期等方面的問(wèn)題。
ARPA課題大約每年進(jìn)行一次匯報(bào),參加匯報(bào)的課題除了ARPA資助的課題之外,還有來(lái)自北美和歐洲的其他“志愿者”系統(tǒng),在匯報(bào)時(shí),彼此測(cè)試系統(tǒng)的單詞錯(cuò)誤率和語(yǔ)義錯(cuò)誤率。在早期的測(cè)試中,那些贏利的公司一般都不參加比賽,但是,后來(lái)很多公司開(kāi)始參與。ARPA比賽的結(jié)果,促進(jìn)各個(gè)實(shí)驗(yàn)室之間廣泛地彼此借鑒和交流技術(shù),因?yàn)樵诒荣愔泻苋菀卓闯觯谶^(guò)去一年的研究里,什么樣的思想有助于減少錯(cuò)誤,而這后來(lái)大概就成為HMM模型傳播到每一個(gè)語(yǔ)音識(shí)別實(shí)驗(yàn)室的重要因素。ARPA的計(jì)劃也造就很多有用的數(shù)據(jù)庫(kù),這些數(shù)據(jù)庫(kù)原來(lái)都是為了評(píng)估而設(shè)計(jì)的訓(xùn)練系統(tǒng)和測(cè)試系統(tǒng)(如TIMIT, RM, WSJ, ATIS, BN, CallHome, Switchboard, Fisher),但是,后來(lái)都在各個(gè)總體性的研究中得到使用(Jurafsky et al. 2009)。
我國(guó)的語(yǔ)音自動(dòng)處理起步稍晚,但實(shí)力已經(jīng)走在國(guó)際前沿。我國(guó)語(yǔ)音自動(dòng)處理領(lǐng)域最突出的代表是科大訊飛??拼笥嶏w在智能語(yǔ)音技術(shù)領(lǐng)域有著長(zhǎng)期的研究積累,并在中文語(yǔ)音合成、語(yǔ)音識(shí)別和口語(yǔ)評(píng)測(cè)等多項(xiàng)技術(shù)上擁有國(guó)際領(lǐng)先的成果。由于科大訊飛擁有自主知識(shí)產(chǎn)權(quán)的世界領(lǐng)先智能語(yǔ)音技術(shù),他們已推出從大型電信級(jí)應(yīng)用到小型嵌入式應(yīng)用,從電信、金融等行業(yè)到企業(yè)和家庭用戶(hù),從PC到手機(jī)到MP3/MP4/PMP和玩具,能夠滿(mǎn)足不同應(yīng)用環(huán)境的多種產(chǎn)品??拼笥嶏w占有中文語(yǔ)音技術(shù)市場(chǎng)60%以上市場(chǎng)份額,語(yǔ)音合成產(chǎn)品市場(chǎng)份額達(dá)到70%以上,開(kāi)發(fā)伙伴超過(guò)500家,以科大訊飛為核心的中文語(yǔ)音產(chǎn)業(yè)鏈已初具規(guī)模(馮志偉 2013a)。
人工智能的重要環(huán)節(jié)是人機(jī)語(yǔ)音交互,其目標(biāo)是使人與機(jī)器之間溝通變得像人與人溝通一樣簡(jiǎn)單。在人工智能的研究中,語(yǔ)音自動(dòng)處理技術(shù)尤為重要。讓機(jī)器說(shuō)話,用的是語(yǔ)音合成技術(shù);讓機(jī)器聽(tīng)懂人說(shuō)話,用的是語(yǔ)音識(shí)別技術(shù)。因此,語(yǔ)音自動(dòng)處理技術(shù)的應(yīng)用前景非常廣闊(教育部語(yǔ)言文字信息管理司 2009)。
注釋
①馮志偉是杭州師范大學(xué)“錢(qián)塘學(xué)者”講座教授。
②當(dāng)價(jià)格不變時(shí),集成電路上可容納的晶體管數(shù)目,約每隔18個(gè)月增加1倍,性能也將提升1倍。