文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.182304
中文引用格式: 楊維,張才俊,馬永波. 一種語音識(shí)別中核心詞快速模型優(yōu)化方法[J].電子技術(shù)應(yīng)用,2019,45(2):9-11.
英文引用格式: Yang Wei ,Zhang Caijun,Ma Yongbo. Domain word recognition enhancement method in speech recognition[J]. Application of Electronic Technique,2019,45(2):9-11.
0 引言
近年來,隨著語音識(shí)別技術(shù)的逐步成熟,語音識(shí)別技術(shù)被應(yīng)用到越來越多的場(chǎng)景中。國(guó)家電網(wǎng)客服中心成立人工智能中心,并深入研究語音識(shí)別核心技術(shù)以及語音在智能客服系統(tǒng)中的應(yīng)用。當(dāng)前國(guó)網(wǎng)語音系統(tǒng)面臨的一個(gè)非常關(guān)鍵的問題就是通用語音識(shí)別,在文本語料能夠覆蓋的通用場(chǎng)景識(shí)別中,如查天氣、問車票等,識(shí)別率很高。但是,在國(guó)網(wǎng)客服電話語音中,面臨大量國(guó)網(wǎng)業(yè)務(wù)特有的核心詞匯和說法,如專有名詞“電線桿、高壓鐵塔、絕緣子、金具、瓷瓶、拉線”等,由于其屬于特定領(lǐng)域,通用的領(lǐng)域語言模型很難正確識(shí)別。因此,如何在保證通用領(lǐng)域高識(shí)別率的同時(shí),能夠快速通過模型訓(xùn)練和優(yōu)化來提升新領(lǐng)域、新核心詞的識(shí)別率,就尤為關(guān)鍵。
目前,對(duì)于領(lǐng)域詞增強(qiáng)的方法主要是通過優(yōu)化語言模型來解決,包括兩個(gè)方法:(1)領(lǐng)域語料獲取,即在相關(guān)領(lǐng)域通過收集大量的文本語料,訓(xùn)練領(lǐng)域相關(guān)的語言模型,以達(dá)到對(duì)領(lǐng)域詞準(zhǔn)確的識(shí)別;(2)分類語言模型[1],即領(lǐng)域詞為某一類別詞,通過類別替換獲取類別的領(lǐng)域語料,訓(xùn)練得到類別語言模型,進(jìn)而實(shí)現(xiàn)對(duì)領(lǐng)域詞的識(shí)別。
但是,在實(shí)際應(yīng)用場(chǎng)景中面臨3個(gè)問題:(1)領(lǐng)域文本語料很難獲取和收集,并且也無法覆蓋所有領(lǐng)域的詞,很難訓(xùn)練獲得一個(gè)比較好的領(lǐng)域語言模型;(2)目前使用較多解決領(lǐng)域詞識(shí)別的是基于類的語言模型,然而這種模型需要提前定義詞類,相對(duì)復(fù)雜,對(duì)那些不屬于任何一類的詞不好建模。領(lǐng)域詞具有多樣性,無法用類別代替,如國(guó)網(wǎng)業(yè)務(wù)詞和專業(yè)詞種類較多;(3)領(lǐng)域詞具有實(shí)時(shí)性且不斷擴(kuò)充,模型完全重新訓(xùn)練到上線應(yīng)用會(huì)有一定的滯后,不能實(shí)時(shí)生效。
為了解決語音識(shí)別中領(lǐng)域詞的多樣性和實(shí)時(shí)性,本文設(shè)計(jì)了一種基于HCLG領(lǐng)域詞權(quán)重增強(qiáng)來優(yōu)化語言模型的方法,并重構(gòu)語音識(shí)別解碼流程,如圖1所示。首先獲取領(lǐng)域內(nèi)領(lǐng)域詞,并對(duì)領(lǐng)域詞進(jìn)行發(fā)音標(biāo)注;然后對(duì)HCLG中對(duì)應(yīng)領(lǐng)域詞進(jìn)行權(quán)重增強(qiáng),使得解碼過程在盡量不影響性能的前提下保證領(lǐng)域詞的識(shí)別;接著,對(duì)語音識(shí)別的結(jié)果進(jìn)行后處理,即領(lǐng)域詞的檢查和替換。本文的方法只依賴領(lǐng)域詞表,可以實(shí)時(shí)添加和擴(kuò)充,并實(shí)時(shí)生效。
1 HCLG領(lǐng)域詞權(quán)重增強(qiáng)
1.1 HCLG
在大規(guī)模連續(xù)語音識(shí)別中,解碼過程一般采用加權(quán)有限狀態(tài)轉(zhuǎn)換器(Weighter Finite State Transducer,WFST)[2],因此以WFST為框架的大詞匯量連續(xù)語音識(shí)別系統(tǒng)被廣泛應(yīng)用。語音識(shí)別的解碼過程可以分為語言模型、發(fā)音詞典規(guī)律、上下文相關(guān)和隱馬爾可夫模型等限制下,尋找一個(gè)最有可能的文本序列的過程。
語音識(shí)別解碼器是在給定輸入特征序列下尋找最優(yōu)的文本次序,尋找次序的過程其實(shí)就是在HCLG圖上檢索的過程。關(guān)于HCLG:G表示語言模型,用來解碼語法;L是發(fā)音詞典,輸入是音素,輸出是詞;C表示音素上下文關(guān)系;H是隱馬爾可夫模型,表示相似狀態(tài)之間的跳轉(zhuǎn)狀態(tài)。
1.2 領(lǐng)域詞權(quán)重增強(qiáng)
上文中介紹了HCLG的結(jié)構(gòu),在本小節(jié)中,將詳細(xì)描述如何通過修改HCLG的權(quán)重來增強(qiáng)領(lǐng)域詞的識(shí)別效果。本文的修改只是對(duì)HCLG中的G語言模型進(jìn)行修改,可以將HCLG簡(jiǎn)化表示如圖2所示。
本文提出的在HCLG中對(duì)領(lǐng)域詞進(jìn)行增強(qiáng)主要是通過構(gòu)造領(lǐng)域詞狀態(tài)轉(zhuǎn)移圖(下文中用S.FST表示),然后將S.FST與現(xiàn)有的HCLG進(jìn)行合并生成HCLGS。本方法能夠通過自定義S.FST中詞的權(quán)重,增強(qiáng)HCLG中對(duì)應(yīng)詞的權(quán)重,同時(shí)可以共享HCLG中原有詞的權(quán)重,保證了領(lǐng)域詞的識(shí)別。
(1)生成領(lǐng)域詞S.FST
假設(shè)領(lǐng)域詞為“國(guó)家智能電網(wǎng)”,可以將領(lǐng)域詞拆分為已有詞表詞的組合,即:“國(guó)家”、“智能”、“電網(wǎng)”。根據(jù)領(lǐng)域詞可以生成對(duì)應(yīng)的S.FST,如圖3所示。
(2)生成HCLGS
根據(jù)上個(gè)模塊生成的S.FST,將S.FST與HCLG進(jìn)行合并,如圖4所示。合并操作即將原S.FST中的邊合并到HCLG對(duì)應(yīng)的邊上,在本文例子中即將“國(guó)家”和“智能”連接,對(duì)應(yīng)的權(quán)重為用戶自定義。
2 領(lǐng)域詞糾正
上小節(jié)中,在HCLG中對(duì)領(lǐng)域詞的權(quán)重進(jìn)行增強(qiáng),增加了解碼階段領(lǐng)域詞出現(xiàn)的概率。但是,由于要保證語音識(shí)別結(jié)果的正確性,不能對(duì)在HCLG中對(duì)領(lǐng)域詞增加過大的權(quán)重,以免影響整體解碼的效果,因此需要對(duì)解碼后的結(jié)果進(jìn)行領(lǐng)域詞增強(qiáng)。在解碼過程中,解碼識(shí)別錯(cuò)誤的領(lǐng)域詞往往是由于發(fā)音相似但是字形不對(duì)而導(dǎo)致的,因此,后處理的過程需要匹配到相似發(fā)音的領(lǐng)域詞,從而進(jìn)行替換。為了替換的準(zhǔn)確性,本文以音素為基本單位進(jìn)行領(lǐng)域詞的替換。后處理主要涉及兩部分:領(lǐng)域詞檢索和發(fā)音相似度度量。
在語音識(shí)別過程中,解碼的效率往往在實(shí)際應(yīng)用中比較重要,因此需要設(shè)計(jì)一種快速的領(lǐng)域詞查找的方法,實(shí)現(xiàn)高效的領(lǐng)域詞替換。本文提出一種基于音素樹的領(lǐng)域詞快速查找方法。
2.1 音素檢索樹
字典樹,又稱Trie樹、前綴樹,是一種樹形結(jié)構(gòu),是哈希樹的變種,是一種用于快速檢索的多叉樹結(jié)構(gòu)。典型應(yīng)用是用于統(tǒng)計(jì)和排序大量的字符串(但不僅限于字符串)[3],所以經(jīng)常被搜索引擎系統(tǒng)用于文本詞頻統(tǒng)計(jì)。它能最大限度地減少無謂的字符串比較,查詢效率比哈希表高。本文的音素串查找可以看作是字符串查找,即檢索相同的音素串,因此可以利用字典樹建立音素檢索樹,從而進(jìn)行音素的匹配查找。
首先,需要將領(lǐng)域詞轉(zhuǎn)換為音素串,如“電網(wǎng)、斷線”轉(zhuǎn)換為音素串則為“d ian1,w ang3;d uan1,x ian4”,將領(lǐng)域詞轉(zhuǎn)換為領(lǐng)域詞音素串列表,從而轉(zhuǎn)換為對(duì)應(yīng)的音素前綴樹,如圖5所示。
在圖2中,一個(gè)單字由兩個(gè)節(jié)點(diǎn)表示,在有漢字表征的節(jié)點(diǎn)可以看作一個(gè)字或詞的結(jié)束節(jié)點(diǎn),如節(jié)點(diǎn)“ian2 電”表征這個(gè)節(jié)點(diǎn)是字的結(jié)束節(jié)點(diǎn),節(jié)點(diǎn)“ang2電網(wǎng)”表征這個(gè)節(jié)點(diǎn)是詞的結(jié)束節(jié)點(diǎn)。即在字典樹種,每個(gè)音素標(biāo)注一個(gè)節(jié)點(diǎn),每個(gè)字或詞表征一個(gè)因素的路徑,并記錄在路徑的結(jié)束節(jié)點(diǎn)。
2.2 音素檢索
上一節(jié)定義和建立了音素檢索樹,本模塊描述音素樹的檢索和替換過程主要分兩種情況:精確匹配和模糊匹配。
精確匹配為字典樹的檢索過程,直接進(jìn)行字符串匹配,如果匹配到對(duì)應(yīng)字或詞的節(jié)點(diǎn),即表明查找到對(duì)應(yīng)的音素出串,如輸入音素樹“h ao3 b a1”(對(duì)應(yīng)漢字為“號(hào)吧”),則匹配到”h ao3”,字符串中存在相似的發(fā)音,則替換為“好吧”。具體字典樹的檢索算法:
(1)總是在字典樹的根節(jié)點(diǎn)開始,且對(duì)樹的根節(jié)點(diǎn)為空。
(2)掃描第一層各個(gè)節(jié)點(diǎn)獲得查找音素的節(jié)點(diǎn),并根據(jù)序列的下一個(gè)音素選擇對(duì)應(yīng)的字?jǐn)?shù)并轉(zhuǎn)到該子樹繼續(xù)檢索所在層的各個(gè)節(jié)點(diǎn),如果查找到葉子節(jié)點(diǎn),則轉(zhuǎn)到步驟(3);否則,繼續(xù)選擇對(duì)應(yīng)的子樹搜索。
(3)匹配到葉子節(jié)點(diǎn),則獲取葉子節(jié)點(diǎn)上次數(shù),即完成匹配;若未匹配到葉子節(jié)點(diǎn),則向上追溯最近的字或詞節(jié)點(diǎn),匹配成功;若未匹配到任何字或詞節(jié)點(diǎn),則匹配失敗。
對(duì)于模糊匹配,要考慮到發(fā)音相似的音素串匹配,比如業(yè)務(wù)詞“電網(wǎng)“對(duì)應(yīng)的發(fā)音音素為”d ian1 w ang3”,但是在語音識(shí)別的過程中,可能聲學(xué)模型會(huì)輸出“d ian1 w ang4”,對(duì)應(yīng)的音調(diào)發(fā)生問題,但是其對(duì)應(yīng)的還是業(yè)務(wù)詞“電網(wǎng)”。因此,在這種情況下,要考慮發(fā)音相似的情況。本文只考慮到音調(diào)的相似度,根據(jù)經(jīng)驗(yàn)可得,對(duì)于聲調(diào)3聲和4聲可認(rèn)為為同一種音素。在檢索時(shí),當(dāng)匹配音素節(jié)點(diǎn)時(shí),相同音素且不同聲調(diào)的,可認(rèn)為為同一種發(fā)音,即匹配節(jié)點(diǎn)成功。當(dāng)然,可以設(shè)計(jì)更為復(fù)雜的相似度算法進(jìn)行檢索,本文目前沒有深入設(shè)計(jì)。
3 實(shí)驗(yàn)
本文實(shí)驗(yàn)基于國(guó)網(wǎng)客服人工智能中心和清華大學(xué)語音語義實(shí)驗(yàn)室聯(lián)合研發(fā)的語音識(shí)別系統(tǒng),其中聲學(xué)模型是由100h的863開放語音數(shù)據(jù)[4]和Kaldi[5]的DNN訓(xùn)練工具訓(xùn)練所得。實(shí)驗(yàn)中具體參數(shù):語音特征維度為39維特,音素集使用中文的拼音。對(duì)于語言模型,本文采用srilm[6]工具和新聞數(shù)據(jù)sogouT[7]進(jìn)行訓(xùn)練得到一個(gè)領(lǐng)域通用的語言模型,并基于國(guó)網(wǎng)客服電話語音特定領(lǐng)域詞進(jìn)一步訓(xùn)練優(yōu)化。
在測(cè)試時(shí),選取國(guó)網(wǎng)客服各領(lǐng)域核心詞匯列表(如“應(yīng)急電壓、應(yīng)急電源”等),進(jìn)行了4組實(shí)驗(yàn):(1)直接使用語音識(shí)別系統(tǒng)進(jìn)行識(shí)別;(2)將地名詞進(jìn)行HCLG加強(qiáng),進(jìn)行語音識(shí)別;(3)將地名詞進(jìn)行語音識(shí)別后糾正;(4)使用HCLG增強(qiáng)和識(shí)別后糾正。具體實(shí)驗(yàn)結(jié)果如表1所示。
通過實(shí)驗(yàn)可以看出,基于HCLG增強(qiáng)的模型優(yōu)化和基于后處理的核心詞糾正都能顯著提高領(lǐng)域詞的識(shí)別效果,相對(duì)錯(cuò)誤率下降(11.54-8.18)/11.54=29.1%。
4 結(jié)論
本文提出了一種針對(duì)不同領(lǐng)域核心詞的模型優(yōu)化方法,通過對(duì)HCLG的增強(qiáng)以及識(shí)別后處理優(yōu)化,該方法能夠快速全面地提高領(lǐng)域詞的識(shí)別準(zhǔn)確率。這種方法能夠快速且實(shí)時(shí)地增加領(lǐng)域詞,以適應(yīng)語音識(shí)別在不同領(lǐng)域場(chǎng)景的使用。同時(shí),該方法克服了之前限定類別領(lǐng)域詞識(shí)別的限制,可以更加靈活地添加領(lǐng)域詞,減少了領(lǐng)域詞添加的復(fù)雜性。本文提出的領(lǐng)域詞增強(qiáng)的方法可成功解決國(guó)網(wǎng)客服的電話語音的核心詞識(shí)別優(yōu)化問題。
參考文獻(xiàn)
[1] 楊林國(guó).詞類擴(kuò)充方法在語音識(shí)別中的應(yīng)用[J].電子技術(shù)應(yīng)用,2014,40(6):123-125.
[2] MOHRI M,PEREIRA F,RILEY M.Weighted finite-state transducers in speech recognition[J].Computer Speech & Language,2002,16(1):69-88.
[3] 孫芳媛.基于倒排索引和字典樹的站內(nèi)搜索引擎的設(shè)計(jì)與實(shí)現(xiàn)[D].哈爾濱:哈爾濱工業(yè)大學(xué),2016.
[4] 李愛軍,王天慶,殷治綱.863語音識(shí)別語音語料庫RASC863——四大方言普通話語音庫[C].第七屆全國(guó)人機(jī)語音通訊學(xué)術(shù)會(huì)議(NCMMSC7)論文集,2003:274-277.
[5] POVEY D,GHOSHAL A,BOULIANNE G,et al.The Kaldi speech recognition toolkit[C].IEEE 2011 Workshop on Automatic Speech Recognition and Understanding.IEEE Signal Processing Society,2011.
[6] STOLCKE A.SRILM-an extensible language modeling toolkit[C].Seventh International Conference on Spoken Language Processing,2002.
[7] Liu Yiqun,Chen Fei,Kong Weize,et al.Identifying Web spam with the wisdom of the crowds[J].ACM Transaction on the Web,2012,6(1):1-30.
作者信息:
楊 維,張才俊,馬永波
(國(guó)家電網(wǎng)客服中心 信息技術(shù)部,天津300000)