曹德智,吳立成,趙悅*
1.中央民族大學,中國少數(shù)民族語言文學院,北京 100081
2.中央民族大學,信息工程學院,北京 100081
自動標音技術即字音轉換技術(graphemeto-phoneme conversion, G2P),是指利用計算機自動為單詞系統(tǒng)標注音標,將用字符拼寫的單詞文本轉換為可供人或機器閱讀和處理的單詞發(fā)音。G2P 算法可以應用到自然語言處理的很多領域,如語音識別技術、語音合成技術、語音關鍵詞檢測、機器翻譯等應用中。
在語音識別與語音合成系統(tǒng)中,發(fā)音詞典包含了從單詞到音素之間的一一對應關系,在此基礎上把聲學模型和語言模型連接起來,共同組成一個用于進行解碼工作的搜索狀態(tài)空間,其規(guī)模和質量直接影響系統(tǒng)性能。隨著朝鮮語自身的發(fā)展,內部不斷涌現(xiàn)大量的新詞和外來詞,但字典數(shù)據(jù)庫難以包括所有朝鮮語單詞的發(fā)音。因此,除了數(shù)據(jù)庫內的詞匯,如何解決那些數(shù)據(jù)庫以外的“集外詞”即OOV(out of vocabulary)單詞的讀音就成了朝鮮語自然語言處理過程中不得不解決的問題。朝鮮語的字音轉換技術不僅可以為朝鮮語發(fā)音字典的構建提供支持,并且能夠有效解決OOV單詞的自動注音問題。
字音轉換方法可分成兩類:
(1)基于知識驅動的方法。通過對朝鮮語的構詞法和連續(xù)語流中的朝鮮語音節(jié)之間的音變現(xiàn)象進行總結,根據(jù)音變現(xiàn)象制定出朝鮮語的字音轉換規(guī)則系統(tǒng),然后實現(xiàn)字素到音素的轉換。Wang 等[1]在朝鮮語語音合成系統(tǒng)研發(fā)過程中對基于知識驅動的朝鮮語字音轉換算法進行了研究,通過對朝鮮語語音的分析總結出了元音和輔音結合以及字間所產(chǎn)生的語音變異現(xiàn)象,根據(jù)他們發(fā)現(xiàn)的音變現(xiàn)象構建了一個基于知識驅動的模型,將這些模型應用于朝鮮語文本字符串,以預測發(fā)音的音位表示。但該模型最終并沒有建立可以應用于朝鮮語語音處理的發(fā)音詞典,實驗過程中也沒有進行嚴格的交叉測試。由于朝鮮語語音變異規(guī)則多樣,基于知識驅動的模型無法涵蓋所有語言事實,這些都會影響字音轉換的準確率。
(2)基于數(shù)據(jù)驅動的方法。在豐富的訓練數(shù)據(jù)支持下,利用概率統(tǒng)計和機器學習算法,建立發(fā)音模型,通過解碼算法為任意單詞進行標音。數(shù)據(jù)驅動的方法是目前主流的字音轉換方法。在國外,Park 等[2]基于雙向長短時常記憶算法(Bi- directional Long Short- Term Memory, Bi-LSTM)實現(xiàn)了漢語字素到音素的轉換,并在包含99,000 多個句子的漢語數(shù)據(jù)集上進行了測試。Galescu 等[3]基于期望最大化(Expectation Maximization,EM)算法實現(xiàn)了英語字素音素一對一對齊,通過N-Gram 建立發(fā)音模型的字音轉換方法。Jiampojamarn 等[4]將隱馬爾科夫模型(Hidden Markov Model,HMM)應用于發(fā)音建模提出了字素音素多對多的對齊方式。Hannemann等[5]提出了聯(lián)合序列模型的方法,并在英語、德語和法語測試集上進行了測試,該方法也是當時較為主流的字音轉換方法。Lim 等[6]通過LSTM(Long Short-Term Memory)算法實現(xiàn)了韓國語的字音轉換技術,并與基于規(guī)則和基于統(tǒng)計的方法進行了對比,最終識別率達到92.8%,實驗結果表明,基于數(shù)據(jù)驅動方法的結果優(yōu)于基于規(guī)則和基于統(tǒng)計的方法。在國內,王永生等[7]基于一種動態(tài)有限泛化法(Dynamic Finite Generalization,DFGA)的機器學習算法,用于英語字音轉換規(guī)則的學習。馮偉等[8]針對俄語語音合成和語音識別系統(tǒng)中發(fā)音詞典規(guī)模有限的問題,提出一種基于LSTM序列到序列模型的俄語詞匯標音算法,實驗結果表明,該算法音素正確率達到了94.5%。馮偉等[9]將加權有限狀態(tài)轉化器(WFST)用于實現(xiàn)俄語字音轉換技術,首先利用期望最大化算法以“多對多”的方式對俄語字音進行對齊,然后將對齊結果通過聯(lián)合N-gram 模型訓練,并轉化為WFST 發(fā)音模型,最后通過WFST 解碼算法對任意單詞的發(fā)音進行預測。交叉驗證實驗結果表明,平均音素正確率為92.2%。李鵬等[10]基于CART 樹(Classification And Regression Tree)方法的構建了一個英語字素到音素的轉換系統(tǒng)。趙坤等[11]提出了一種通過有條件維數(shù)擴展(Conditional Mixincrementing algorithm,CMI)決策樹算法解決英語字音轉換的方法。王永生等[12]提出過一種基于決策樹的字素音素轉換的監(jiān)督學習算法,生成德語字素音素轉換規(guī)則,進過10輪交叉測試,實現(xiàn)了德語字素到音素的轉換。
綜上所述,字音轉換技術在國內外已有不少研究,但應用對象主要為英語、俄語、德語,目前國內還沒有任何朝鮮語字音轉換方面的研究和實驗,并且相關研究中均采用的是單一方法,或是僅基于知識驅動或是僅基于數(shù)據(jù)驅動?;谥R驅動的方法有比較完備的理論支撐,可解釋性強、執(zhí)行效率較高,但大規(guī)模復雜問題導致模型復雜計算困難,且難以使模型持續(xù)學習進化?;跀?shù)據(jù)驅動的方法通用性強,可支持模型持續(xù)學習進化,但理論知識分析困難,依賴高質量數(shù)據(jù)又難以合理確定輸入變量,且需要模型特征充足且選取精準。因此,有必要以朝鮮語語音學知識為基礎,融合數(shù)據(jù)驅動的方法,對朝鮮語字音轉換方法的實現(xiàn)與應用做進一步研究??紤]到朝鮮語的發(fā)音特點及音變規(guī)則,其字音轉換模型訓練的過程與其他語言存在差異性,本文根據(jù)朝鮮語的發(fā)音規(guī)則以及字間的語音變異規(guī)律提取特征屬性送入預測模型中進行訓練。本研究建立了10,000 條朝鮮語字素和音素對照的平行語料庫,目的是在這個平行語料庫的基礎上,通過朝鮮語音變知識與數(shù)據(jù)驅動相融合的方法來解決朝鮮語自動注音問題。
朝鮮語是國內外朝鮮民族的共同語,使用區(qū)域主要有中國東北三省的部分地區(qū)和朝鮮半島,既是中國的少數(shù)民族語言之一,同時也是朝鮮、韓國使用的通用語。朝鮮語文字屬于音型文字,其在組字的時候以音節(jié)為單位,即每一個朝鮮文字表示一個音節(jié)。每個朝鮮語音節(jié)至多由3 個音素構成,按照發(fā)音順序,分別稱為首輔音、元音和尾輔音。朝鮮語文字按照“從左到右,自上而下”的基本規(guī)則進行讀寫,如果以C代表輔音,V代表元音,則朝鮮語的音節(jié)結構類型有CVC、VC、CV或V。圖1給出了一個朝鮮語文字的示例[13]。
圖1 朝鮮語文字示例Fig.1 Example of Korean characters
按書寫方式來分,在朝鮮語中共有首輔音19種、元音21 種、尾輔音27 種,本研究為每個位置可能出現(xiàn)的字母定義了對應的拉丁轉寫映射,如表1所示。
表1 朝鮮語字母及其拉丁字母映射表Table 1 Korean letters and its Latin transcription mappings
朝鮮語有很多音變現(xiàn)象,其規(guī)則也相對較復雜,可分為連音現(xiàn)象、同化現(xiàn)象、送氣化現(xiàn)象、緊音化現(xiàn)象、腭化現(xiàn)象、添加現(xiàn)象以及脫落現(xiàn)象。具體規(guī)則解釋及相關實例如表2所示。
表2 連續(xù)音節(jié)中朝鮮語音變現(xiàn)象規(guī)則表Table 2 Rules of Korean phonetic varition
朝鮮語中的字母與音素之間并不是一一對應的,同一個字素可以對應多個音素。同樣地,同一個音素可能和不同的字母相對應,尤其是其中的一些輔音的變音規(guī)則就更為復雜,即有一對一、一對多、多對一等情況。比如字素“?”,在不同的音變條件下可以與音素/d/、/t/、/j/、/dd/對應;再如音素/kh/,在不同情況下可以與字素“?”“?”“?”對應。這顯然給單詞與其讀音之間的轉換帶來了困難。表3 為朝鮮語單詞“????”的字素音素對應情況。
表3 “????”字素與音素的對應情況Table 3 Correspondence between “????” grapheme and phoneme
針對單詞中某個需要進行轉換的字素,本文提取了5 個特征來組成一個示例,如表4 所示。實例用“特征-值”表示,以單詞“???”為例,針對單詞中每個字素所提取的特征如表5所示。
表4 特征定義Table 4 Feature Definition
表5 單詞“???”各字素特征表示Table 5 Characterization of the word"???"by grapheme
表5 字母“G”代表字素,“P”代表音素,“V”表示元音,“C”表示輔音。當目標字素為首字素或尾字素,前后沒有其他字素時則為空,用“E”表示。表6中的字素“?”與音素是一對多關系,其4 個音素分別是/n/、/n2/、/l/、/l2/,表5 選取了字素“?”10個比較典型的實例。
表6 字素“?”的實例Table 6 Example of the character"?"
數(shù)據(jù)驅動方法中決策樹算法容易理解,機理可解釋性強,得到的模型很容易可視化,非專家也很容易理解。相比于其他算法,決策樹算法計算量相對較小,且容易融入知識規(guī)則,可以處理連續(xù)字段。其他的技術往往要求先把數(shù)據(jù)一般化,比如去掉多余的或者空白的屬性,而決策樹算法不需要對數(shù)據(jù)進行復雜的預處理,比如歸一化或標準化,并能夠在相對短的時間內對大量數(shù)據(jù)做出可行且效果良好的處理。
CART決策樹算法采用基尼指數(shù)來代替信息增益比選擇最優(yōu)特征?;嵯禂?shù)代表了模型的不純度,基尼指數(shù)越小,純度越高,該特征越好[14]。
假設有k個類別,第k個類別的概率為pk,概率分布的基尼系數(shù)表達式如公式(1)。
如果是二分類問題,一個樣本屬于其中一類的概率為p,概率分布的基尼系數(shù)表達式如公式(2)。
如果是多分類問題,對于樣本集D,樣本個數(shù)為|D|,假設有K個類別,第K個類別的數(shù)量為|Ck|,則樣本集D的基尼系數(shù)表達式如公式(3)。
根據(jù)特征A的某個值a,把D分成|D1|和|D2|,則在特征A條件下,樣本D的基尼指數(shù)表達式如公式(4)。
基尼系數(shù)Gini(D)表示集合D的不確定性,基尼指數(shù)Gini(D,A)表示經(jīng)A=a分割后集合D的不確定性。因此基尼指數(shù)值越大,樣本集合的不確定性也就越大,即基尼指數(shù)小的特征具有更強的分類能力。
以表5為例,計算各特征的基尼指數(shù),選擇最優(yōu)特征及其最優(yōu)切分點,假設從表5內特征Q_-1中取特征值E,將樣本集D分成“是E”=|D1|和“非E”=|D2|,求特征Q_-1在類別P_-1下(“是E”和“非E”)的Gini值:
此時Gini(D,Q-1,‘E’)=0 值為0,即沒有雜質,該特征具有更強的分類能力。
在構建決策樹的初始階段,計算所有特征的基尼指數(shù),選取基尼指數(shù)最小的特征作為根結點。根據(jù)根結點的最優(yōu)切分點分成兩個叉和與之相對應的數(shù)據(jù)集,然后再沿著最左側的分枝繼續(xù)計算其他特征的基尼指數(shù),再選取一個最佳的特征作為該分叉的結點,以此類推,當這一條分枝結點全部計算完成或者無法繼續(xù)生長,則回到上一個未完成的分叉繼續(xù)樹的生長,直到所有分叉均完成結點計算或者樹無法繼續(xù)向下生長為止。具體步驟如下:
輸入:訓練數(shù)據(jù)集D,停止計算的參數(shù)條件。
輸出:CART決策樹
根據(jù)訓練數(shù)據(jù)集,從根結點開始,遞歸地對每個結點進行以下操作,構建二叉決策樹:
(1)設結點的訓練數(shù)據(jù)集D,計算現(xiàn)有特征對該數(shù)據(jù)集的基尼指數(shù)。此時,對每一個特征A,對其可能取得的每個值a,根據(jù)樣本集對A=a的測試為“是”或“否”將D分割成|D1|和|D2|兩部分,利用公式(5)計算A=a時的基尼指數(shù)。
(2)在所有可能的特征A以及它們所有可能的切分點a中,選擇基尼指數(shù)最小的特征以及其對應的切分點作為最優(yōu)特征與最優(yōu)切分點。依最優(yōu)特征與最優(yōu)切分點,從該結點生成兩個子結點,將訓練數(shù)據(jù)集依特征分配到兩個子結點中去。
(3)對兩個子結點遞歸地調用(1)、(2),直至滿足停止條件。
(4)生成CART決策樹。
算法停止計算的條件是結點中的樣本個數(shù)小于預定閾值,或樣本集的基尼指數(shù)小于預定閾值(樣本基本屬于同一類),或者沒有更多特征[15]。
當然在實際的決策樹構建的過程中,不可能像表5 那么簡單,這里只是為了方便算法說明,特意選取了幾個實例。
2.3.1 數(shù)據(jù)集
本文選用了韓國開源的Zeroth[16]數(shù)據(jù)集,該網(wǎng)站內語料庫包含基于語素的分詞以及預先標注好的詞條。進一步對詞條進行篩選,刪除韓國本土詞、外語音譯詞,根據(jù)《中國朝鮮語規(guī)范原則與規(guī)范細則研究》(金永壽著,2012 年,人民出版社)選取中國朝鮮語使用的基礎詞匯。
2.3.2 規(guī)則測試
本文采用K折交叉驗證法,即將數(shù)據(jù)集分為K份,K-1份的訓練數(shù)據(jù)集用于構建模型,確定模型最優(yōu)超參值,然后基于這個確定的超參值再基于1 份測試數(shù)據(jù)集驗證模型性能。經(jīng)驗表明,K的最佳取值為10,因為在這種情況下,10折交叉驗證可以讓偏差與方差取得最好的平衡。所以本文將預先創(chuàng)建的字素音素平行語料庫中的10,000 個樣本數(shù)據(jù)平均分成10 份,每份1,000 個樣本,經(jīng)過10 折交叉測試,將9 份樣本數(shù)據(jù)用于訓練規(guī)則,1 份樣本數(shù)據(jù)用于規(guī)則測試。過程如圖2所示。
圖2 10折交叉驗證流程圖Fig.2 10-fold cross-validation flow char
結果顯示平均字素音素轉換正確率只有82.52%,并不理想(表7)。為了進一步提高正確率本研究對單詞數(shù)據(jù)進行了預處理。
表7 字素音素轉換規(guī)則10輪交叉驗證結果Table 7 Results of 10 rounds of cross-validation of grapheme-phoneme conversion rules
在朝鮮語中不是所有字素都是發(fā)音字素,也存在字素不發(fā)音的情況,例如字素“?”,當字素“?”位于首輔音位置的時候不發(fā)音,所以單詞“??”按照讀音標注音素應是“o i”,這就出現(xiàn)了4個字素對應2個音素的情況。
字素“?”也是如此,當字素“?”位于尾輔音的位置時同樣不發(fā)音,這就導致了數(shù)據(jù)內大量音素字素不對齊的情況,進而影響了模型的訓練。于是本文對單詞進行詞法預處理,將所有不發(fā)音的情況用一個音素“sp”代替,這樣每個字素都能對應實際發(fā)音的音素,保證了數(shù)據(jù)間的對齊。
由此經(jīng)過新生成的規(guī)則庫再次進行10輪交叉測試結果,如表8 所示,平均轉換正確率提高到94.63%。
表8 處理后10輪交叉測試結果Table 8 Results of 10 rounds of cross-testing after processing
此前,韓國學者Lim 等[6]通過LSTM 算法實現(xiàn)了基于數(shù)據(jù)驅動的韓國語的字音轉換技術,最終識別率達到92.8%。為了進一步驗證決策樹模型的性能,本研究也采用了基于長短時記憶網(wǎng)絡的編碼器-解碼器(Encoder-Decoder+LSTM)模型結構來進行對比實驗。實驗結果如圖3所示。
圖3 Encoder-Decoder+LSTM實驗結果圖Fig.3 Encoder-Decoder+LSTM experimental result graph
從圖3 的實驗結果顯示,當模型batch_size值為5,單元數(shù)為256,Epoch 值為7 時Encoder-Decoder+LSTM 模型學習效果最好,朝鮮語音素識別準確率到達90.46%。
Lim 等[6]用的單純數(shù)據(jù)驅動的方法,而本文方法除了采用數(shù)據(jù)驅動的方法以外,還結合了朝鮮語音學音變規(guī)則創(chuàng)造性地為每個數(shù)據(jù)定義屬性特征用于訓練CART 決策樹模型。本文方法的實驗結果優(yōu)于對比模型的實驗結果,從表9實驗對比結果顯示,在數(shù)據(jù)量相仿的情況下,本文方法可以提高朝鮮語字音轉換技術的準確率。
表9 實驗對比結果Table 9 Experimental comparison results
由于朝鮮語構詞功能十分強大,新詞不斷涌現(xiàn),因此不可能建立一個包含所有詞匯的數(shù)據(jù)庫。本研究將知識驅動與數(shù)據(jù)驅動兩大類方法相結合,利用其各自優(yōu)勢,形成了知識與數(shù)據(jù)協(xié)同驅動的新方法路徑,使自動標音結果能夠反映朝鮮語連續(xù)語流中音節(jié)弱化、脫落、增音、異化等音變現(xiàn)象,并能夠準確地獲得字素相對應的音素,實現(xiàn)了朝鮮語字音在音變條件下的一一對齊,在交叉驗證中平均字音轉換的正確率達到了94.63%。利用本文提出的朝鮮語自動標音方法能夠有效建立準確的朝鮮語發(fā)音字典,有望為朝鮮語語音識別與語音合成等系統(tǒng)提供技術支持?;诒疚姆椒梢詳U展到不同的語言場景下,例如:維吾爾語、蒙古語、日語等其他與朝鮮語同屬黏語系的語言之中。通過總結音變規(guī)則,提取屬性特征,再結合數(shù)據(jù)驅動方法實現(xiàn)該語言的自動標音技術,提高該語言字音轉換技術的魯棒性。
在下一步工作中將探索用于解決自動標音的其他方法,例如:將考慮如何基于無監(jiān)督或者半監(jiān)督的機器學習方法充分利用網(wǎng)絡空間的朝鮮語資料提高朝鮮語字音轉換技術的準確率,將作為本文的后續(xù)工作繼續(xù)開展研究,并與本文的實驗進行比對,為進一步提升朝鮮語字音轉換的正確率尋找新途徑。
利益沖突聲明
所有作者聲明不存在利益沖突關系。