999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于TensorFlow的俄語詞匯標音系統(tǒng)

2018-06-20 09:34:42易綿竹馬延周
計算機應用 2018年4期
關鍵詞:單詞模型

馮 偉,易綿竹,馬延周

0 引言

發(fā)音詞典是語音信息處理研究中的重要基礎資源,在語音合成和語音識別系統(tǒng)中發(fā)揮了關鍵作用。俄語作為一種拼音文字,在語言發(fā)展中不斷有新詞和外來詞產(chǎn)生,發(fā)音詞典必然難以包括所有俄語單詞的發(fā)音。字音轉換(Grapheme-to-Phoneme conversion, G2P)技術可以對俄語單詞及其變化形式進行自動注音,有效解決集外詞(Out-Of-Vocabulary,OOV)的注音問題,為俄語發(fā)音詞典的構建提供支持。

字音轉換可分為兩類:

1)基于規(guī)則的方法,即通過對俄語正字法和發(fā)音規(guī)律的總結,人工制定出俄語的字音轉換規(guī)則, 然后根據(jù)規(guī)則實現(xiàn)對單詞發(fā)音的預測。俄羅斯圣彼得堡大學的Karpov等[1-2]在俄語語音識別系統(tǒng)的開發(fā)過程中對基于規(guī)則的俄語字音轉換算法進行了研究。該算法利用俄語輔音變化和元音弱化等規(guī)則,借助大規(guī)模俄語重音詞典、形態(tài)詞典以及同形詞詞典,經(jīng)過7個步驟、2次循環(huán)完成。Karpov等[1-2]利用該算法構建了俄語語音識別系統(tǒng)需要的發(fā)音詞典,但并沒有對算法性能進行嚴格的測試。由于俄語發(fā)音特征復雜多變,正字法的約束也在逐漸減弱,規(guī)則中難免會出現(xiàn)無法覆蓋到的例外情況,這些都會對字音轉換的準確率造成影響。

2)數(shù)據(jù)驅(qū)動的方法,是目前主流的字音轉換方法。典型的數(shù)據(jù)驅(qū)動方法基于如下思想:首先對訓練集中的字素和音素建立對齊關系,然后利用概率統(tǒng)計算法建立發(fā)音模型,最后通過解碼算法計算概率最大的標音結果。例如,Jiampojamarn等[3]提出了多對多的對齊方法,并將隱馬爾可夫模型(Hidden Markov Model, HMM)應用于發(fā)音模型建模;Bisani等[4]提出了聯(lián)合序列的建模方法,并在英語、德語和法語測試集上進行了測試;Novak等[5]將加權有限狀態(tài)轉化器(Weighted Finaite-State Transducer, WFST)運用于算法的對齊、建模、解碼過程,提出了基于循環(huán)神經(jīng)網(wǎng)絡語言模型(Recurrent Neural Network Language Model, RNNLM)的N-best解碼算法,以及最小貝葉斯風險(Lattice Minimum Bayes-Risk, LMBR)詞圖解碼算法,并在三個英語測試集上進行了對比測試。

神經(jīng)網(wǎng)絡近年來被廣泛應用于深度學習的相關問題。Graves[6]提出了基于長短時記憶(Long Short-Term Memory, LSTM)網(wǎng)絡的序列到序列(sequence-to-sequence)模型,該模型可以將一個長度可變的輸入序列翻譯為目標輸出序列,突破了傳統(tǒng)的固定長度輸入問題的限制,成功地將神經(jīng)網(wǎng)絡運用于序列型任務。目前該模型已在谷歌翻譯、人機對話、計算機視覺等系統(tǒng)上得到了廣泛的應用,并表現(xiàn)出了出色的效果[7-8]。Yao等[9]將該方法應用于解決英語字音轉換問題,并在卡內(nèi)基梅隆大學(Carnegie Mellon University, CMU)、NetTalk、Pronlex數(shù)據(jù)集上進行了測試,音素正確率達到了92%以上,詞形正確率達到了70%以上。

綜上所述,俄羅斯學者已經(jīng)對基于規(guī)則的俄語詞匯標音方法進行了一些研究,但基于規(guī)則的方法對語言學知識要求較高,規(guī)則的撰寫和維護難度較大,實現(xiàn)起來有一定的困難。數(shù)據(jù)驅(qū)動的方法是目前自然語言處理領域的主流方法,但已有研究都以英語為主要目標,還沒有俄語方面的有關研究和實驗。不同的語種在模型訓練過程中難免存在差異,且國內(nèi)針對俄語語音處理的研究尚處于探索階段,基礎資源相對匱乏,有必要以俄語語音學知識為基礎,完善俄語語料資源,對俄語字音轉換算法的實現(xiàn)與應用作進一步研究。本文對數(shù)據(jù)驅(qū)動的俄語詞匯標音方法進行探索,嘗試運用基于TensorFlow的LSTM序列到序列模型算法,利用端到端(end-to-end)的思想實現(xiàn)單詞到發(fā)音的轉換。相對于傳統(tǒng)算法,該算法不需要預先創(chuàng)造字素音素的對齊關系,可以直接對任意長度的序列進行處理,避免了對齊過程出現(xiàn)錯誤的可能性。

1 改進的俄語音素集設計

音素集就是音素的集合。由于國際音標書寫復雜、機讀性差,在俄語語音處理系統(tǒng)中,需要依據(jù)計算機可讀的SAMPA(Speech Assessment Methods Phonetic Alphabet)符號設計俄語音素集,從而構建俄語發(fā)音詞典并訓練俄語聲學模型。俄語音素集中應盡可能包括俄語全部的音素,但如果音素集過大,單詞注音結果的不確定性將會顯著增加,大大提高解碼過程的計算復雜度;若音素集太小,則會降低單詞標音的精確度,影響語音處理系統(tǒng)的性能。為了體現(xiàn)俄語重音變化和元音弱化現(xiàn)象,本文對原始SAMPA俄語音素集進行了改進,設計了新的俄語音素集。

目前國際上俄語音素集的設計有多種方案。IPA(International Phonetic Alphabet)俄語音素集共包含55個音素和1個重音符號(音素分為38個輔音和17個元音,元音包括11個重讀元音和6個非重讀元音)[10]。SAMPA俄語音素集共包含42個音素,分為36個輔音和6個元音,其元音音素沒有重讀與弱化之分,僅僅將弱化的元音[e]和[o]分別用[i]和[a]表示[11];卡內(nèi)基梅隆大學(CMU)設計的俄語音素集共包含50個音素和1個無音符號(音素分為36個輔音和14個元音,并將元音分為6個重讀元音和8個非重讀元音)[12]。

通過對以上三個俄語音素集的研究,結合俄語音素的發(fā)音規(guī)則,重點對元音音素從一級弱化和二級弱化的角度進行區(qū)分[13],本文在原有俄語SAMPA音素集的基礎上,增加了4個弱化后的元音和一個重音符號“!”,設計了共包含46個音素的俄語音素集。音素包括36個輔音和10個元音,元音又細分為6個重讀元音和4個非重讀元音。新增的4個元音如表1所示。

表1 俄語弱化元音表

為了驗證新音素集的有效性,本文從發(fā)音詞典中隨機抽取了200個俄語單詞,分別用原始SAMPA音素集和新音素集進行標音,交由俄語語音學專家進行人工比對驗證。

驗證結果表明,本文設計的新音素集能夠清晰地標明俄語單詞的重音位置,有效地區(qū)分元音一級弱化和二級弱化后的讀音區(qū)別,相對于原始的SAMPA音素集標音更加準確,可讀性更強。表2以部分單詞為例,對改進的音素集與原始音素集的標音結果進行了對比。

表2 改進的音素集標音示例

2 長短時記憶神經(jīng)網(wǎng)絡

2.1 循環(huán)神經(jīng)網(wǎng)絡

自然語言處理中的大部分問題本質(zhì)上都是序列化的。例如,段落是由句子構成的序列,句子是由單詞構成的序列,在機器翻譯、人機對話、語音識別等應用中,模型的輸入和輸出都是序列數(shù)據(jù)。類似地,單詞和發(fā)音也可以看作是由字素和音素構成的序列。循環(huán)神經(jīng)網(wǎng)絡就是專門用于處理序列數(shù)據(jù)的深度學習模型。循環(huán)神經(jīng)網(wǎng)絡(Recurrent Neural Network, RNN)出現(xiàn)于20世紀80年代,因為實現(xiàn)困難,其發(fā)展早期并沒有得到合適的應用。最近幾年,由于神經(jīng)網(wǎng)絡結構的進步和GPU上深度學習訓練效率的突破,RNN變得越來越流行,在人工智能的多個領域中得到應用。

RNN的前向傳播過程可用公式[14]表示為:

at=b+Wht-1+Uxt

(1)

ht=tanh(at)

(2)

ot=d+Vht

(3)

yt=softmax(ot)

(4)

其中:輸入層與隱藏層之間通過參數(shù)矩陣U連接;不同時刻的隱藏層之間以參數(shù)矩陣W連接;隱藏層與輸出層之間以參數(shù)矩陣V連接。b、d為偏置向量;xt為t時刻的輸入;at為決定t時刻隱藏層狀態(tài)的參數(shù),包括現(xiàn)有的輸入和對過去記憶的總結;ht表示隱藏層狀態(tài);ot表示t時刻的輸出;yt為經(jīng)過歸一化后的預測概率。

2.2 長短時記憶模型

循環(huán)神經(jīng)網(wǎng)絡雖然可以記憶整個時間序列中的信息,但記憶中影響最大的還是最后輸入的一些信號,而較早的信號強度將越來越弱,即決定循環(huán)神經(jīng)網(wǎng)絡輸出的還是最后輸入的信號。這就造成了RNN的長時依賴(Long-term Dependencies)問題。

長短時記憶模型就是專門為解決長時依賴問題而對循環(huán)神經(jīng)網(wǎng)絡的改進。通過將RNN中的普通神經(jīng)元替換為可以存儲記憶的LSTM單元(Cell),可以有效利用數(shù)據(jù)中的長距離依賴信息,由Hochreiter等[15]在1997年提出。不同于原始RNN單一的tanh循環(huán)體結構,LSTM模型在短期記憶單元ht的基礎上,增加了記憶單元Ct用來保留長時記憶,以及三個門控制器,分別是:輸入門(input gate)、輸出門(output gate)和遺忘門(forget gate)。標準循環(huán)神經(jīng)網(wǎng)絡與LSTM模型的結構對比如圖1所示。

圖1 RNN與LSTM模型結構對比示意圖

門結構運算由非線性激活函數(shù)Sigmoid和點乘運算控制。Sigmoid函數(shù)的取值范圍為[0,1],描述了信息傳遞的比例。取值為0時表示不允許所有信息傳遞,即刪除之前的記憶;取值為1時表示所有信息可以通過,完全保留這一分支的記憶。

在每一個時刻,遺忘門會根據(jù)當前輸入xt、上一時刻輸出ht-1和上一時刻狀態(tài)ct-1控制上一時刻長期記憶的保留程度[14]:

ft=σ(Txfxt+Thfht-1+Tcfct-1+bf)

(5)

輸入門會根據(jù)xt、ct-1和ht-1控制新記憶寫入長期記憶的程度,決定當前狀態(tài)ct:

it=σ(Txixt+Thiht-1+Tcict-1+bi)

(6)

ct=ftct-1+ittanh(Txcxt+Thcht-1+bc)

(7)

輸出門則會根據(jù)最新狀態(tài)ct,以及ht-1和xt,基于長時記憶和短期記憶綜合決定該時刻的輸出ht:

ot=σ(Txoxt+Thoht-1+Tcoct+bo)

(8)

ht=ottanh(ct)

(9)

其中:σ表示Sigmoid函數(shù);i、f、o和c分別表示輸入門、遺忘門、輸出門和記憶單元,其向量維數(shù)與隱藏層中向量相同。權值矩陣T的下標描述了其含義,例如Thi為隱藏-輸入門權值矩陣,Txo為輸入-輸出門權值矩陣。

LSTM通過門結構維護和控制神經(jīng)網(wǎng)絡中每個時刻的狀態(tài)信息,憑借對狀態(tài)信息的存儲和修改,從而解決了長時依賴的難題?;谝陨线\算機制,LSTM對于長序列問題的理解分析能力相對于RNN得到了大幅提高,因此可以有效應用于俄語單詞序列到發(fā)音序列的預測問題。

3 基于LSTM的序列到序列模型

3.1 字素序列到音素序列

LSTM神經(jīng)網(wǎng)絡因其出色的長距離序列化信息處理能力,可以有效應用于序列到序列的問題。在詞匯標音過程中,LSTM序列到序列模型不需要預先創(chuàng)造字素音素的對齊關系,可以直接對任意長度的序列進行處理,避免了對齊過程出現(xiàn)錯誤的可能性。

基于LSTM的序列生成過程可以概括性地描述為條件概率p(y1,y2,…,yn|x1,x2,…,xm)最大值的估算過程。(x1,x2,…,xm)表示輸入的字素序列,(y1,y2,…,yn)表示對應的輸出序列,兩個序列的長度n和m不一定相等。LSTM在計算條件概率時,首先對不定長序列(x1,x2,…,xm)進行學習,根據(jù)最后一個隱藏層的狀態(tài),將序列表示為固定維數(shù)的向量s,然后將標準LSTM語言模型的初始隱藏層狀態(tài)設置為向量s,根據(jù)語言模型利用2.2節(jié)描述的LSTM公式(5)~(9)計算序列(y1,y2,…,yn)的概率。用公式表示為:

p(y1,y2,…,yn|x1,x2,…,xm)=

(10)

其中:每個輸出的概率分布p(yt│s,y1,y2,…,yt-1)通過激活函數(shù)softmax映射到音素集中的音素。

在數(shù)學定義中,softmax指一種歸一化指數(shù)函數(shù),它將一個k維向量z中的每個元素轉換為(0,1)的區(qū)間,計算公式如下:

(11)

機器學習中常用這種方法將類似判別函數(shù)的置信度值轉換為概率形式。softmax函數(shù)常用于輸出層,用于指定唯一的分類輸出[16]。

3.2 LSTM編碼-解碼模型

基礎的序列到序列模型由編碼器-解碼器(Encoder-Decoder)結構組成,該結構的特點是:輸入序列經(jīng)過編碼器網(wǎng)絡得到向量表示后,解碼器網(wǎng)絡基于這個向量生成新的序列。LSTM編碼-解碼模型兩個LSTM網(wǎng)絡,分別是處理輸入的編碼器網(wǎng)絡和生成輸出的解碼器網(wǎng)絡。編碼-解碼過程如圖2所示[17]。

圖2 編碼-解碼過程示意圖

3.2.1 編碼器

編碼器網(wǎng)絡按照LSTM單元結構進行運算。每個時間步,編碼器的輸入為單詞的一個字素(在機器翻譯等任務中,也可以是一個字或單詞),當遇到終止符時輸入結束,編碼器根據(jù)最后一個隱藏層的狀態(tài),將該單詞序列表示為固定長度的向量v。依賴于LSTM對長距離信息處理的能力,向量v能夠包含整個單詞序列的字素信息。在每個時間t,隱藏層的狀態(tài)ht可用公式表示為:

ht=f(xt,ht-1)

(12)

其中:f表示非線性激活函數(shù),為編碼LSTM單元結構;ht-1表示上一時刻隱藏層狀態(tài);xt為當前時刻的輸入。向量v為最后一個隱藏層或多個隱藏層的加權和,運算符號用φ表示:

v=φ(h1,h2,…,ht)

(13)

3.2.2 解碼器

在解碼過程,向量v將作為隱藏層的初始狀態(tài)輸入解碼LSTM網(wǎng)絡。解碼器通過t時刻的隱藏層狀態(tài)ht、前一個音素yt-1以及向量v,逐步計算當前時刻音素yt的概率分布,當遇到終止符時結束預測,得到整個輸出序列。這一過程用公式表示如下:

ht=f(ht-1,yt-1,v)

(14)

P(yy|v,y1,y2,…,yt-1)=g(ht,yt-1,v)

(15)

其中:f表示解碼LSTM單元結構;g一般為softmax函數(shù)。解碼過程,解碼器使用啟發(fā)式集束搜索(beam search)算法[18]在序列輸出前檢索大量詞匯,選擇后驗概率最高的候選序列為最優(yōu)解,作為解碼器最終輸出的音素序列。LSTM編碼-解碼模型的訓練使用隨時間反向傳播(Backpropagation Through Time, BPTT)算法,利用解碼過程中產(chǎn)生的誤差更新網(wǎng)絡的權值參數(shù)[19]。

3.2.3 俄語單詞編碼-解碼過程

俄語單詞序列轉換到發(fā)音序列的基本思想為:編碼LSTM逐步讀取俄語單詞的每個字素,將序列映射為一個固定維數(shù)表示的向量,解碼LSTM本質(zhì)上是一個基于輸入序列的LSTM語言模型,結合向量、隱藏層狀態(tài)和上一時刻的音素,逐個預測音素,輸出發(fā)音序列。

以俄語單詞“рай”(天堂)的第二格形式“рая” [r !a j 6]為例,LSTM編碼-解碼模型的示例如圖3所示。圖3中神經(jīng)網(wǎng)絡由兩層組成,虛線左側為編碼LSTM,右側為解碼LSTM。編碼LSTM按照時間逆序讀取輸入序列“ яар”,根據(jù)最后一個隱藏層的狀態(tài),將序列“рая”表示為固定維數(shù)的向量v。解碼LSTM在遇到起始符后被激活,將向量v作為隱藏層的初始狀態(tài),逐個計算下一個音素產(chǎn)生的概率,通過集束搜索算法得到最終輸出的音素序列“r !a j 6 ”。表示輸入序列的起始符,分別表示輸出音素的起始符和終止符,起始符與終止符使模型可以對任意長度的序列進行編碼和解碼,解碼LSTM在后終止預測。另外,編碼器按照逆序讀取字素,可以在數(shù)據(jù)中引入短期依賴關系,簡化了訓練優(yōu)化的過程[9]。

圖3 LSTM編碼-解碼網(wǎng)絡示意圖

4 基于TensorFlow的俄語詞匯標音系統(tǒng)

4.1 TensorFlow

Google經(jīng)過長期的研究,在內(nèi)部使用了第一代分布式機器學習框架DistBelief之后,于2015年11月推出了目前最優(yōu)秀的深度學習框架之一TensorFlow,并在GitHub上開源。TensorFlow的官方定義為:TensorFlow是一個基于數(shù)據(jù)流圖(data flow graph)的數(shù)值計算開源軟件庫,其靈活的架構設計可以讓用戶以單機或分布式的方式將計算部署在臺式機、服務器甚至是手機上。Tensorflow廣泛支持包括計算機視覺、語音識別、人機對弈和自然語言處理等大量功能[20]。

TensorFlow的數(shù)據(jù)計算過程可以表示為數(shù)據(jù)流圖,也稱計算圖(Computational Graph)。計算圖是一個有向圖,其中每一個運算操作(operation)作為一個節(jié)點(node),節(jié)點與節(jié)點之間的連接稱為邊(edge),在邊中流動(flow)的多維數(shù)組數(shù)據(jù)稱為張量(tensor)。計算圖的執(zhí)行可以看作張量按照圖的拓撲順序,從輸入節(jié)點逐步流過所有中間節(jié)點,最后流到輸出節(jié)點的過程。

4.2 系統(tǒng)開發(fā)環(huán)境

該系統(tǒng)的開發(fā)基于Ubuntu操作系統(tǒng),使用Python程序語言,在TensorFlow深度學習框架的支持下進行。具體的開發(fā)環(huán)境如下:

操作系統(tǒng):Ubuntu 14.04-amd64-LTS。

開發(fā)語言:Python 2.7。

深度學習框架:TensorFlow 1.0.0。

Python開發(fā)平臺:Qt 4.8.4+PyQt 4.12+SIP 4.19+QScintilla 2.8+Eric 6.1.11。

4.3 系統(tǒng)框架結構

基于TensorFlow框架的俄語詞匯標音系統(tǒng)整體框架如圖4所示。

圖4 系統(tǒng)框架

4.4 系統(tǒng)功能與實現(xiàn)

系統(tǒng)的設計基于PyQt工具集、QtDesigner界面設計器,以及Eric開發(fā)環(huán)境,并利用QSS(Qt Style Sheets)語言進行GUI界面美化。系統(tǒng)主要包括模型訓練和單詞標音功能,其實現(xiàn)方法如下:

1)發(fā)音模型訓練功能。

模型訓練功能以發(fā)音詞典為訓練語料,通過調(diào)用TensorFlow的tf.contrib.rnn接口實現(xiàn)LSTM網(wǎng)絡的定義,調(diào)用tf.contrib.legacy_seq2seq接口的model_with_buckets方法進行模型訓練。優(yōu)化參數(shù)使用sgd算法,通過調(diào)用tf.train接口的GradientDescentOptimizer方法實現(xiàn),并通過tf.nn.sampled_softmax_loss方法降低梯度更新時的計算復雜度。

模型訓練時的主要參數(shù)包括:

source_vocab_size:輸入序列詞表大小。

target_vocab_size:目標序列詞表大小。

buckets:處理不同長度的序列的方法,由一對(I,O)表示,I、O分別表示該bucket處理的最大輸入和輸出序列的長度,一般為(2,4)、(4,8)、(8,16)。

size:模型每一層的單元數(shù)。

num_layers:模型的網(wǎng)絡層數(shù)。

max_gradient_norm:梯度最大修剪規(guī)范。

batch_size:訓練時批處理的大小。

learning_rate:初始的學習率。

learning_rate_decay_factor:學習率衰減因子。一定的階段之后,學習率按照衰減因子進行衰減。

use_lstm=True:是否使用LSTM單元。True表示使用LSTM,False表示使用GRU單元。

num_samples=512:執(zhí)行采樣softmax函數(shù)的臨界值。使用softmax函數(shù)處理輸出序列時,若輸出詞表較大會影響計算效率。因此,當輸出詞表大于512時使用采樣softmax函數(shù);當輸出輸出詞表小于512時使用softmax函數(shù)。

optimizer="sgd":自適應梯度調(diào)節(jié)器,使用sgd算法。

dtype=tf.float32:存儲內(nèi)部變量的數(shù)據(jù)類型為float32。

2)單詞標音功能。

系統(tǒng)的標音功能為交互式,根據(jù)載入的發(fā)音模型對輸入的單詞進行編碼-解碼操作,將單詞序列轉換為發(fā)音序列。這一過程將系統(tǒng)將調(diào)用tf.contrib.legacy_seq2seq接口的basic_rnn_seq2seq方法。首先通過編碼LSTM將輸入序列轉換為向量表示,然后將編碼器最后一個隱藏層的狀態(tài)作為輸入,激活解碼LSTM。方法的主要參數(shù)包括:

encoder_inputs:[batch_size x input_size]表示的二維張量列表,每一個二維張量代表某一時刻的輸入,batch_size具體指某一時刻輸入的字素個數(shù),input_size指編碼器的長度。

decoder_inputs:[batch_size x output_size]表示的二維張量列表。

cell:類tf.contrib.rnn.LSTMCell的實例,表示使用LSTM單元。

dtype=tf.float32:LSTM單元的數(shù)據(jù)類型為float32。

basic_rnn_seq2seq方法的返回值為二維張量表示的二元組(outputs,state)。outputs對應每個時間步中解碼器的輸出,形式為[batch_size x output_size];states表示每個時間步中解碼器的內(nèi)部狀態(tài),形式為[batch_size x cell.state_size]。

解碼完成后,調(diào)用tf.nn接口的softmax方法將張量轉換為對應的音素,輸出音素序列。

5 實驗測試

5.1 實驗準備

系統(tǒng)的實驗準備工作包括以下內(nèi)容:發(fā)音詞典語料準備、實驗環(huán)境搭建以及評測指標制定。

5.1.1 詞典語料準備

在實驗階段,本文首先完成了俄語發(fā)音詞典的構建工作。原始語料的主要來源包括維基百科、CMU資源庫以及一些開源的俄語語料庫。數(shù)據(jù)的獲取通過編寫爬蟲程序?qū)崿F(xiàn),并人工進行適當?shù)呐袆e和整理。詞典的整理過程主要包括:

1)過濾和篩選操作。去除原始語料中存在亂碼、格式錯誤等問題的數(shù)據(jù),刪除詞組、句子或不構成單詞的樣例。

2)音素集歸一操作。將原始語料中的IPA和CMU音素全部用對應的改進SAMPA音素集替換,實現(xiàn)發(fā)音詞典音素集的統(tǒng)一。

3)音素分隔操作。對改寫后音標中的每個音素進行識別,并以空格符為分隔標志將其隔開。

4)去重操作。去除詞形和發(fā)音都相同的重復樣例,保留詞形相同但發(fā)音不同的樣例。

5)排序操作。按照單詞的字母順序?qū)Πl(fā)音詞典進行排序。

經(jīng)過以上整理過濾,最終形成了使用改進的SAMPA音素集標注并包含重音信息的俄語發(fā)音詞典,詞典共包含20 000詞條樣例。

5.1.2 實驗環(huán)境

實驗的模型訓練和測試工作在服務器上進行,服務器的硬件配置為:曙光云圖W760-G20高性能服務器,16核i7至強CPU,128 GB內(nèi)存,4×600 GB硬盤。

5.1.3 評測指標

衡量字音轉換算法的評測指標分別是音素正確率和詞形正確率[21]。音素錯誤一般存在三類,分別是插入錯誤、刪除錯誤,以及替換錯誤。音素正確率的計算公式如下:

(16)

正確轉換的音素數(shù)=音素總數(shù)-(插入錯誤數(shù)+刪除錯誤數(shù)+替換錯誤數(shù))

(17)

詞形正確率的計算公式如下:

(18)

5.2 實驗結果

本文將20 000詞發(fā)音詞典分為兩部分,90%作為訓練數(shù)據(jù),10%作為測試數(shù)據(jù)。在模型訓練階段,通過對LSTM網(wǎng)絡的層數(shù)(layers)和單元數(shù)(units)進行調(diào)整,觀察模型參數(shù)對系統(tǒng)性能的影響。測試階段,本文使用了對比驗證的方法,將訓練得到的4個發(fā)音模型與文獻[6]方法提出的Phonetisaurus工具進行了對比測試。此外,為了衡量數(shù)據(jù)來源對系統(tǒng)性能的影響,分別使用了訓練集語料(集內(nèi)詞)和測試集語料(集外詞)作為測試數(shù)據(jù)。

從表3的實驗結果可以看出, LSTM模型的層數(shù)和單元數(shù)會對系統(tǒng)性能造成顯著影響。當層數(shù)為3,單元數(shù)為512時系統(tǒng)的性能最佳,在集內(nèi)詞測試的音素正確率達到了99.2%,詞形正確率達到了95.8%;在集外詞測試的音素正確率達到了94.5%,詞形正確率達到了74.8%,均高于Phonetisaurus方法。

表3 Phonetisaurus與LSTM模型的正確率對比

表4顯示了4種不同模型的運行效率對比。模型的層數(shù)和單元數(shù)會對訓練時間、模型大小和解碼速度造成影響。盡管當LSTM模型的層數(shù)為3,單元數(shù)為512時系統(tǒng)性能最優(yōu),但訓練時間的提高和解碼速度的變慢導致系統(tǒng)效率發(fā)生了顯著下降。

表4 不同參數(shù)的LSTM模型效率對比

為了分析訓練數(shù)據(jù)規(guī)模對系統(tǒng)性能的影響,本文通過改變訓練集的規(guī)模,使用3層512單元的LSTM網(wǎng)絡對發(fā)音模型進行訓練,并分別在集內(nèi)詞和集外詞測試集上驗證詞形正確率,結果如圖5所示。隨著訓練數(shù)據(jù)規(guī)模的逐漸增大,詞形正確率逐漸提高;在相同訓練規(guī)模的情況下,集內(nèi)詞的標音正確率高于集外詞的標音正確率。

圖5 訓練規(guī)模與系統(tǒng)性能的關系

5.3 實驗分析

實驗結果表明,增加LSTM模型的層數(shù)和單元數(shù)能夠提升系統(tǒng)性能,當網(wǎng)絡層數(shù)由2層增加至3層時對模型的影響較小;當單元數(shù)由64增加至512時,模型的大小、訓練時間、系統(tǒng)性能都會大幅提高,但同樣會導致系統(tǒng)效率大幅下降。當LSTM模型的層數(shù)為3,單元數(shù)為512時系統(tǒng)性能最佳,與Phonetisaurus方法相比,音素正確率提升了2.3個百分點,詞形正確率提升了9.5個百分點。此外,訓練語料的規(guī)模也會對系統(tǒng)性能造成影響,隨著訓練規(guī)模的增大,系統(tǒng)性能會逐漸提升。但同時可以發(fā)現(xiàn),在訓練語料有限的情況下,集外詞的標音正確率始終和集內(nèi)詞存在10%個百分點的差距。因此,為了提升標音系統(tǒng)的總體性能,還需進一步擴充俄語發(fā)音詞典,提高模型準確率,擴大集內(nèi)詞的覆蓋范圍。

6 系統(tǒng)應用前景

本系統(tǒng)基于TensorFlow框架,實現(xiàn)了基于LSTM序列到序列模型的交互式俄語詞匯自動標音功能。本系統(tǒng)的開發(fā)是理論方法到工程應用的實踐過程,可在諸多實際問題上得到應用:

1)我國與俄羅斯等地區(qū)在軍政、外交、文化等領域的溝通交流日益密切,本系統(tǒng)可以為不懂俄語的使用者提供語言幫助。

2)本系統(tǒng)可以幫助俄語學習者拼讀單詞,判斷單詞的重音位置,掌握輔音軟硬、元音強弱等變化規(guī)律,在俄語學習中起到輔助支持的作用。

3)本系統(tǒng)可以嵌入俄語語音識別和語音合成系統(tǒng),通過快速、準確、實時的俄語字音轉換,擺脫對發(fā)音詞典的依賴,降低內(nèi)存空間的占用率。

此外,本系統(tǒng)還具有以下特點:

1)系統(tǒng)基于TensorFlow框架和Python語言開發(fā),具有操作系統(tǒng)的移植性,可以在Linux、Windows、Android、IOS系統(tǒng)間實現(xiàn)移植。

2)系統(tǒng)基于序列到序列模型算法,可根據(jù)訓練數(shù)據(jù)進行語種間的移植,實現(xiàn)多語種詞匯標音的功能。

3)系統(tǒng)可根據(jù)訓練數(shù)據(jù)的質(zhì)量優(yōu)化發(fā)音模型,為標音準確率的提升提供可能性;并且能夠根據(jù)音素集的選擇,改變發(fā)音的標注形式。

7 結語

詞匯標音技術能夠為俄語語音合成和語音識別系統(tǒng)的構建提供關鍵支持。本文首先設計了基于SAMPA的俄語音素集,在原音素集的基礎上增加了重音符號及4個弱化元音,并基于此音素集構建了包含20 000詞的俄語發(fā)音詞典。在此基礎上,本文設計并實現(xiàn)了基于TensorFlow的俄語詞匯標音系統(tǒng),系統(tǒng)使用了基于LSTM序列到序列的模型算法。在實驗測試中,集內(nèi)詞和集外詞的音素正確率分別達到了99.2%和94.5%,詞形正確率分別達到了95.8%和74.8%,均高于Phonetisaurus方法。實驗結果表明,基于LSTM的序列到序列模型在俄語字音轉換問題上取得了出色的表現(xiàn),該系統(tǒng)能夠有效應用為俄語發(fā)音詞典的建設提供支持。但在訓練語料有限的情況下,系統(tǒng)對集外詞的標音正確率與集內(nèi)詞存在一定差距,還有待進一步提高。因此在以后的工作中,需要進一步擴充俄語發(fā)音詞典,擴大訓練語料的規(guī)模,為模型準確率的提高探尋途徑。

參考文獻(References)

[1] KARPOV A, MARKOV K, KIPYATKOVA I, et al. Large vocabulary Russian speech recognition using syntactico-statistical language modeling[J]. Speech Communication, 2014, 56(1): 213-228.

[2] KIPYATKOVA I, KARPOV A, VERKHODANOVA V, et al. Analysis of long-distance word dependencies and pronunciation variability at conversational Russian speech recognition[J]. Computer Science and Information Systems, 2012, 11(6): 719-725.

[3] JIAMPOJAMARN S, KONDRAK G, SHERIF T. Applying many-to-many alignments and hidden Markov models to letter-to-phoneme conversion[C]// Human Language Technologies: Proceedings of the North American Chapter of the Association of Computational Linguistics. New York: NAACM-HLT, 2007: 372-379.

[4] BISANI M, NEY H. Joint-sequence models for grapheme-to-phoneme conversion[J]. Speech Communication, 2008, 50(5): 434-451.

[5] NOVAK J R, MINEMATSU N, HIROSE K. WFST-based grapheme-to-phoneme conversion: open source tools for alignment, model-building and decoding[EB/OL]. [2017- 05- 10]. http: //citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.361.9764.

[6] GRAVES A. Generating sequences with recurrent neural networks[EB/OL]. [2017- 05- 10]. https: //arxiv.org/pdf/1308.0850.pdf.

[7] BAHDANAU D, CHO K, BENGIO Y. Neural machine translation by jointly learning to align and translate[EB/OL]. [2017- 05- 10]. https: //arxiv.org/abs/1409.0473.

[8] SUTSKEVER I, VINYALS O, LE Q V. Sequence to sequence learning with neural networks[C]// NIPS 2014: Proceedings of the 27th International Conference on Neural Information Processing Systems. Cambridge, MA: MIT Press, 2014, 2: 3104-3112.

[9] YAO K, ZWEIG G. Sequence-to-sequence neural net models for grapheme-to-phoneme conversion[EB/OL]. [2017- 05- 10]. https: //arxiv.org/abs/1506.00196.

[10] Wikipedia.IPA symbol for Russian pronunciations[EB/OL].[2017- 10- 17]. https: //en.wikipedia.org/wiki/Help: IPA_for_Russian.

[11] WELLS J C. SAMPA computer readable phonetic alphabet [C]// Handbook of Standards and Resources for Spoken Language Systems. Berlin: Walter de Gruyter, 1997.

[12] OTANDER J. CMU sphinx [EB/OL].(2017- 04- 26) [2017- 10- 17]. https: //cmusphinx.github.io/wiki/download/.

[13] 信德麟,張會森,華劭.俄語語法[M].2版.北京:外語教學與研究出版社, 2009: 1-92.(XIN D L, ZHANG H S, HUA S. Russian Grammar(Second Edition) [M]. Beijing: Foreign Language Teaching and Research Press, 2009: 1-92.)

[14] 喻儼,莫瑜.深度學習原理與TensorFlow實踐[M].北京:電子工業(yè)出版社, 2017: 128-139.(YU Y, MO Y. Deep Learning Principle and TensorFlow Practice [M]. Beijing: Publishing House of Electronics Industry, 2017: 128-139.)

[15] HOCHREITER S, SCHMIDHUBER J. Long short-term memory[J]. Neural Computation, 1997, 9(8): 1735-1780.

[16] GIMPEL K, SMITH N A. Softmax-margin CRFs: training log-linear models with cost functions[C]// Human Language Technologies: Proceedings of the North American Chapter of the Association of Computational Linguistics. Los Angeles: DBLP, 2010: 733-736.

[17] CHO K, van MERRIENBOER B, GULCEHRE C, et al. Learning phrase representations using RNN encoder-decoder for statistical machine translation[EB/OL]. [2017- 05- 10]. https: //arxiv.org/abs/1406.1078.

[18] KOEHN P. Pharaoh: a beam search decoder for phrase-based statistical machine translation models[C]// AMTA 2004: Proceedings of the 6th Conference of the Association for Machine Translation in the Americas. Berlin: Springer, 2004: 115-124.

[19] WILLIAMS R J, PENG J. An efficient gradient-based algorithm for on-line training of recurrent network trajectories[J]. Neural Computation, 1990, 2(4): 490-501.

[20] ABADI M, BARHAM P, CHEN J, et al. TensorFlow: a system for large-scale machine learning[C]// Proceedings of the 12th USENIX Symposium on Operating Systems Design and Implementation. Savannah, GA: USENIX, 2016: 265-283.

[21] PETERS B, DEHDARI J, van GENABITH J. Massively multilingual neural grapheme-to-phoneme conversion[C]// Proceedings of the First Workshop on Building Linguistically Generalizable NLP Systems. Copenhagen: EMNLP, 2017: 19-26.

[22] 滕飛,鄭超美,李文.基于長短期記憶多維主題情感傾向性分析模型[J].計算機應用, 2016, 36(8): 2252-2256.(TENG F, ZHENG C M, LI W. Multidimensional topic model for oriented sentiment analysis based on long short-term memory[J]. Journal of Computer Applications, 2016, 36(8): 2252-2256.)

[23] HANNEMANN M, TRMAL J, ONDEL L, et al. Bayesian joint-sequence models for grapheme-to-phoneme conversion[EB/OL]. [2017- 05- 10]. http: //www.fit.vutbr.cz/research/groups/speech/publi/2017/hannemann_icassp2017_0002836.pdf.

[24] TSVETKOV Y, SITARAM S, FARUQUI M, et al. Polyglot neural language models: a case study in cross-lingual phonetic representation learning[EB/OL]. [2017- 05- 10]. https: //arxiv.org/abs/1605.03832.

[25] MILDE B, SCHMIDT C, K?HLER J. Multitask sequence-to-sequence models for grapheme-to-phoneme conversion[EB/OL]. [2017- 05- 10]. http: //www.isca-speech.org/archive/Interspeech_2017/pdfs/1436.PDF.

This work is partially supported by the Project of Social Science Planning of Luoyang (2016B285).

猜你喜歡
單詞模型
What’s This?
Exercise 1
一半模型
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
單詞連一連
看圖填單詞
看完這些單詞的翻譯,整個人都不好了
3D打印中的模型分割與打包
FLUKA幾何模型到CAD幾何模型轉換方法初步研究
主站蜘蛛池模板: 亚洲国产第一区二区香蕉| 国产精品欧美激情| 欧美在线综合视频| 亚洲综合天堂网| 99在线观看视频免费| 欧美日韩中文字幕在线| 狠狠亚洲五月天| 欧美精品v日韩精品v国产精品| 久久99国产乱子伦精品免| 国产在线视频导航| 国产青榴视频| 精品一区二区三区视频免费观看| 丝袜无码一区二区三区| 55夜色66夜色国产精品视频| 在线观看无码av五月花| 亚洲精品视频免费观看| 欧美色视频日本| 久久精品嫩草研究院| 中文字幕一区二区人妻电影| 亚洲熟女偷拍| 国产精品国产三级国产专业不| 日本免费新一区视频| 久久婷婷国产综合尤物精品| 婷婷六月天激情| 国产第一页屁屁影院| 91原创视频在线| 欧美成人手机在线观看网址| 伊人网址在线| 亚洲成综合人影院在院播放| 国产精品人人做人人爽人人添| 国产打屁股免费区网站| 婷婷综合在线观看丁香| 欧美性精品| 91麻豆久久久| 中文字幕久久波多野结衣| 欧美福利在线播放| 54pao国产成人免费视频| 日韩麻豆小视频| 日韩不卡免费视频| 一本色道久久88综合日韩精品| 中国一级毛片免费观看| 看国产一级毛片| 久久精品这里只有精99品| 国产精品第5页| 中文字幕不卡免费高清视频| 国产精品毛片一区| 国产精品嫩草影院av| 久久无码高潮喷水| 免费视频在线2021入口| 欧美成人午夜视频免看| 中文字幕亚洲电影| 永久免费AⅤ无码网站在线观看| 国产成a人片在线播放| 亚洲视频三级| 色国产视频| 成人小视频网| 五月天婷婷网亚洲综合在线| 国产原创演绎剧情有字幕的| 国产欧美精品专区一区二区| 欧美区在线播放| 毛片基地视频| 蜜芽国产尤物av尤物在线看| 青青青视频免费一区二区| 成年人午夜免费视频| 国产99在线| 久久精品娱乐亚洲领先| 国产亚洲第一页| 国产精品lululu在线观看| 欧美一级99在线观看国产| 在线观看精品自拍视频| 无码精品国产dvd在线观看9久| 好久久免费视频高清| 高清国产在线| 五月婷婷欧美| 欧美在线天堂| 国产精品性| 色综合日本| 91黄色在线观看| 亚洲国产精品一区二区高清无码久久| 精品小视频在线观看| 国产成人高精品免费视频| 亚洲精品无码久久毛片波多野吉|