潘粵成 劉卓 潘文豪 蔡典侖 韋政松
摘? 要:為了實(shí)現(xiàn)離線狀態(tài)較高正確率的中文普通話語(yǔ)音識(shí)別,提出一種基于深度全卷積神經(jīng)網(wǎng)絡(luò)CNN表征的語(yǔ)音識(shí)別系統(tǒng)的聲學(xué)模型,將頻譜圖作為輸入,在模型結(jié)構(gòu)上參考了VGG模型。在輸出端,該模型可以與連接時(shí)序分類完美結(jié)合,從而實(shí)現(xiàn)整個(gè)模型的端到端訓(xùn)練,將聲波信號(hào)轉(zhuǎn)換成普通話拼音序列。語(yǔ)言模型則采用最大熵馬爾可夫模型,將拼音序列轉(zhuǎn)換為中文文本。實(shí)驗(yàn)表明,此算法在測(cè)試集上已經(jīng)獲得了80.82%的正確率。
關(guān)鍵詞:卷積神經(jīng)網(wǎng)絡(luò);中文語(yǔ)音識(shí)別;連接時(shí)序分類;端到端系統(tǒng)
中圖分類號(hào):TN912.34;TP399 ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2096-4706(2020)05-0065-04
An End-to-End Mandarin Speech Recognition Method Based on CNN/CTC
PAN Yuecheng1,LIU Zhuo1,PAN Wenhao1,CAI Dianlun2,WEI Zhengsong1
(1.School of Automation Science and Engineering,South China University of Technology,Guangzhou? 510641,China;
2.School of Mechanical and Automotive Engineering,South China University of Technology,Guangzhou? 510641,China)
Abstract:In order to achieve Mandarin speech recognition with higher accuracy in offline state,we come up with an acoustic model of a speech recognition system based on deep full convolutional neural network(CNN). We choose the spectrogram of acoustic signals as input. As for the structure of the model,we refer the VGG model. At the output end,the model can be perfectly combined with the connectionist temporal classification (CTC). We realize the end-to-end training of the entire model using this method,and the acoustic signal is directly converted into a Mandarin Pinyin sequence. Our language model uses the Maximum Entropy Markov Model to convert Pinyin sequences into Chinese text. Our experiments show that this algorithm has achieved 80.82% accuracy on our test set.
Keywords:convolutional neural network;Chinese speech recognition;connectionist temporal classification;end-to-end system
0? 引? 言
近些年,深度學(xué)習(xí)在人工智能領(lǐng)域取得了無(wú)可替代的地位,深度神經(jīng)網(wǎng)絡(luò)逐漸替代了傳統(tǒng)的GMM-HMM模型。為了實(shí)現(xiàn)離線狀態(tài)正確率較高的中文普通話語(yǔ)音識(shí)別,本文提出一種基于CNN表征的語(yǔ)音識(shí)別系統(tǒng)的聲學(xué)模型,采用CNN/CTC的方法,此算法在測(cè)試集上已經(jīng)獲得了80.82%的正確率。
1? 項(xiàng)目背景
語(yǔ)音識(shí)別技術(shù),是讓機(jī)器通過(guò)語(yǔ)音識(shí)別把語(yǔ)音信號(hào)轉(zhuǎn)化為相應(yīng)的文本信號(hào)或者命令的技術(shù)[1]。近些年,深度學(xué)習(xí)在人工智能領(lǐng)域迅速發(fā)展,對(duì)語(yǔ)音識(shí)別也產(chǎn)生了深遠(yuǎn)影響,而且已經(jīng)初步應(yīng)用于車載系統(tǒng)、手機(jī)、搜索引擎、電子商務(wù)、機(jī)器人等多個(gè)領(lǐng)域,深層的神經(jīng)網(wǎng)絡(luò)逐漸替代了傳統(tǒng)的GMM-HMM模型[2]。傳統(tǒng)的語(yǔ)音識(shí)別聲學(xué)模型通常采用梅爾頻率倒譜系數(shù)特征(MFCC,Mel Frequency Cepstrum Coefficient)對(duì)GMM-HMM建模,但是MFCC特征具有短時(shí)性,容易受環(huán)境中噪聲的影響,魯棒性較差,還容易忽略幀間的相關(guān)性[3]。
對(duì)語(yǔ)音識(shí)別而言,傳統(tǒng)的模板匹配方法、統(tǒng)計(jì)學(xué)習(xí)方法已趨成熟甚至出現(xiàn)了瓶頸,而利用神經(jīng)網(wǎng)絡(luò)進(jìn)行語(yǔ)音識(shí)別因其巨大優(yōu)勢(shì)而方興未艾[4]。最近人工智能成為熱門話題,神經(jīng)網(wǎng)絡(luò)的研究得到飛速發(fā)展,如何用神經(jīng)網(wǎng)絡(luò)進(jìn)行語(yǔ)音識(shí)別的問(wèn)題得到一定程度上的解決。常用的深度置信神經(jīng)網(wǎng)絡(luò)(DBN,Deep Belief Network)在語(yǔ)音識(shí)別中得到了廣泛的應(yīng)用[5],在DBN網(wǎng)絡(luò)后增加一個(gè)輸出層,則形成一個(gè)深度神經(jīng)網(wǎng)絡(luò)(DNN,Deep Neural Networks),基于HMM-DNN模型的語(yǔ)音識(shí)別系統(tǒng)在識(shí)別正確率上較GMM-HMM模型取得了很大的提高[6,7],但基于HMM-DNN模型的語(yǔ)音識(shí)別是由聲學(xué)模型、語(yǔ)言模型和字典三個(gè)模塊組成的,需要語(yǔ)言學(xué)知識(shí),導(dǎo)致對(duì)一種新的語(yǔ)言搭建識(shí)別系統(tǒng)非常困難。卷積神經(jīng)網(wǎng)絡(luò)(CNN,Convolutional Neural Network)提供了一種平移不變性卷積,可以對(duì)語(yǔ)音多樣性進(jìn)行良好的改善,提高搭建語(yǔ)音識(shí)別系統(tǒng)的效率。
Graves提出連接時(shí)序分類技術(shù)CTC(Connectionist Temporal Classification)[8]。CTC是一種用于序列建模的工具,訓(xùn)練樣本無(wú)需對(duì)齊,其核心是定義了特殊的目標(biāo)函數(shù)。
文獻(xiàn)[5]提出了一種基于CNN的語(yǔ)音識(shí)別方法,本文基于華南理工大學(xué)國(guó)家級(jí)創(chuàng)新創(chuàng)業(yè)項(xiàng)目“自學(xué)習(xí)語(yǔ)音交互系統(tǒng)的研究與開(kāi)發(fā)”的研究,在使用CNN的基礎(chǔ)上在輸出端加入連接時(shí)序分類,從而實(shí)現(xiàn)整個(gè)模型的端到端訓(xùn)練,在很大程度上降低了構(gòu)建語(yǔ)音識(shí)別系統(tǒng)的難度。
2? 基于CNN/CTC的端到端普通話語(yǔ)音識(shí)別方法
本文的端到端普通話語(yǔ)音識(shí)別方法如圖1所示,主要有以下幾個(gè)步驟:
(1)特征提取,將普通的wav語(yǔ)音信號(hào)通過(guò)分幀、加窗等操作轉(zhuǎn)換為卷積神經(jīng)網(wǎng)絡(luò)需要的二維頻譜圖像信號(hào),即語(yǔ)音頻譜圖;
(2)聲學(xué)模型訓(xùn)練,基于Keras和TensorFlow兩種網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練;
(3)CTC解碼,在聲學(xué)模型輸出中,往往包含了大量連續(xù)并且重復(fù)的符號(hào),為此,我們需要將連續(xù)重復(fù)的符號(hào)合并為同一個(gè)符號(hào),然后再除去靜音分隔標(biāo)記符,最終得到實(shí)際的拼音符號(hào)序列;
(4)語(yǔ)言模型轉(zhuǎn)換,使用MEMM模型,將拼音符號(hào)轉(zhuǎn)換成最終的文本并輸出。
3? VGG網(wǎng)絡(luò)結(jié)構(gòu)
本文在模型結(jié)構(gòu)上參考了VGG模型,VGG網(wǎng)絡(luò)結(jié)構(gòu)相比之前的RNN有著更強(qiáng)的魯棒性,并且表達(dá)能力非常強(qiáng),可以看到很長(zhǎng)的歷史和未來(lái)信息。
VGG包括VGG16和VGG19,它們的網(wǎng)絡(luò)深度不同,如圖2所示。
4? 連接時(shí)序分類
連接時(shí)序分類是在自動(dòng)語(yǔ)音識(shí)別技術(shù)中計(jì)算損失函數(shù)的一種方法。與傳統(tǒng)的聲學(xué)模型訓(xùn)練比較,CTC使用的是端到端訓(xùn)練,并不需要輸出文字與輸入語(yǔ)音在時(shí)間上對(duì)齊,只需要給定輸入端和輸出端的序列,CTC輸出的就是序列預(yù)測(cè)的概率,這種方式在很大程度上降低了構(gòu)建語(yǔ)音識(shí)別系統(tǒng)的難度。其結(jié)構(gòu)如圖3所示。
4.1? 前向算法
前向變量為α(t,u),表示t時(shí)刻在節(jié)點(diǎn)u的前向概率值,其中u∈[1,2U+1]。
初始化:
α(1,1)=
α(1,2)=
α(1,u)=0,?u>2
遞推關(guān)系:
α(t,u)=
其中,f(u)=
4.2? 后向算法
初始化:
β(T,U′)=1
β(T,U′-1)=1
β(T,u)=0,?u
α(1,u)=0,?u>2
遞推關(guān)系:
β(t,u)=
其中,f(u)=
4.3? 取對(duì)數(shù)
ln(a+b)=lna+ln(1+elnb-lna)
4.4? 最大似然函數(shù)
CTC的損失函數(shù)使用最大似然函數(shù):
L(S)=
L(x,z)=-lnp(z|x)
根據(jù)前后向變量,可求得:
p(z|x)=
從而得到:
L(x,z)=
4.5? BP訓(xùn)練過(guò)程
表示t時(shí)刻輸出k的概率, 表示t時(shí)刻對(duì)應(yīng)輸出節(jié)點(diǎn)k在做softmax轉(zhuǎn)換之前的值:
考慮:t時(shí)刻經(jīng)過(guò)k節(jié)點(diǎn)的路徑。
其中B(z,k)表示節(jié)點(diǎn)為k的集合。
考慮:α(t,u)β(t,u)=,
其中X(t,u)表示所有在t時(shí)刻經(jīng)過(guò)節(jié)點(diǎn)u的路徑。
則:
得到損失函數(shù)對(duì)? 的偏導(dǎo)數(shù):
同時(shí)可以得到損失函數(shù)對(duì)? 的偏導(dǎo)數(shù):
后續(xù)可以使用BPTT算法得到損失函數(shù)對(duì)神經(jīng)網(wǎng)絡(luò)參數(shù)的偏導(dǎo)[9]。
5? 最大熵馬爾可夫模型
最大熵模型是在已經(jīng)先驗(yàn)分布的前提下求解特征函數(shù)f(x,y)的最優(yōu)概率分布P(y|x)。模型如圖4所示。
5.1? HMM模型
HMM模型表達(dá)式如下:
P(X)=
其中,Y為狀態(tài)序列,X為觀測(cè)序列,p(yi|yi-1)為從yi-1到y(tǒng)i的條件概率分布,p(xi|yi)為狀態(tài)yi的輸出觀測(cè)概率,初始概率為P0(y)。顯然,HMM依賴已知的概率分布和歷史經(jīng)驗(yàn)來(lái)實(shí)現(xiàn)決策,但實(shí)際上能提供的訓(xùn)練數(shù)據(jù)是少量且稀疏的,我們不可能知道所有的數(shù)據(jù)分布情況。所以需要接下來(lái)介紹的MEMM來(lái)解決在數(shù)據(jù)稀疏的條件下估計(jì)未知x,y的條件概率這個(gè)問(wèn)題。
5.2? MEMM模型
MEMM模型表達(dá)式如下:
i=1,2,…,T
MEMM用p(yi|yi-1,xi)來(lái)代替HMM中的p(yi|yi-1)和p(xi|yi),根據(jù)先前狀態(tài)和當(dāng)前觀測(cè)預(yù)測(cè)當(dāng)前狀態(tài)。每個(gè)分布函數(shù)pyi-1(yi|xi)都是一個(gè)服從最大熵分布的指數(shù)模型。MEMM在限定條件下求解最優(yōu)條件概率,在訓(xùn)練過(guò)程中使特征多項(xiàng)式fi(x,y)收斂于λi,并求解此時(shí)的xi與yi-1的正則化因子,在此解碼過(guò)程中直接求得條件概率p(yi|yi-1,xi)。[10]
6? 結(jié)果及分析
為了檢驗(yàn)基于CNN/CTC的端到端普通話語(yǔ)音識(shí)別方法的有效性,我們使用此方法訓(xùn)練出聲學(xué)模型,實(shí)驗(yàn)中使用了清華大學(xué)THCHS-30中文語(yǔ)音數(shù)據(jù)集、Free ST Chinese Mandarin Corpus數(shù)據(jù)集、AISHELL-1開(kāi)源版數(shù)據(jù)集、Primewords Chinese Corpus Set 1數(shù)據(jù)集、aidatatang_200zh數(shù)據(jù)集、MagicData數(shù)據(jù)集。其中訓(xùn)練語(yǔ)音625 000句,驗(yàn)證集語(yǔ)音2 000句。由于連續(xù)語(yǔ)音識(shí)別結(jié)果為一連串的詞語(yǔ),所以我們可以使用詞錯(cuò)誤率(Word error rate,WER)作為一個(gè)評(píng)測(cè)標(biāo)準(zhǔn),詞錯(cuò)誤率與系統(tǒng)性能成反比。
本實(shí)驗(yàn)使用的CNN網(wǎng)絡(luò)輸入層為200維的特征值序列,一條語(yǔ)音數(shù)據(jù)最大長(zhǎng)度為1 600,約為16 s;隱藏層包括10個(gè)卷積層、5個(gè)池化層、1個(gè)Reshape層、2個(gè)全連接層,卷積核大小為3×3,池化窗口大小為2;輸出層維度為神經(jīng)網(wǎng)絡(luò)最終輸出的每一個(gè)字符向量維度的大小,激活函數(shù)使用softmax;CTC層使用loss作為損失函數(shù),實(shí)現(xiàn)連接性時(shí)序多輸出。
從表1中數(shù)據(jù)可以得出,文中基于CNN/CTC的端到端普通話語(yǔ)音識(shí)別方法在驗(yàn)證集上詞錯(cuò)率為19.18%。文獻(xiàn)[11]中給出的基于卷積神經(jīng)網(wǎng)絡(luò)算法的語(yǔ)音識(shí)別算法在THCHS30數(shù)據(jù)庫(kù)上測(cè)試錯(cuò)率在22.19%~23.68%之間,相比之下,本文加入CTC層后詞錯(cuò)誤率下降3.01%~4.50%左右。
下面來(lái)看基于CNN/CTC的端到端普通話語(yǔ)音識(shí)別方法的訓(xùn)練過(guò)程。本實(shí)驗(yàn)設(shè)置迭代輪數(shù)epoch為50,每500步保存一次模型,每次訓(xùn)練16個(gè)數(shù)據(jù)。圖5為此方法的訓(xùn)練收斂曲線。
可見(jiàn),訓(xùn)練loss最終收斂在20%左右。
驗(yàn)證數(shù)據(jù)的收斂曲線
7? 結(jié)? 論
通過(guò)在CNN的基礎(chǔ)上加入CTC層,大大減少了構(gòu)建語(yǔ)音識(shí)別系統(tǒng)的難度,為實(shí)現(xiàn)離線語(yǔ)音識(shí)別提供了一種方法,其語(yǔ)音識(shí)別正確率達(dá)到80.82%。在今后的工作中,擬嘗試加入針對(duì)說(shuō)話人進(jìn)行識(shí)別的功能,做一個(gè)說(shuō)話人識(shí)別系統(tǒng),以解決語(yǔ)音識(shí)別系統(tǒng)應(yīng)用在很多場(chǎng)景時(shí)的問(wèn)題。
參考文獻(xiàn):
[1] 張德良.深度神經(jīng)網(wǎng)絡(luò)在中文語(yǔ)音識(shí)別系統(tǒng)中的實(shí)現(xiàn) [D].北京:北京交通大學(xué),2015.
[2] 林俊潛.基于神經(jīng)網(wǎng)絡(luò)和小波變換的語(yǔ)音識(shí)別系統(tǒng)研究 [D].廣州:廣東工業(yè)大學(xué),2013.
[3] 鄭文秀,趙峻毅,文心怡,等.一種基于瓶頸復(fù)合特征的聲學(xué)模型建立方法 [J/OL].計(jì)算機(jī)工程:1-6(2019-12-16).https://doi.org/10.19678/j.issn.1000-3428.0056278.
[4] 唐美麗,胡瓊,馬廷淮.基于循環(huán)神經(jīng)網(wǎng)絡(luò)的語(yǔ)音識(shí)別研究 [J].現(xiàn)代電子技術(shù),2019,42(14):152-156.
[5] 王嘉偉.基于卷積神經(jīng)網(wǎng)絡(luò)的語(yǔ)音識(shí)別研究 [J].科學(xué)技術(shù)創(chuàng)新,2019(31):71-73.
[6] DAHL G E,YU D,DENG L,et al. Context-dependent pre-trained deep neural networks for large-vocabulary speech recognition [J].IEEE Transactions on Audio,Speech and Language Processing,2012,20(1):30-42.
[7] SEIDE F,LI G,YU D. Conversational speech transcription using context-dependent deep neural networks [C]//12th Annual Conference of the International Speech Communication Association,2011.
[8] GRAVES A,F(xiàn)ERN?NDEZ S,GOMEZ F. Connectionist temporal classification:Labelling unsegmented sequence data with recurrent neural networks [C]// Machine Learning,Proceedings of the Twenty-Third International Conference (ICML 2006),2006:369-376.
[9] GRAVES A. Supervised Sequence Labelling with Recurrent Neural Networks [M]. Berlin,Heidelberg:Springer Berlin Heidelberg,2012:52-81.
[10] KLINGER R,TOMANEK K. Classical Probabilistic Models and Conditional Random Fields [J].Algorithm Engineering Report,2007,2(13):5-6
[11] 楊洋,汪毓鐸.基于改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)算法的語(yǔ)音識(shí)別 [J].應(yīng)用聲學(xué),2018,37(6):940-946.
作者簡(jiǎn)介:潘粵成(1998-),男,漢族,廣西融水人,就讀于自動(dòng)化專業(yè),本科在讀,研究方向:自動(dòng)語(yǔ)音識(shí)別。