1. 程式人生 > >語音識別系統語言模型的訓練和聲學模型的改進

語音識別系統語言模型的訓練和聲學模型的改進

10個 ext 個數 靜音 介紹 準備 上下 詞匯表 數據

一、訓練語言模型

詞與詞之間存在著合乎句法與否的約束,語言模型就是用來表示這些約束的,它可以提供字與字之間的上下文信息和語義信息。N-gram模型,即對訓練音頻文件所對應的文本文件進行統計,提取不同字詞之間先後發生的統計關系。

如果你的語言模型較小(例如小的語音指令集或者任務),而且是英文的,那就可以直接上CMU提供的網絡服務器上面訓練,如果較大的話,一般使用CMUclmtk語言模型工具來訓練。下面分兩種情況來介紹:
1.1、利用在線工具建立語言模型

進入網址:http://www.speech.cs.cmu.edu/tools/lmtool.html

.dic、.lm的文件

pocketsphinx_continuous解碼器用-lm選項來指定要加載的語言模型,-dict來指定要加載的字典。

1.2、訓練大文本數據的語言模型

我們通過語言模型訓練工具CMUCLMTK統計大量文本數據得到以單個詞建立的N-Gram模型

具體的步驟如下:

(1)準備訓練的文本,也就是語料庫:

(2)產生詞匯表vocabulary文件:# text2wfreq < *.txt | wfreq2vocab > *.tmp.vocab

命令text2wfreq:統計文本文件中每個詞出現的次數,得到一個後綴為wfreq的文件

命令wfreq2vocab:統計文本文件中含有多少個詞,即有哪些詞。如數字識別中包含10個數字和兩個靜音

(3)生成 arpa格式的語言模型:

(4)轉換為 CMU的二進制格式 (DMP):

最終生成了語言模型*.lm.DMP,此文件為解碼器端所需要的文件格式

語音識別系統語言模型的訓練和聲學模型的改進