• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    端到端維吾爾語語音識別研究

    2020-01-08 01:37:02丁楓林
    小型微型計算機系統(tǒng) 2020年1期
    關鍵詞:維吾爾語字符注意力

    丁楓林,郭 武,孫 健

    (中國科學技術大學 語音及語言信息處理國家工程實驗室,合肥 230027)

    1 引 言

    隨著深度神經網絡(Deep Neural Network,DNN)在自動語音識別領域的廣泛應用,語音識別性能得到了顯著的改善[1].目前,基于深度神經網絡-隱馬爾科夫模型[2](Hidden Markov Model,DNN-HMM)的語音識別系統(tǒng)仍是主流識別模型.DNN-HMM系統(tǒng)一般由聲學模型,語言模型,發(fā)音詞典等多個部分組成.這種模型通常以隱馬爾科夫模型HMM為基礎對狀態(tài)進行建模,訓練前需要通過混合高斯-隱馬爾科夫模型(Gaussian Mixture Model,GMM-HMM)獲得每一幀的語音標注,其間更是涉及決策樹聚類,狀態(tài)綁定等過程,模型訓練過程相對復雜.

    近年來,基于端到端(End-to-End)的語音識別系統(tǒng)由于對語言學知識要求較少,訓練流程簡單,越來越受到人們的關注.目前,最主流的端到端識別模型有兩種,一種是基于鏈接時序分類[3](Connectionist Temporal Classification,CTC)的端到端模型[4],另一種是基于注意力機制的編碼器-解碼器(encoder-decoder)端到端模型[5,6]:其中CTC取得了與主流相近的識別性能.然而CTC模型通常采用長短時記憶網絡[7]Long Short-Term Memory,LSTM)作為網絡的主體結構來為語音的時序建模,雖然建模能力比較好,但是并行化程度較低,模型訓練速度十分緩慢[8].針對這種循環(huán)神經網絡(Recurrent Neural Networks,RNN)結構存在的問題,谷歌的Vaswani等人提出一種名為Transformer[9]的編碼器-解碼器端到端模型.該模型擯棄了RNN的結構,完全采用自注意力(self-attention,SA)機制來建立輸入到輸出的依賴關系.[10]將Transformer用于英語的語音識別任務上,取得了較好的效果.但是由于該模型沒有有效利用語言學知識,總體性能仍存在可觀的提升空間.鑒于此,本文在Transformer的基礎上,將其部分結構與CTC準則相結合,提出結合自注意力機制和CTC的SA-CTC模型,并將其用于維吾爾語的語音識別任務上,實現兩者的有機結合.

    在CTC輸出建模單元的選擇上,太多或者太少的建模單元都會影響識別的性能,本文針對維吾爾語的識別單元選擇進行研究.維吾爾語是中國境內維吾爾族的官方語言,屬阿爾泰語系—突厥語族—葛邏祿語支.維吾爾語是一種拼音式文字,共有32個字母,其中有8個元音字母,24個輔音字母,書面語和口語之間的區(qū)別不大[11].雖然維吾爾語的發(fā)音單元并不多,但由于維吾爾語是一種典型的黏著語種,其構詞和構形附加成分很豐富,詞匯中除有維吾爾語的共同詞外,還有一定數量的阿拉伯語和波斯語的借詞.這些導致了維吾爾語的詞匯量非常龐大,增加了語音識別的難度,如何尋找合適的聲學建模單元來兼顧龐大的詞匯量成為一個影響識別性能的重要問題.為了在聲學建模單元和豐富的詞匯量之間找到一個平衡,本文引入字節(jié)對編碼[12](Byte Pair Encoding,BPE)算法對維吾爾語詞匯進行學習,以該算法產生的子詞單元作為CTC建模單元.

    在識別時,為了利用維吾爾語的語言學知識,進一步提升識別性能,我們在解碼時結合傳統(tǒng)的語言模型,將詞典、語言模型和聲學模型統(tǒng)一解碼,系統(tǒng)識別性能獲得明顯的提升.在King-ASR450維吾爾語數據集上,采用本文推薦的算法,識別性能明顯優(yōu)于當前主流的基于隱馬爾可夫模型的混合系統(tǒng)和基于雙向長短時記憶網絡的端到端模型.

    2 基于SA-CTC的聲學建模

    圖1 模型結構Fig.1 Model architecture

    編碼器-解碼器結構集成的語言模型僅體現在解碼時利用上一時刻的預測得到當前時刻的預測,存在一定的局限性,無法充分利用語言學信息.因此為了在解碼過程中顯式的引入語言模型,進一步提升語音識別的性能,本文在Transformer結構的基礎上,去除其中的解碼器部分,將編碼器與鏈接時序分類(CTC)相結合,作為本文所采用的端到端模型,模型結構如圖1所示.整個模型的主體由若干個相同的編碼層堆疊而成,每個編碼層分為兩大部分:“多頭”注意力(Multi-head attention)和前饋網絡(Feed-Forward Network).每一部分后面都添加一個殘差(residual)連接,然后進行層歸一化(layer nomalization)操作.另外模型還包括降采樣與升采樣模塊,位置編碼模塊以及輸出層.輸出采用鏈接時序分類(CTC)準則,對每一幀語音預測一個標簽,最小化CTC損失函數.

    2.1 編碼層

    2.1.1 “多頭”注意力

    “多頭”注意力(Multi-head attention)模塊由若干個相同的層堆疊而成,每層是一個自注意力(self-attention)機制,通過縮放的點乘注意力(Scaled Dot-Product Attention)來實現.自注意力是一種利用輸入序列的不同位置間的聯系來計算輸入表示的機制.具體來說,它有三個輸入,查詢(queries),鍵(keys)和值(values),可以理解為編碼后的語音特征.Query的輸出由value加權求和得到,而每個value的權值通過query及與之相關的key的設計函數計算得到.如圖2(a)所示,設Q表示query,維度為tq×dq;K表示key,維度為tk×dk;V表示value,維度為tv×dv.通常情況下,tk=tv,dq=dk,則自注意力的輸出由公式(1)計算:

    (1)

    “多頭”機制用來聯合多個層不同的自注意力表示,即計算h次自注意力,h表示“頭”的數目.如圖2(b)所示,query,key和value分別經過三個線性投影層以增加彼此之間的區(qū)分性,然后利用它們分別計算h次點乘自注意力,將輸出拼接起來后再經過一個線性投影層作為最終的注意力表示:

    MultiHead(Q,K,V)=Concat(head1,…,headh)WO

    (2)

    (3)

    其中W為對應線性投影層的權重.

    圖2 點乘注意力與“多頭”注意力Fig.2 Dot-product attention and multi-head attention

    2.1.2 位置前饋網絡

    位置前饋網絡(Position-wise feed-forward network)包含兩個線性變換層,兩層之間有一個ReLU激活,見公式(4):

    FFN(X)=max(0,XW1+b1)W2+b2

    (4)

    其中W為對應的線性層的權重,b為偏置量.

    2.2 降采樣與升采樣

    自注意力需要計算每幀聲學參數的注意力權重,對訓練語音較長的語句,會導致內存需求過大.為了減少模型訓練時所占用的內存,加快訓練速度,首先對原始語音特征幀進行降采樣,然后再經過線性層進行編碼.同時由于輸出采用 CTC準則,需要對每一幀語音預測一個標簽,所以在輸出層之前再對語音特征進行一步升采樣操作,將語音幀長度恢復成原始長度.這樣,在加快運算速度、減小內存需求的同時也保證了模型精確度,提高了識別性能.

    2.3 位置編碼

    由于模型中沒有使用任何循環(huán)網絡的結構,所以模型無法對輸入語音幀的時序進行建模,而時序建模對于語音識別來說是必不可少的.因此需要在輸入特征序列中加入位置編碼信息以使模型獲得輸入語音的時序信息.位置編碼由公式(5)計算:

    (5)

    其中p表示序列中的位置,即將序號為p的位置映射為一個維度為dpos的向量,這個向量的第i維由PEi(p)計算得到.由三角函數的和角公式可知,p+k的位置編碼可表示為p位置編碼的線性變換,提供了表達相對位置信息的途徑.

    2.4 鏈接時序分類

    輸出層采用鏈接時序分類(Connectionist Temporal Classification,CTC)準則.CTC是一種典型的端到端技術,用來處理輸入序列和輸出標簽序列對應關系未知情況下的序列分類問題.

    在語音識別中,輸入序列為x={x1,x2,...,xT},對應的輸出標簽序列為y={y1,y2,...,ym},通常m<

    (6)

    其中y′ 是對輸出標簽序列y經過插入blank以及重復單元等操作而得到的映射序列.例如y=(a,a,b),y′=(-,aa,-,a,-,b) .最終輸出是對中間序列合并連續(xù)重復單元及去除blank得到.

    在CTC準則中,假設輸出單元之間是相互獨立的,則概率P(π|x) 可表示為公式(7):

    (7)

    CTC損失函數定義為真實標簽序列L對應的后驗概率P(L|x)的負對數似然,如公式(8)所示:

    LCTC=-lnP(L|x)

    (8)

    后驗概率分布P(y|x)可通過前向-后向(forward-backward)算法求解,如公式(9)所示:

    (9)

    3 采用字節(jié)對編碼的維吾爾語建模單元生成

    正如前述,維吾爾語屬阿爾泰語系—突厥語族—葛邏祿語支,是一種典型的黏著語種,存在著音素比較少(8個元音+24個輔音)和構詞特別豐富(百萬量級)的兩個極端情況,都不適合用來作為CTC建模的輸出單元.從工程的角度,CTC建模單元在幾千到上萬之間是比較適合的.我們采用字節(jié)對編碼(Byte Pair Encoding,BPE)算法來生成CTC輸出建模單元.

    3.1 字節(jié)對編碼算法簡介

    BPE算法利用貪心算法思想,是一種高效的數據壓縮算法.在數據壓縮的過程中,BPE算法每次搜索在目標內存(RAM)頁面上的程序代碼中出現次數最多的字節(jié)對;然后,用未在特定代碼中出現過的單字節(jié)令牌替換該字節(jié)對.反復迭代這兩步操作,直到所有字節(jié)對都被替換或是沒有頻次大于1的字節(jié)對出現,最終輸出壓縮后的數據和包含所有被替換字節(jié)對的詞典,詞典用來恢復數據.

    3.2 維吾爾語識別單元生成

    基于BPE的思想,可以將其用于子詞切分以從單詞中獲得子詞單元,并用這些子詞單元實現對單詞序列的一種編碼.我們采用[13]中的BPE操作,具體步驟如下:

    1)準備過程.對訓練語料進行統(tǒng)計,生成“詞語—詞頻”詞典.然后將每個詞語以字符為單位用空格切分開,并在詞尾添加一個詞尾標識符,以區(qū)別在其他位置相同的字符.

    2)學習BPE單元.將單詞中的字符以空格為分隔符兩兩前后組合形成字符對,結合詞頻,統(tǒng)計所有的字符對及其出現的頻次.選擇出現頻次最高的一對字符,去除中間的空格進行合并,合并后產生的字符序列作為一個新的符號代替原來的字符對.然后重復統(tǒng)計字符對頻次及合并最高頻次字符對這兩步操作,直到合并的次數達到指定的次數為止.按照統(tǒng)計頻次從高到低輸出合并的字符對.

    3)應用BPE單元.用上一部產生的字符對列表對需要處理的語料進行切分.在進行切分時,同樣以詞語為單位,先分割成字符.然后依次按照在字符對列表中出現頻次從高到低的順序合并字符對.最后保留沒有出現在字符對列表中的單元以及沒有參與合并的單個字符.

    可以看到,在學習BPE單元的步驟中,隨著合并次數的增多,高頻詞語會被合并成一個單獨的符號輸出.因此,被切分后的語料最終包含了高頻詞、子詞及單個字符.

    用BPE對單詞進行編碼與其他編碼方式最大的不同在于,BPE產生的單元仍是可解釋的,即作為原單詞的子詞單元.且單元數目是算法的唯一超參數,因此可以針對具體語言選擇合適數目的子詞單元.

    在本文的實驗中,我們結合了維吾爾語自身的特點,對[13]中的BPE操作做出以下幾點改動:

    1)我們不在訓練集語音對應的轉錄文本上用BPE學習子詞單元,而是直接在維吾爾語詞典上學習子詞單元,并且不再考慮詞頻.因為觀察維語詞典可以發(fā)現,多數低頻維語詞是一些長詞,這些長詞都是在短詞基礎上連接一些詞綴形成的,這也正是黏著語的特點.短詞中已包含長詞中的大多數單元,如果過分考慮高頻詞中的單元,則會導致低頻詞中的附加單元無法被BPE學習到.

    2)在BPE學習子詞單元之前不在詞尾加入詞尾標識符,即不再區(qū)分相同的字符在不在詞尾.因為維吾爾語是一種拼音式文字,且書面語(寫法)和口語(讀法)之間的區(qū)別不大.所以如果強制把兩個相同的字母因位置的不同而區(qū)分開,會導致學習到的子詞單元比較混亂.

    3)為了考慮實際發(fā)音中單詞與單詞之間的相互影響,我們在被BPE子詞單元劃分后的單詞中加入位置(position)信息.在實驗中比較了詞首位置與詞尾位置后,我們選擇在詞首加入位置信息,即將詞首的子詞單元與其他位置的子詞單元區(qū)分開來.

    表1 BPE算法產生子詞單元Table 1 BPE algorithm generates subword units

    表1展示了我們在維吾爾語單詞上用BPE算法產生子詞單元及加入位置信息的例子.

    4 實驗結果及分析

    4.1 識別系統(tǒng)搭建

    本文在King-ASR-450維語數據集上進行實驗.該數據庫收集了安靜環(huán)境下79149條語音數據,長達121.3小時,轉錄文本所形成的詞典共包含66027個維吾爾語單詞.所有語音數據均為8KHz采樣率、16bit、單通道的格式.在實驗中挑選了~76.6k條語音數據(~117.45h)作為訓練集,~0.5k條語音數據(~0.77h)作為開發(fā)集,~2.0k條語音數據(~3.07h)作為測試集.本文以Pytorch,Kaldi[14]和Eesen[15]作為實驗平臺,比較了不同模型下的實驗效果,探究了改進的BPE單元對識別性能的影響.

    在實驗中,我們構建了三套系統(tǒng)進行比較,首先是主流的基于BiLSTM-HMM的基線系統(tǒng),第二套系統(tǒng)是基于BiLSTM的CTC端到端識別系統(tǒng),第三套系統(tǒng)是本文提出的SA-CTC端到端識別系統(tǒng).

    4.1.1 基于BiLSTM-HMM的系統(tǒng)

    實驗中將39維梅爾頻率倒譜系數(MFCC特征)作為GMM-HMM混合系統(tǒng)的輸入信號,在GMM-HMM系統(tǒng)中,通過高斯分裂和決策樹聚類最終綁定狀態(tài)數目為3334,用得到的模型對訓練數據做強制對齊得到幀級標簽,作為后續(xù)神經網絡的訓練數據.

    在BiLSTM-HMM訓練中,采用108維filterbank特征進行訓練.在當前幀的前后各使用40幀語音數據獲得前后信息.網絡共有3層隱藏層,隱層節(jié)點為1024,建模單元為綁定的3334個狀態(tài).解碼時結合3-gram語言模型.

    4.1.2 基于BiLSTM的CTC語音識別系統(tǒng)

    在基于BiLSTM的端到端語音識別系統(tǒng)中,我們采用雙向長短時記憶網絡為語音特征的時序建模,輸出采用鏈接時序分類(CTC)準則,直接預測標簽序列.本實驗中采取3層隱藏層,每層1024個隱藏節(jié)點的BiLSTM網絡,和108維filterbank特征進行聲學模型的訓練.建模單元采用BPE子詞單元.解碼時結合3-gram語言模型.

    4.1.3 基于SA-CTC的端到端語音識別系統(tǒng)

    對于本文所描述的基于SA-CTC的端到端模型,在實驗中,我們采用6層編碼層,“多頭”注意力部分采用8個“頭”,原始語音特征為108維filterbank特征,經1/4降采樣,編碼后維度采用512維,再加入位置編碼信息作為網絡的輸入.前饋網絡維度采用1024維.建模單元采用BPE子詞單元,解碼時結合3-gram語言模型.

    4.2 不同模型的實驗分析

    三套不同系統(tǒng)的識別結果如表2所示,這里我們都是參數調節(jié)到最好的系統(tǒng)的比較.

    表2 不同模型下的識別結果Table 2 Results of different models

    可以看出,基于端到端模型的識別系統(tǒng)的識別性能要明顯優(yōu)于基于隱馬爾可夫模型的混合系統(tǒng),識別準確率均在90%以上.同時基于SA-CTC的端到端模型的識別效果又要優(yōu)于基于BiLSTM-CTC的端到端模型,準確率達到91.35%.同時基于SA-CTC的端到端模型由于沒有采用任何的RNN結構,模型訓練速度遠遠快于基于BiLSTM-CTC的端到端模型.我們的實驗在一塊NVIDIA GTX 1080 Ti GPU上進行,對于基于BiLSTM-CTC的端到端模型,訓練花費在24-30小時,而對于基于SA-CTC的端到端模型,訓練時間僅為前者的1/3-1/4.由此可以體現出基于SA-CTC的端到端模型的優(yōu)越性能.

    4.3 不同BPE單元的實驗分析

    另外為了探究本文在BPE子詞單元上加入位置信息對識別性能的影響,在基于SA-CTC的端到端模型上,將不加位置信息的BPE子詞單元和加入位置信息的BPE子詞單元分別用于實驗,實驗結果如表3所示.

    表3 不同BPE子詞單元下的識別結果Table 3 Results of different BPE subword units

    可以看出,在相同規(guī)模數量的情況下,加入位置信息后對識別性能有一定的改善,使得識別準確率達到了91.35%.

    綜合實驗結果,本文用BPE算法產生的子詞單元作為維語識別單元及在此基礎上加入位置信息的改進,對于維吾爾語或類似語言的語音識別在建模單元的選取上具有一定的參考意義.

    5 總 結

    本文研究了基于自注意力機制和鏈接時序分類的端到端技術,在維吾爾語數據集上,搭建了完整的語音識別系統(tǒng).同時針對維吾爾語大詞匯量的特點,引入BPE算法,以BPE子詞單元作為維語識別的建模單元.最終基于SA-CTC的端到端模型的識別性能超越基于HMM的混合模型和基于BiLSTM的端到端模型,識別準確率達到91.35%.證明了基于SA-CTC的端到端技術在維語識別上的有效性,也驗證了BPE子詞單元有效地解決了維語識別建模單元的選取問題.

    猜你喜歡
    維吾爾語字符注意力
    尋找更強的字符映射管理器
    讓注意力“飛”回來
    字符代表幾
    一種USB接口字符液晶控制器設計
    電子制作(2019年19期)2019-11-23 08:41:50
    消失的殖民村莊和神秘字符
    統(tǒng)計與規(guī)則相結合的維吾爾語人名識別方法
    自動化學報(2017年4期)2017-06-15 20:28:55
    “揚眼”APP:讓注意力“變現”
    傳媒評論(2017年3期)2017-06-13 09:18:10
    A Beautiful Way Of Looking At Things
    維吾爾語話題的韻律表現
    維吾爾語詞重音的形式判斷
    語言與翻譯(2015年4期)2015-07-18 11:07:45
    嵩明县| 健康| 建平县| 曲靖市| 平陆县| 太仓市| 酉阳| 油尖旺区| 芜湖县| 陇川县| 喀喇| 武夷山市| 九寨沟县| 黄浦区| 边坝县| 准格尔旗| 济阳县| 错那县| 隆尧县| 阳信县| 吴桥县| 井冈山市| 黔南| 呼和浩特市| 隆回县| 蓝山县| 织金县| 瓮安县| 沙田区| 嘉义县| 柯坪县| 凉山| 乐平市| 南岸区| 东源县| 开平市| 陆丰市| 江油市| 新民市| 读书| 泸西县|