AISHELL2脚本参数和生成文件详解(一)

2018-12-07  本文已影响0人  氢离子游离

run.sh

config

  1. nj
    需要运行的jobs数量,根据实际机器的CPU数量更改,一般选用最大CPU数但不超过CPU总数,提高运行效率。
    qstat -f 查看集群CPU使用情况
  2. stage
    控制训练流程。比如run.sh包括三个阶段:数据准备、GMM训练、神经网络训练。默认stage为1。如果想从中间步骤开始,可更改stage数控制。
  3. gmm_stage
    原理同上。参数传给GMM训练阶段。

local/prepare_all.sh

config

  1. stage
    原理同上。

local/prepare_dict.sh

purpose
初步处理大辞典,生成五个txt文件
lexicon.txt(每行由一句话和对应的音素组成)
nonsilence_phones.txt
silence_phones.txt
optional_silence.txt
extra_questions.txt
config

data_词典文件

  1. data/local/DaCiDian:网上下载的词典原始词典文件
  2. data/local/dict/lexicon.txt:转换的词典文件


    lexicon.png

    如图所示,词典文件每行由文字和对应的音素组成,音素后缀代表该音素发音声调。
    lexicon文件以<UNK>\t(tab)spn结尾。
    词典中还包含字母和阿拉伯数字的发音

  3. data/local/dict/nonsilence_phones.txt:


    nonsilence_phones.png

    文件由音素组成,其中部分音素有0,1,2,3,4不同声调状态

  4. data/local/dict/silence_phones.txt:
    文件中仅有sil
  5. data/local/dict/optional_silence.txt:
    同上
  6. data/local/dict/extra_questions.txt:


    extra_questions.png
  7. data/local/dict/lexiconp.txt


    lexiconp.png

    带概率的词典文件

local/prepare_data.sh(脚本待学)

根据原始训练集(wav.scp和 text)和data/local/dict里的词典文件转成最终可用于后续训练的data/train/wav.scp /text(word-segmented)/utt2spk/spk2utt
config

data_可执行的训练数据
注:train,test和dev同理

  1. data/train/wav.scp


    wav.scp.JPG

    格式:<utterance ID> <utterance的wav绝对路径>
    注:C0007是说话人编号,W0006是对应的句子编号。

  2. data/train/text


    before.png
    after.png

    格式:<utterance ID><utterance_trans>
    注:可以看出处理前后txt的分词差别
    当我直接用未处理的txt进行后续程序时,会报错,很神奇,待学。

  3. data/train/utt2spk
    格式:<utterance ID><speaker ID>


    utt2spk.png
  4. data/train/spk2utt
    感觉这个文件没啥用,每个说话人对应的句子数目都没标全

utils/prepare_lang.sh

purpose
This script adds word-position-dependent phones and constructs a host of other derived files
config

  1. num_sil_states=5
  2. num_nonsil_states=3
  3. position_dependent_phones=true
  4. share_silence_phones=false
    if true, then share pdfs of different silence phones together
  5. sil_prob=0.5
  6. unk_fst=

data_可执行的L.fst

  1. data/local/lang
    临时文件夹
  2. data/lang/phones.txt


    phones.png
    number.png

    phones.txt文件里除了有意义的音素外还有数字

  3. data/lang/words.txt


    words.png

    猜测是词典中包含的词语,因为前面已经将句子做了segment,这里估计就是每行读取trans文件,以空格为分隔符,统计词典中的词语数。

  4. data/lang/topo


    topo.png

    可以看出这个文件规定了一个音素的拓扑结构。
    4.1 编号2~201为phones.txt中的有意义音素。
    4.2 一个音素由三个状态0,1,2组成;3为结束状态。
    4.3 每个状态有一个pdf
    4.4 每个状态有两种转移状态(自己或别的状态)。初始设置为0.75和0.25分配。
    4.5 第二种设置是一个音素由五个状态组成。

  5. data/lang/L.fst
    这个就是重点文件了。WFST还需要看。
  6. data/lang/L_disambig.fst
  7. data/lang/oov.txt
    文档里只有一个UNK
    oov意思是out of vocabulary

local/train_lms.sh & format_lm.sh

purpose
用data/local/dict/lexicon.txt和训练集的text文件生成语言模型。
再生成G.fst。
注:这里用训练集的text生成语言模型,也可以用其他的text生成,只要不包含测试集就行。
data_可执行的G.fst

  1. data/lang_test/G.fst
  2. 其他文件和上一步的data_lang里的一样,就多了G.fst

总结


总结.JPG
上一篇下一篇

猜你喜欢

热点阅读