0
本文作者: 老王 | 2017-01-20 21:48 | 專題:雷峰網(wǎng)公開課 |
雷鋒網(wǎng)按:在過去的一年中,語音識別再次取得非常大的突破。IBM、微軟等多家機(jī)構(gòu)相繼推出了自己的 Deep CNN 模型,提升了語音識別的準(zhǔn)確率;Residual/Highway 網(wǎng)絡(luò)的提出使我們可以把神經(jīng)網(wǎng)絡(luò)訓(xùn)練的更加深。
而諸如 CTC、Low Frame Rate、Chain 模型等粗粒度建模單元技術(shù)使得語音識別準(zhǔn)確率得到提升的同時,解碼速度也可以大大加快。
本期雷鋒網(wǎng)硬創(chuàng)公開課特邀供職于阿里巴巴 iDST 的語音專家薛少飛博士,從學(xué)術(shù)的角度回顧過去一段時間里語音識別技術(shù)的發(fā)展?fàn)顩r。
薛少飛,阿里巴巴 iDST 語音識別專家,中國科學(xué)技術(shù)大學(xué)博士?,F(xiàn)負(fù)責(zé)阿里聲學(xué)模型研究與應(yīng)用:包括語音識別聲學(xué)建模和深度學(xué)習(xí)在業(yè)務(wù)場景中的應(yīng)用。博士期間的研究方向為語音識別說話人自適應(yīng),提出基于 Speaker Code 的模型域自適應(yīng)方法,在語音相關(guān)的會議和期刊上發(fā)表論文十余篇。
本期雷鋒網(wǎng)硬創(chuàng)公開課的分享主要包括三大部分:
深度神經(jīng)網(wǎng)絡(luò)聲學(xué)模型發(fā)展回顧:簡單回顧深度神經(jīng)網(wǎng)絡(luò)技術(shù)在語音識別聲學(xué)模型中的應(yīng)用歷史;
前沿聲學(xué)模型技術(shù)進(jìn)展:介紹近期幾個比較有意思的聲學(xué)模型技術(shù)進(jìn)展,包括 Deep CNN 技術(shù)、Residual/Highway 網(wǎng)絡(luò)技術(shù)和粗粒度建模單元技術(shù)。當(dāng)然這里并沒有把所有的新技術(shù)進(jìn)展都囊括進(jìn)來,比如 Attention 技術(shù)。只是以這三條線路為例看看語 音識別聲學(xué)模型技術(shù)的進(jìn)展和未來的發(fā)展趨勢。
介紹紹阿里巴巴的語音識別聲學(xué)模型技術(shù)。
一、深度神經(jīng)網(wǎng)絡(luò)聲學(xué)模型發(fā)展回顧
回顧語音識別技術(shù)的發(fā)展歷史可以看到,自從上世紀(jì) 90 年代語音識別聲學(xué)模型的區(qū)分性訓(xùn)練準(zhǔn)則和模型自適應(yīng)方法被提出以后,在很長一段內(nèi)語音識別的 發(fā)展是比較緩慢的,語音識別錯誤率的那條線一直沒有明顯的下降。直到 2006 年 Hinton 提出深度置信網(wǎng)絡(luò)(DBN),促使了深度神經(jīng)網(wǎng)絡(luò)(DNN)研究的復(fù)蘇。
2009 年,Hinton 將 DNN 應(yīng)用于語音的聲學(xué)建模,在 TIMIT 上獲得了當(dāng)時最好的結(jié)果。2011 年底,微軟研究院的俞棟、鄧力兩位老師又把 DNN 技術(shù)應(yīng)用在了大詞匯量連續(xù)語音識別任務(wù)上,大大降低了語音識別錯誤率。從此以后基于 DNN 聲學(xué)模型技術(shù)的研究變得異?;馃?。微軟去年 10 月發(fā)布的 Switchboard 語音識別測試中,更是取得了 5.9%的詞錯誤率,第一次實現(xiàn)了和人類一樣的識別水平,這是一個歷史性突破。
那么什么是 DNN 的?其實標(biāo)準(zhǔn)的 DNN 一點(diǎn)也不神秘,它和傳統(tǒng)的人工神經(jīng) (ANN)在結(jié)構(gòu)上并沒有本質(zhì)的區(qū)別,只是 ANN 通常只包含一個隱層,而 DNN 則是通常包含至少 3 層以上的隱層,通過增加隱層數(shù)量來進(jìn)行多層的非線性變換,大大的提升了模型的建模能力。
這是基于 DNN 的語音識別系統(tǒng)框架,相比傳統(tǒng)的基于 GMM-HMM 的語音識別系統(tǒng),其最大的改變是采用 DNN 替換 GMM 模型對語音的觀察概率進(jìn)行建模。
相比傳統(tǒng) GMM 模型我覺得有兩點(diǎn)是非常重要的:
1.使用 DNN 不需要對語 音數(shù)據(jù)分布進(jìn)行假設(shè)。
2. DNN 的輸入可以是將相鄰語音幀拼接形成的包含時序結(jié)構(gòu)信息的矢量。
當(dāng)時訓(xùn)練 DNN 的普遍做法是先進(jìn)行無監(jiān)督的預(yù)訓(xùn)練,而后進(jìn)行有監(jiān)督的調(diào)整,后來人們發(fā)現(xiàn)當(dāng)數(shù)據(jù)量非常大的時候無監(jiān)督的預(yù)訓(xùn)練并不是必要的,當(dāng)然這是后話了。
促使 DNN 的研究在那時重新興起還有一個非常重要, 并且我個人認(rèn)為是最核心的因素,就是計算能力的提升。
以前要在 CPU 上訓(xùn)練 DNN 是非常慢的,做一個實驗可能需要好幾周甚至幾個月,這是不能忍受的,隨著 GPU 的出現(xiàn)這種情況發(fā)生了變化,GPU 非常適合對矩陣運(yùn)算進(jìn)行加速,而 DNN 的訓(xùn)練最終都可以被拆解成對矩陣的操作,兩者天然和諧。
而今隨著 GPU 技術(shù)的不斷發(fā)展和進(jìn)步,我們能夠訓(xùn)練數(shù)據(jù)量更大、網(wǎng)絡(luò)更深、結(jié)構(gòu)更復(fù)雜的模型,這才有了深度神經(jīng)網(wǎng)絡(luò)技術(shù)的迅速發(fā)展。
LSTM 模型相信大家都不陌生,它一種特殊的循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)。語音識別本來就是一個時序建模問題,所以非常適合用 RNN 來進(jìn)行建模。
但是簡單 的 RNN 受限于梯度爆炸和梯度消散問題,比較難以訓(xùn)練。而 LSTM 通過輸入門、 輸出門和遺忘門可以更好的控制信息的流動和傳遞,具有長短時記憶能力,并在一定程度上緩解 RNN 的梯度消散和梯度爆炸問題。當(dāng)然它也有不足之處,計算復(fù)雜度相比 DNN 大幅增加,并且由于遞歸連接的存在難以很好的并行。
BLSTM 進(jìn)一步提升了該類模型的建模能力,相比 LSTM 還考慮了反向時序信息的影響,也即“未來”對“現(xiàn)在”的影響,這在語音識別中也是非常重要的。
當(dāng)然這種能力的代價就是模型計算復(fù)雜度進(jìn)一步加大,并且通常需要整句進(jìn)行訓(xùn) 練:GPU 顯存消耗增大->并行度降低->模型訓(xùn)練更慢,另外在實際應(yīng)用中還存在實時性問題。
CTC 技術(shù)在過去的一段時間內(nèi)也非常的火熱,首先要說明的是 CTC 并不是模型的變化,而是優(yōu)化的目標(biāo)函數(shù)發(fā)生了改變,DNN、LSTM、CNN 都可以和 CTC 相結(jié)合。
傳統(tǒng)的深度神經(jīng)網(wǎng)絡(luò)聲學(xué)模型的訓(xùn)練過程需要先對訓(xùn)練數(shù)據(jù)文本序列做 Alignment 得到分類的“硬判決”,之后以這種“硬判決”的分類為目標(biāo)訓(xùn)練 神經(jīng)網(wǎng)絡(luò),網(wǎng)絡(luò)優(yōu)化的目標(biāo)并不是最終要識別的結(jié)果。和傳統(tǒng)的深度神經(jīng)網(wǎng)絡(luò)聲 學(xué)模型相比 CTC 的優(yōu)化目標(biāo)是一種所見即所得的優(yōu)化目標(biāo),你要訓(xùn)練的目標(biāo)就 是你想要得到的結(jié)果。
傳統(tǒng)的深度神經(jīng)網(wǎng)絡(luò)聲學(xué)模型建模單元通常是 state 級的,而 CTC 的建模單元則是 phone 一級甚至是 character 的,state 級反而不好,這種建模粒度的 變化帶來一個好處就是語音數(shù)據(jù)的冗余度增加了,相鄰的語音幀本來就會很像并 可能來自于同一個 phone,那么現(xiàn)在就不需要這么多幀數(shù)據(jù)來建模一個句子。
通過拼幀降采樣的方法可以降低數(shù)據(jù)的總幀數(shù),在不影響識別準(zhǔn)確率的情況下加快網(wǎng)絡(luò)計算的速度。CTC 的另一個非常重要的貢獻(xiàn)是引入了“Blank”空白,空白的 引入避免了易混淆幀的“強(qiáng)制”對齊。并且使得訓(xùn)練后的網(wǎng)絡(luò)輸出呈現(xiàn)“尖峰”狀 態(tài),大段的 Blank 使得解碼時通過 beam 的靈活調(diào)整,可以加快解碼速度。
語音識別領(lǐng)域有非常多的開源工具,傳統(tǒng)的語音識別開源工具像 CMU SPHINX 系統(tǒng),是基于統(tǒng)計學(xué)原理開發(fā)的第一個“非特定人連續(xù)語音識別系統(tǒng)”; 劍橋語音識別組推出的 HTK 工具包是 GMM-HMM 時代最為流行的語音識別工具,我剛接觸語音識別就是從 HTK 開始的。
幾年前推出的 kaldi 嚴(yán)格來講并不十 分“傳統(tǒng)”,也是比較新并且在不斷更新的開源工具,目前應(yīng)該也是使用人數(shù)最多的語音識別開源工具。
近兩年來許多深度學(xué)習(xí)開源框架涌現(xiàn)了出來,像 Theano、 CNTK、TensorFlow 等,接下來我會對傳統(tǒng)的語音識別工具和新的深度學(xué)習(xí)開源框架做一個對比,那么我就簡單從幾個我比較關(guān)心的維度來拋磚引玉看看 kaldi、CNTK 和 TensorFlow 的異同。
在拓?fù)浠A(chǔ)方面,kaldi 的 nnet1 和 nnet2 是以層設(shè)計為基礎(chǔ)的,也即當(dāng)你新增加一種神經(jīng)網(wǎng)絡(luò)層時需要自己定義它的結(jié)構(gòu),都有哪些變量,正向怎么算, 反向誤差怎么傳播等等,并且過于復(fù)雜的連接方式很難支持。
而 kaldi 的 nnet3 和 CNTK 以及 TensorFlow 都是以圖結(jié)構(gòu)為基礎(chǔ)的,通過配置文件實現(xiàn)對網(wǎng)絡(luò)連接方式的定義,數(shù)據(jù)就像流水一樣在你定義的網(wǎng)絡(luò)圖中游走,并自己實現(xiàn)誤差的 反向傳播,它的優(yōu)點(diǎn)是你可以專注網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的設(shè)計,而不用為網(wǎng)絡(luò)計算的細(xì) 節(jié)而費(fèi)心,特別是誤差的反向傳播。
但這也帶來一個問題,尤其是對初學(xué)者而言, 會造成只是在設(shè)計網(wǎng)絡(luò)長成什么樣子,但并不清楚其中的實現(xiàn)細(xì)節(jié)。初學(xué)者最好多推推公式,對打下一個堅實的基礎(chǔ)絕對有好處。
在語音識別其它工具支持方面,kaldi 有全套的語音識別工具,包括解碼器、 建立決策樹、GMM 訓(xùn)練等等,而 CNTK 和 TensorFlow 在這方面并沒有特別的支持,值得一提的是 CNTK 里提供了把 kaldi 數(shù)據(jù)處理成為 CNTK 數(shù)據(jù)格式的工具,使的用 kaldi 的人也可以很快上手 CNTK,大家不妨試一下。
最后一個我比較關(guān)心的因素就是是否支持多機(jī)多卡,因為隨著數(shù)據(jù)量和模型復(fù)雜度的不斷攀升,僅僅用一個 GPU 很難滿足模型訓(xùn)練的需要,必須使用多個 GPU 來加速訓(xùn)練。在這方面目前 kaldi、CNTK、TensorFlow 都已經(jīng)支持。
最后我的建議是對于語音識別的初學(xué)者和低年級的研究生來講,用 kaldi 入門學(xué)習(xí)算法和實踐理論知識是比較好的選擇,對于高年級研究生和具有一定年限的從業(yè)人員來講,就看自己的喜好了,大家都是殊途同歸,工具不是決定性的, 數(shù)據(jù)、算法和模型才是。
接下來介紹一下 Deep CNN 技術(shù)、Residual/Highway 網(wǎng)絡(luò)技術(shù)和粗粒度建模 單元技術(shù)。去年有多家機(jī)構(gòu)都推出了自己的 Deep CNN 模型,像 IBM、微軟等,我這里以 IBM 的 Deep CNN 為例,一起探討一下到底哪些關(guān)鍵因素使得 Deep CNN 能夠取得這么好的效果。
其實 CNN 被用在語音識別中已經(jīng)不是一天兩天了,在 12、13 年的時候 Ossama Abdel-Hamid 就將 CNN 引入了語音識別中。
那時候的卷積層和 pooling 層是交替出現(xiàn)的,并且卷積核的規(guī)模是比較大的,CNN 的層數(shù)也不是特別的多, 主要是用來對特征進(jìn)行進(jìn)一步的加工和處理,使其能更好的被用于 DNN 的分類。
后來隨著 CNN 技術(shù)在圖像領(lǐng)域的發(fā)展,情況慢慢出現(xiàn)了變化,人們在圖像領(lǐng)域 的研究中發(fā)現(xiàn)多層卷積之后再接 pooling 層,減小卷積核的尺寸可以使得我們能夠訓(xùn)練更深的、效果更好的 CNN 模型。相應(yīng)的方法被借鑒到了語音識別中,并 根據(jù)語音識別的特點(diǎn)進(jìn)行了進(jìn)一步的優(yōu)化。
IBM 的研究人員在 16 年的 ICASSP 上發(fā)表文章,稱使用 3x3 的小卷積核和 多層卷積之后再接 pooling 的技術(shù)可以訓(xùn)練出 14 層(包含全連接)Deep CNN 模型。
在 Switchboard 數(shù)據(jù)集上相比傳統(tǒng)的 CNN 使用方法可以帶來相對約 10.6%WER 下降。小尺寸的卷積核和多層卷積之后再接 pooling 的技術(shù)是使 Deep CNN 能夠成功的關(guān)鍵點(diǎn)。
接下來介紹一下 Residual/Highway 網(wǎng)絡(luò)以及它們目前在語音識別中的應(yīng)用情況。
Residual 網(wǎng)絡(luò)會這么出名得益于 MSRA 的 152 層讓人“瘋狂”的深度神經(jīng)網(wǎng)絡(luò),憑借著它 MSRA 在 2015 ImageNet 計算機(jī)識別挑戰(zhàn)賽中以絕對優(yōu)勢獲得圖像分類、圖像定位以及圖像檢測全部三個主要項目的冠軍。
在公開的論文當(dāng)中, 作者詳細(xì)解讀了他們的“心路歷程”。
研究人員發(fā)現(xiàn)在深度神經(jīng)網(wǎng)訓(xùn)練過程中總是會出現(xiàn)”Degration Problem”,即當(dāng)網(wǎng)絡(luò)深度達(dá)到一定程度以后,隨著網(wǎng)絡(luò)深度的 增加 training error 將不降反增,并且這不是由于過擬合引起的。
一般來講我們 認(rèn)為一個淺層網(wǎng)絡(luò) A 疊加幾層成為網(wǎng)絡(luò) B,如果疊加的幾層權(quán)重都是單位矩陣,那么 B 的性能至少不會比 A 差,但現(xiàn)實并非如此,網(wǎng)絡(luò)自己很難學(xué)習(xí)到這種變換。
而相比與學(xué)習(xí)目標(biāo)函數(shù)而言殘差更容易學(xué)習(xí),于是提出了一種 residual learning 的結(jié)構(gòu),增加了一個越層的短連接。我的理解是這種短連接一方面避免了前向計算中非線性變換對數(shù)據(jù)的過度加工,另一方面在誤差反向傳播時通過直 連通路,可以讓誤差有路徑直接回傳,抑制梯度消散。
大約稍早,Srivastava 在 arxiv 上傳了他的 Highway 網(wǎng)絡(luò)工作,在 Highway 網(wǎng)絡(luò)中一個隱層節(jié)點(diǎn)的輸出不再單單是輸入通過非線性變換后的數(shù)值,而是變成 了通過 Transform gate 和 Carry gate 對非線性變換后的數(shù)值和輸入進(jìn)行加權(quán)得到的結(jié)果。Residual 網(wǎng)絡(luò)可以被看成是 Highway 網(wǎng)絡(luò)的一種不額外增加參數(shù)量的特例。
Residual/Highway 網(wǎng)絡(luò)這么有效果,語音識別領(lǐng)域的研究人員當(dāng)然也會關(guān)注并使用。我來舉幾個例子,在“Highway Long Short-Term Memory RNNs for Distant Speech Recognition”中作者提出 Highway LSTM 結(jié)構(gòu),引入了一種 carry gate,Carry gate 控制當(dāng)前層 cell 狀態(tài)計算有多少來自于前一層的 cell 狀態(tài), carry gate 的計算又取決于當(dāng)前層的輸入、當(dāng)前層前一時刻的 cell 狀態(tài)和前一層當(dāng)前時刻的 cell 狀態(tài)。通過這種模型結(jié)構(gòu)實現(xiàn)了信息在模型內(nèi)部更好的跨層流動。
在 ”Multidimensional Residual Learning Based on Recurrent Neural Networks for Acoustic Modeling”中作者將 Residual 的概念應(yīng)用到 LSTM 模型 中,并在 TIMIT 和 HKUST 兩個數(shù)據(jù)集上驗證了實驗效果。
在 ”Renals.Small-footprint Deep Neural Networks with Highway Connections for Speech Recognition”中作者對比了 Residual DNN 和 Highway DNN 在語音識別上的效果,得到的結(jié)論是:” residual networks are more powerful to train deeper networks compared to plain DNNs, particular with ReLU activation functions which reduce the optimisation difficulty. However, highway networks are more flexible with the activation functions due to the two gating functions that control the follow of information.”
下面是粗粒度建模單元技術(shù),Low frame rate 技術(shù)我會放到后面結(jié)合阿里巴巴的聲學(xué)模型技術(shù)進(jìn)行說明,先來看一下 Chain 模型。Chain 模型是 kaldi 的作者 Daniel Povey 近期力推的工作,它使用的也是 DNN-HMM 架構(gòu),表中我列出了 chain 模型和傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)聲學(xué)模型建模的不同點(diǎn)。
在建模單元方面,傳統(tǒng)神經(jīng)網(wǎng)絡(luò)聲學(xué)模型的建模單元一般是 3 狀態(tài)或者 5 狀態(tài)的 CD phone,而 chain 模型的建模單元則是 2 狀態(tài),其中 sp 是最主要用來表征該 CD phone 的狀態(tài),而 sb 則是該 CD phone 的“Blank”空白,空白的概念 其實和 CTC 中的很相似,只是在 chain 模型中每一個建模單元都有自己的空白。
在訓(xùn)練方法上,傳統(tǒng)神經(jīng)網(wǎng)絡(luò)聲學(xué)模型需要先進(jìn)行 Cross-Entropy 訓(xùn)練,后進(jìn)行區(qū)分性準(zhǔn)則訓(xùn)練。而 chain 模型直接進(jìn)行 Lattice-Free MMI 訓(xùn)練,當(dāng)然其后還可 以接著進(jìn)行區(qū)分性準(zhǔn)則訓(xùn)練,但是從目前的報道來看,這部分的提升是比較小的。
在解碼幀率方面由于 chain 模型使用的是拼幀然后降采樣的方法,解碼的幀率只有傳統(tǒng)神經(jīng)網(wǎng)絡(luò)聲學(xué)模型的三分之一,而識別準(zhǔn)確率方面相比傳統(tǒng)模型會有非常明顯的提升。 總結(jié)一下我認(rèn)為未來深度神經(jīng)網(wǎng)絡(luò)聲學(xué)模型主要有三個發(fā)展方向。
1.更 Deep 更復(fù)雜的網(wǎng)絡(luò)
類似MSRA152 層 ResNet 的技術(shù),雖然以目前的計算能力在語音識別 的實際應(yīng)用中這種復(fù)雜網(wǎng)絡(luò)結(jié)構(gòu)的模型暫時還不能落地,但是持續(xù)不斷 的研究和探索可以為我們明確我們努力的方向和能力所能達(dá)到的上界。
2. End to End 的識別系統(tǒng)
End to End 的識別系統(tǒng)一直是近年來比較火的研究方向,如 CTC、 Attention 等都是在這方面非常有意義的工作,在海量規(guī)模的語音數(shù)據(jù)上 建立計算速度快、識別準(zhǔn)確率高的 End to End 的識別系統(tǒng)會是未來的 一個重要課題。
3. 粗粒度的建模單元 state->phone->character
粗粒度建模單元的技術(shù)對于加快語音識別的解碼速度具有非常重要的 意義,而反過來解碼速度的提升又可以讓使用更深、更復(fù)雜神經(jīng)網(wǎng)絡(luò)建 模聲學(xué)模型成為可能。
最后分享一下阿里巴巴團(tuán)隊在語音識別聲學(xué)模型技術(shù)方面的一些工作。
在工業(yè)界做語音識別,數(shù)據(jù)量是非常龐大的,上萬小時的語音數(shù)據(jù)是再正常 不過的,面對如此龐大的數(shù)據(jù)量,使用單機(jī)單 GPU 或者單機(jī)多 GPU 進(jìn)行模型 的訓(xùn)練是遠(yuǎn)遠(yuǎn)不能滿足需求的,必須具有多機(jī)多 GPU 進(jìn)行模型訓(xùn)練的能力。
我們使用的基于 Middleware 的多機(jī)多卡方案。GPU Middleware 提供了 API 接口使得我們可以通過對訓(xùn)練工具(kaldi、caffe 等)的簡單修改實現(xiàn)并行訓(xùn)練。并且可以自主管理任務(wù)隊列、數(shù)據(jù)分發(fā)、通信、同步等,是我們能夠更多的專注于算法本身。采用 Master-slave 模式,支持 MA / SGD / ASGD 等。
這是 Model Averaging 的一個示例:
表格里給出的是在 5000h 小時訓(xùn)練數(shù)據(jù)情況下訓(xùn)練 DNN 模型的加速效果, 可以看到使用 8 個 GPU 的情況下大約可以取得 7.2 倍的加速,使用 16 個 GPU 的情況下大約可以取得 14.3 倍的加速。我們目前使用的是 Latency-control BLSTM 模型,這里面有從 BLSTM 到 CSC-BLSTM 再到 LC-BLSTM 的發(fā)展歷程。
我們知道 BLSTM 可以有效地提升語音識別的準(zhǔn)確率,相比于 DNN 模型,相對性能提升可以達(dá)到 15%-20%。
但同時 BLSTM 也存在兩個非常重要的問題:
1. 句子級進(jìn)行更新,模型的收斂速度通常較慢,并且由于存在大量的逐幀計算,無法有效發(fā)揮 GPU 等并行計算工具的計算能力,訓(xùn)練會非常耗時;
2. 由于需要用到整句遞歸計算每一幀的后驗概率,解碼延遲和實時率無法得到有效保證,很難應(yīng)用于實際服務(wù)。對于這兩個問題,前 MSRA lead researcher,目前已經(jīng)是阿里巴巴 iDST 語 音團(tuán)隊負(fù)責(zé)人的鄢志杰和他當(dāng)時在微軟的實習(xí)生一起首先提出 ContextSensitive-Chunk BLSTM ( CSC-BLSTM)的 方法加 以解決。
而此后文獻(xiàn) (Zhang2015, MIT)又提出了 Latency Controlled BLSTM(LC-BLSTM)這一改進(jìn)版本,更好、更高效的減輕了這兩個問題。我們在此基礎(chǔ)上采用 LC-BLSTM-DNN 混合結(jié)構(gòu)配合多機(jī)多卡、16bit 量化等訓(xùn)練和優(yōu)化方法進(jìn)行聲學(xué)模型建模。完成了業(yè)界第一個上線的 BLSTM-DNN hybrid 語音識別聲學(xué)模型。
這兩張是 LC-BLSTM 的示意圖,訓(xùn)練時每次使用一小段數(shù)據(jù)進(jìn)行更新,數(shù)據(jù)由中心 chunk 和右向附加 chunk 構(gòu)成,其中右向附加 chunk 只用于 cell 中間狀態(tài)的計算,誤差只在中心 chunk 上進(jìn)行傳播。時間軸上正向移動的網(wǎng)絡(luò),前一 個數(shù)據(jù)段在中心 chunk 結(jié)束時的 cell 中間狀態(tài)被用于下一個數(shù)據(jù)段的初始狀態(tài), 時間軸上反向移動的網(wǎng)絡(luò),每一個數(shù)據(jù)段開始時都將 cell 中間狀態(tài)置為 0。
該方法可以很大程度上加快網(wǎng)絡(luò)的收斂速度,并有助于得到更好的性能。解碼階段的數(shù)據(jù)處理與訓(xùn)練時基本相同,不同之處在于中心 chunk 和右向附加 chunk 的維 度可以根據(jù)需求進(jìn)行調(diào)節(jié),并不必須與訓(xùn)練采用相同配置。
進(jìn)一步,我們又在 LC-BLSTM 上進(jìn)行了改進(jìn),首先提出一種改進(jìn)的 FABDIBLSTM 模型,它和 LC-BLSTM 的不同在于時間軸上反向移動的網(wǎng)絡(luò),cell 中間狀態(tài)是由 feed-forward DNN 計算得到的,而不是原來采用的遞歸方式,這樣在 盡可能保證識別準(zhǔn)確率的同時,降低了模型的計算量。
我們還提出一種改進(jìn)的 FABSR-BLSTM 方法,用簡單 RNN 替代時間軸上反向移動的 LSTM,以加快這部分的計算速度。
表里面給出的是我們的實驗結(jié)果,在 Switchboard 數(shù)據(jù)集上的實驗表明在損失少量精度的情況下,我們的改進(jìn)版模型相比標(biāo)準(zhǔn)的 LC-BLSTM 可以取得 40%- 60%的解碼加速。這部分工作已經(jīng)被 ICASSP 2017 接收,即將于今年三月份發(fā)表。
Low frame rate(LFR)是我們上線的又一新技術(shù),LFR 是在 Interspeech 2016 會議上由谷歌的研究人員提出的,在論文中研究人員宣稱 CTC 技術(shù)只有在 4 萬 小時以上的數(shù)據(jù)量下才有更好的效果,而 LFR 通過使用單狀態(tài)的 CD-Phone、 拼幀并降幀率、soft label、CE 初始化、Output Delay 等技術(shù)可以讓傳統(tǒng)神經(jīng)網(wǎng) 絡(luò)識別模型取得和 CTC 近似或更好的效果。
我們借鑒了論文中的方法并將其成功應(yīng)用在 LC-BLSTM 上,在我們的一個上萬小時數(shù)據(jù)的任務(wù)上。
LFR-LC-BLSTM 可以取得和 LC-BLSTM 差不多的識別 錯誤率,并且有約 3.6 倍的解碼加速。據(jù)我們所知(to the best of our knowledge), 我們也是目前業(yè)界唯一一家落地 LFR 技術(shù)的公司。
在模型的魯棒性方面,我們也做了非常多的工作。模型的魯棒性一直是困擾 業(yè)界和研究人員的一個問題,比如用安靜環(huán)境下的語音數(shù)據(jù)訓(xùn)練的模型在噪聲環(huán)境下識別準(zhǔn)確率就很差,用新聞播報的語音數(shù)據(jù)訓(xùn)練的模型去識別激情的體育解說,識別準(zhǔn)確率也會很差。
那么如何克服不同的信道、噪聲、應(yīng)用場景的差異,使聲學(xué)模型具有更好的魯棒性呢,最好的辦法當(dāng)然是收集更多真實場景下的語音 數(shù)據(jù),但是如果一時之間做不到呢?
怎么利用現(xiàn)有的語音數(shù)據(jù)去盡可能的提升模 型的噪聲魯棒性?能不能利用現(xiàn)有數(shù)據(jù)去“造”和目標(biāo)場景很類似的數(shù)據(jù)?
這是一個很有意思的研究課題。算法層面的改進(jìn)這里暫且不提,說一下我們在“造”數(shù) 據(jù)上的一些工作,我們設(shè)計了一套完整的數(shù)據(jù)分析、數(shù)據(jù)篩選和數(shù)據(jù)加工流程。
從應(yīng)用場景分析開始,我們會去分析信道情況、噪聲情況、語境情況等等。然后根據(jù)對應(yīng)用場景的分析自動篩選適合的訓(xùn)練數(shù)據(jù)。再根據(jù)不同的場景情況, 進(jìn)行加噪、加快語速等處理。最后訓(xùn)練模型進(jìn)行測試,再根據(jù)對結(jié)果的分析反饋我們應(yīng)用場景的分析。
這一整套流程開始時由人為設(shè)計的,現(xiàn)在正逐步往自動化流程上推,依托阿里 MaxCompute 高效計算平臺我們可以快速的完成海量數(shù)據(jù)的加工處理,這大大解放我們的算法人員,讓大家有更多的經(jīng)歷投入到技術(shù)上的優(yōu)化,而不是為數(shù)據(jù)煩惱。 最后是我們語音識別技術(shù)應(yīng)用的一些案例,像是內(nèi)部的智能質(zhì)檢和智能電話 客服,阿里云年會上實時語音識別挑戰(zhàn)金牌速記員。
最后是我們語音識別技術(shù)應(yīng)用的一些案例,比如阿里巴巴內(nèi)部的智能質(zhì)檢和智能電話客服,從去年開始,阿里集團(tuán)與螞蟻客服每接聽一個電話,都會立刻啟動一個叫風(fēng)語者的系統(tǒng),它就是自動語音識別技術(shù),將語音轉(zhuǎn)變成文字,千分之三的人工抽檢可以瞬間升級為100%的自動質(zhì)檢。除此應(yīng)用場景之外,阿里YunOS、阿里小蜜以及手淘,現(xiàn)在都已經(jīng)應(yīng)用到阿里云的語音識別系統(tǒng)。
阿里云在 2016年 會上公開展示實時語音識別技術(shù),并現(xiàn)場挑戰(zhàn)世界速記大賽亞軍得主。據(jù)現(xiàn)場最終評測,機(jī)器人在準(zhǔn)確率上以 0.67%的微弱優(yōu)勢戰(zhàn)勝第50 屆國際速聯(lián)速記大賽全球速記亞軍姜毅。 對外服務(wù)上我們開放了智能語音交互的能力(data.aliyun.com),為企業(yè)在多種實際應(yīng)用場景下,賦予產(chǎn)品“能聽、會說、懂你”式的智能人機(jī)交互體驗。 在法庭庭審方面,我們利用語音識別技術(shù),將庭審各方在庭審過程中的語音直接轉(zhuǎn)變?yōu)槲淖郑└鞣皆谕忢撁嫔喜榭?,書記員簡單或不用調(diào)整即可作為庭審筆錄使用。 大家在目睹直播平臺上看云棲大會直播時,上面的實時字幕背后用的也是我們自己的語音識別技術(shù)。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。