Entries by Zwei Lin

透過語言模型客製化提升準確率

語音辨識架構 語音辨識(Automatic Speech Recognition, ASR)的模型架構中,有三個主要架構,聲學模型(Acoustic Model, AM)、辭典(Lexicon)、語言模型(Language Model, LM),將三個部分分開來訓練,再將各個模型的機率一起經過解碼器(Decoder)計算出辨識結果,稱為混合式(Hybrid)的語音辨識模型。動態解碼器(Dynamic decoder)是一個將聲學模型機率與語言模型機率組合起來計算機率的方法,輸入音檔經過特徵抽取(Feature extration)之後,每個音框(Frame)輸入聲學模型得到每一個音素的機率,解碼器則是根據辭典以及聲學模型預測的機率在每一個時間點展開可能的辨識結果(Hypothesis),並且在可能是詞(Word boundary)的地方從預先訓練好的語言模型上面查找語言模型的分數,將每個可能路徑(Hypothesis path)上的聲學模型機率轉換為分數和語言模型分數相加得到每個路徑(Arc)的分數,直到語音結束,就可以找到所有可能的路徑中分數最高的當作最終的語音辨識結果。也就是說,每一次在進行辨識的時候,聲學模型,辭典,語言模型各司其職,同時考慮聲音上的特徵比較像是什麼發音,以及這個發音有可能是哪些詞,還有語言模型負責根據目前已辨識的前後文判斷較有可能的詞是哪一個。 沒有完全正確的語音辨識系統 從語音辨識的辨識流程中,我們可以很清楚的知道,並不會有百分之百正確的語音辨識模型,從以下的例子說明:假設今天有兩個人說了同樣發音的一句話「我很喜歡這個城市,規劃得很好」「我很喜歡這個程式,規劃得很好」,在不考慮聲學上的差異,聲學模型辨識出完全相同機率的情況下,是「城市」會被辨識出來還是「程式」會被辨識出來,就會根據語言模型訓練資料的機率來判斷,由於同樣的語音辨識系統因為是使用同樣的模型,因此只會辨識出一種結果,也就是不論在什麼情況下,都會有一個人的結果是錯的,也就是語音辨識中的混淆(Ambiguity)的問題。 客製化語言模型 由於語音辨識結果會根據用戶差異、使用情境、個人習慣而改變,因此我們發展客製化語言模型的技術,在客製化語言模型的架構下,聲學模型是共用的,為了解決混淆的問題,我們在解碼進行辨識計算原本系統的語言模型分數時,同時計算另一個客製化語言模型的機率,透過這樣的方法使得語音辨識結果會根據客製化語言模型而有所不同,在已經有高辨識準確率的情形下,在實驗資料集上可以減少相對錯誤率達10%。 在系統設計上,聲學模型依舊是所有連線共用,由大量資料訓練出來的系統語言模型(在此稱作General LM)也是共用,避免為了客製化而損失其他一般場景的辨識準確率,每一個連線進來時,會判斷連線是否有預先準備好的客製化語言模型,如果有事先訓練好的客製化語言模型,就會在連線時把客製化語言模型讀進來進行辨識。這個設計方式將語言模型拆分為系統語言模型與客製化語言模型,在系統上不需要重複讀進龐大的系統語言模型,每一個人只需要動態的讀進一個佔記憶體微量的客製化語言模型,達到在不造成系統負擔的情況下提供客製化功能。   在使用上,語音辨識API可以設定不同連線對應的客製化語言模型,只要帶入參數即可針對連線客製化。 在客製化語言模型的訓練上,透過客製化語言模型的API,用戶可以提供文字資料並上傳,服務端會先將這些文字資料經過前處理之後訓練出客製化的語言模型,訓練過程不需要額外的辭典輔助,使用者只需要挑選出相關的文字資料,就能在數分鐘內訓練出客製化語言模型,達到更好的辨識準確度。  

The Challenge of Speaker Diarization

Introduction Speaker Diarization is the task to partition audio recordings into segments corresponding to the identity of the speaker. In short, a task to identify “who spoke when”. Speaker diarization can be used to analyze audio data in various scenarios, such as business meetings, court proceedings, online videos, just to name a few. However, it […]