語(yǔ)音識(shí)別的快速糾錯(cuò)模型FastCorrect系列來(lái)了!
糾錯(cuò)是語(yǔ)音識(shí)別中的一個(gè)重要后處理方法,旨在檢測(cè)并糾正語(yǔ)音識(shí)別結(jié)果中存在的錯(cuò)誤,從而進(jìn)一步提升語(yǔ)音識(shí)別的準(zhǔn)確率。許多糾錯(cuò)模型采用的是延遲較高的自回歸解碼模型,但是語(yǔ)音識(shí)別服務(wù)對(duì)模型的延遲有著嚴(yán)格的要求,在一些實(shí)時(shí)語(yǔ)音識(shí)別場(chǎng)景中(如會(huì)議同步語(yǔ)音識(shí)別),糾錯(cuò)模型無(wú)法上線應(yīng)用。為了加速語(yǔ)音識(shí)別中的糾錯(cuò)模型,微軟亞洲研究院的研究員們提出了一種基于編輯對(duì)齊(Edit Alignment)的非自回歸糾錯(cuò)模型——FastCorrect,F(xiàn)astCorrect 在幾乎不損失糾錯(cuò)能力的情況下,將自回歸模型加速了6-9倍??紤]到語(yǔ)音識(shí)別模型往往可以給出多個(gè)備選識(shí)別結(jié)果,研究員們還進(jìn)一步提出了 FastCorrect 2 來(lái)利用這些識(shí)別結(jié)果相互印證,從而得到了更好的性能。FastCorrect 1和2的相關(guān)研究論文已被 NeurIPS 2021 和 EMNLP 2021 收錄。當(dāng)前,研究員們還在研發(fā) FastCorrect 3,在保證低延遲的情況下,進(jìn)一步降低語(yǔ)音識(shí)別的錯(cuò)誤率。
語(yǔ)音識(shí)別的糾錯(cuò)實(shí)際上是一個(gè)文本到文本的任務(wù),模型訓(xùn)練的輸入為語(yǔ)音識(shí)別結(jié)果文本,輸出為真實(shí)文本。在自然語(yǔ)言處理領(lǐng)域(如機(jī)器翻譯和文本編輯),已經(jīng)有一些非自回歸的快速模型被提出。但初步實(shí)驗(yàn)結(jié)果(如圖一)顯示,簡(jiǎn)單地將這些模型應(yīng)用到語(yǔ)音識(shí)別的糾錯(cuò)任務(wù)中,并不能取得令人滿意的結(jié)果。經(jīng)過(guò)對(duì)語(yǔ)音識(shí)別的分析,研究員們發(fā)現(xiàn)語(yǔ)音識(shí)別中的錯(cuò)誤比較稀疏,通常錯(cuò)誤的單詞數(shù)不到總單詞數(shù)的10%,而模型必須精準(zhǔn)地找到并修改這些錯(cuò)誤,同時(shí)還要避免修改正確的單詞,這是語(yǔ)音識(shí)別的糾錯(cuò)任務(wù)中最大的挑戰(zhàn)。而機(jī)器翻譯中非自回歸模型的主要問(wèn)題是修改了太多原本是正確的單詞,模型修改了原有錯(cuò)誤的同時(shí)又引入了較多新的錯(cuò)誤,因此無(wú)法提升語(yǔ)音識(shí)別的精度。
圖一:FastCorrect 和基線方法的錯(cuò)誤檢測(cè)率和錯(cuò)誤改正率對(duì)比
考慮到語(yǔ)音識(shí)別的糾錯(cuò)輸入輸出的對(duì)應(yīng)關(guān)系是單調(diào)的,所以如果可以在詞的級(jí)別對(duì)齊輸入和輸出,就可以得到細(xì)粒度的錯(cuò)誤信息:哪些詞是錯(cuò)誤的,這些錯(cuò)誤的單詞應(yīng)該怎樣修改。基于兩個(gè)文本序列的編輯距離,研究員們?cè)O(shè)計(jì)了編輯對(duì)齊(Edit Alignment)算法(如圖二)。給定輸入(語(yǔ)音識(shí)別結(jié)果)和輸出(真實(shí)文本),第一步是計(jì)算兩個(gè)文本的編輯距離,然后可以得到數(shù)條編輯路徑(Edit Path),路徑中的元素為增加/刪除/替換/不變四種操作之一。為了避免修改正確單詞,包含“不變”操作最多的編輯路徑會(huì)被選擇。最終,基于編輯路徑可以得到:對(duì)于每個(gè)輸入的單詞,哪些輸出的單詞與之對(duì)應(yīng)。如果對(duì)應(yīng)的輸入輸出單詞不同,那么就表明輸入單詞是錯(cuò)誤單詞。
圖二:編輯對(duì)齊(Edit Alignment)算法
基于細(xì)粒度的輸入輸出對(duì)應(yīng)關(guān)系,研究員們針對(duì)性地設(shè)計(jì)了快速糾錯(cuò)模型 FastCorrect。模型包含了三個(gè)主要部分——編碼器、長(zhǎng)度預(yù)測(cè)器和****(如圖三):
1. 編碼器可以學(xué)習(xí)輸入文本的特征,這些特征會(huì)被長(zhǎng)度預(yù)測(cè)器和****利用。
2. 長(zhǎng)度預(yù)測(cè)器基于編碼器的輸出,預(yù)測(cè)每個(gè)輸入單詞有多少個(gè)輸出單詞與之對(duì)應(yīng),即 Duration。如果輸入單詞 Duration 為0,那么沒(méi)有輸出單詞與之對(duì)應(yīng),它也將被刪除,如果 Duration 大于1,那么有多個(gè)輸出單詞與之對(duì)應(yīng),意味著****需要插入數(shù)個(gè)單詞。
3. ****除了利用編碼器的輸出之外,還會(huì)基于長(zhǎng)度預(yù)測(cè)器的結(jié)果,調(diào)整輸入文本的長(zhǎng)度,使之和輸出文本長(zhǎng)度一致。將長(zhǎng)度調(diào)整一致后,****可以并行地同時(shí)解碼出所有單詞。
圖三:非自回歸語(yǔ)音糾錯(cuò)模型結(jié)構(gòu)
實(shí)驗(yàn)表明(如圖四),在開(kāi)源學(xué)術(shù)數(shù)據(jù)集 AISHELL-1 和微軟內(nèi)部的產(chǎn)品數(shù)據(jù)集上,F(xiàn)astCorrect 都取得了跟自回歸模型幾乎相同的糾錯(cuò)能力。模型的衡量準(zhǔn)則為糾錯(cuò)后的詞錯(cuò)誤率(Word Error Rate,WER)和相對(duì)錯(cuò)誤率下降(WER Reduction)。相比于自回歸的模型,FastCorrect 的解碼速度可以提升7-8倍。相比于其它非自回歸的基線模型,F(xiàn)astCorrect 取得了更好的糾錯(cuò)精度。從實(shí)驗(yàn)結(jié)果可以看出,F(xiàn)astCorrect 很好地解決了語(yǔ)音識(shí)別模型中糾錯(cuò)模型的高延遲問(wèn)題。
圖四:在 AISHELL-1 和微軟內(nèi)部的數(shù)據(jù)集上,
FastCorrect 和基線方法在詞錯(cuò)誤率和解碼延遲上的對(duì)比。
FastCorrect 已經(jīng)取得了不錯(cuò)的性能和較大的加速比,那么還有沒(méi)有進(jìn)一步的提升空間呢?由于語(yǔ)音識(shí)別模型往往會(huì)在語(yǔ)音模糊不清或者存在同(近)音字的情況下出錯(cuò),所以如果糾錯(cuò)模型能夠得到這方面的信息,那么就可以在很大程度上幫助糾錯(cuò)模型進(jìn)行錯(cuò)誤檢測(cè)。
通過(guò)分析語(yǔ)音識(shí)別模型的輸出,研究員們發(fā)現(xiàn)語(yǔ)音識(shí)別模型在進(jìn)行 BeamSearch 解碼的時(shí)候,會(huì)得到多個(gè)相似的結(jié)果,這些結(jié)果的大部分文本相同,只在有限的幾個(gè)位置不同,而這些位置正是語(yǔ)音識(shí)別模型不確定的位置,也往往是模型比較容易出錯(cuò)的位置。通過(guò)多個(gè)識(shí)別結(jié)果的相互印證不僅能夠得到語(yǔ)音識(shí)別錯(cuò)誤位置的信息,還能得到正確單詞的讀音信息(例如,從不同的詞 cat、hat、mat 可以推斷出糾錯(cuò)后的詞大概率會(huì)以 /?t/ 這個(gè)音結(jié)尾)。
為了能夠讓糾錯(cuò)模型更好地利用多輸入(多個(gè)語(yǔ)音識(shí)別結(jié)果)信息,研究員們對(duì) FastCorrect 的對(duì)齊算法和模型結(jié)構(gòu)進(jìn)行了一系列調(diào)整。
首先是對(duì)齊算法??紤]到語(yǔ)音模型的多個(gè)輸出可能長(zhǎng)短不一,如果簡(jiǎn)單地通過(guò)補(bǔ)零來(lái)讓這些輸出擁有同樣的長(zhǎng)度,那么會(huì)導(dǎo)致每一個(gè)對(duì)齊的位置,單詞不相同(如圖五),讀音也不相同。這樣的話,模型將很難從“錯(cuò)位”的輸入中得到錯(cuò)誤位置和正確單詞讀音的信息。為了解決上述問(wèn)題,FastCorrect 2 在計(jì)算編輯對(duì)齊的時(shí)候考慮了輸入輸出的讀音相似度,在選擇“不變”操作最多的編輯路徑的基礎(chǔ)上,選擇讀音相似度最高的編輯路徑,并根據(jù)讀音相似度來(lái)插入“空”單詞。這樣得到的對(duì)齊結(jié)果在每個(gè)位置上的單詞相似度和讀音相似度都很高,可以很大程度上幫助模型進(jìn)行錯(cuò)誤檢測(cè)(如果一個(gè)位置上包含不同的單詞)和估計(jì)正確單詞的讀音(如果一個(gè)位置上的不同單詞讀音相同)。
圖五:簡(jiǎn)單補(bǔ)零和讀音相似度對(duì)齊的對(duì)比,
可以看出 FastCorrect 2 在每個(gè)位置上的單詞一致性更高。
對(duì)于模型結(jié)構(gòu),研究員們也進(jìn)行了改動(dòng),并引入了一個(gè)新模塊:選擇器(如圖六)。
1. 在編碼器之前,新引入了一個(gè) PreNet,用來(lái)融合每個(gè)位置上不同單詞的信息。
2. 長(zhǎng)度預(yù)測(cè)器需要對(duì)每個(gè)位置上的每一個(gè)單詞,預(yù)測(cè) Duration。
3. 選擇器則用來(lái)選擇一個(gè)輸入,這個(gè)輸入會(huì)被調(diào)整(基于 Duration)并被送進(jìn)****,選擇器的訓(xùn)練目標(biāo)是預(yù)測(cè)****的損失,因此選擇器選擇的是****損失最小的,也就是最容易被****修改的輸入。
圖六:FastCorrect 2 模型結(jié)構(gòu)
實(shí)驗(yàn)表明,在開(kāi)源學(xué)術(shù)數(shù)據(jù)集 AISHELL-1 和微軟內(nèi)部的產(chǎn)品數(shù)據(jù)集上,F(xiàn)astCorrect 2 相對(duì)于 FastCorrect 都取得了較大的提升(如圖七),而且模型的提升會(huì)隨著輸入的增多而不斷增大。
圖七:在 AISHELL-1 和微軟內(nèi)部的數(shù)據(jù)集上,F(xiàn)astCorrect 2 和基線方法在詞錯(cuò)誤率和解碼延遲上的對(duì)比。
FastCorrect 系列工作的代碼已經(jīng)開(kāi)源,開(kāi)源鏈接:
https://github.com/microsoft/NeuralSpeech
https://github.com/microsoft/NeuralSpeech/tree/master/FastCorrect
https://github.com/microsoft/NeuralSpeech/tree/master/FastCorrect2
目前,研究員們正在研發(fā) FastCorrect 3,在保證低延遲的情況下,進(jìn)一步降低語(yǔ)音識(shí)別的錯(cuò)誤率。同時(shí),F(xiàn)astCorrect 系列工作也將被應(yīng)用于微軟 Azure 的語(yǔ)音識(shí)別技術(shù)中,為用戶構(gòu)建更好的語(yǔ)音識(shí)別服務(wù)。
論文鏈接:
FastCorrect:Fast Error Correction with Edit Alignment for Automatic Speech Recognition
https://arxiv.org/abs/2105.03842
FastCorrect 2:Fast Error Correction on Multiple Candidates for Automatic Speech Recognition
https://arxiv.org/abs/2109.14420
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。