美文网首页
AISHELL2脚本参数和生成文件详解(一)

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

作者: 氢离子游离 | 来源:发表于2018-12-07 12:30 被阅读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

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/rulncqtx.html