thchs30跑过程中注意事项

本文解决了Kaldi ASR在16.04环境下出现的问题,包括字典复制失败及对齐失败等问题,并提供了调整beam值的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

尽量使用最新的版本,之需要改下面的第一个问题,就可以全部跑通,新的版本中beam size 是6, 就不会有问题了。


按照github上的版本直接跑的过程中遇到两个问题: 
1. 在 make word graph的过程中字典正确的没有拷贝到本地: 
在 14.04 下面没有问题,在16.04 下面出现问题了。

  cat $thchs/resource/dict/lexicon.txt $thchs/data_thchs30/lm_word/lexicon.txt | grep -v '<s>' | grep -v '</s>' | sort -u > data/dict/lexicon.txt || exit 1;
  • 1

在16.04下面输出到文件里面是 (stand input),但是data/lang下面的文件都没有正确生成。 
但是在14.04 下面是没有问题的(亲测)。 
原因应该是 bash的版本不同导致的吧。 
解决方法就是: 
在grep 后面 加个 -a 就好了。

  1. 问题报如下错误: 
    错误作者回答: https://groups.google.com/forum/#!topic/kaldi-help/S06_dri-Kcg
WARNING (gmm-align-compiled:AlignUtteranceWrapper():decoder-wrappers.cc:466) Retrying utterance A02_000 with beam 40
WARNING (gmm-align-compiled:AlignUtteranceWrapper():decoder-wrappers.cc:475) Did not successfully decode file A02_000, len = 979
WARNING (gmm-align-compiled:AlignUtteranceWrapper():decoder-wrappers.cc:466) Retrying utterance A02_001 with beam 40
  • 1
  • 2
  • 3

具体原因:暂时不明,对对齐没有研究。

解决方法是: 
将 train_mono.sh 中 gmm-align-compiled scaleoptsbeam=scaleopts−−beam=beam –retry-beam=[[beam*4 
中的beam值设置的大点就好了,比如10, 50, 100 等。 
太大了对结果也会有影响。 
http://kaldi-asr.org/doc/faster-decoder_8h_source.html#l00033 中定义beam的时候有说明: 

46 opts->Register(“beam”, &beam, “Decoding beam. Larger->slower, more accurate.”);

参考文献:https://blog.youkuaiyun.com/u011280621/article/details/68947604

### 如何在 Kaldi 中使用 THCHS-30 数据集 #### 准备工作 为了能够在 Kaldi 中顺利使用 THCHS-30 数据集,需先完成一系列准备工作。这包括获取并解压数据集至指定位置。 THCHS-30 是清华大学发布的30小时中文语音数据集,可以从 http://www.openslr.org/18/ 下载[^1]。下载完成后,在 `/thchs30` 文件夹下,应将三个压缩包解压到 `thchs30-openslr` 文件夹内,该文件夹应当与 `/s5` 目录处于同一级别[^2]。 #### 配置环境 配置好开发环境对于后续操作至关重要。确保已经安装了最新版本的 Kaldi 工具箱,并熟悉其基本命令结构。由于 THCHS-30 的处理方式借鉴自 WSJ S5 GPU 训练流程,因此建议参照类似的设置来调整参数和路径[^3]。 #### 处理音频文件 针对 THCHS-30 特有的格式,可能需要编写特定脚本来转换原始录音为适合 Kaldi 输入的形式。通常涉及提取特征向量(如 MFCC)、分割音轨以及创建必要的索引文件等预处理步骤。 ```bash # 假设当前位于 kaldi/egs/thchs30/s5/ utils/prepare_data.sh data/train data/local/dict steps/make_mfcc.sh --nj 4 --cmd "run.pl" data/train exp/make_mfcc/train mfcc ``` 上述代码片段展示了如何调用 Kaldi 提供的标准工具来进行特征提取。这里假设训练数据存放在 `data/train` 路径下;通过运行 `make_mfcc.sh` 可以生成用于模型训练所需的声学特性表示形式——梅尔频率倒谱系数 (MFCC)[^3]。 #### 构建语言模型 构建有效的语言模型也是实现高精度 ASR 系统不可或缺的一部分。可以利用 ARPA 或者其他格式的语言资源配合 SRILM 等外部库一起工作,最终形成适用于目标域的话语模式描述。 ```bash local/tg_graph.sh --arpa data/lang/G.arpa.gz \ --lexicon data/local/dict/lexicon.txt \ data/lang_test_tgsmall ``` 这段 shell 脚本说明了怎样根据给定的概率分布表 (`G.arpa.gz`) 和词典定义(`lexicon.txt`) 来建立测试阶段使用的有限状态语法图(FSG),从而指导解码过程更贴近实际应用场景的需求。 #### 开始训练 一切准备就绪之后就可以启动正式的训练环节了。依据具体硬件条件合理分配计算资源数量(比如线程数),并通过监控日志了解进度情况直至收敛结束。 ```bash steps/train_mono.sh --boost-silence 1.25 --nj 4 --cmd "run.pl" \ data/train data/lang exp/tri1 ``` 此段指令体现了单声道 HMM-GMM 模型训练的核心逻辑,其中设置了静默帧权重因子 (`--boost-silence`) 并指定了多进程执行策略 (`--nj`). 更复杂的拓扑结构则可以通过逐步增加混合成分数目及引入上下文依赖关系等方式迭代优化性能表现.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值