3
本文作者: 雷鋒專欄 | 2017-08-01 19:56 |
雷鋒網(wǎng)按:本文來源公眾號“極限元”,作者溫正棋,極限元技術(shù)副總裁、中國科學(xué)院自動化研究所副研究員,中科院—極限元“智能交互聯(lián)合實驗室”主任。雷鋒網(wǎng)授權(quán)轉(zhuǎn)載。
語音作為互聯(lián)網(wǎng)的一種入口方式,正在侵入我們的生活,人機交互的核心——對話系統(tǒng),對交互的應(yīng)用至關(guān)重要,人腦與機器智能的結(jié)合,能夠突破現(xiàn)有技術(shù)瓶頸嗎?這里就有必要重點介紹下人機交互相關(guān)的核心技術(shù)。
從整個交互系統(tǒng)接入用戶的輸入信息開始,包括語音、人臉、多模態(tài)情感相關(guān)的信息,我們在對話系統(tǒng)里面對輸入的信息進行理解,通過這個對話部分以后產(chǎn)生輸出,最后用文字也可以用語音合成展現(xiàn)出來,這就是整個流程,其中我們關(guān)注的最主要的是語音部分以及對話系統(tǒng)部分,其他的多模態(tài)今天的分享不會涉及太多。
國內(nèi)研究語音相關(guān)的團隊主要包括科研院所、語音技術(shù)公司以及互聯(lián)網(wǎng)公司三部分:
科研院所主要包括高校和科學(xué)院,比如科學(xué)院里有聲學(xué)所、自動化所,高校里面研究比較多的清華、北大、西工大、科大、上海交大等,這些都是在語音圈里占有較高位置的老牌隊伍。
語音技術(shù)公司包括我們比較熟悉的科大訊飛、云知聲、思必馳、極限元等。
互聯(lián)網(wǎng)公司包括BAT、搜狗等擁有強大的語音技術(shù)團隊來支撐著其本身的很多業(yè)務(wù)。
在應(yīng)用對話系統(tǒng)時,首先從語音輸入開始要有一些前端處理,包括硬件和軟件的前期處理;接下來是語音內(nèi)容,說話人識別等相關(guān)的內(nèi)容進行判別,對話系統(tǒng)根據(jù)輸入信息來進行對話邏輯的分析,以及對應(yīng)語言的產(chǎn)生,最后由語音合成系統(tǒng)來合成語音,在這里重點介紹一下前端處理、語音識別、說話人識別語音合成等相關(guān)技術(shù)。
前端處理技術(shù)的研究進展
前端處理包括回升消除、噪聲抑制、混響抑制等技術(shù),剛開始時研究前端處理的人員并不多。近年來特別是ECHO的推出,把一些遠場的問題融入到語音識別等系統(tǒng)中,所以這部分的研究在這幾年興起比較快。語音識別的研究從一些簡單的數(shù)據(jù)如手機的錄音擴展到遠場的語音識別,這些促進了前端處理技術(shù)的發(fā)展,在語音圈里做前端處理比較牛的應(yīng)該是陳景東老師。
回聲消除
回聲消除在遠場語音識別中是比較典型功能,最典型的應(yīng)用是在智能終端播放音樂的時候,遠場揚聲器播放的音樂會回傳給近端麥克風(fēng),此時就需要有效的回聲消除算法來抑制遠端信號的干擾,這是在智能設(shè)備如音響、智能家居當中都需要考慮的問題。比較復(fù)雜的回聲消除系統(tǒng),近端通過麥克風(fēng)陣列采集信號,遠端是雙聲道揚聲器輸出,因此近端需要考慮如何將播出形成算法跟回聲消除算法對接,遠端需要考慮如何對立體聲信號相關(guān)。
噪聲抑制
噪聲抑制可以有多通道的也可以有單通道的,今天主要介紹單通道噪聲抑制,單通道語音增強通過DNN的方法進行增強,語音信號是有一個諧波結(jié)構(gòu)的,通過加入噪聲這個諧波結(jié)構(gòu)會被破壞掉,語音增強的主要目的就是抬高波峰,降低波谷,這個訓(xùn)練對DNN來說是比較容易的。但是也有實驗研究表明,基于DNN的語音增強對濁音段效果會比較好,但對輕音段效果并不是很好,語音的濁音段有顯著諧波結(jié)構(gòu),因此要有目的去訓(xùn)練這個模型。
混響抑制
聲音在房間傳輸過程中經(jīng)過墻壁或者其他障礙物的反射后到達麥克風(fēng),從而生成混響語音,混響的語音會受到房間大小、聲源麥克風(fēng)的位置、室內(nèi)障礙物等因素的影響,大多數(shù)的房間內(nèi)混響時間大概在200--1000毫秒范圍內(nèi),如果混響時間過短,聲音會發(fā)干,枯燥無味,不具備清晰感,混響時間過長會使聲音含混不清,需要合適的聲音才能圓潤動聽。
前端處理涉及的內(nèi)容比較多,除了前面提到的還包括多說話人分離、說話人移動過程中的聲音采集、不同的麥克風(fēng)陣列結(jié)構(gòu)、各種噪聲和房間模型如何更好的建模等。
音識別技術(shù)的研究進展
有了前端處理以后,反饋回來的信息會加到訓(xùn)練語音識別模型,語音識別主要是建立一個聲學(xué)參數(shù)到發(fā)音單元的映射模型或者叫判別模型,現(xiàn)在的方法從傳統(tǒng)的GMM-HMM模型到DNN-HMM混合模型,再到最新的端到端的CTC相關(guān)的。語音信號經(jīng)過特征提取得到聲學(xué)特征,再通過聲學(xué)特征訓(xùn)練得到聲學(xué)模型,聲學(xué)模型結(jié)合語言模型以及發(fā)音辭典構(gòu)建聲碼器以后,最終識別出文本。
GMM用來對每個狀態(tài)進行建模,HMM描述每個狀態(tài)之間的轉(zhuǎn)移概率,這樣就構(gòu)建了一個音素或三因子的HMM模型建模單元,GMM訓(xùn)練速度相對較快,而且GMM聲學(xué)模型可以做得比較小,可以移植到嵌入式平臺上,其缺點是GMM沒有利用真的上下文信息,同時GMM不能學(xué)習(xí)深層的非線性特征變換,建模能力有限。
隨著深度神經(jīng)網(wǎng)絡(luò)的興起,深度神經(jīng)網(wǎng)絡(luò)也應(yīng)用到了語音識別里面聲學(xué)建模,主要是替換了GMM-HMM模型里的GMM模型,上端仍然是HMM模型加狀態(tài)轉(zhuǎn)移,在GMM模型里面可能有500至1萬個狀態(tài),這個狀態(tài)可以通過DNN模型預(yù)測出每個的概率,輸出的就是一個三因子,我們兩者結(jié)合起來構(gòu)建基于DNN-HMM的聲學(xué)模型。
DNN能利用的上下文系統(tǒng)在輸入端進行擴幀,同時又非線性變換可以學(xué)習(xí)到,但DNN不能利用歷史信息捕捉當前的任務(wù),因為擴幀是有限的,不可能無限擴下去,所以他輸入的歷史信息還是有限的。因此,自然而然的有了基于RNN的混合聲學(xué)模型,將DNN模塊替換成RNN模塊,RNN能夠有效的對歷史信息進行建模,并且能夠?qū)⒏嗟臍v史信息保存下來,可于將來的預(yù)測。但是在RNN訓(xùn)練過程中會存在梯度消失和梯度膨脹的問題,梯度膨脹可以在訓(xùn)練過程中加一些約束來實現(xiàn),當梯度超過一定值以后設(shè)定一個固定值,但是梯度消失很難去把握,因此有很多方法解決這種問題,比較簡單的一個方法是將里面的RNN單元變成長短時記憶模型LSTM,這樣長短時記憶模型能夠?qū)⒂洃浵栴}給很好的解決,但這樣會使計算量顯著增加,這也是在構(gòu)建聲學(xué)模型中需要考慮的問題。
CNN用于聲學(xué)模型的建模有一個比較老的方法,在DNN的前端加兩層的CNN變換,這樣只對參數(shù)做了一定的非線性變換,變化完以后輸入DNN和LSTM里面,但是隨著非常深的CNN在圖象識別里面成功應(yīng)用,這些也被運用到了聲學(xué)模型中,比如說谷歌、微軟、IBM均在2016年發(fā)表成果證明非常深的CNN模型已經(jīng)超越其他深度神經(jīng)網(wǎng)絡(luò)的模型,其詞錯率是最低的。
CTC本身是一個訓(xùn)練準則并不算聲學(xué)模型,在DNN輸出中,每個phone他占用的幀數(shù)可能有十幀二十幀。因為它不是一個尖峰,但CTC會把它變成一個尖峰,CTC可以將每一幀變成一個senones或者對應(yīng)一個因數(shù),但每個因數(shù)只需幾幀就可以了,在解碼的時候可以把一些blank幀給去掉,這樣可以顯著的增加解碼速度。減少解碼幀有兩種方法,一種是通過減幀、跳幀的方法,另一種在解碼過程中有一個beam,特別是遇到beam的時候把并值減少,我們的實驗結(jié)果跳幀會比較好。
在NLP中應(yīng)用較多的Attention端對端的聲學(xué)模型能夠從RNN歷史信息中挑選出比較重要的信息對詞學(xué)進行建模,目前的準確率比較低,這應(yīng)該是一種趨勢,至少在NLP中證明了它是比較成功的。
在聲學(xué)模型中還有TDNN和chain模型,在聲學(xué)模型中幀及運算過程中會有一些重疊,它有效的去除了信息冗余,嵌入模型也是一個訓(xùn)練準則,采用單狀態(tài)模型,融入了MMI區(qū)分信息鏈準則,在訓(xùn)練過程中可以實現(xiàn)跳幀,這也加快了解碼速度。總結(jié)起來現(xiàn)在的語音識別模型更新特別快,最重要的核心內(nèi)容就是數(shù)據(jù),如果數(shù)據(jù)量足夠大的話,做出一個好的結(jié)果還是比較容易的,而且我們現(xiàn)在語音識別核心模塊主要是在一些解碼模塊上調(diào)優(yōu)上,這相當于是一種藝術(shù)。
語音合成技術(shù)的研究進展
語音合成是建立文本參數(shù)到聲學(xué)參數(shù)的影射模型,目前的方法有拼接合成、參數(shù)合成還有端對端的語音合成。
基于HMM統(tǒng)計參數(shù)的語音合成是在訓(xùn)練過程中建立文本參數(shù),如韻律參數(shù)、普參數(shù)和基頻參數(shù)的映射模型,通過決策數(shù)聚類的方法對每一個上下文相關(guān)的文本特征構(gòu)建GMM模型,訓(xùn)練其GMM模型,在合成時對輸入文本預(yù)測出它的GMM以后,通過參數(shù)生成算法,生成語音參數(shù)然后再輸出語音。在這個過程中,有三個地方會產(chǎn)生語音音質(zhì)的下降,第一是決策樹的聚類,第二是聲碼器,第三是參數(shù)生成算法,針對這三個問題,我們接下來看看各位研究者提出的解決方法。
針對決策樹聚類的問題,我們可以將里面的HMM決策樹據(jù)類變成一個DNN模型,文本參數(shù)到語音參數(shù)的一個映射可以很容易通過DNN來實現(xiàn),而且在實驗效果會比決策樹好一點,但是并沒有達到我們理想中的那種很驚艷的一些結(jié)果。
除了DNN,RNN也用到了統(tǒng)計參數(shù)語音合成中,而且RNN里面單元采用LSTM模型,我們可以把參數(shù)生成算法這個模塊從統(tǒng)計參數(shù)語音合成中去掉,這樣在基于LSTM-RNN中直接預(yù)測出語音參數(shù),通過聲碼器就可以合成語音,跟RNN-LSTM預(yù)測出一階二階統(tǒng)計量以后,采用參數(shù)生成算法,生成語音參數(shù)合成語音的話效果差不多,所以RNN-LSTM可以把里面的參數(shù)生成算法給去掉。
最近幾年大家在這方面聲碼器問題上做了很多工作,比如WaveNet其實也屬于聲碼器的模型,建立一個現(xiàn)今預(yù)測的模型,通過前面采樣點預(yù)測出后面的采樣點,但是存在幾個問題:比如剛開始速度比較慢,這個問題后期被很多公司都解決了,而且它并不是一個傳統(tǒng)的vocoder,需要文本參數(shù)作為它的輸入。它有好處是在輸入過程中,可以很容易的在后端控制說話人的特征,比如不同說話人情感特征這些屬于外部特征我們都可以進行很好的加入。
還有一個比較成功的是百度的Deep Voice,它將里面的很多模塊用深度神經(jīng)網(wǎng)絡(luò)去實現(xiàn),而且做到了極致,這樣我們在最后通過類似WaveNet的合成器來合成,效果也是比較理想的。
下面兩個端對端的語音合成:
第一個是Char2Wav,這個模型是直接對輸入的文本他進行編碼,采用的模型。對輸入的直接對輸入的叫字母進行編碼,然后生成中間的一個編碼信息放到解碼器里進行最后的合成,合成采用SimpleRNN的合成器來合成語音,效果也是比較理想的,而且是純粹的End-To-End的一個語音合成模型。
再一個是谷歌提出的端對端的語音合成系統(tǒng),它跟Char2Wav比較類似,輸入的也是Embeddings,合成更加直接比RNN更好。
語音合成前期工作主要放在前端文本分析上,因為我們在聽感上可能更關(guān)注,但是如果有一些很好的End-to-End的模型出來以后,文本分析的工作并不是很重要,我們也可以在后端中加入一些文本分析的結(jié)果進行預(yù)測,這即是一種嘗試,也是一種很好的辦法?,F(xiàn)有的合成器的音質(zhì)不再首先考慮我們采用哪種聲碼器,我們采用直接生成的方法在實域上直接進行合成。
語音合成更重要的是一些音庫,我們不能忽略音庫在語音合成中所占據(jù)的位置,以及它的重要性。目前,極限元智能科技語音合成定制化支持錄音人選型、錄音采集、語料標注,還能實現(xiàn)模型迭代訓(xùn)練、合成引擎優(yōu)化,支持在線、離線模式,適用多種平臺
說話人識別也就是聲紋識別,簡單介紹一下現(xiàn)有的I-vector的系統(tǒng)以及如何將DNN應(yīng)用到對應(yīng)的I-vector系統(tǒng),同時我們也跟蹤了最近end to end的一種方法?;贗vector的系統(tǒng),通過UBM模型來訓(xùn)練數(shù)據(jù),然后訓(xùn)練得到混合高斯模型,通過統(tǒng)計量的提取,比如零階一階二階我們來訓(xùn)練它的差異空間T,從而提取出它的Ivector,最后考慮到不同的補償方式進行信道補償,使性能更加完善,同時我們在合成端、最后識別端也可以考慮不同系統(tǒng)的融合提高最終的準確率。
將DNN用到說話人識別,主要是針對Ivector的系統(tǒng),UBM訓(xùn)練是一個無監(jiān)督的訓(xùn)練方式。不考慮音速相關(guān)的信息,因此就不考慮每個人說話音速在聲學(xué)空間上法人不同,我們可以將這部分信息運用到說話人識別中,將前面提到的Ivector需要提到的臨界統(tǒng)計量,通過DNN模型的輸出把臨界統(tǒng)計量來進行替換,在訓(xùn)練Ivector的過程中,考慮了每個人音速,發(fā)音音速相關(guān)的不同特征,這樣會更好的對說話人進行識別。
DNN還有一種應(yīng)用形式,采用bottleneck特征替換掉原來的MFCC,PLP相關(guān)的特征,這也是從音速區(qū)分性,每個人發(fā)音音速不一樣來考慮的。
百度前段時間提到的一個Deep Speaker,這部分最主要的優(yōu)點是采用了Triple Loss這種方法,能很好的用于訓(xùn)練中。原來如果要訓(xùn)練一個說話人可能是輸出是一個one-hot,但是speaker的訓(xùn)練語并不是很多,所以訓(xùn)練效果并不是很好,如果我們采用這種訓(xùn)練誤差的,可以構(gòu)建很多對訓(xùn)練參數(shù)來進行訓(xùn)練,這樣模型會更加棒。
以一個簡單的智能客服平臺技術(shù)原理說明它采用了基于狀態(tài)轉(zhuǎn)移圖的結(jié)構(gòu)來控制對話的進行,在這個狀態(tài)轉(zhuǎn)移圖中,表示了所有對話片斷與用戶意圖之間的關(guān)系,系統(tǒng)根據(jù)用戶的意圖和當前知識庫中的對話片斷轉(zhuǎn)到下一個對話片斷,并根據(jù)每個狀態(tài)的定義對用戶做出應(yīng)答,整個對話的過程是在狀態(tài)轉(zhuǎn)移中實現(xiàn)的。
智能客服平臺訓(xùn)練階段主要針對本身已有的系統(tǒng)進行簡單的數(shù),包括兩個虛擬人,在運行過程中對虛擬人的提問,通過關(guān)鍵詞抽取對關(guān)鍵詞進行匹配,然后找到對應(yīng)的它的狀態(tài)相關(guān)的信息,得到最優(yōu)問題解答再進行返回。
POMDP是一個六元組,包括狀態(tài)集合、觀察集合、行動集合、回報函數(shù)、轉(zhuǎn)移函數(shù)和觀測函數(shù),根據(jù)用戶輸入語句來得到意圖分類,然后根據(jù)意圖分類得到觀測值,再通過對立面POMDP里面的訓(xùn)練分布進行更新,訓(xùn)練分布與POMDP結(jié)合得到動作,分析各個子動作得到反饋后再接收新的數(shù)據(jù)。比如我要去上海,它會問你從哪里出發(fā),用什么交通工具,對應(yīng)一些信息,比如說查天氣,因為查天氣的時候你需要反饋到是上海的天氣還是北京的天氣,這些都會根據(jù)上面的語句進行提問。
除了前面提到語音作為主要接口的一種對話形式,我們也會考慮一些多模態(tài)相關(guān)的信息,比如對于用戶和機器人,當中有一個人機交換屬于人機協(xié)同,但是需要處理的信息會比較多,比如機器人會根據(jù)用戶輸出個性化聲音,同時融合多元情感融合的處理,機器人會根據(jù)你輸入的信息進行自主學(xué)習(xí)以及智能生長,這些都是將來人機交互這塊需要考慮的問題。
基于交互學(xué)習(xí)的知識問答和智能生長,目前最主要基于短時工作記憶,未來主要工作可能轉(zhuǎn)換到長時記憶的轉(zhuǎn)換,同時我們也能對新知識進行快速的學(xué)習(xí)和更新。
我們考慮的信息除了聽覺信息還有視覺信息,通過多模態(tài)融合的方法,我們也會研究在腦部這些腦區(qū)功能的一些主要關(guān)注點,這些都會成為將來的研究點。對話平臺有了前面的多模態(tài)的信息輸入,我們希望把這些都融合起來做成一個多模態(tài)融合的一個對話系統(tǒng)。
語音作為互聯(lián)網(wǎng)的重要入口,功能得到了大家越來越多的重視,當然語音產(chǎn)業(yè)也需要更多的人才去發(fā)展,目前對話系統(tǒng)的功能在體驗上有些不理想,這也是行業(yè)從業(yè)者需要考慮的問題,同時我們在將來會研究采用多模態(tài)智能生長等相關(guān)交互技術(shù),促進人機交互的發(fā)展。
相關(guān)文章:
專訪阿里 iDST 語音組總監(jiān)鄢志杰:智能語音交互從技術(shù)到產(chǎn)品,有哪些坑和細節(jié)要注意?
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。