陳 立 朱丙麗
1(重慶幼兒師范高等專(zhuān)科學(xué)校初等教育與應(yīng)用技術(shù)系 重慶 404047)2(重慶三峽學(xué)院計(jì)算機(jī)科學(xué)與工程學(xué)院 重慶 404199)
深度神經(jīng)網(wǎng)絡(luò)是當(dāng)前機(jī)器學(xué)習(xí)領(lǐng)域流行的方法,由于其靈活和高性能的特點(diǎn),被廣泛應(yīng)用于多個(gè)領(lǐng)域。其中序列到序列模型是對(duì)于動(dòng)態(tài)長(zhǎng)度的輸入序列映射到動(dòng)態(tài)長(zhǎng)度的輸出序列的特殊模型[1]。經(jīng)典的序列到序列模型包括編碼和解碼兩個(gè)模塊,編碼模塊用來(lái)從輸入源中捕捉整體信息,解碼模塊產(chǎn)生目標(biāo)輸出。
序列到序列模型對(duì)于編解碼過(guò)程的訓(xùn)練是比較困難的,因?yàn)榻獯a依賴于輸入狀態(tài)的最后一個(gè)隱含層,當(dāng)源輸入或目標(biāo)輸出太長(zhǎng)時(shí),解碼效果會(huì)下降[2]。為解決此問(wèn)題,現(xiàn)在的序列到序列模型一般都引入注意力機(jī)制[3]。注意力機(jī)制通過(guò)在編解碼狀態(tài)中引入快捷聯(lián)系以避免上述問(wèn)題。注意力機(jī)制讓模型聚焦于來(lái)自編碼器的部分而忽視其他一些次要信息。根據(jù)這種策略,很多基于注意力的模型被應(yīng)用于變長(zhǎng)序列的轉(zhuǎn)換任務(wù),例如機(jī)器翻譯[4]、語(yǔ)音識(shí)別[5]和對(duì)話生成[6]等。
由于注意力機(jī)制的重要性,很多學(xué)者致力于研究如何發(fā)展、改進(jìn)這一機(jī)制。有學(xué)者提出了一種只計(jì)算輸入序列子集的方法,降低了每個(gè)編碼步驟的計(jì)算成本[7]。還有研究通過(guò)對(duì)分類(lèi)的隨機(jī)變量采樣,用硬邊界替代傳統(tǒng)的軟邊界[8],以及用一種新的機(jī)制來(lái)加強(qiáng)單調(diào)性并使用在線編碼,使模型具有序列到序列的能力[9]。有不少基于通用注意力機(jī)制的模型都致力于改進(jìn)編碼器與解碼器相關(guān)性的評(píng)分機(jī)制[10],但這一類(lèi)方法大多都沒(méi)有考慮合并前一時(shí)間步驟的信息以協(xié)助評(píng)分功能。
本文提出一種全新的注意力打分機(jī)制,該機(jī)制將多尺度卷積與來(lái)自歷史步驟的上下文信息結(jié)合,將新機(jī)制應(yīng)用于序列到序列的語(yǔ)音識(shí)別以及文本到語(yǔ)音系統(tǒng),實(shí)驗(yàn)結(jié)果表明新機(jī)制具有更好的性能和更高的魯棒性。
(1)
式中:Align為注意力機(jī)制中的對(duì)齊函數(shù);Score表示映射(RM×RN)→R,M表示編碼器的隱含單元數(shù)量,N表示解碼器的隱含單元數(shù)量。解碼器模塊在t時(shí)刻根據(jù)之前層的輸出和上下文信息ct最終通過(guò)式(2)生成目標(biāo)序列。
(2)
注意力機(jī)制的評(píng)分方程產(chǎn)生評(píng)分以用來(lái)計(jì)算源側(cè)與目標(biāo)側(cè)的相關(guān)性,注意力機(jī)制可以有點(diǎn)積、雙線性乘積和多層感知器(Multi-Layer Perception,MLP)等多種模式。點(diǎn)積評(píng)分方程如下:
(3)
(4)
(5)
將序列到序列模型應(yīng)用于自動(dòng)語(yǔ)音識(shí)別(Automatic Speech Recognition, ASR)時(shí),設(shè)x是一系列音頻特征的序列,例如梅爾頻譜濾波器組或者梅爾頻率倒譜系數(shù)(Mel Frequency Cepstrum Coefficient, MFCC)。因此x∈RS×F,其中:F是特征的數(shù)量,S是發(fā)聲的總幀長(zhǎng)度。輸出y是語(yǔ)音轉(zhuǎn)錄序列,其可以是音素序列也可以是字符記錄的序列?;谧⒁饬C(jī)制的序列到序列的ASR原理如圖1所示。
圖1 基于注意力機(jī)制的序列到序列ASR原理
將序列到序列模型應(yīng)用于語(yǔ)音合成(Text to Speech, TTS),在訓(xùn)練階段可以通過(guò)最小化如式(6)所示的損失函數(shù)來(lái)優(yōu)化模型。
(6)
圖2 基于注意力機(jī)制的序列到序列TTS原理
為了從語(yǔ)音中抽取出信息,對(duì)前序?qū)拥淖⒁饬ο蛄渴褂枚喑叨鹊?維卷積。與單個(gè)的1維卷積相比,這樣可以通過(guò)不同的核尺寸獲得不同的信息。此處輸入為從前o步at-o=[at-o[1],at-o[2],…,at-o[S]]得到的歸一化的對(duì)齊概率。可以有K個(gè)不同的1維過(guò)濾器集合,分別為F={F1,F2,…,FK}。對(duì)于任意FK∈Ri×tk×dk,有一個(gè)核尺寸為tk的卷積過(guò)濾器、1個(gè)輸入通道以及dk個(gè)輸出通道。
通過(guò)所有的過(guò)濾器F將卷積應(yīng)用于at-o,并根據(jù)最后一個(gè)軸也就是輸出通道來(lái)連接結(jié)果,計(jì)算過(guò)程如下:
(7)
式中:*是用來(lái)保證輸出序列與輸入序列at-o長(zhǎng)度相同的卷積運(yùn)算子;f(·)是非線性激活函數(shù)。對(duì)于at-o的1維多尺度卷積如圖3所示。
圖3 對(duì)于at-o的1維多尺度卷積
通過(guò)對(duì)多個(gè)時(shí)間步驟共享過(guò)濾器F將式(7)應(yīng)用于所有的at-o,at-o+1,…,at-1。然后通過(guò)式(8)來(lái)融合信息。
(8)
(9)
圖4 上下文信息集成
為了將多層對(duì)齊的所有信息和上下文的所有信息集成到一個(gè)多層感知器中,將式(7)重寫(xiě)為:
(10)
集成了帶有歷史對(duì)齊信息和上下文信息的多層感知器注意力模型的工作過(guò)程如算法1所示。
算法1本文提出改進(jìn)算法
1. Parameters OT: time-step history
2. Procedure Decode(hE∈RS×M)
3.qA=Queue()
//歷史對(duì)齊隊(duì)列
4.qC=Queue()
//歷史上下文信息隊(duì)列
5.y=[
6. foriin[0…OT]do
//初始化隊(duì)列
7.qA.push([1,0,0,…,0]∈RS)
8.qC.push([1,0,0,…,0]∈RM)
9. end for
10. whiley[t]
//eos: end-of-sentence
//式(7)、式(8)
//式(9)
14. forsin[0,S]do
16. end for
//式(1)
18.qA.pop();qC.pop();
19.qA.push(at);qC.push(ct);
20.PY=Softmax(Wct+b)
21.t=t+1
22.y[t]=argmaxcPY[c]
23. end while
24. returny
25. end procedure
在端到端語(yǔ)音識(shí)別的實(shí)驗(yàn)部分,將本文提出的方法應(yīng)用于WSJ數(shù)據(jù)集[11]。將WSJ數(shù)據(jù)集分為兩部分,用WSJ-SI284作為訓(xùn)練集,用WSJ-SI84作為驗(yàn)證集,用dev_93和eval_92作為測(cè)試集。所有來(lái)自言語(yǔ)記錄的文本被映射為32個(gè)字符的集合,其中包括26個(gè)字母、逗號(hào)、句號(hào)、破折號(hào)、空格、噪聲和音頻終點(diǎn)(End of Speech, EOS)。在每個(gè)實(shí)驗(yàn)中,從話音中抽取120維的梅爾頻譜特征,并將每一維歸一化為零均值單位方差。
在編碼端,根據(jù)LeakyReLU[12]激活方程通過(guò)512個(gè)隱含單元將輸入特征變換為線性層。為了提高運(yùn)行速度并降低內(nèi)存開(kāi)銷(xiāo),在Bi-LSTM[13]的頂部3層采用分層次采樣[14]。在解碼端,采用128維的嵌入矩陣將輸入的字素映射為連續(xù)向量。在訓(xùn)練過(guò)程,通過(guò)最大似然估計(jì)來(lái)優(yōu)化模型,并根據(jù)式(4)求和。
以多層感知器和當(dāng)前在端到端語(yǔ)音識(shí)別領(lǐng)域效果最好的算法之一light GRU[16]等算法作為參照方法,對(duì)比了本文提出模型分別在應(yīng)用了多尺度聚合、歷史上下文信息,以及二者都應(yīng)用情況下的端到端語(yǔ)音識(shí)別的字符錯(cuò)誤率(Character Error Rate, CER),各種算法使用了相同的數(shù)據(jù)集和數(shù)據(jù)設(shè)置,實(shí)驗(yàn)結(jié)果如表1所示。
表1 端到端語(yǔ)音識(shí)別CER對(duì)比
與對(duì)照方法相比,本文提出模型可以顯著提高端到端話音識(shí)別的準(zhǔn)確率,特別是多尺度與上下文兩種改進(jìn)策略同時(shí)使用時(shí),字符錯(cuò)誤率將低至6%以內(nèi),這是其他方法難以實(shí)現(xiàn)的。
在文本轉(zhuǎn)語(yǔ)音實(shí)驗(yàn)部分,采用LJSpeech數(shù)據(jù)集[15],其中94%的數(shù)據(jù)作為訓(xùn)練數(shù)據(jù),3%的數(shù)據(jù)作為測(cè)試數(shù)據(jù)。為了提取特征,用50 ms的時(shí)間窗口做對(duì)數(shù)線性頻譜采樣,并做2014點(diǎn)位的短時(shí)傅里葉變換,然后抽取80維的對(duì)數(shù)梅爾頻譜特征。
為了驗(yàn)證本文提出方法的有效性,測(cè)試了本文方法和對(duì)照方法生成的語(yǔ)音的單詞錯(cuò)誤率(Words Error Rate, WER),實(shí)驗(yàn)結(jié)果如表2所示。
表2 文本轉(zhuǎn)語(yǔ)音WER對(duì)比
在文本轉(zhuǎn)語(yǔ)音實(shí)驗(yàn)中,依然采用了基本多層感知器模型、多層感知器模型+Location Aware以及l(fā)ightGKU作為對(duì)照方法。表2結(jié)果說(shuō)明在文本轉(zhuǎn)語(yǔ)音方面,本文方法具有理想的性能,特別是同時(shí)應(yīng)用多尺度聚合與上下文信息兩方面改進(jìn)時(shí),轉(zhuǎn)換的單詞錯(cuò)誤率可達(dá)到4%以內(nèi),明顯優(yōu)于對(duì)比方法。
為了驗(yàn)證本文方法的有效性,進(jìn)一步對(duì)比了在文本轉(zhuǎn)語(yǔ)音領(lǐng)域,各種方法在相同數(shù)據(jù)規(guī)模條件下的時(shí)間開(kāi)銷(xiāo)。實(shí)驗(yàn)結(jié)果如表3所示。
表3 文本轉(zhuǎn)語(yǔ)音時(shí)間開(kāi)銷(xiāo) s
可以看出,當(dāng)測(cè)試數(shù)據(jù)分別為總數(shù)據(jù)集大小的25%、50%和75%時(shí),本文方法在三種模式下的時(shí)間開(kāi)銷(xiāo)僅次于基本MLP方法,優(yōu)于其他兩種對(duì)比方法,并且隨著數(shù)據(jù)規(guī)模的增長(zhǎng),本文方法的時(shí)間開(kāi)銷(xiāo)增長(zhǎng)比較平緩,具有較好的時(shí)間性能。
語(yǔ)音數(shù)據(jù)處理是近年來(lái)人工智能與機(jī)器學(xué)習(xí)領(lǐng)域的熱點(diǎn)研究問(wèn)題,其研究成果在互聯(lián)網(wǎng)經(jīng)濟(jì)產(chǎn)業(yè)的各個(gè)方向有旺盛的應(yīng)用需求。本文在經(jīng)典序列到序列模型的基礎(chǔ)上,引入了增加多尺度與歷史上下文信息的注意力模型,通過(guò)多尺度實(shí)現(xiàn)深度神經(jīng)網(wǎng)絡(luò)多層次信息的卷積,通過(guò)歷史上下文信息提高特征選擇的針對(duì)性,從而提高了傳統(tǒng)模型的性能。實(shí)驗(yàn)結(jié)果表明,無(wú)論是應(yīng)用于端到端話音識(shí)別還是文本轉(zhuǎn)語(yǔ)音,本文提出方法都有理想的性能,具有相關(guān)領(lǐng)域的應(yīng)用價(jià)值。
在語(yǔ)音處理領(lǐng)域,梅爾頻率倒譜系數(shù)提取的時(shí)間開(kāi)銷(xiāo)成為大規(guī)模實(shí)時(shí)在線應(yīng)用的瓶頸,為了解決這一問(wèn)題,相關(guān)學(xué)者提出了一些改進(jìn)措施,如何將本文模型與這些改進(jìn)措施相結(jié)合,使本文方法具有更優(yōu)的實(shí)時(shí)性,將是這一領(lǐng)域有意義的研究。