国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

會話智能代理與語音自動識別

2018-09-10 12:09:52馮志偉詹宏偉
外語學(xué)刊 2018年1期
關(guān)鍵詞:聲學(xué)矢量組件

馮志偉 詹宏偉

(杭州師范大學(xué), 杭州 311121)

提 要:本文從會話智能代理的角度,論述語音自動識別的原理和方法,分析特征提取階段、聲學(xué)建模階段和解碼階段的基本原理,最后介紹語音識別研究的歷史與現(xiàn)狀。

1 引言

在自然語言處理(natural language processing)中,人與計算機之間對話與會話的系統(tǒng)稱為“會話智能代理”(conversation agent),這個術(shù)語中的“會話”也包括“對話”,因為大多數(shù)的會話都以對話的方式出現(xiàn)。會話智能代理是一種能夠使用自然語言與用戶進(jìn)行交流的計算機程序,它可以幫助用戶使用計算機自動地預(yù)訂機票、回答問題或回復(fù)電子郵件。其中的許多問題還與商業(yè)會議摘要系統(tǒng)以及其他口語理解系統(tǒng)相關(guān),具有重要的應(yīng)用價值(馮志偉 2017:183)。

一個完整的會話智能代理系統(tǒng)(conversation agent system)應(yīng)當(dāng)包含6個組件:語音識別組件(Speech Recognition)、自然語言理解組件(Natural Language Understanding)、自然語言生成組件(Na-tural Language Generation)、文本—語音合成組件(Text-to-Speech Synthesis)、對話管理組件(Dialogue Manager)和任務(wù)管理組件(Task Manager),如圖1所示。

圖1 會話智能代理的各組件的簡化架構(gòu)圖

在會話智能代理系統(tǒng)的6個組件中,根據(jù)其功能可以大致分成3類:管理組件、輸入組件和輸出組件。對話管理組件和任務(wù)管理組件共同控制會話智能代理系統(tǒng)的整個工作過程。信息操作流程如下:用戶的會話輸入到語音識別組件后轉(zhuǎn)化為文本形式,自然語言理解組件從中抽取含義,經(jīng)過管理組件的運算和處理,自然語言生成組件得到文本處理結(jié)果,最后文本—語音合成組件將文本處理結(jié)果映射到語音,輸出對話的最終結(jié)果(同上 2014:27)。

系統(tǒng)接受的語音信號來自用戶, 用戶可以通過電話、PDA(個人數(shù)據(jù)助理)或筆記本電腦的麥克風(fēng)向系統(tǒng)發(fā)起會話。系統(tǒng)的語音識別組件把這些語音信號轉(zhuǎn)換為單詞串,輸入會話智能代理系統(tǒng)。語音識別組件是智能會話代理系統(tǒng)的輸入端,這個組件在智能會話代理系統(tǒng)中起到舉足輕重的關(guān)鍵作用。如果語音識別組件不能有效地識別輸入的語音,將會嚴(yán)重地影響到會話智能代理系統(tǒng)的效率。語音識別組件的這種功能叫做語音自動識別(automatic speech recognition,簡稱ASR)。語音自動識別的研究目標(biāo)就是用計算機來建立語音識別系統(tǒng),把聲學(xué)信號映射為單詞串(Huang et al. 2001)。近年來,語音自動識別的技術(shù)在某些限定的領(lǐng)域內(nèi)已經(jīng)取得可喜的成果,在會話智能代理系統(tǒng)中已經(jīng)得到一定程度的應(yīng)用,這種技術(shù)已經(jīng)逐漸成熟,我們應(yīng)當(dāng)密切關(guān)注。本文從智能會話代理的角度,嘗試以最直觀的方式來介紹語音自動識別的方法和技術(shù),以滿足讀者更新知識的要求。

2 影響語音識別效果的4個可變維度

在討論語音識別的總體結(jié)構(gòu)前,我們先討論一下影響語音識別效果的4個因素,我們把這4個因素稱為語音識別的“可變維度”。

(1)詞匯量的大小:影響語音識別的第一個可變維度是詞匯量的大小。如果要識別的話語中不同單詞的數(shù)量比較小,語音識別就會較容易。只有兩個單詞的詞匯量的語音識別,例如,辨別yes還是no,或者識別只包括11個單詞的詞匯量的數(shù)字序列(從英語的zero到nine再加上oh),也就是數(shù)字識別工作,這種語音識別比較容易。另一方面,對于那些包含20,000到60,000個單詞的大詞匯量語音識別,例如,識別人與人之間的電話會話,或者識別廣播或電視中的新聞節(jié)目,語音識別就相對困難得多。

(2)語音的流暢度和自然度:影響語音識別的第二個可變維度是語音的流暢度、自然度以及是否為對話語音。在孤立單詞(isolated word)的識別中,每一個單詞被它前后的停頓包圍,孤立單詞的識別比連續(xù)語音的識別容易得多,因為在連續(xù)語音的識別中,單詞前后彼此連續(xù),必須進(jìn)行自動切分。連續(xù)語音識別這一工作本身的困難程度也各有不同。例如,人對人說話和人對機器說話的流暢度、自然度不同,語音識別的難度也相應(yīng)不同,前者比后者更難。識別人對機器說話的語音,或者是以閱讀語音(read speech)的方式來大聲朗讀(例如,模擬聽寫的工作),或者使用語音對話系統(tǒng)來進(jìn)行轉(zhuǎn)寫,都比較容易。在會話智能代理系統(tǒng)中,當(dāng)人對機器講話的時候,似乎總是簡化自己發(fā)出的語音,盡量說得慢一些,說得清楚一些,這樣的語音也就比較容易識別。識別兩個人以對話語音的方式彼此隨意地談話的語音,例如,轉(zhuǎn)寫商業(yè)會談的語音,這樣的語音識別就困難得多。

(3)信道和噪聲:影響語音識別的第三個可變維度是信道和噪聲,它們是信息傳遞的環(huán)境和外部條件。聽寫以及語音識別的很多實驗研究都是在高質(zhì)量的語音以及頭戴擴音器的條件下進(jìn)行。由于頭戴擴音器就可以消除把擴音器放在桌子上時發(fā)生的語音失真,因為把擴音器放在桌子上時,說話人的頭會動來動去而造成語音失真。任何類型的噪聲都會使語音識別的難度加大。因此,在安靜的辦公室中識別說話人一板一拍的口授比較容易,而識別開著窗子在高速公路上飛馳的汽車中說話人的聲音,就困難得多。

(4)說話人的語音特征:影響語音識別的最后一個可變維度是說話人的口音特征和說話人的類別特征。如果說話人說的是標(biāo)準(zhǔn)的語音,或者說話人的語音與系統(tǒng)訓(xùn)練時的數(shù)據(jù)比較匹配,那么,語音識別就比較容易。反之,語音識別就比較困難。例如,說話人操陌生的口音,或者是兒童的語音(除非語音識別系統(tǒng)是特別地根據(jù)這些類型的語音來訓(xùn)練的)。

圖2中的數(shù)據(jù)來自一些最新的語音識別系統(tǒng),說明在不同的語音識別任務(wù)中,誤識的單詞的大致百分比,這個百分比叫做詞錯誤率(word error rate,簡稱WER)。

圖2 ASR在不同任務(wù)中的詞匯量和詞錯誤率

在圖2中, 廣播新聞節(jié)目(broadcast news)和電話對話語音(conversational telephone speech,簡稱CTS)的錯誤率是根據(jù)特定的訓(xùn)練和測試方案得到的,可以作為一種粗略的估計數(shù)字;在這些以不同方式確定的任務(wù)中,詞錯誤率的數(shù)值變化范圍的差別可以達(dá)到二倍之多。由于噪聲和口音而造成的變化會使錯誤率增加很多。據(jù)報道,對于相同的識別任務(wù),帶有濃重日語口音或西班牙語口音的英語的詞錯誤率比母語為英語的人說英語的詞錯誤率約高出3至4倍。如果汽車噪聲的信噪比(signal-to-noise ratio,簡稱SNR)提高10分貝(dB),詞錯誤率可能上升2至4倍。

一般說來,語音識別的詞錯誤率每年都在降低,這是因為語音識別的性能在不斷改進(jìn)中。由于語音識別算法改進(jìn)和摩爾定律(Moor’s law)②雙重因素的影響,有人估計,在過去的10年內(nèi),語音識別性能的改進(jìn)比例大約是每年提高10%左右。在本文中,描述的方法應(yīng)用范圍廣泛,可以應(yīng)用于語音識別的各個領(lǐng)域,目前的語音自動識別選擇把重點放在大詞匯量連續(xù)語音識別(large-vocabulary continuous speech recognition,簡稱LVCSR)這個關(guān)鍵性領(lǐng)域的基礎(chǔ)性問題。本文中的“大詞匯量”,指系統(tǒng)包含約二萬到六萬個單詞的詞匯;本文中的“連續(xù)”,指所有單詞是自然地、連續(xù)地說出來的。另外,我們將討論的方法一般是“不依賴于說話人”的(spea-ker-independent);這意味著,這些方法可以識別人的真實語音。由于堅持“大詞匯量連續(xù)語音識別”這個原則,語音識別取得長足的進(jìn)展,目前,語音識別系統(tǒng)已經(jīng)走出實驗室,實現(xiàn)實用化和商品化,給現(xiàn)代人的生活和工作帶來極大方便,這是在21世紀(jì)語言學(xué)最值得稱道的成就。

3 噪聲信道模型和隱Markov模型

可以從噪聲信道模型(noisy channel model)的角度來看語音識別。這里我們來舉例說明噪聲信道模型:源語言的英語句子if music be the food of love...經(jīng)過噪聲信道變成噪聲句子(noisy sentence),也就是圖3中的聲波。為了識別聲波,需要對這個噪聲句子進(jìn)行解碼,解碼時要考慮所有可能的句子,對于每一個句子,都要計算它生成噪聲句子的概率,然后,從中選取概率最大的句子,就可以求解出源語言的句子if music be the food of love...從而達(dá)到語音識別的目的。所以,噪聲信道模型是一個解碼模型。圖3具體地說明這個噪聲信道模型識別語音的過程。

圖3 應(yīng)用于整個句子語音識別的噪聲信道模型

從噪聲信道模型的角度來看,語音識別系統(tǒng)的工作就是要搜索一個很大的潛在的源句子空間,并從中選擇在生成噪聲句子時具有最大概率的句子(馮志偉 2013a)。建立噪聲信道模型需要解決兩個問題:

第一是為了挑選出與噪聲輸入匹配最佳的句子,需要對于最佳匹配有一個完全的度量。因為語音是變化多端的,一個輸入句子不可能與這個句子的任何模型都匹配得天衣無縫。因此,要使用概率作為度量,并且說明如何把不同的概率估計結(jié)合起來,以便對給定的候選句子的噪聲觀察序列的概率得到一個全面的估計。第二是因為所有英語句子的集合非常大,需要一個有效的算法使得我們不用搜索所有可能的句子,而只搜索那些有機會與輸入匹配的句子。這就是解碼問題或搜索問題。抽象地說,語音識別噪聲信道模型的總體結(jié)構(gòu)的目標(biāo)是:“對于給定的某個聲學(xué)輸入O,在語言L的所有句子中,哪一個句子W是最可能的句子?”我們可以把聲學(xué)輸入O作為單個的符號或“觀察”(observation)的序列來處理。例如,把輸入按每10微秒切分成音片,每一個音片用它的能量或頻度的浮點值來表示。用索引號來表示時間間隔,用有順序的oi表示在時間上前后相續(xù)的輸入音片。在下面的公式中,用大寫字母表示符號的序列,用小寫字母表示單個的符號:

O=o1, o2, o3, ..., ot

類似地,在識別句子時,把句子看成由單詞簡單地構(gòu)成的單詞串:

W=w1, w2, w3, ..., wn

不論是聲學(xué)輸入還是句子,上面的這種表示都是簡化的假設(shè)。在語音識別中,單詞通常根據(jù)正詞法來定義。例如,oak與oaks當(dāng)作不同的單詞來處理;而助動詞can(can you tell me...)與名詞can(I need a can of...)卻當(dāng)作相同的單詞來處理。從隱Markov模型(hidden markov model,簡稱HMM)的角度來看,語音識別的任務(wù)在于,根據(jù)給定的觀察O,求解隱藏在O后面的具有最大概率的句子W. 根據(jù)HMM,對于給定的某個觀察O,具有最大概率的句子W可以用每一個句子的兩個概率的乘積來計算,并且選乘積最大的句子為所求的句子(馮志偉 2013b)。HMM的計算公式如下,其中,P(W)是先驗概率,叫做“語言模型”(language model);P(O|W)是觀察似然度,叫做“聲學(xué)模型”(acoustic model)。

似然度 先驗概率

4 語音識別的3個階段

語音識別可分為3個階段:特征抽取階段(feature extraction stage)、聲學(xué)建模階段(acoustic modeling stage)和解碼階段(decoding stage),如圖4所示。

圖4 語音識別的3個階段

從HMM的觀點來看,在特征抽取階段可獲取觀察值O,在聲學(xué)建模階段可獲取觀察似然度P(O|W)和先驗概率P(W),在解碼階段可獲取文本W(wǎng). 在圖4中,輸入的是語音,經(jīng)過這3個階段的處理后,輸出的語音識別結(jié)果是if music be the food of love. 在特征抽取階段,語音的聲學(xué)波形按照音片的時間框架(通常是10,15或20毫秒)來抽樣,把音片的時間框架轉(zhuǎn)換成聲譜特征(spectral feature)。每一個時間框架的窗口用矢量來表示,每一個矢量包括約39個特征,用以表示聲譜的信息以及能量大小和聲譜變化的信息。特征信息最普通的表示方法是Mel頻度倒譜系數(shù)(Mel frequency cepstral coefficients,簡稱MFCC)。在圖4中,這個階段具體地用“倒譜特征抽取”(cepstral feature extraction)表示,抽取到的倒譜特征MFCC就是HMM 中的觀察值O.

在聲學(xué)建模階段,對于給定的語言單位(單詞、音子和次音子),要計算觀察到的聲譜特征矢量的似然度。例如,我們要使用高斯混合模型(gaussian mixture model,簡稱GMM)分類器,對于HMM中與一個音子或一個次音子W,計算給定音子與給定特征矢量的觀察似然度P(O|W)。在這個階段的輸出可以用一種簡化的方法把它想象成概率矢量的一個序列,在這個序列中,每一個概率矢量對應(yīng)一個時間框架,而每一個時間框架的每一個矢量是在該時刻生成的聲學(xué)特征矢量觀察O與每一個音子單元或次音子單元W似然度(phone likelihoods)。在圖4中,這個階段具體地用“高斯聲學(xué)模型”(Gaussian acoustic model)來表示。

在解碼階段,我們?nèi)∫粋€聲學(xué)模型(acoustic model,簡稱AM),其中包括觀察似然度P(O|W),再加上一個HMM單詞發(fā)音詞典(HMM lexicon),再取一個N元語言模型(N-gram language model),得到先驗概率P(W),把聲學(xué)模型的觀察似然度P(O|W)與語言模型的先驗概率P(W)相結(jié)合,輸出最可能的單詞序列W. 大多數(shù)語音識別系統(tǒng)使用Viterbi算法(Viterbi algorithm)來解碼,還采用各種精心設(shè)計的提升方法來加快解碼的速度,這些方法有剪枝、快速匹配和樹結(jié)構(gòu)的詞典等。在圖4中,這個階段具體地用“Viterbi解碼”(Viterbi decoder)來表示。下面我們分別討論這3個階段。

5 特征抽取階段

我們的目標(biāo)是描述怎樣把輸入的波形轉(zhuǎn)換成聲學(xué)特征矢量(feature vector)的序列,使得每一個特征矢量代表在一個很小的窗口內(nèi)的信號的信息。有多種可能的方法來表示這樣的信息。迄今最為普通的方法是Mel頻度倒譜系數(shù)MFCC. MFCC建立在倒譜(cepstrum)這個重要的思想基礎(chǔ)之上。

首先來討論模擬語音波形的數(shù)字化和量化過程。語音處理的第一步是把模擬信號的表示(首先是空氣的壓強,其次是擴音器的模擬電信號)轉(zhuǎn)化為數(shù)字信號。這個模擬信號—數(shù)字信號轉(zhuǎn)換(analog-to-digital conversion)的過程分為兩步:第一步是抽樣(sampling),第二步是量化(quantization)。信號是通過測定它在特定時刻的幅度來抽樣;每秒鐘抽取的樣本數(shù)叫做抽樣率(sampling rate)。為保證聲波測量的精確性,在每一輪抽樣中至少需要兩個樣本:一個樣本用于測量聲波的正側(cè)部分,一個樣本用于測量聲波的負(fù)側(cè)部分。每一輪抽樣中的樣本多于兩個時,可以增加抽樣幅度的精確性,但是,如果每一輪的樣本數(shù)目少于兩個,將會導(dǎo)致聲波頻度的完全遺漏。因此,可能測量的最大頻度的波就是那些頻度等于抽樣率一半的波(因為每一輪抽樣須要兩個樣本)。對于給定抽樣率的最大頻度叫做Nyquist頻度(Nyquist frequency)。

對于如像Switchboard英語口語語料庫這種電話帶寬(telephone-bandwidth)的語音來說,8,000赫茲的抽樣率已經(jīng)足夠。8,000赫茲的抽樣率要求對于每一秒鐘的語音度量8,000個幅度,所以有效地存儲幅度的度量非常重要。這通常以整數(shù)存儲,或者是8比特,或者是16比特。這個把實數(shù)值表示為整數(shù)的過程叫做量化(quantization),因為這是一個最小的顆粒度(量程規(guī)模),所有與這個量程規(guī)模接近的值都采用同樣的方式來表示。我們把經(jīng)過數(shù)字化和量化的波形記為x[n],其中n是對于時間的指標(biāo)。有了波形的數(shù)字化和量化的表示,就可以來抽取MFCC特征。這個過程可以分為6步,如圖5所示。

圖5 從經(jīng)過數(shù)字化和量化的波形中抽取39維的MFCC特征矢量序列的過程

從圖5可知,語音信號(speech signal)經(jīng)過預(yù)加重(pre-emphasis)、加窗(window)、離散傅里葉變換(DFT)、Mel濾波器組(Mel filter bank)、對數(shù)表示(log)和逆向離散傅里葉變換(iDFT)6個步驟,得到12個MFCC系數(shù)(MFCC 12 coefficients),與能量特征(energy)一起,成為Delta特征(Delta),最后得到12個倒譜系數(shù)(12 MFCC),12個Delta倒譜系數(shù)(12 ΔMFCC),12個雙Delta倒譜系數(shù)(12 ΔΔMFCC),1個能量系數(shù)(1 energy),1個Delta能量系數(shù)(1 Δ energy),1個雙Delta能量系數(shù)(1ΔΔ energy),一共39個MFCC特征。我們對圖5中的過程進(jìn)一步加以描述。

(1)預(yù)加重

MFCC特征抽取的第一個階段是加重高頻段的能量,叫做預(yù)加重(pre-emphasis)。已經(jīng)證明,如果觀察像元音這樣的有濁音的語音片段的聲譜,我們會發(fā)現(xiàn),低頻端的能量比高頻端的能量要高一些。這種頻度高而能量下降的現(xiàn)象叫做聲譜斜移(spectral tilt),是由于聲門脈沖的特性造成的。加重高頻端的能量可以使具有較高的共振峰的信息更加適合于聲學(xué)模型,從而改善音子探測的精確性。這種預(yù)加重使用濾波器來進(jìn)行。

(2)加窗

特征抽取的目的是得到能夠幫助我們建立音子或次音子分類器的聲譜特征。我們不想從整段的話語或會話中抽取聲譜特征,因為在整段的話語或會話中,聲譜的變化非??臁募夹g(shù)上說,語音是非平穩(wěn)信號(non-stationary signal),因此,語音的統(tǒng)計特性在時間上不是恒定的。所以,我們只想從語音的一個小窗口上抽取聲譜特征,從而描述特定的次音子,并大致地假定在這個窗口內(nèi)的語音信號是平穩(wěn)的(stationary),也就是假定語音的統(tǒng)計特性在這個區(qū)域內(nèi)是恒定的。為此使用加窗(windowing)的方法,使用窗口來抽取這種大致平穩(wěn)的語音部分,在窗口內(nèi)的某個區(qū)域內(nèi)語音信號可不為零或為零,對語音信號運行這個窗口,抽出在這個窗口內(nèi)的波形。

(3)離散傅里葉變換

下一步是抽取加窗信號的聲譜信息。我們需要知道在不同頻帶上信號包含的能量有多少。對于抽樣的離散時間信號的離散頻帶,抽取其聲譜信息的工具是離散傅里葉變換(discrete Fourier transform,簡稱DFT)。計算DFT的常用算法是快速傅里葉變換(fast Fourier transform,簡稱FFT)。用FFT算法來實現(xiàn)DFT是很有效的。

(4)Mel 濾波器組

計算MFCC時,可以建立一個濾波器組(filter bank)來實現(xiàn)這樣的直覺。在這個濾波器組中,收集來自每一個頻帶的能量,低于1,000赫茲的頻帶的10個濾波器遵循線性分布,而其他的高于1,000赫茲的頻帶的濾波器則遵循對數(shù)分布。圖6說明實現(xiàn)這種思想的三角形濾波器組,圖中顯示出Mel聲譜(Mel Spectrum)。在圖6中,每一個三角形濾波器收集來自給定頻度范圍的能量。

圖6 Mel濾波器組

(5)對數(shù)表示

最后,我們使用對數(shù)來表示Mel聲譜的值。在一般情況下,人類對于信號級別的反應(yīng)是按照對數(shù)來計算的;在振幅高的階段,人類對于振幅的輕微差別的敏感性比在振幅低的階段低得多。使用對數(shù)來估計特征的時候,對于輸入的變化也不太敏感。例如,由于說話人口部運動的收縮或由于使用擴音器等功率變化而導(dǎo)致的輸入變化,使用對數(shù)來估計時都是不敏感的。

(6)倒譜的逆向傅里葉變換

使用Mel聲譜作為語音識別的特征表示是可能的,但是,這樣的聲譜仍然存在某些問題。MFCC特征抽取的下一步就是計算倒譜(cepstrum)。倒譜在語音處理時具有很多長處,它可以改善語音識別的性能。

把聲源(source)和濾波器(filter)分開,是理解倒譜的一種有效的途徑。當(dāng)帶有特定的基本頻度的聲門的聲源波形通過聲腔的時候,其形狀會帶上特定的濾波器特征。但是,聲門產(chǎn)生的聲源的很多特征(例如,它的基頻特征和聲門脈沖的細(xì)節(jié)特征,等等),對于區(qū)別不同的音子并不是重要的。正是由于這個原因,對于探測音子最有用的信息在于濾波器,也就是聲腔的確切位置。如果已知聲腔的形狀,也就知道將會產(chǎn)生出什么樣的音子來。這意味著如果找到一種途徑把聲源和濾波器區(qū)別開來,只給我們提供聲腔濾波器,那么,就可以找到音子探測的有用特征。已經(jīng)證明,倒譜是達(dá)到這個目的的一種途徑。

圖7 振幅表示的聲譜(a),對數(shù)表示的聲譜(b),倒譜(c)

在圖7中,縱軸表示振幅(amplitude),聲譜的橫軸表示規(guī)范頻度(normalise frequency),倒譜的橫軸表示樣本(sample),為了有助于看清楚聲譜,對(a)和(b)兩個聲譜的上部進(jìn)行平滑處理。為了簡單起見,我們忽略MFCC中的預(yù)加重和Mel變形等部分,而只研究倒譜的基本定義。倒譜可以被想象成聲譜對數(shù)的聲譜(spectrum of the log of the spectrum)。這樣的表達(dá)似乎有些晦澀。讓我們首先來解釋比較容易的部分:聲譜對數(shù)(log of the spectrum)。倒譜是從標(biāo)準(zhǔn)的振幅聲譜開始的,正如圖7(a)中所示的元音聲譜。然后我們對于這個振幅聲譜取對數(shù),也就是說,對于振幅聲譜中的每一個振幅的值,用它們相應(yīng)的對數(shù)值來表示,如圖7(b)所示。

下一步把這個對數(shù)聲譜本身也看成似乎是一個波形。換句話說,我們這樣考慮圖7(b)中的對數(shù)聲譜:把軸上的標(biāo)記(x軸上的頻度)去掉,使我們不至于把它想象成聲譜,而想象成是正在處理一個正規(guī)的語音信號,它的x 軸表示時間,而不是表示頻度。那么,對于這個“假的信號”(pseudo-signal)的聲譜,我們注意到,在這個波中,存在著高頻的重復(fù)成分:對于一百二十赫茲左右的頻度,小波沿著x軸每1,000個約重復(fù)八次。這個高頻成分是由信號的基頻引起的,在信號的每一個諧波處,表示為聲譜的一個小波峰。此外,在這個 “假的信號”中還存在著某些低頻成分,例如,對于更低的頻度,包絡(luò)結(jié)構(gòu)或共振峰結(jié)構(gòu)在窗口中有約四個大的波峰。

圖7(c)是倒譜:倒譜是對數(shù)聲譜的聲譜,上文已經(jīng)描述過。這個倒譜的英文單詞cepstrum是由spectrum(聲譜)前4個字母倒過來書寫而造出來的,所以叫做“倒譜”。圖中的倒譜在x軸上的標(biāo)記是樣本。這是因為倒譜是對數(shù)聲譜的聲譜,我們不再理會聲譜的頻度領(lǐng)域,而回到時間領(lǐng)域。已經(jīng)證明,倒譜的正確單位是樣本。

細(xì)心地檢查這個倒譜會看到,120附近有一個大的波峰,相當(dāng)于F0,表示聲門的脈沖。在x軸的低值部分,還存在著其他的各種成分。它們表示聲腔濾波器(舌頭的位置以及其他發(fā)音器官的位置)。因此,如果對于探測音子有興趣,那么,就可以使用這些比較低的倒譜值。如果對于探測音高有興趣,那么,就可以使用較高的倒譜值。為抽取WFCC,一般只取頭12個倒譜值。這12個參數(shù)僅僅表示關(guān)于聲腔濾波器的信息,它們與關(guān)于聲門聲源的信息的區(qū)別是涇渭分明的。

已經(jīng)證明,倒譜系數(shù)有一個非常有用的性質(zhì):不同的倒譜系數(shù)之間的方差(variance)傾向于不相關(guān)。而這對于聲譜是不成立的,因為不同頻帶上的聲譜系數(shù)是相關(guān)的。倒譜特征不相關(guān)這個事實意味著,高斯聲學(xué)模型或高斯混合模型不必表示各個MFCC特征之間的協(xié)方差(covariance),這就大大地降低參數(shù)的數(shù)目。倒譜還可以更加形式化地定義為信號的DFT的對數(shù)振幅的逆向DFT,也就是iDFT.

(7)Delta特征與能量

語音信號的另外一個重要的事實是:從一個幀到另一個幀,語音信號是不恒定的。共振峰在轉(zhuǎn)換時的斜坡的變化,塞音從成阻到爆破的變化,這些都可能給語音的探測提供有用的線索。由于這樣的原因,我們還可以加上倒譜特征中與時間變化有聯(lián)系的一些特征。

我們使用對于13個特征每一個特征都加上Delta特征(Delta feature)或速度特征(velocity feature)以及加上雙Delta特征(double Delta feature)或加速度特征(acceleration feature)的辦法來做到這一點。這13個Delta特征中的每一個特征表示在相應(yīng)的倒譜/能量特征中幀與幀之間的變化,而這13個雙Delta特征中的每一個特征表示在相應(yīng)的Delta特征中幀與幀之間的變化。在給12個倒譜特征加上能量特征并進(jìn)一步添加Delta特征和雙Delta特征之后,我們最后得到如下39個MFCC特征:

表139個MFCC特征

12個倒譜系數(shù)

12個Delta倒譜系數(shù)

12個雙Delta倒譜系數(shù)

1個能量系數(shù)

1個Delta能量系數(shù)

1個雙Delta能量系數(shù)

關(guān)于MFCC特征的最有用的事實之一就是倒譜系數(shù)傾向于不相關(guān)。這一事實使得聲學(xué)模型變得更加簡單。上文介紹過語音識別中的特征提取階段,說明怎樣從波形抽取表示聲譜信息的MFCC特征,并在每10毫秒內(nèi)產(chǎn)生39個MFCC特征矢量。

6 聲學(xué)建模階段

現(xiàn)在來介紹語音識別的聲學(xué)建模階段,研究怎樣計算這些特征矢量與給定的HMM狀態(tài)的似然度。這個輸出的似然度是通過HMM的概率函數(shù)B來計算的。概率函數(shù)B也就是觀察似然度的集合。對于給定的單獨狀態(tài)qi和觀察ot,在矩陣B中的觀察似然度是p(ot|qi),我們把它叫做bt(i)。在詞類標(biāo)注中,每一個觀察ot是一個離散符號(一個單詞),我們只要數(shù)一數(shù)在訓(xùn)練集中某個給定的詞類標(biāo)記生成某個給定的觀察的次數(shù),就可以計算出一個給定的詞類標(biāo)記生成一個給定觀察的似然度。不過,在語音識別中,MFCC矢量是一個實數(shù)值,不可能使用計算每一個這樣的矢量出現(xiàn)的次數(shù)的方法來計算給定的狀態(tài)(音子)生成MFCC矢量的似然度,因為每一個矢量都有自己的獨特性,它們各不相同。

不論在解碼時還是在訓(xùn)練時,都需要一個能夠?qū)τ趯崝?shù)值的觀察ot計算p(ot|qi) 的觀察似然度函數(shù)。在解碼時,我們有一個觀察ot,需要對于每一個可能的HMM狀態(tài),計算概率p(ot|qi),使得我們能夠選擇出最佳的狀態(tài)序列。為此需要進(jìn)行矢量的量化。有一個辦法可以使MFCC矢量看起來像可以記數(shù)的符號,這個辦法就是建立一個映射函數(shù)把每一個輸入矢量映射為少量符號中的一個符號。然后就可以使用計算這些符號的方法來計算概率。這種把輸入矢量映射為可以量化的離散符號的思想,叫做矢量量化(vector quantization,簡稱VQ)。雖然矢量量化做起來就像現(xiàn)代的LVCSR系統(tǒng)中的聲學(xué)模型那樣簡單,但是,這是一個行之有效的步驟在ASR各色各樣的領(lǐng)域中起著重要作用,所以,我們使用矢量量化作為討論聲學(xué)模型的開始。

在矢量量化時,我們通過把每一個訓(xùn)練特征矢量映射為一個小的類別數(shù)目的方法,建立起一個規(guī)模很小的符號集,然后,分別使用離散符號來表示每一個類別。更加形式地說,一個矢量量化系統(tǒng)是使用3個特征來刻畫的,這3個特征分別是碼本(codebook)、聚類算法(clustering algorithm)和距離測度(distance metric)。

碼本是可能類別的表,是組成詞匯V={v1,v2,...,vn}的符號的集合。對于碼本中的每一個代碼vk,要列出模型矢量(prototype vector),叫做碼字(vector word)。碼字是一個特定的特征矢量。例如,如果選擇使用256個碼字,就可以使用從0到255的數(shù)值來表示每一個矢量。由于我們使用一個8比特的數(shù)值來表示每一個矢量,所以叫做8比特的矢量量化(8-bit VQ)。這256個數(shù)值中的每一個數(shù)值都與一個模型化的特征矢量相關(guān)聯(lián)。

我們使用聚類算法來建立碼本,聚類算法把訓(xùn)練集中所有的特征矢量聚類為256個類別。然后,從這個聚類中選擇一個有代表性的特征矢量,并把它作為這個聚類的模型矢量或碼字,經(jīng)常使用K-均值聚類(K-means clustering)。

一旦建立這樣的碼本,就可以把輸入的特征矢量與256個模型矢量相比較,使用某種距離測度來選擇最接近的模型矢量,用這個模型矢量的索引來替換輸入矢量,這個過程如圖8所示。

圖8 矢量量化(VQ)過程

從圖8可以看出,在矢量量化時,把輸入的特征矢量(input feature vector)與碼本中的每一個碼字相比較,使用某種距離測度選擇出最接近的條目,輸出最接近的碼字的索引(output index of best vector)。 矢量量化VQ的長處在于,由于類別的數(shù)目有限,當(dāng)使用狀態(tài)來標(biāo)注和歸一化的時候,對于每一個類別vk,通過簡單地數(shù)一數(shù)該類別在某一個訓(xùn)練語料庫中出現(xiàn)次數(shù)的方法,就可以計算出給定的HMM狀態(tài)或次音子生成該類別的概率。

聚類過程和解碼過程都要求進(jìn)行距離測度或失真測度(distortion metric)的計算,以便說明兩個聲學(xué)特征矢量的相似程度。距離測度用于建立聚類,找出每一個聚類的模型矢量,并對輸入矢量與模型矢量進(jìn)行比較。 聲學(xué)特征矢量的最簡單的距離測度是Euclidean距離(Euclidean distance)。Euclidean距離是在N維空間中由兩個矢量定義的兩個點之間距離。在實際應(yīng)用中,我們使用“Euclidean距離”這個短語經(jīng)常意味著“Euclidean距離的平方”。Mahalanobis距離(Mahalanobis distance)是一個稍微復(fù)雜的距離測度,這樣的距離測度要考慮到每一個維度中不同的方差。

其中,vk是最接近矢量ot的碼字。

矢量量化的優(yōu)點是計算起來非常容易,而且只需要很小的存儲。盡管有這樣的優(yōu)點,矢量量化還不是語音處理的一個好模型。因為在矢量量化中數(shù)量很小的碼字不足以捕捉變化多端的語音信號。而且,語音現(xiàn)象并不簡單地是一個范疇化的、符號化的過程。因此,現(xiàn)代語音識別算法一般不使用矢量量化來計算聲學(xué)似然度,而是直接根據(jù)實數(shù)值的、連續(xù)的輸入特征矢量來計算觀察概率。這些聲學(xué)模型是建立在連續(xù)空間上計算概率密度函數(shù)(probability density function,簡稱pdf)的基礎(chǔ)之上的。目前最常用的計算聲學(xué)似然度的方法是高斯混合模型的概率密度函數(shù)(pdf),此外,還可使用神經(jīng)網(wǎng)絡(luò)(neural network),支持向量機(support vector machines,簡稱SVMs)和條件隨機場(condition random fields,簡稱CRFs)等方法。

7 解碼階段

語音識別的最后一個階段是解碼階段(decoding stage),在解碼階段,我們?nèi)∫粋€聲學(xué)模型,其中包括聲學(xué)似然度的序列,再加上一個HMM的單詞發(fā)音詞典,再取一個語言模型(language model,簡稱LM,一般是一個N元語法),把聲學(xué)模型與語言模型結(jié)合起來,采用Viterbi算法進(jìn)行解碼,發(fā)現(xiàn)對于給定聲學(xué)事件具有最大概率的單詞序列,得到語音識別的結(jié)果。

圖9是語音識別系統(tǒng)總體結(jié)構(gòu)圖,圖中顯示從語音波形經(jīng)過特征抽取、聲學(xué)建模和解碼等階段,最后輸出英語的單詞串I need a...的過程。

圖9 語音識別系統(tǒng)總體結(jié)構(gòu)圖

近年來,語音自動識別的研究發(fā)展迅速,已經(jīng)進(jìn)行商品化的開發(fā),在人機對話、口語機器翻譯、智能人機接口和會話智能代理等領(lǐng)域中得到廣泛應(yīng)用。在會話智能代理系統(tǒng)中,語音識別組件接受音頻信號,經(jīng)過語音識別之后返回一個與音頻信號相應(yīng)的單詞串進(jìn)行輸入。

會話智能代理中的語音識別組件在許多方面都可能做特殊優(yōu)化。例如,用于聽寫或轉(zhuǎn)錄的基于大詞匯量的語音識別組件,專注于識別任意話題的使用任意單詞的任意句子。但是,對于具有領(lǐng)域特殊性的對話系統(tǒng),識別任意的、各色各樣的句子并沒有多大作用。這時,語音識別組件需要識別的句子僅僅是那些可以被自然語言理解組件所理解的句子。因此,商業(yè)的對話系統(tǒng)普遍使用基于有限狀態(tài)文法(finite state grammar)的非概率語言模型,這些語言模型的文法通常都由人工編寫,并明確指定系統(tǒng)能理解的所有回答,并不要求能夠識別任意話題的使用任意單詞的任意句子。

在會話智能代理系統(tǒng)中,因為用戶對系統(tǒng)所說的話與系統(tǒng)所處的對話狀態(tài)密切相關(guān),系統(tǒng)所用的語言模型通常是依賴對話狀態(tài)的。例如,如果會話智能代理系統(tǒng)剛剛問用戶What city are you departing from?(你要從哪個城市出發(fā)?),語音識別組件的語言模型會被約束為只包括城市名,或者可能只有形如I want to (leave|depart) from[CITYNAME](我想從[CITYNAME](出發(fā)|離開))的句子。這種特定于對話狀態(tài)的語言模型一般由人工編寫的有限狀態(tài)語法或上下文無關(guān)語法(context-free grammar)組成,每個對話狀態(tài)對應(yīng)一個特定的語法。在某些會話智能代理系統(tǒng)中,如果要識別的句子的集合很大,就可以使用一個N-元語言模型(N-gram language model)來取代有限狀態(tài)文法,這個語言模型的概率近似為在對話狀態(tài)中的條件概率。

無論是使用有限狀態(tài)文法、上下文無關(guān)文法,還是使用N-元語言模型,我們將這些依賴于對話狀態(tài)的語言模型稱為約束文法(restrictive grammar)。當(dāng)會話智能代理系統(tǒng)希望約束用戶對系統(tǒng)的上一個話段做出回應(yīng)時,就可以使用約束文法;當(dāng)系統(tǒng)希望用戶有多個選擇時,就可以將這個特定狀態(tài)的語言模型與一個更普遍的語言模型融合在一起即可,選擇策略可以根據(jù)用戶被授予的主動權(quán)進(jìn)行調(diào)整(馮志偉 余衛(wèi)華 2015:80)。對話以及聽寫等其它應(yīng)用中的語音識別有一個特征,即說話人的標(biāo)識在許多話段中都保持不變,這時可以使用說話人自適應(yīng)技術(shù)來改進(jìn)語音識別的性能。

8 語音自動識別的歷史與現(xiàn)狀

語音自動識別的早期,只能識別單個的語音。例如,20世紀(jì)20年代出現(xiàn)的世界上第一臺能夠識別語音的機器,是一個名字叫做Radio Rex的商品玩具狗。當(dāng)人們說Rex的時候,狗就會在人的叫喚聲的控制下走過來。在20世紀(jì)40年代末50年代初,Bell實驗室的系統(tǒng)可以識別一個單獨說話人的10個數(shù)字中的任何一個,識別正確率達(dá)到97%至99%。Fry和Denes在倫敦大學(xué)院建立一個音位識別系統(tǒng),根據(jù)類似的模式識別原則,該系統(tǒng)能夠識別英語中的4個元音和9個輔音。Fry和Denes的系統(tǒng)首次使用音位轉(zhuǎn)移概率來對語音識別系統(tǒng)進(jìn)行約束(Huang et al. 2001)。

在20世紀(jì)60年代末70年代初,語音自動識別技術(shù)有較大的突破:(1)出現(xiàn)一系列的特征抽取算法,在語音中的應(yīng)用倒譜處理,在語音編碼中研制線性預(yù)測編碼(linear predictive coding,簡稱LPC)。(2)提出一些處理翹曲變形(warping)的方法,在與存儲模式匹配時,通過展寬和收縮輸入信號的方法來處理說話速率和切分長度的差異。解決這些問題的最自然的方法是動態(tài)規(guī)劃,在研究這個問題的時候,同樣的算法被多次地重新提出。Itakura把動態(tài)規(guī)劃的思想和LPC系數(shù)相結(jié)合并首先在語音編碼中使用。他建立的系統(tǒng)可以抽取輸入單詞中的LPC特征并使用動態(tài)規(guī)劃的方法把這些特征與所存儲的LPC模板相匹配。這種動態(tài)規(guī)劃方法的非概率應(yīng)用是對輸入語音進(jìn)行模板匹配,叫做動態(tài)時間翹曲變形(dynamic time warping)。(3)HMM的興起。1972年前后,有兩個實驗室獨立地應(yīng)用HMM來研究語音問題。一方面的應(yīng)用是由一些統(tǒng)計學(xué)家的工作引起的,Baum和他的同事們在普林斯頓(Princeton)的國防分析研究所研究HMM,并把它應(yīng)用于解決各種預(yù)測問題。James Baker在卡耐基梅隆大學(xué)(Carnegie-Mellon University)做研究生期間,學(xué)習(xí)Baum等人的工作,并把他們的算法應(yīng)用于語音處理。與此同時,在IBM華生研究中心,Jelinek,Mercer和Bahl 獨立地把HMM應(yīng)用于語音研究,他們在信息論模型方面的研究受到香農(nóng)(Shannon)的影響。IBM的系統(tǒng)和Baker的系統(tǒng)非常相似,特別是他們都使用貝葉斯方法。他們之間早期工作的一個不同之處是解碼算法。Baker的DRAGON系統(tǒng)使用Viterbi動態(tài)規(guī)劃解碼,而IBM系統(tǒng)則應(yīng)用Jelinek的棧解碼算法。Baker在建立語音識別公司的DRAGON系統(tǒng)之前,曾經(jīng)短期參加過IBM小組的工作。IBM的語音識別方法在20世紀(jì)末期完全地支配這個領(lǐng)域。IBM實驗室確實是把統(tǒng)計模型應(yīng)用于自然語言處理的推動力量,他們研制基于類別的N元語法模型,研制基于HMM的詞類標(biāo)注系統(tǒng),研制統(tǒng)計機器翻譯系統(tǒng),他們還使用熵和困惑度作為評測的度量(Huang et al. 2001)。

此后,HMM逐漸在語音處理界流傳開來。這種流傳的原因之一是由于美國國防部高級研究計劃署(the Advanced Research Projects Agency,簡稱ARPA)發(fā)起一系列的研究和開發(fā)計劃。第一個5年計劃開始于1971年。第一個5年計劃的目標(biāo)是建立基于少數(shù)說話人的語音識別系統(tǒng),這個系統(tǒng)使用一個約束性的語法和一個詞表(包括1,000單詞),要求語義錯誤率低于10%。ARPA資助4個系統(tǒng),而且對它們進(jìn)行比較。這4個系統(tǒng)是:系統(tǒng)開發(fā)公司的系統(tǒng)(System Development Corporation,簡稱SDC);Bolt, Beranek和Newman (BBN)的HWIM系統(tǒng);卡耐基梅隆大學(xué)的Hearsay-II系統(tǒng);Harpy系統(tǒng)。其中,Harpy系統(tǒng)使用Baker的基于HMM的DRAGON系統(tǒng)的一個簡化版本,在評測系統(tǒng)時得到最佳的成績。對于一般的任務(wù),這個系統(tǒng)的語義正確率達(dá)到94%,這是唯一達(dá)到ARPA計劃原定目標(biāo)的系統(tǒng)。

從20世紀(jì)80年代中期開始,ARPA資助一些新的語音研究計劃。第一個計劃的任務(wù)是“資源管理”(Resource Management,簡稱RM)。這個計劃的任務(wù)與ARPA早期的課題一樣,主要是閱讀語音(說話人閱讀的句子的詞匯量有1,000個單詞)的轉(zhuǎn)寫(也就是語音識別),但這個系統(tǒng)還包括一個不依賴于說話人的語音識別裝置。其他的任務(wù)包括華爾街雜志(WallStreetJournal)的句子閱讀識別系統(tǒng),這個系統(tǒng)開始時的詞匯量限制在5,000個單詞之內(nèi),最后的系統(tǒng)已經(jīng)沒有詞匯量的限制。事實上,大多數(shù)系統(tǒng)已經(jīng)可以使用約六萬個單詞的詞匯量。后來的語音識別系統(tǒng)識別的語音已經(jīng)不再是閱讀的語音,而是可以識別更加自然的語音。其中識別廣播新聞的系統(tǒng)可以轉(zhuǎn)寫廣播新聞,包括轉(zhuǎn)寫那些非常復(fù)雜的廣播新聞。例如,街頭現(xiàn)場采訪的新聞;還有CallHome系統(tǒng)、CallFriend系統(tǒng)和Fisher系統(tǒng)可以識別朋友之間或者陌生人之間在電話里的自然對話??罩薪煌ㄐ畔⑾到y(tǒng)(air traffic information system, 簡稱ATIS)是一個語音理解的課題,它可以幫助用戶預(yù)定飛機票,回答用戶關(guān)于可能乘坐的航班、飛行時間、日期等方面的問題。

ARPA課題大約每年進(jìn)行一次匯報,參加匯報的課題除了ARPA資助的課題之外,還有來自北美和歐洲的其他“志愿者”系統(tǒng),在匯報時,彼此測試系統(tǒng)的單詞錯誤率和語義錯誤率。在早期的測試中,那些贏利的公司一般都不參加比賽,但是,后來很多公司開始參與。ARPA比賽的結(jié)果,促進(jìn)各個實驗室之間廣泛地彼此借鑒和交流技術(shù),因為在比賽中很容易看出,在過去一年的研究里,什么樣的思想有助于減少錯誤,而這后來大概就成為HMM模型傳播到每一個語音識別實驗室的重要因素。ARPA的計劃也造就很多有用的數(shù)據(jù)庫,這些數(shù)據(jù)庫原來都是為了評估而設(shè)計的訓(xùn)練系統(tǒng)和測試系統(tǒng)(如TIMIT, RM, WSJ, ATIS, BN, CallHome, Switchboard, Fisher),但是,后來都在各個總體性的研究中得到使用(Jurafsky et al. 2009)。

我國的語音自動處理起步稍晚,但實力已經(jīng)走在國際前沿。我國語音自動處理領(lǐng)域最突出的代表是科大訊飛。科大訊飛在智能語音技術(shù)領(lǐng)域有著長期的研究積累,并在中文語音合成、語音識別和口語評測等多項技術(shù)上擁有國際領(lǐng)先的成果。由于科大訊飛擁有自主知識產(chǎn)權(quán)的世界領(lǐng)先智能語音技術(shù),他們已推出從大型電信級應(yīng)用到小型嵌入式應(yīng)用,從電信、金融等行業(yè)到企業(yè)和家庭用戶,從PC到手機到MP3/MP4/PMP和玩具,能夠滿足不同應(yīng)用環(huán)境的多種產(chǎn)品??拼笥嶏w占有中文語音技術(shù)市場60%以上市場份額,語音合成產(chǎn)品市場份額達(dá)到70%以上,開發(fā)伙伴超過500家,以科大訊飛為核心的中文語音產(chǎn)業(yè)鏈已初具規(guī)模(馮志偉 2013a)。

人工智能的重要環(huán)節(jié)是人機語音交互,其目標(biāo)是使人與機器之間溝通變得像人與人溝通一樣簡單。在人工智能的研究中,語音自動處理技術(shù)尤為重要。讓機器說話,用的是語音合成技術(shù);讓機器聽懂人說話,用的是語音識別技術(shù)。因此,語音自動處理技術(shù)的應(yīng)用前景非常廣闊(教育部語言文字信息管理司 2009)。

注釋

①馮志偉是杭州師范大學(xué)“錢塘學(xué)者”講座教授。

②當(dāng)價格不變時,集成電路上可容納的晶體管數(shù)目,約每隔18個月增加1倍,性能也將提升1倍。

猜你喜歡
聲學(xué)矢量組件
無人機智能巡檢在光伏電站組件診斷中的應(yīng)用
能源工程(2022年2期)2022-05-23 13:51:50
矢量三角形法的應(yīng)用
愛的就是這股Hi-Fi味 Davis Acoustics(戴維斯聲學(xué))Balthus 70
新型碎邊剪刀盤組件
重型機械(2020年2期)2020-07-24 08:16:16
U盾外殼組件注塑模具設(shè)計
Acoustical Treatment Primer:Diffusion談?wù)劼晫W(xué)處理中的“擴散”
Acoustical Treatment Primer:Absorption談?wù)劼晫W(xué)處理中的“吸聲”(二)
Acoustical Treatment Primer:Absorption 談?wù)劼晫W(xué)處理中的“吸聲”
基于矢量最優(yōu)估計的穩(wěn)健測向方法
三角形法則在動態(tài)平衡問題中的應(yīng)用
富源县| 安庆市| 沈阳市| 宕昌县| 老河口市| 额敏县| 柘荣县| 黔东| 内黄县| 花莲市| 灌阳县| 萍乡市| 赤水市| 克东县| 乐陵市| 莫力| 河北区| 亳州市| 北海市| 同心县| 玛曲县| 米脂县| 洛扎县| 平乐县| 广饶县| 颍上县| 于田县| 泗水县| 来安县| 通渭县| 安溪县| 正镶白旗| 晋州市| 万宁市| 扎兰屯市| 双辽市| 玛多县| 林口县| 中江县| 织金县| 伊宁市|