数据准备流程是为了整理数据,生成指定的文件或者是变成指定的格式,方便kaldi后面的语言模型训练,数据准备流程
1、 处理集外词,将分词后的预料库data/local/train/text中的文件索引全部替换成<SPOKEN_NOISE>,在生成语言模型时,如果计数文件中或者训练文件总出现了词典之外的词(OOV)将被替换成<SPOKEN_NOISE>,然后将 <SPOKEN_NOISE>作为正常词进行统计,这么做的好处是给大量OOV分配概率,使得相比于以前频数稀少的精确词,使用<SPOKEN_NOISE>增大计算概率,也起到了一定的泛化效果,会降低perplexity值,使得模型效果变好
2、 为方便kalid统计词频,给所有word加上,,<SPOKEN_NOISE>(分别代表 句首,句尾,集外词)设置索引,生成索引文件word_map,并且将训练语料data/local/train/text中的每个word按照索引映射成word_map的指定项,生成train.gz文件,后续语言模型依据train.gz文件统计各ngram出现的频率
3、 结合发音词典和语料库,统计每个word出现的频次并且按照出现次数的多少排序,生成unigram.counts文件,该文件的目的主要是在后续模型回退阶段,回退至unigram时,为unigram赋概率值,具体计算:count(unigram)/vocabulary_size。
Kaldi中语言模型
最新推荐文章于 2022-08-01 20:36:22 发布