Kaldi語言模型的建立

2021-10-09 05:40:13 字數 2778 閱讀 4717

在kaldi中,語音識別解碼用於構成靜態搜尋網路hclg所用的語言模型為n-gram模型,訓練n-gram模型三個步驟:

成功

在aishell工程中需要安裝的,可不裝

有提示

全部完成!耗時2天,實在沒解決「沒找到command「這個錯誤,最後在乙個大佬手把手幫助下完成,很感謝他!

接下來進行中文分詞

import jieba

fr = open(『data.txt』, 『r』)

sent = fr.read()

sent_list = jieba.cut(sent)

fw = open(『b.txt』, 『w』, encoding=『utf-8』)

fw.write(』 '.join(sent_list))

fr.close()

fw.close()

簡單的分詞結果

接下來使用srilm訓練語言模型:

詞頻統計

ngram-count -text ptb.train.txt -order 3 -write train.count

train.count為輸出檔案

模型訓練

\data\表示個詞、2個詞、3個詞的組合次數,\1-grams:表示一元模型部分,

表示句子結尾,表示句子開頭

測試(困惑度計算)

aishell資料集沒準備

用librispeech,使用local/lm/train_lms.sh,資料集開學準備

在tools下

輸出是困惑度,困惑度越小,出現概率越高

./rnnlm -rnnlm model -test /home/liuyuanyuan/kaldi/tools/rnnlm-hs-0.1b/******-examples/data/ptb.test.txt -nbest -debug 0 > scores.txt

這些數值表示測試集中對應句子的概率的log值:

kaldi 聲學模型構建dict過程

kaldi聲學模型訓練,首先需要資料準備,在資料準備階段需要準備標註資料的發音,處理步驟如下 1.首先是把訓練資料和測試資料對應的標註 text 合成乙個檔案到text all,同時去掉其他非字母和數字的字串 cat traindatadir text testdatadir text perl p...

用 RNN 建立語言模型

今天來看迴圈神經網路的乙個重要的應用 語言模型。什麼是語言模型?語言模型的應用?為什麼用基於 rnn 的語言模型?rnn 是如何實現語言模型的?rnn 是如何實現 character level 語言模型的?character level 語言模型的具體應用 生成莎士比亞風格的文字 語言模型,它的任...

Kaldi學習手記(一) Kaldi的編譯安裝

安裝git 其中,tools src egs這三個目錄是比較重要的。tools目錄下面全部都是kaldi依賴的包。其中主要有 openfst weighted finite state transducer library,是乙個用來構造有限狀態自動機的庫。我們知道隱馬爾科夫模型就可以看成是乙個有限...