馮 偉,易綿竹,馬延周
(戰(zhàn)略支援部隊(duì)信息工程大學(xué) 洛陽(yáng)校區(qū),河南 洛陽(yáng)471003)
在俄語(yǔ)語(yǔ)音合成和語(yǔ)音識(shí)別系統(tǒng)中,發(fā)音詞典是存儲(chǔ)俄語(yǔ)單詞發(fā)音的重要基礎(chǔ)資源,其規(guī)模和質(zhì)量直接影響系統(tǒng)的性能。俄語(yǔ)作為一種拼音文字,在語(yǔ)言發(fā)展中不斷有新詞和外來(lái)詞產(chǎn)生,發(fā)音詞典必然難以包括所有俄語(yǔ)單詞的發(fā)音。然而,大規(guī)模詞典會(huì)大量占用存儲(chǔ)空間,降低系統(tǒng)的運(yùn)行效率。因此,需要探尋一種方法對(duì)俄語(yǔ)單詞及其變化形式進(jìn)行自動(dòng)注音。
字音轉(zhuǎn)換(grapheme-to-phoneme conversion,G2P)是指利用計(jì)算機(jī)自動(dòng)為單詞標(biāo)注音標(biāo),將字母拼寫(xiě)的單詞文本轉(zhuǎn)換為可供人或機(jī)器閱讀和處理的單詞發(fā)音。俄語(yǔ)字音轉(zhuǎn)換技術(shù)可以為俄語(yǔ)發(fā)音詞典的構(gòu)建提供支持,并有效解決集外詞(out-of-vocabulary,OOV)的自動(dòng)注音問(wèn)題。
字音轉(zhuǎn)換方法可分為基于規(guī)則的方法和數(shù)據(jù)驅(qū)動(dòng)的方法。基于規(guī)則的方法即通過(guò)對(duì)俄語(yǔ)正字法和發(fā)音規(guī)律的總結(jié),人工制定俄語(yǔ)的字音轉(zhuǎn)換規(guī)則,實(shí)現(xiàn)對(duì)單詞發(fā)音的預(yù)測(cè)。在文獻(xiàn)[1-3]中,俄羅斯圣彼得堡大學(xué)的Kipyatkova和Karpov等人在其俄語(yǔ)語(yǔ)音識(shí)別系統(tǒng)的開(kāi)發(fā)過(guò)程中,根據(jù)俄語(yǔ)輔音變化和元音弱化等規(guī)則,借助俄語(yǔ)重音詞典,實(shí)現(xiàn)了基于規(guī)則的俄語(yǔ)字音轉(zhuǎn)換。算法共包含七個(gè)步驟,經(jīng)過(guò)兩個(gè)循環(huán)完成,但并沒(méi)有對(duì)算法的準(zhǔn)確率進(jìn)行測(cè)試。由于俄語(yǔ)發(fā)音特征復(fù)雜多變,正字法的約束也在逐漸減弱,規(guī)則中難免會(huì)出現(xiàn)無(wú)法覆蓋到的例外情況,這些都會(huì)對(duì)字音轉(zhuǎn)換的準(zhǔn)確率造成影響。
數(shù)據(jù)驅(qū)動(dòng)的方法是在足夠訓(xùn)練數(shù)據(jù)的支持下,利用概率統(tǒng)計(jì)和機(jī)器學(xué)習(xí)算法,建立發(fā)音模型,通過(guò)解碼算法為任意單詞進(jìn)行標(biāo)音。數(shù)據(jù)驅(qū)動(dòng)的方法是目前主流的字音轉(zhuǎn)換方法。在國(guó)外,Galescu等[4]提出了基于期望最大化(EM)算法實(shí)現(xiàn)字素,音素一對(duì)一的對(duì)齊,通過(guò)N-gram建立發(fā)音模型的字音轉(zhuǎn)換方法,并在NetTalk和CMU的英語(yǔ)數(shù)據(jù)集上進(jìn)行了測(cè)試。Jiampojamarn等[5]提出了字素音素多對(duì)多的對(duì)齊方式,并將隱馬爾科夫模型(HMM)應(yīng)用于發(fā)音模型建模。Bisani等[6]提出了聯(lián)合序列模型的方法,并在英語(yǔ)、德語(yǔ)和法語(yǔ)測(cè)試集上進(jìn)行了測(cè)試,該方法也是目前較為流行的字音轉(zhuǎn)換方法。Rao等[7]還將最新的長(zhǎng)短時(shí)記憶(LSTM)循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)應(yīng)用于解決字音轉(zhuǎn)換問(wèn)題。在國(guó)內(nèi),王永生等[8]提出了一種動(dòng)態(tài)有限泛化法(DFGA)的機(jī)器學(xué)習(xí)算法,用于進(jìn)行英語(yǔ)字音轉(zhuǎn)換規(guī)則的學(xué)習(xí)。李鵬等[9]實(shí)現(xiàn)了一個(gè)基于CART樹(shù)(classification and regression tree)方法的英語(yǔ)字音轉(zhuǎn)換系統(tǒng)。趙坤等[10]提出了一種通過(guò)有條件維數(shù)擴(kuò)展(CMI)決策樹(shù)算法解決英語(yǔ)字音轉(zhuǎn)換的方法。綜上所述,數(shù)據(jù)驅(qū)動(dòng)的字音轉(zhuǎn)換算法在國(guó)內(nèi)外已有不少研究,但應(yīng)用對(duì)象主要為英語(yǔ),還沒(méi)有俄語(yǔ)方面的有關(guān)研究和實(shí)驗(yàn)。因此,有必要以俄語(yǔ)語(yǔ)音學(xué)知識(shí)為基礎(chǔ),完善俄語(yǔ)語(yǔ)料資源,對(duì)俄語(yǔ)字音轉(zhuǎn)換算法的實(shí)現(xiàn)與應(yīng)用做進(jìn)一步研究。
在數(shù)據(jù)驅(qū)動(dòng)的方法中,加權(quán)有限狀態(tài)轉(zhuǎn)化器(WFST)是建立索引的一種有效手段,它具有完善的理論框架,實(shí)現(xiàn)簡(jiǎn)單,能夠有效減少存儲(chǔ)空間,加快解碼速度。Yang等[11]最先提出將WFST應(yīng)用于字音轉(zhuǎn)換的任務(wù),并在NetTalk英語(yǔ)測(cè)試集上與文獻(xiàn)[6]算法進(jìn)行了對(duì)比測(cè)試。結(jié)果表明,WFST框架可以大幅減少模型訓(xùn)練的時(shí)間,提高單詞發(fā)音的預(yù)測(cè)效率。Novak等[12]對(duì)字素音素的對(duì)齊方法進(jìn)行了改進(jìn),提出了基于WFST的“一對(duì)多”和“多對(duì)一”對(duì)齊方式,還對(duì)解碼算法進(jìn)行了優(yōu)化,提出了基于循環(huán)神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型(RNNLM)的N-best解碼算法,以及最小貝葉斯風(fēng)險(xiǎn)詞圖(lattice minimum Bayes-Risk,LMBR)解碼算法,并在三個(gè)英語(yǔ)測(cè)試集上進(jìn)行了對(duì)比測(cè)試。
以上算法都以英語(yǔ)為主要研究目標(biāo),其模型訓(xùn)練的過(guò)程與俄語(yǔ)之間難免存在差異。本文根據(jù)俄語(yǔ)單詞的發(fā)音特點(diǎn),采用了基于EM算法的俄語(yǔ)字音“多對(duì)多”對(duì)齊方法,然后將對(duì)齊結(jié)果利用聯(lián)合N-gram模型訓(xùn)練并轉(zhuǎn)化為WFST發(fā)音模型,最后通過(guò)最短路徑算法進(jìn)行解碼,實(shí)現(xiàn)基于WFST的俄語(yǔ)字音轉(zhuǎn)換。WFST的實(shí)現(xiàn)以開(kāi)源庫(kù)OpenFst為支持。此外,本文還對(duì)原始SAMPA俄語(yǔ)音素集進(jìn)行了改進(jìn),增加了四個(gè)元音音素和一個(gè)重音符號(hào),設(shè)計(jì)了包含46個(gè)音素的俄語(yǔ)音素集。最后,依據(jù)新音素集構(gòu)建了20 000詞俄語(yǔ)發(fā)音詞典,將其作為模型訓(xùn)練和測(cè)試的語(yǔ)料數(shù)據(jù)。
音素集就是音素的集合。由于國(guó)際音標(biāo)書(shū)寫(xiě)復(fù)雜、機(jī)讀性差等缺點(diǎn),在俄語(yǔ)語(yǔ)音處理系統(tǒng)中,需要依據(jù)計(jì)算機(jī)可讀的SAMPA符號(hào)設(shè)計(jì)俄語(yǔ)音素集,從而構(gòu)建俄語(yǔ)發(fā)音詞典并訓(xùn)練俄語(yǔ)聲學(xué)模型。俄語(yǔ)音素集中應(yīng)盡可能地包括俄語(yǔ)全部的音素,但如果音素集過(guò)大,單詞注音結(jié)果的不確定性將會(huì)顯著增加,大大提高解碼過(guò)程的計(jì)算復(fù)雜度。若音素集太小,則會(huì)降低單詞標(biāo)音的精確度,影響語(yǔ)音處理系統(tǒng)的性能。為了體現(xiàn)俄語(yǔ)重音變化和元音弱化現(xiàn)象,本文對(duì)原始SAMPA俄語(yǔ)音素集進(jìn)行了改進(jìn),設(shè)計(jì)了新的俄語(yǔ)音素集。
目前國(guó)際上俄語(yǔ)音素集的設(shè)計(jì)有多種方案。IPA俄語(yǔ)音素集共包含55個(gè)音素,分為38個(gè)輔音和17個(gè)元音,元音又分為11個(gè)重讀元音和六個(gè)非重讀元音,另外包括一個(gè)重音符號(hào)[13]。SAMPA俄語(yǔ)音素集共包含42個(gè)音素,分為36個(gè)輔音和六個(gè)元音,其元音音素沒(méi)有重讀與弱化之分,僅僅將弱化的元音[e]和[o]分別用[i]和[a]表示[14];卡內(nèi)基梅隆大學(xué)(Carnegie Mellon University,CMU)設(shè)計(jì)的俄語(yǔ)音素集共包含50個(gè)音素和一個(gè)無(wú)音符號(hào),分為36個(gè)輔音和14個(gè)元音,并將元音分為六個(gè)重讀元音和八個(gè)非重讀元音[16]。
通過(guò)對(duì)以上三個(gè)俄語(yǔ)音素集的研究,結(jié)合俄語(yǔ)音素的發(fā)音規(guī)則,重點(diǎn)對(duì)元音音素從一級(jí)弱化和二級(jí)弱化的角度進(jìn)行區(qū)分,本文在原有俄語(yǔ)SAMPA音素集的基礎(chǔ)上,增加了四個(gè)弱化后的元音和一個(gè)重音符號(hào)“!”,設(shè)計(jì)了共包含46個(gè)音素的俄語(yǔ)音素集。其中音素用SAMPA符號(hào)表示,包括36個(gè)輔音和10個(gè)元音,元音又細(xì)分為六個(gè)重讀元音和四個(gè)非重讀元音。新增的四個(gè)元音如表1所示。
表1 俄語(yǔ)弱化元音表
為了驗(yàn)證新音素集的有效性,本文從發(fā)音詞典中隨機(jī)抽取200個(gè)俄語(yǔ)單詞,分別用原始SAMPA音素集和新音素集進(jìn)行標(biāo)音,交由俄語(yǔ)專(zhuān)家進(jìn)行人工比對(duì)驗(yàn)證。驗(yàn)證結(jié)果證明,本文設(shè)計(jì)的新音素集能夠清晰地標(biāo)明俄語(yǔ)單詞的重音位置,有效地區(qū)分元音一級(jí)弱化和二級(jí)弱化后的讀音,相較于原始的SAMPA音素集標(biāo)音更加準(zhǔn)確,可讀性更強(qiáng)。表2是改進(jìn)的音素集與原始音素集標(biāo)音的對(duì)比示例。
表2 音素集標(biāo)音對(duì)比示例
加權(quán)有限狀態(tài)轉(zhuǎn)化器是一種基于半環(huán)代數(shù)理論的靜態(tài)網(wǎng)絡(luò)解碼器,近年來(lái)被廣泛應(yīng)用于語(yǔ)音識(shí)別研究。語(yǔ)音識(shí)別系統(tǒng)涉及的HMM模型、發(fā)音詞典、語(yǔ)言模型等,都可以轉(zhuǎn)化為WFST模型的形式實(shí)現(xiàn)快速解碼。WFST解碼器具有實(shí)現(xiàn)簡(jiǎn)單、解碼速度快的特點(diǎn),對(duì)于知識(shí)源有統(tǒng)一的建模方式,具有完善的理論框架和成熟的優(yōu)化算法,能夠有效減少存儲(chǔ)空間,提高系統(tǒng)的性能。
WFST可表示為定義在半環(huán)K上的八元組:T=(A,B,Q,I,F,E,λ,ρ)。其中,A表示輸入符號(hào)集;B表示輸出符號(hào)集;Q為有限狀態(tài)集合;I?Q與F?Q,分別表示初始狀態(tài)和終止?fàn)顟B(tài)子集;ε為空符號(hào),E?Q×(A∪{ε})×(B∪{ε})×K×Q,表示狀態(tài)轉(zhuǎn)移集合,描述了WFST從某一狀態(tài)接受輸入后輸出的符號(hào)與權(quán)重,并轉(zhuǎn)移到下一狀態(tài);λ為初始狀態(tài)權(quán)重對(duì)齊:I→K;ρ為終止?fàn)顟B(tài)權(quán)重對(duì)齊:F→K。WFST的權(quán)重為半環(huán)(K,?,?,0,1),通過(guò)二元函數(shù)?、?對(duì)權(quán)重進(jìn)行操作,常用的半環(huán)有Log半環(huán)和 Tropical半環(huán)[15]。
WFST的解碼網(wǎng)絡(luò)是一個(gè)有向有環(huán)圖,一個(gè)節(jié)點(diǎn)表示一個(gè)狀態(tài),由一個(gè)狀態(tài)到下一個(gè)狀態(tài)的有向弧描述了狀態(tài)間的轉(zhuǎn)移過(guò)程、符號(hào)間的映射關(guān)系以及轉(zhuǎn)移的權(quán)重。以序列abc到序列абв的轉(zhuǎn)移過(guò)程為例,WFST有向圖如圖1所示。
圖1 WFST有向圖示例
WFST解碼過(guò)程中常用的算法有:合成(composition)算法、空轉(zhuǎn)移消除(epsilon removal)算法、確定化(determinization)算法、最小化(minimization)算法等。
建立字素與音素的對(duì)齊是訓(xùn)練發(fā)音模型的第一步,一般的對(duì)齊方法是以“一對(duì)一”的方式進(jìn)行對(duì)齊[9]。通過(guò)對(duì)俄語(yǔ)語(yǔ)音學(xué)的研究,本文使用基于期望最大化的“多對(duì)多”對(duì)齊方式解決俄語(yǔ)字音對(duì)齊問(wèn)題。
單詞發(fā)音中經(jīng)常出現(xiàn)字素序列和音素序列長(zhǎng)度不一致的情況,有時(shí)多個(gè)字素對(duì)應(yīng)一個(gè)音素,有時(shí)一個(gè)字素能夠產(chǎn)生多個(gè)音素。通過(guò)研究俄語(yǔ)單詞發(fā)音規(guī)律發(fā)現(xiàn),大多數(shù)俄語(yǔ)字母與音素間以一對(duì)一的形式對(duì)應(yīng),但也存在以下兩種例外:
(1) 一個(gè)字母對(duì)應(yīng)兩個(gè)音素,如ю—[j u]。
(2) 兩個(gè)字母對(duì)應(yīng)一個(gè)音素。這種情況主要由輔音字母與無(wú)音符號(hào)組合造成,如сь—[s’]。
以“юность(青年)”為例,一一對(duì)齊的結(jié)果如下:
ю?ность|||||||j!un@st'?
可以看出,音素“!u”和字母“ь”都產(chǎn)生了“空對(duì)齊”的情況。傳統(tǒng)的用于解決這種問(wèn)題的方法從本質(zhì)上可以概括為:通過(guò)改變?cè)凶帜副砘蛞羲丶斯?chuàng)造新的一一對(duì)齊。具體方案可分情況描述:
(1) 一個(gè)字母對(duì)應(yīng)多個(gè)音素的情況有兩種解決方法:一是在單詞序列中加入“空”字母,對(duì)應(yīng)空缺的音素;二是定義新音素,將多個(gè)音素組合后的整體視為一個(gè)音素。
(2) 與多個(gè)字母對(duì)應(yīng)一個(gè)音素的解決方法類(lèi)似,可以引入空音素,對(duì)應(yīng)不發(fā)音的字母;或是將多個(gè)字母組合為一個(gè)新字素,對(duì)應(yīng)一個(gè)發(fā)音。
以上方法從根本上講仍然是一對(duì)一的對(duì)齊,只是從形式上達(dá)到了對(duì)齊的目的,并沒(méi)有為每個(gè)字素找到其真正對(duì)應(yīng)的發(fā)音,而且對(duì)原有字母表和音素集的修改,會(huì)改變語(yǔ)言的基本規(guī)則,由此造成發(fā)音模型的混亂。
為了避免一一對(duì)齊造成的局限性,文獻(xiàn)[5]提出了基于期望最大化算法的“多對(duì)多”對(duì)齊方法。經(jīng)實(shí)驗(yàn)驗(yàn)證,該方法相較于“一對(duì)一”的方法能夠顯著提高標(biāo)音準(zhǔn)確率, 在之后的文獻(xiàn)中,也多次引用這一方法[6,11-12]。本文將這一方法應(yīng)用于俄語(yǔ)字素、音素對(duì)齊問(wèn)題,在維持原有字母表和音素集不變的情況下,避免了“一對(duì)一”方式造成的“空對(duì)齊”現(xiàn)象。該方法通過(guò)對(duì)所有對(duì)齊組合建立詞圖(Lattice),在WFST框架的支持下,利用期望最大化算法,可以準(zhǔn)確地為每個(gè)字素找到其對(duì)應(yīng)的發(fā)音。
仍以“юность”為例,多對(duì)多對(duì)齊的結(jié)果如下:
юность|||||j!un@st’
可以看出,對(duì)齊結(jié)果中沒(méi)有產(chǎn)生“空對(duì)齊”的情況,“ю”和“ть”的發(fā)音對(duì)齊準(zhǔn)確。
當(dāng)給定樣本中存在隱變量或缺失數(shù)據(jù)時(shí),可以利用期望最大化算法求解模型參數(shù)的最大似然估計(jì),實(shí)現(xiàn)概率建模。該問(wèn)題的隱變量即可能的對(duì)齊結(jié)果。期望最大化算法分為兩步,第一步是期望計(jì)算(expectation)過(guò)程,第二步是求解最大化(maximization)的過(guò)程,算法的整體流程如圖2所示。
圖2中,x、y分別表示當(dāng)前輸入的單詞和發(fā)音序列;T、V分別表示x、y序列的長(zhǎng)度;maxX和maxY為可賦值變量,分別表示x、y中子序列的最大長(zhǎng)度,即字母和音素在對(duì)齊時(shí)的最多組合數(shù),對(duì)于俄語(yǔ)來(lái)說(shuō),maxX和maxY的值都為2;γ為當(dāng)前對(duì)齊結(jié)果的期望。
EM算法首先遍歷單詞和發(fā)音的每一個(gè)子序列xt、yv,根據(jù)每一個(gè)對(duì)齊組合生成有限狀態(tài)接收機(jī)(FSA)詞圖,然后計(jì)算所有對(duì)齊的期望值,最后得出使期望最大化的對(duì)齊結(jié)果。
期望計(jì)算的算法利用WFST的相關(guān)操作實(shí)現(xiàn)。算法流程如下[12]:
算法:期望計(jì)算過(guò)程輸入:AlignedLattices輸出:γ1 foreachFSAalignmentlatticeFdo2 α←ShortestDistance(F)3 β←ShortestDistance(FR)4 foreach stateq∈Q[F] do5 foreach arce∈E[q]do6 v=((α[q]?w[e])?β[n[e]])β[0]7 γ[i[e]]⊕=v
算法的輸入為FSA表示的對(duì)齊詞圖。首先為每條弧初始化一個(gè)權(quán)重w[e],通過(guò)WFST最短路徑算法得到正向概率α和反向概率β;之后遍歷每一個(gè)節(jié)點(diǎn)及節(jié)點(diǎn)上的每條弧,根據(jù)第6行的二元運(yùn)算?計(jì)算每條弧的后驗(yàn)概率v,n[e]為下一節(jié)點(diǎn)狀態(tài);i[e]為當(dāng)前輸入符號(hào),算法最后根據(jù)概率v更新當(dāng)前的對(duì)齊的期望γ[i[e]]。
求解最大化的過(guò)程以期望γ為輸入,經(jīng)過(guò)多次迭代重新估計(jì)分布參數(shù),得到每個(gè)對(duì)齊結(jié)果新的估計(jì)值γnew。 利用γnew更新詞圖中每條弧的權(quán)值,得出使期望實(shí)現(xiàn)最大化的路徑和對(duì)齊結(jié)果。
以“юный(年輕的)”的第6格形式юном [j !u n @ m]為例,初始化的FSA模型如圖3所示。
圖3 初始化對(duì)齊FSA模型
圖3中,每條路徑上的字母音素組合為通往下一狀態(tài)的對(duì)齊方式,每個(gè)節(jié)點(diǎn)表示當(dāng)前已對(duì)齊的序列狀態(tài)。0節(jié)點(diǎn)為初始狀態(tài),8節(jié)點(diǎn)為終止?fàn)顟B(tài)。每個(gè)節(jié)點(diǎn)已對(duì)齊的序列狀態(tài)如表3所示。經(jīng)過(guò)期望最大化算法計(jì)算,得出最終的路徑為:0—1—4—5—8。
表3 節(jié)點(diǎn)狀態(tài)表
發(fā)音模型的構(gòu)建利用N-gram語(yǔ)言模型對(duì)聯(lián)合的字素、音素序列進(jìn)行訓(xùn)練,得到音素序列出現(xiàn)的概率參數(shù)。再將N-gram模型轉(zhuǎn)換為加權(quán)有限狀態(tài)轉(zhuǎn)化器,構(gòu)成解碼器的搜索空間。
N-gram語(yǔ)言模型是自然語(yǔ)言處理中被廣泛應(yīng)用的統(tǒng)計(jì)語(yǔ)言模型,在基于統(tǒng)計(jì)的語(yǔ)音識(shí)別、機(jī)器翻譯、漢語(yǔ)分詞等應(yīng)用上都取得了成功。這種模型構(gòu)建簡(jiǎn)單、靈活,尤其適用于序列型數(shù)據(jù)。因此,使用N-gram模型可以類(lèi)似地為聯(lián)合字音音素序列建立發(fā)音模型。
基于聯(lián)合N-gram模型的計(jì)算原理為:對(duì)于一個(gè)俄語(yǔ)單詞w,假設(shè)其對(duì)齊后的字素序列為γ(w)=g1g2…gn,音素序列為(w)=p1p2…pn,gi、pi(i=1,2,…,n)是第i個(gè)子序列,則聯(lián)合概率可以表示為P(γ(w),(w))。設(shè)A為字素和音素所有可能的組合,每個(gè)組合可以表示為a=
基于聯(lián)合N-gram算法和WFST框架的發(fā)音模型建立過(guò)程如下:
(1) 將對(duì)齊后的兩個(gè)序列(g1,g2,…,gn)和(p1,p2,…,pn)合并為一個(gè)聯(lián)合的對(duì)齊序列(g1:p1,g2:p2,…,gn:pn)。例如:
год |g !o t→г:g о:!o д:t
хорошо | x @ r 6 S !o→х:x о:@ р:r о:6 ш:S о:!o
(2) 采用聯(lián)合N-gram模型算法對(duì)步驟(1)產(chǎn)生的聯(lián)合序列結(jié)果進(jìn)行訓(xùn)練。本文利用MIT語(yǔ)言模型(MITLM)工具包[17],設(shè)定N=8,采用Kneser-Ney平滑方法,得到了以ARPA格式存儲(chǔ)的uni-gram至8-gram語(yǔ)言模型。
(3) 利用OpenFst開(kāi)源庫(kù)的支持[18-19],將聯(lián)合N-gram模型轉(zhuǎn)化為加權(quán)有限狀態(tài)轉(zhuǎn)換器。轉(zhuǎn)化時(shí),語(yǔ)言模型中對(duì)齊的字素和音素被重新分開(kāi),分別作為WFST的輸入和輸出符號(hào),對(duì)應(yīng)的概率作為路徑的權(quán)值,轉(zhuǎn)化后的WFST即發(fā)音模型的轉(zhuǎn)換器。以字母序列абa[6 b a]為例,其WFST發(fā)音模型如圖4所示。
圖4 WFST發(fā)音模型示例圖
發(fā)音預(yù)測(cè)的過(guò)程首先將輸入單詞表示為FSA模型,然后將FSA與WFST發(fā)音模型合成,最后對(duì)合成后的WFST進(jìn)行優(yōu)化,通過(guò)最短路徑算法找出最終的音素序列,可以用公式表示為:
(3)
在式(3)中,Hbest表示權(quán)重最高的發(fā)音預(yù)測(cè)序列,W表示輸入單詞 的FSA模 型,M表 示 由 聯(lián) 合N-gram模型轉(zhuǎn)化生成的WFST發(fā)音模型。其中,compose表示W(wǎng)FST的合成算法,合成算法將輸入的FSA和WFST發(fā)音模型序列串聯(lián)生成單一的WFST;projoutput表示輸出符號(hào)映射運(yùn)算,使生成的WFST保持與原WFST序列相同的輸入輸出映射關(guān)系;opt表示W(wǎng)FST的優(yōu)化,包括確定化、空轉(zhuǎn)移消除等操作;ShortestPath表示從WFST中檢索最短路徑的運(yùn)算。最終的最短路徑就是預(yù)測(cè)出的單詞最優(yōu)發(fā)音。
基于WFST的俄語(yǔ)字音轉(zhuǎn)換方法,模型訓(xùn)練與測(cè)試流程如圖5所示。
圖5 基于WFST的俄語(yǔ)字音轉(zhuǎn)換、測(cè)試方法流程圖
本文的原始語(yǔ)料主要來(lái)源于維基百科、CMU資源庫(kù)及一些開(kāi)源的俄語(yǔ)語(yǔ)料庫(kù),我們將原始樣例的音素集映射到本文設(shè)計(jì)的基于SAMPA的俄語(yǔ)音素集,在映射過(guò)程中沒(méi)有出現(xiàn)錯(cuò)誤。通過(guò)對(duì)語(yǔ)料的歸整,最終形成了包含20 000詞條樣例的俄語(yǔ)發(fā)音詞典。
常用于衡量字音轉(zhuǎn)換的評(píng)測(cè)指標(biāo)分別是音素正確率和詞形正確率,其計(jì)算公式如下:
音素正確率=正確轉(zhuǎn)換的音素?cái)?shù)/音素總數(shù)
詞形正確率=正確標(biāo)音的單詞數(shù)/單詞總數(shù)
本文對(duì)發(fā)音詞典中的20 000個(gè)詞進(jìn)行了10輪交叉驗(yàn)證,每次選取90%為訓(xùn)練數(shù)據(jù),10%為測(cè)試數(shù)據(jù),結(jié)果如表4所示。
表4 測(cè)試結(jié)果表
從測(cè)試結(jié)果可以看出,本文的俄語(yǔ)字音轉(zhuǎn)換算法在實(shí)驗(yàn)中取得了較好的效果,能夠有效地應(yīng)用于俄語(yǔ)發(fā)音詞典構(gòu)建。
本文采用一種數(shù)據(jù)驅(qū)動(dòng)的俄語(yǔ)字音轉(zhuǎn)換方法,該方法以WFST為框架,基于期望最大化算法實(shí)現(xiàn)了俄語(yǔ)字素、音素的“多對(duì)多”對(duì)齊,并通過(guò)聯(lián)合N-gram模型建立發(fā)音模型,利用WFST最短路徑算法進(jìn)行模型解碼。另外設(shè)計(jì)了基于SAMPA的俄語(yǔ)音素集,在原音素集的基礎(chǔ)上增加了重音符號(hào)及4個(gè)弱化元音,基于此音素集構(gòu)建了包含20 000個(gè)詞的俄語(yǔ)發(fā)音詞典。在交叉驗(yàn)證中,平均詞形正確率達(dá)到了62.9%,平均音素正確率達(dá)到了92.2%。
本研究表明,G2P技術(shù)能夠?yàn)槎碚Z(yǔ)語(yǔ)音合成和語(yǔ)音識(shí)別系統(tǒng)研制提供支持。在下一步工作中,我們將進(jìn)一步擴(kuò)充俄語(yǔ)發(fā)音詞典的規(guī)模,探索用于解決G2P問(wèn)題的機(jī)器學(xué)習(xí)算法,為提升俄語(yǔ)字音轉(zhuǎn)換的正確率尋繹新途徑。
[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]Karpov A,Kipyatkova I,Ronzhin A.Very large vocabulary ASR for spoken Russian with syntactic and morphemic analysis[C]//Proceedings of Italy:INTERSPEECH 2011,Conference of the International Speech Communication Association,2011:3161-3164.
[4]Galescu L,Allen J F.Bi-directional conversion between graphemes and phonemes using a joint N-gram model[C]//Scotland:Proceedings ISCA Tutorial on TTS,2001.
[5]Jiampojamarn S,Kondrak G,Sherif T.Applying many-to-many alignments and hidden Markov models to Letter-to-phoneme conversion[C]//Proceedings of HLT-NAACL,2007:372-379.
[6]Bisani M,Ney H.Joint-sequence models for grapheme-to-phoneme conversion[J].Speech Communication,2008,50(5):434-451.
[7]Rao K,Peng F,Sak H,et al.Grapheme-to-phoneme conversion using long short-term memory recurrent neural networks[C]//Proceedings of IEEE International Conference on Acoustics,Speech and Signal Processing.IEEE,2015:4225-4229.
[8]王永生,柴佩琪,宣國(guó)榮.英語(yǔ)語(yǔ)音合成中基于DFGA的字音轉(zhuǎn)換算法[J].計(jì)算機(jī)工程與應(yīng)用,2006(13):158-161,190.
[9]李鵬,徐波.單詞自動(dòng)注音方法的研究[J].清華大學(xué)學(xué)報(bào)(自然科學(xué)版),2008(S1):735-740.
[10]趙坤,梁維謙,劉潤(rùn)生.面向字音轉(zhuǎn)換的有條件維數(shù)擴(kuò)展算法[J].清華大學(xué)學(xué)報(bào)(自然科學(xué)版),2008(10):1629-1631.
[11]Yang D,Dixon P R,Furui S.Rapid development of a grapheme-to-phoneme system based on weighted finite state transducer(WFST)framework[C]//Proceedings of ASJ Autumn Meeting,2009:111-112.
[12]Novak J R,Minematsu N,Hirose K.WFST-based grapheme-to-phoneme conversion:Open source tools for alignment,model-building and decoding[C]//Proceedings of FSMNLP,2012:45-49.
[13]Wikipedia.IPA symbol for Russian pronunciations [EB/OL].https://en.wikipedia.org/wiki/Help:IPA_for_Russian,2017-10-13/2017-10-17.
[14]Wells J C.SAMPA - computer readable phonetic alphabet[EB/OL].http://www.phon.ucl.ac.uk/home/sampa/,2005-10-25/2017-10-17.
[15]Mohri M,Pereira F,Riley M.Speech recognition with weighted finite-state transducers[M].Springer,Berlin Heidelberg,2008.
[16]Otander J.CMU Sphinx [EB/OL].https://cmusphinx.github.io/wiki/download/,2017-04-26/2017-10-17.
[17]Lehn M.,MIT Language Modeling Toolkit,https://github.com/mit-nlp/mitlm,2008-01-01/2017-10-18.
[18]Gorman K,OpenFst Library,http://www.openfst.org/twiki/bin/view/FST/WebHome,2017-07-05/2017-10-18.
[19]Allauzen C,Riley M,Schalkwyk J,et al.OpenFst:A general and efficient weighted finite-state transducer library[C]//Proceedings of International Conference on Implementation and Application of Automata.Springer-Verlag,2007:11-23.
[20]Povey D,Hannemann M,Boulianne G,et al.Generating exact lattices in the WFST framework[C]//Proceedings of IEEE International Conference on Acoustics,Speech and Signal Processing.IEEE,2012:4213-4216.
[21]Novak J R,Dixon P R,Minematsu N,et al.Improving WFST-based G2P Conversion with AlignmentConstraints and RNNLM N-best Rescoring[J].Booklist,2013.
[22]信德麟,張會(huì)森,華劭.《俄語(yǔ)語(yǔ)法》(第二版)[M].北京:外語(yǔ)教學(xué)與研究出版社,2009.
[23]Ронжин А.,Карпов А.,Лобанов Б.,Et al.Фонетико-морфологическая разметка речевых корпусов для распознавания и синтеза русской речи[J].Информационно-управляющие системы,2006,(6):24-35.
[24]Важенина Д.А.,Кипяткова И.С.,Марков К.П.,et al.Методика выбора фонемного набора для автоматического распознавания русской речи[J].Труды СПИИРАН,2014,5(36):92-113.
馮偉(1993—),碩士研究生,主要研究領(lǐng)域?yàn)樽匀徽Z(yǔ)言處理。E-mail:303203093@qq.com
易綿竹(1964—),通信作者,教授,博士生導(dǎo)師,主要研究領(lǐng)域?yàn)橛?jì)算語(yǔ)言學(xué)、語(yǔ)言信息處理。E-mail:mianzhuyi@gmail.com
馬延周(1977—),博士,主要研究領(lǐng)域?yàn)橛?jì)算語(yǔ)言學(xué)和語(yǔ)言信息處理。E-mail:myz827@126.com