# chain_align **Repository Path**: huangyunting/chain_align ## Basic Information - **Project Name**: chain_align - **Description**: chain_align对齐模型 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-04-29 - **Last Updated**: 2022-11-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # chain_align README - INSTALL - build virtual env(python >= 3.7) - install requirements `pip install -r requirements.txt` - 数据准备: 参见data-example - 数据文件结构 ``` BBSpeech ├── dict——发音字典目录 │ └── lexicon.txt ├── wav.scp——wav列表 ├── text——音素标注 ├── utt2spk——说话人信息 └── textgrid.scp——baseline标注 ``` - data-process, 准备数据文件:wav.scp、text、utt2spk:\ wav.scp:\ utt-id utt-path(absolute path) text:\ utt-id phone1 phone2 ... utt2spk: \ utt-id spk-id\ 若无spk信息,或无需对spk进行适应性处理,则\< utt-id utt-id > 若有oov词 - 根据lexicon.txt生成分词词典,`sed 's/\s.*$/ 1/' lexicon.txt > seg.dict` - 对corpus.txt进行分词,`python3 local/seg_word/segmentword.py seg.dict corpus.txt corpus.seg oov_file` corpus.seg即为分词结果,oov_file为含有oov的语料行,此文件对应的语料将不能用来训练,如过多需考虑修改lexicon.txt增加oov的发音 - 根据corpus.seg将wav.scp中含oov的音频过滤掉```python3 tools/filter_scp.py corpus.seg wav.scp wav.scp.new``` - baseline-corpus textgrid.scp:\ utt-id textgrid-path(absolute path) - lexicon.txt\ 在音素基础上,添加静音(SIL sil)及oov(# spn)标记,见example - kaldi\ https://github.com/kaldi-asr/kaldi\ 若克隆速度较差:可使用各服务器下huangjunjie/bak/kaldi_*.tar.gz - install - follow $KALDI/tools/INSTALL\ extras/check_dependencies.sh\ make -j 24\ - follow $KALDI/src/INSTALL\ ./configure --shared\ make depend -j 24\ make -j 24 - 训练 - 修改path.sh\ line 1: export KALDI_ROOT=$KALDI_PATH\ - 修改conf文件下mfcc.conf、fbank.conf\ --sample-frequency=48000 // 与训练数据采样率相同\ --frame_length=10\ --frame_shift=4 bash run.sh [options] \ \ \ \ [\]\ --nj 24(default)\ --gpu_mode true(default, "wait" for only one gpu usable.) - run.sh流程 stage1: feature-extract\ 修改conf文件下mfcc.conf、fbank.conf在此使用\ stage2: prepare dict/lang\ stage3: train gmm-hmm\ stage4: train chain\ --gpu_mode=[true/wait],训练中会2个epoch使用一块gpu,若unbusy_gpu >= 4(default)/2 = 2,使用true,否则使用wait\ stage5: align to textgrid\ $data_path/textgrid.scp若存在,则对对齐结果进行评估,生成result_diff.txt、large_diff.txt及diff.png