作為國內(nèi)智能語音與人工智能產(chǎn)業(yè)的領(lǐng)導(dǎo)者,科大訊飛一直引領(lǐng)中文語音識別技術(shù)不斷進(jìn)步。去年12月21日,在北京國家會議中心召開的以“AI復(fù) 始,萬物更新”為主題的年度發(fā)布會上,科大訊飛提出了以前饋型序列記憶網(wǎng)絡(luò)(FSMN, Feed-forward Sequential Memory Network)為代表的新一代語音識別系統(tǒng),讓大家眼前一亮[1]。
通過進(jìn)一步的研究,我們在FSMN的基礎(chǔ)之上,再次推出全新的語音識別框架,將語音識別問題創(chuàng)新性的重新定義為“看語譜圖”的問題,并通過引入圖像識別中主流的深度卷積神經(jīng)網(wǎng)絡(luò)(CNN, Convolutional Neural Network)實現(xiàn)了對語譜圖的全新解析,同時打破了傳統(tǒng)深度語音識別系統(tǒng)對DNN和RNN等網(wǎng)絡(luò)結(jié)構(gòu)的依賴,最終將識別準(zhǔn)確度提高到了新的高度。
今天我們將揭開它的神秘面紗。
FSMN我們在上一期文章中(請點擊閱讀原文)做了詳細(xì)的介紹,在這里我們簡單的回顧一下。
在 FSMN提出之前,學(xué)術(shù)界和工業(yè)界最好的語音識別系統(tǒng)采用的是雙向遞歸神經(jīng)網(wǎng)絡(luò)(BRNN, Bi-directional Recurrent Neural Network),這種網(wǎng)絡(luò)能夠?qū)φZ音復(fù)雜的長時相關(guān)性進(jìn)行建模,從而達(dá)到提高識別正確率的功效。但是雙向遞歸神經(jīng)網(wǎng)絡(luò)存在訓(xùn)練復(fù)雜度高,訓(xùn)練不穩(wěn)定以及解碼時延很高的問題,很難使用化。
FSMN的提出很好的解決了上述缺陷。FSMN通過在傳統(tǒng)DNN結(jié)構(gòu)的隱層旁邊增 加一個”記憶模塊存“儲當(dāng)前語音幀周邊的歷史信息和未來信息。FSMN的模型結(jié)構(gòu)如圖(a)所示,圖(b)給出了FSMN的記憶模塊記憶當(dāng)前語音幀左右 各1幀信息時的時序展開結(jié)構(gòu)。由于FSMN的結(jié)構(gòu)中不存在遞歸,可以避免RNN的不穩(wěn)定性,同時由于采用了記憶模塊可以很好的對語音的長時相關(guān)性進(jìn)行建模。

FSMN的成功給了我們一個很好的啟發(fā):對語音的長時相關(guān)性建模并不需要觀察整個句子,也不一定需要使用遞歸結(jié)構(gòu),只要將足夠長的語音上下文信息進(jìn)行良好的表達(dá)就可以對當(dāng)前幀的決策提供足夠的幫助,而卷積神經(jīng)網(wǎng)絡(luò)CNN同樣可以做到這一點。
CNN早在2012年就被用于語音識別系統(tǒng),并且一直以來都有很多研究人員積極投身于基于CNN的語音識別系統(tǒng)的研究,但始終沒有大的突破。最主要的原因是他們沒有突破傳統(tǒng)前饋神經(jīng)網(wǎng)絡(luò)采用固定長度的幀拼接作為輸入的思維定式,從而無法看到足夠長的語音上下文信息。另外一個缺陷是他們只是將CNN視作一種特征提 取器,因此所用的卷積層數(shù)很少,一般只有一到二層,這樣的卷積網(wǎng)絡(luò)表達(dá)能力十分有限。
針對這些問題,結(jié)合研發(fā)FSMN時的經(jīng)驗,我們推出了全新的深度全序 列卷積神經(jīng)網(wǎng)絡(luò)(Deep Fully Convolutional Neural Network, DFCNN)語音識別框架,使用大量的卷積層直接對整句語音信號進(jìn)行建模,更好的表達(dá)了語音的長時相關(guān)性,比學(xué)術(shù)界和工業(yè)界最好的雙向RNN語音識別系統(tǒng) 識別率提升了15%以上。下面我們具體介紹一下DFCNN語音識別框架。
DFCNN的結(jié)構(gòu)如圖(c)所 示,DFCNN直接將一句語音轉(zhuǎn)化成一張圖像作為輸入,即先對每幀語音進(jìn)行傅里葉變換,再將時間和頻率作為圖像的兩個維度,然后通過非常多的卷積層和池化 (pooling)層的組合,對整句語音進(jìn)行建模,輸出單元直接與最終的識別結(jié)果比如音節(jié)或者漢字相對應(yīng)。
DFCNN的工作機(jī)理儼然像是一位德高望重的語音學(xué)專家,通過“觀看”語譜圖即可知道語音中表達(dá)的內(nèi)容。對于很多讀者來說,乍一聽可能以為是在寫科幻小說,但聽完我們下面的分析之后相信大家都會覺得這種架構(gòu)是那么的自然。

圖(c):DFCNN結(jié)構(gòu)圖
首先,從輸入端來看,傳統(tǒng)語音特征在傅里葉變換之后使用各種人工設(shè)計的濾波器組 來提取特征,造成了頻域上的信息損失,在高頻區(qū)域的信息損失尤為明顯,而且傳統(tǒng)語音特征為了計算量的考慮必須采用非常大的幀移,無疑的造成了時域上的信息損失,在說話人語速較快的時候表現(xiàn)的更為突出。因此DFCNN直接將語譜圖作為輸入,相比其他以傳統(tǒng)語音特征作為輸入的語音識別框架相比具有天然的優(yōu)勢。
其次,從模型結(jié)構(gòu)上來看,DFCNN與傳統(tǒng)語音識別中的CNN做法不 同,它借鑒了圖像識別中效果最好的網(wǎng)絡(luò)配置,每個卷積層使用3x3的小卷積核,并在多個卷積層之后再加上池化層,這樣大大增強(qiáng)了CNN的表達(dá)能力,與此同時,通過累積非常多的這種卷積池化層對,DFCNN可以看到非常長的歷史和未來信息,有這兩點就保證了DFCNN可以出色的表達(dá)語音的長時相關(guān)性,相比 RNN網(wǎng)絡(luò)結(jié)構(gòu)在魯棒性上反而更加出色。
最后,從輸出端來看,DFCNN還可以和近期很熱的序列短時分類(CTC)方案完美結(jié)合以實現(xiàn)整個模型的端到端訓(xùn) 練,且其包含的池化層等特殊結(jié)構(gòu)可以使得以上端到端訓(xùn)練變得更加穩(wěn)定。
在和其他多個技術(shù)點結(jié)合后,訊飛DFCNN的語音識別框架在內(nèi)部數(shù)千小時的中文語音短信聽寫任務(wù)上,獲得了相比目前業(yè)界最好的語音識別框架——雙向RNN-CTC系統(tǒng)15%的性能提 升,同時結(jié)合訊飛的HPC平臺和多GPU并行加速技術(shù),訓(xùn)練速度也優(yōu)于傳統(tǒng)的雙向LSTM CTC系統(tǒng)。
DFCNN的提出開辟了語音識別新的一片天地,后續(xù)基于DFCNN框架,我們還將展開更多相關(guān)的研究工作,例如:雙向LSTM和DFCNN都 可以提供對長時歷史以及未來信息的表達(dá),但是這兩種表達(dá)之間是否存在互補(bǔ)性,是值得思考的問題。
相信隨著研究的不斷深入,科大訊飛的語音識別系統(tǒng)將不斷攀登新的高峰!
【參考文獻(xiàn)】
[1] S. Zhang, C. Liu, H. Jiang, S. Wei, L. Dai, and Y. Hu, “Feedforward sequential memory networks: A new structure to learn long-term dependency,” arXiv preprint arXiv:1512.08301, 2015.