摘 ?要:隨著人工智能技術研究的進步和深度神經(jīng)網(wǎng)絡的興起,基于神經(jīng)網(wǎng)絡的聲學模型的應用性能顯著提高。為進一步促進基于深度學習的語音識別技術的應用,基于深度學習技術和CNN、GRU、Bi-RNN模型,文章探究了深度學習技術在智能語音識別任務中的應用前景。以清華大學語音與語言技術中心(CSLT)出版的開放式中文語音數(shù)據(jù)庫THCHS30為實驗數(shù)據(jù)集,該實驗對所搭建模型進行訓練與測試,并將不同模型在訓練不同輪次之后的詞錯率進行橫縱向對比。
關鍵詞:語音識別;聲學模型;神經(jīng)網(wǎng)絡
中圖分類號:TP181 ? ?文獻標識碼:A 文章編號:2096-4706(2021)12-0075-05
Abstract: With the progress of artificial intelligence technology and the rise of deep neural network, the application performance of acoustic model based on neural network is significantly improved. In order to further promote the application of voice recognition technology based on deep learning, this paper explores the application prospect of deep learning technology in intelligent voice recognition tasks based on deep learning technology and CNN, GRU, Bi-RNN models. Taking the open chinese voice database THCHS30 published by the Center for Speech and Language Technology (CSLT) of Tsinghua University as the experimental data set, the built model is trained and tested in this experiment, and the word error rates of different models after different rounds of training are compared horizontally and vertically.
Keywords: voice recognition; acoustic model; neural network
0 ?引 ?言
語言作為人與人之間的基本交流手段,在日常生活中起著至關重要的作用,其不但幫助人類有效實現(xiàn)信息互傳和互通,也具備實現(xiàn)人機溝通的應用前景。隨著人工智能技術的不斷革新,國內外聲學研究學者逐漸將其研究重心轉移至智能語音識別(Automatic Speech Recognition, ASR)之中,進而催生了語音信號處理領域的進一步發(fā)展[1]。具體而言,語音識別的研究主體為“語音”本身,結合語音信號處理技術和模式識別技術使機器自動辨識和理解聲音發(fā)出者表達的意義,實現(xiàn)“讓機器能夠聽懂人說的話”的最終目標。
在當下計算機技術和信息處理技術共同高速發(fā)展的大環(huán)境下,實現(xiàn)人機交互的途徑呈爆發(fā)式發(fā)展。一方面,語音輸入作為一種高效、便捷、適用性強的人機交互方式,寄托著人們對實現(xiàn)與智能載體交流、溝通的巨大期盼[2,3]。另一方面,語音識別作為一種新興的交叉方向,需要以人工智能、語音語言學、通信、信號處理等各領域知識融會貫通實現(xiàn)。因此,語音識別的實現(xiàn)相較于一般人工智能任務具有更嚴峻的難度和挑戰(zhàn),但有效的語音識別的實現(xiàn)能在最大程度上提高人類社會的生產、生活質量和效率,進而推動科學研究的發(fā)展與文明社會的共同進步。
現(xiàn)階段,語音識別技術的成果已在較多工業(yè)領域得到應用,主要包括計算機應用、自動化辦公、智能電子通信、新型國防技術等,智能語音的實現(xiàn)有效地推動了上述產業(yè)的技術創(chuàng)新和產品創(chuàng)新[4,5]。例如,由Amazon公司出品的“Alexa”智能語音助理、Microsoft公司出品的“Cortana”人機交互器、Alibaba公司出品的“天貓精靈”等智能語音處理系統(tǒng)均帶來了極高的經(jīng)濟價值,同時促進了科技進步[6-8]。
簡言之,語音識別技術發(fā)展的根本目的在于創(chuàng)造出一種具有聲音接受和含義理解的智能設備,并將這種具備了語音信息處理能力的智能設備作為一種新的交流對象融入人類社會的日常生活,進而實現(xiàn)機器同樣具備聽、說、譯的能力,能對輸入語音做出必要理解和適度反應[9,10]。同時,上述的智能人機交互技術應不受時間和地點等因素的限制,因此上述方向均是基于機器學習的語音識別應用研究的重心所在。
面向于當前語音識別技術的重要作用,本項目基于深度學習技術提出了以CNN、GRU、Bi-RNN為核心的新型的智能語言識別助手,并且本文以清華大學語音與語言技術中心(CSLT)出版的開放式中文語音數(shù)據(jù)庫THCHS30為實驗數(shù)據(jù)集,分別訓練和測試了上述模型,以詞錯誤率(WER)為模型性能的評判標準,將不同模型在訓練不同輪次之后的詞錯率進行橫縱向對比,并用錄制的語音進行效果測試。
1 ?方法論
本章主要介紹實驗所選用的CNN、Bi-RNN和GRU三種神經(jīng)網(wǎng)絡聲學模型、語言模型和涉及的算法并分析三種聲學模型的優(yōu)勢。
1.1 ?基于卷積神經(jīng)網(wǎng)絡的智能語音助手
1.1.1 ?卷積神經(jīng)網(wǎng)絡
卷積神經(jīng)網(wǎng)絡(CNN)是一種典型的前饋式神經(jīng)網(wǎng)絡,其通過卷積計算實現(xiàn)輸入特征的自動提取,并自動保留高權重特征,過濾低權重特征。CNN主要包含以下優(yōu)勢:
(1)局部連接,即CNN模型中各層的每個神經(jīng)元只和其中一部分神經(jīng)元相連,而非全部神經(jīng)元。
(2)參數(shù)共享,在CNN進行特征提取時,其通過卷積核滑動運算的方式與所在層的所有神經(jīng)元共享一組卷積核參數(shù)。
(3)下采樣:下采樣的實現(xiàn)主要通過卷積神經(jīng)網(wǎng)絡中的池化計算完成,以降低特征維度、減少特征數(shù)量,這將使網(wǎng)絡僅保留部分對分類效果提升貢獻更大的特征信息,自動過濾低權重信息。本文所用的CNN模型結構如圖1所示。
CNN通過多層感知機抽取模型輸入特征向量中的代表性特征,并通過池化對所提取的特征向量進行降維,以完成對輸入數(shù)據(jù)的處理并完成重要特征信息的高效提取。
對于基本的CNN模型而言,其主要有輸入層、卷積層、隱藏層和全連接層構成,而隱藏層中又主要包含激活層與池化層,其具體功能如下文所述:
(1)輸入:用于數(shù)據(jù)輸入。
(2)卷積:卷積層和池化層是CNN區(qū)別于其他類型神經(jīng)網(wǎng)絡的、獨有的結構,其中卷積層更是CNN的核心。卷積操作的實質就是通過多個卷積核與輸入的特征向量進行卷積計算。簡言之,其通過卷積核在輸入圖像中進行滑動式特征提取,以返回特征信息。
(3)激活函數(shù):由于卷積是一種線性運算,因此需要對卷積層輸出的結果做一個非線性映射,常用的激活函數(shù)ReLU(Rectified Linear Unit)具有更快的收斂速度和更簡便的梯度求解方式:
(4)池化:池化層常置于卷積層之后,以實現(xiàn)特征降維、減少訓練參數(shù)、降低模型計算復雜度,并防止訓練過程中出現(xiàn)過擬合,有助于CNN提取深層次的特征。池化方案通常為最大池化(Max Pooling),通過池化操作,可以很大程度上減少模型的計算量和特征的尺寸,保留有用信息,剔除冗余信息,且使模型的泛化能力更強。
(5)全連接:全連接層將連接前層輸出的所有神經(jīng)元,以實現(xiàn)保留有用信息,減少特征信息損失的目的。
(6)輸出:用于最后輸出結果。
1.1.2 ?模型搭建
參考當下應用效果較好的CNN模型搭建方案,本項目中CNN模型中的結構設置如下所示。其共包含10個卷積層、5個池化層和2個全連接層,且卷積填充(padding)為“same”;各卷積層的激活函數(shù)選用ReLU函數(shù),接著再輸出到下一層。本文CNN具體參數(shù)設置如表1所示。
1.2 ?基于門控制環(huán)單元網(wǎng)絡的智能語音助手
1.2.1 ?門控制環(huán)單元網(wǎng)絡
門控循環(huán)單元(Gate Recurrent Unit, GRU)是循環(huán)神經(jīng)網(wǎng)絡(Recurrent Neural Network, RNN)的變體,所以在介紹GRU之前先簡單介紹RNN相關知識。RNN是一種隱層自連接網(wǎng)絡,其對輸入序列數(shù)據(jù)上下文的依賴關系具有較好的表達能力,其結構如圖2所示。
在每個步中,RNN模型對一個輸入xi和前一個節(jié)點的輸出執(zhí)行計算,生成的輸出hi將被用于下一個節(jié)點并進行相應評估。然而,在RNN模型的訓練過程中,其存在長期依賴的問題,即隨著時間增加,出現(xiàn)梯度消失現(xiàn)象。
GRU作為RNN的一種變體,能減少訓練時間,并且使用的是能夠記住長期依賴關系的網(wǎng)絡。通過更新門和復位門兩個門函數(shù)可以實現(xiàn)對輸入值、記憶值和輸出值的控制,GRU結構模型如圖3所示。
其中zt代表更新門,rt代表重置門,σ為sigmoid函數(shù),輸入為當下時刻的輸入x與上一個時刻的輸出ht-1,輸出這個時刻的輸出值ht,其公式為:
rt=σ(Wr·[ht-1,xt]) ? ? ? ? ? ? ? ? ? ? ? ?(2)
zt=σ(Wz·[ht-1,xt]) ? ? ? ? ? ? ? ? ? ? ? ?(3)
=tanh(·[rt*ht-1,xt]) ? ? ? ? ? ? ? ? ? (4)
ht=(1-zt)·ht-1+zt· ? ? ? ? ? ? ? ? ? ? ? ? (5)
其中[]表示向量相連,*代表矩陣乘積。式(2)、(3)表示利用xt和ht-1經(jīng)過權重相乘通過sigmoid,得到兩個門控值,式(4)中rt·ht-1表示重置之后的數(shù)據(jù),得到的,相當于記憶了當前時刻的狀態(tài),式(5)表示忘記傳遞下來的ht-1中某些維度信息,并加入當前節(jié)點中某些維度的信息。
1.2.2 ?模型搭建
在本實驗中,訓練使用的模型結構為2個全連接層+GRU網(wǎng)絡+2個全連接層,實驗中模型采用ReLU激活函數(shù)、各層可訓練節(jié)點數(shù)為512;設置四層GRU網(wǎng)絡,一層GRU返回最后一個輸出,一層GRU向后處理輸入序列并返回反向的序列,再經(jīng)過add層將特征疊加,兩層GRU再跟一層add層為一組,均用he_normal進行初始化。在模型的全連接層,全連接層節(jié)點數(shù)為1 420,且采用softmax函數(shù)為全連接層激活函數(shù)。同時,為防止過擬合現(xiàn)象的發(fā)生且提高模型訓練效率,本實驗模型中使用了rate=0.5的Dropout層,且模型在訓練過程中根據(jù)損失函數(shù)自動更新權重。
1.3 ?基于雙向循環(huán)神經(jīng)網(wǎng)絡的智能語音助手
1.3.1 ?雙向循環(huán)神經(jīng)網(wǎng)絡(Bi-RNN)原理
Bi-RNN網(wǎng)絡是一種雙向的RNN模型,即使用兩個方向的RNN網(wǎng)絡。這可以使Bi-RNN 模型在學習到正向規(guī)律的同時,還對反向規(guī)律進行學習,進而提高循環(huán)網(wǎng)絡模型的擬合度,如圖4所示。
x代表一個輸入向量,A是一個向量,它表示隱藏層的值,y表示輸出向量。
如上所示,每個時刻正向學習的和反向學習結合起來完成t時刻的預測yt,式(6)是輸出層的計算公式,式(7)、式(8)是隱藏層的計算公式,它是循環(huán)層。G、f代表激活函數(shù),U、U′、W、W′、V和V′代表不同的權重矩陣。
1.3.2 ?模型搭建
本次訓練使用的模型結構為3個全連接層+Bi-RNN網(wǎng)絡+2個全連接層。全連接層除最后一層外,均設置為512個節(jié)點,激活函數(shù)為RELU,使用偏置,用he_normal進行初始化;Bi-RNN網(wǎng)絡采用GRU作為基本單元,向后處理輸入序列并返回反向的序列,用he_normal進行初始化,與一個批標準化層和時間分布層連接。批標準化層能使訓練更快,可以使用更高的學習率,最后一層全連接層節(jié)點數(shù)為1 424,最終結果輸出到softmax輸出層中。模型訓練和測試的方式都和上述兩種網(wǎng)絡相同,訓練階段通過計算損失、優(yōu)化器優(yōu)化損失函數(shù)來更新網(wǎng)絡權重,測試階段測試模型性能。為減輕網(wǎng)絡的過擬合問題,網(wǎng)絡模型除輸出層以外均采用了0.2的dropout結構。
1.4 ?語言模型設計
詞頻統(tǒng)計被應用于本項目中,以得到各個詞的概率跟前詞到這一個詞的轉移概率。同時,THCHS-30的文本信息主要選取于大容量新聞,所以統(tǒng)計詞頻時選用語料庫為一篇新聞文獻。
其中,每個拼音可以對應于多個漢字,而每個漢字每次僅有一個讀音。因此,將每個拼音所對應的字從左向右依次連接,就成為一張有向圖,如圖5所示。
其中y代表拼音,w代表拼音的候選字,使用最短路徑算法尋找從起點開始到終點概率最大的路徑。本實驗中設置第n步的閾值為[(0.001)]n,只保留大于閾值的路徑。
2 ?案例分析
特征提取、聲學模型、測試驗證是語音識別算法的三個關鍵部分。由于神經(jīng)網(wǎng)絡模型比傳統(tǒng)聲學模型有更好的效果,所以實驗中采取CNN、GRU、Bi-RNN三種神經(jīng)網(wǎng)絡模型來進行對比實驗。
2.1 ?特征參數(shù)提取
在基于機器學習的語音識別系統(tǒng)的應用過程中,數(shù)據(jù)集準備至關重要。具體而言,本項目選取清華大學的公用中文語音數(shù)據(jù)庫THCHS30進行實驗,且該數(shù)據(jù)集語音數(shù)據(jù)詳細信息可在python數(shù)據(jù)庫中詳細了解。其主要分為四部分:A部分句子為ID(1~250),B部分句子為ID(251~500),C部分句子為ID(501~750),D部分句子為ID(751~1 000)。本實驗在window10系統(tǒng)環(huán)境下的服務器上部署基于TensorFlow的深度學習庫keras,實驗用Pycharm 2021.1進行,編譯器使用Python3.7,進行神經(jīng)網(wǎng)絡模型的搭建、訓練和測試。
首先,智能聲音識別系統(tǒng)將讀取樣本數(shù)據(jù),并進行格式轉換,以音頻A11_0.WAV為例。音頻時長7.8 s,采樣率16 kHz,采樣點124 800個,先將音頻文件轉換為字符串,再轉換為short型數(shù)據(jù)。
之后,將信號進行分幀,幀長25 ms,加漢明窗以提供變換結果的分辨率,所加窗函數(shù)代碼為w = 0.54 - 0.46 * np.cos(2 * np.pi * (x) / (400 - 1) ),幀移10 ms,來彌補加窗造成的信號削弱。接著對一幀信號做快速傅立葉變換,取絕對值進行歸一化處理,因為原始400列數(shù)據(jù)的對稱性,取前200列數(shù)據(jù)。
最后,本實驗進行取對數(shù),進行補0操作,將輸入data_input整形為[1 600,200,1]的三維數(shù)組形式,計算data_input的input_length數(shù)值。
2.2 ?模型訓練細節(jié)及評價指標
在模型訓練階段,模型輸入為data_input和input_length,系統(tǒng)實驗及測試為戴爾筆記本(操作系統(tǒng):Win10 64位;處理器:Intel(R) Core(TM) i5-7200U CPU @ 2.50 GHz 2.70 GHz;內存:4 GB;軟件環(huán)境:python3.7),損失函數(shù)未CTC loss,優(yōu)化器未Adam,訓練回合數(shù)為4 000回合,批次大小為8。
在模型測試階段,本實驗選用隨機錄制的單聲道,采樣率16 kHz,采樣大小16 bits的語音及逆行識別,識別任務通過100個音頻來計算每條音頻的WER并取平均值。WER計算公式如式(9)所示:
WER=×100% ? ? ? ? ? ? ? ? ? (9)
其中,S為替換錯誤詞的數(shù)量,D為刪除錯誤詞的數(shù)量,I為插入錯誤詞的數(shù)量。
2.3 ?實驗結果與分析
2.3.1 ?測試方法
針對語音識別系統(tǒng)的性能測試主要進行同一模型訓練不同輪次對比和訓練同一輪次時不同模型性能對比。
首先,本實驗進行了同一模型訓練不同輪次對比,由于同一模型在訓練輪次不一時,準確率也會不同,因此每個模型在訓練時步長設置為4 000,在訓練4 000、8 000、12 000、16 000輪時進行保存,取100條音頻文件進行拼音識別并計算識錯率,求取WER均值。測試方法采用控制變量法,在同一臺筆記本電腦上進行訓練避免由于處理器等設備不同,影響實驗結果的可靠性。其次,本實驗對訓練同一輪次時不同模型性能進行對比,不同的模型性能效果不同,因此在訓練輪次相同的時候,取100條音頻文件進行拼音識別并計算平均識錯率,來對比不同模型的識別效果。
2.3.2 ?結果分析
在項目所提的各類模型訓練完成后,本實驗對其最終性能進行評估,如表2所示。
橫向標題表示模型訓練的輪次,縱向標題表示訓練所用的聲學模型。根據(jù)實驗結果繪制折線圖如圖6所示。
由圖6可知,每個模型在訓練輪次增大的時候,性能都能得到提升,訓練倫次由4 000變?yōu)?6 000時,CNN模型識錯率從20.94%下降到了0.84%;GRU模型識錯率從47.04%下降到了5.80%,Bi-RNN雖然變化較小,但也從最初的3.84%下降到了1.98%。這表明每個模型在訓練輪次增大的時候,性能都能得到提升。在模型訓練過程中,可以觀測到loss值不斷下降,下降趨勢與學習率的設定有關,在訓練量足夠大時,loss值會逐漸趨于穩(wěn)定并下降到一個較小的值。
縱向對比來看,在訓練4 000輪時,Bi-RNN模型效果遠好于CNN和GRU,訓練輪次達到16 000時,CNN的識錯率在三種模型中最低,性能最好。由于本實驗CNN網(wǎng)絡的結構相比于其他兩種網(wǎng)絡更加復雜,在訓練過程中,CNN網(wǎng)絡的訓練所需時間明顯長于GRU和Bi-RNN網(wǎng)絡。
本設計的識別結果誤差主要體現(xiàn)在設計模型時,模型性能計算和最終匹配閾值也會一定程度上影響到結果,存在一定主觀誤差。
3 ?結 ?論
面向于日益興起的人工智能技術,進一步將其應用于產業(yè)實踐至關重要。其中,基于深度學習的智能語音識別技術作為當下最熱門的研究方向之一,充分結合、應用與創(chuàng)新將為科技發(fā)展注入新鮮活力。鑒于上述實際需求本文基于不同深度學習聲學模型提出了一種新型的智能語音識別助手,并以語音識別系統(tǒng)的識錯率為評價依據(jù)對所提出方案進行評估,其具體結論為:
(1)面對于語音識別任務,本文首先介紹了基于深度學習的智能語音識別的技術基礎,并對信號處理與特征提取過程進行探討與研究,并對包括CNN、GRU、Bi-RNN在內的三種深度學習智能語音識別網(wǎng)絡進行對比與分析。
(2)在實驗進行中,以公用中文語音數(shù)據(jù)庫THCHS30為實驗數(shù)據(jù),本文在window10系統(tǒng)下Python環(huán)境內搭建實驗所需模型,并基于Tensorflow及Keras工具箱搭建、訓練和測試CNN、GRU和Bi-RNN三種聲學模型,并通過CUDA及Cudnn實現(xiàn)模型訓練加速。之后,以聲學模型在測試集中的WER指標為評價參數(shù),對訓練后的三種模型進行評價。實驗結果表明,GRU模型相比于CNN和Bi-RNN有著較大的性能提升;而在訓練輪次達到16 000時,CNN模型相比GRU和Bi-RNN有著最低的識錯率。在訓練輪次足夠多的時候能夠很好地實現(xiàn)語音轉文字。
(3)經(jīng)過三種不同智能語音識別模型的訓練與測試,結果表明,本文所提出的三種不同的聲學模型均能夠實現(xiàn)中文語音識別的功能。然而,在未來的研究過程中仍需要在模型選擇、模型優(yōu)化、算法優(yōu)化及語音識別模型抗噪性加強等方面進行實驗與創(chuàng)新。具體而言,隨著時代的發(fā)展,工業(yè)實際生產為語音識別的應用提出了新的要求,且大量新興的模型搭建方案被不同學者所提出,因此,未來實驗應注重對新興技術的實驗、分析與應用。其次,模型優(yōu)化與算法優(yōu)化是快速實現(xiàn)基于深度學習的智能語音識別助手系統(tǒng)的核心所在,其同樣需要學者投入更多的精力。此外,語音識別模型抗噪性的優(yōu)劣與其語音識別效果直接相關,而現(xiàn)階段的模型仍存在抗噪性較弱的現(xiàn)象,這需要學者們在未來的研究中進一步解決與改善。
參考文獻:
[1] 劉明珠,鄭云非,樊金斐,等.基于深度學習法的視頻文本區(qū)域定位與識別 [J].哈爾濱理工大學學報,2016,21(6):61-66.
[2] 何湘智.語音識別的研究與發(fā)展 [J].計算機與現(xiàn)代化,2002(3):3-6
[3] 張會云,黃鶴鳴.基于異構并行神經(jīng)網(wǎng)絡的語音情感識別 [J/OL].計算機工程:1-7[2021-05-14].https://doi.org/10.19678/j.issn.1000-3428.0061076.
[4] 陳方,高升.語音識別技術及發(fā)展 [J].電信科學,1996(10):54-57.
[5] 袁翔.基于HMM和DNN的語音識別算法研究與實現(xiàn) [D].贛州:江西理工大學,2017.
[6] 戚龍,趙丹.基于BP神經(jīng)網(wǎng)絡的非特定人語音識別算法 [J].科學技術與工程,2017,17(31):277-282.
[7] 劉加.漢語大詞匯量連續(xù)語音識別系統(tǒng)研究進展 [J].電子學報,2000(1):85-91.
[8] 杜利民,侯自強.漢語語音識別研究面臨的一些科學問題 [J].電子學報,1995(10):110-116+61.
[9] 宋麗亞.基于小波變換的說話人語音特征參數(shù)研究 [D].西安:西安電子科技大學,2004.
[10] 李輝,倪時策,肖佳,等.面向互聯(lián)網(wǎng)在線視頻評論的情感分類技術 [J].信息網(wǎng)絡安全,2019(5):61-68.
作者簡介:唐永軍(1974.09—),男,漢族,內蒙古臨河人,副教授,軟件工程碩士,主要研究方向:軟件工程、計算機技術及應用。