kaldi上运行Timit实例

本文详细介绍了如何搭建TIMIT语音识别语料库,并利用Kaldi工具进行语音识别模型训练。从安装irstlm工具开始,到配置环境变量、设置数据路径等步骤,最后通过运行run.sh脚本完成整个实验流程。

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

TIMIT全称The DARPA TIMIT Acoustic-Phonetic Continuous Speech Corpus, 是由德州仪器(TI)、麻省理工学院(MIT)和坦福研究院(SRI)合作构建的声学-音素连续语音语料库。TIMIT数据集的语音采样频率为16kHz,一共包含6300个句子,由来自美国八个主要方言地区的630个人每人说出给定的10个句子,所有的句子都在音素级别(phone level)上进行了手动分割,标记。
TIMIT语料库多年来已经成为语音识别社区的一个标准数据库,在今天仍被广为使用。其原因主要有两个方面:数据集中的每一个句子都在音素级别上进行了手动标记,同时提供了说话人的编号,性别,方言种类等多种信息;数据集相对来说比较小,可以在较短的时间内完成整个实验;同时又足以展现系统的性能。

1、安装irstlm
irstlm是语言模型工具包,Timit要用到,安装的脚本在kaldi/tools/extras/install_irstlm.sh。

cd kaldi/tools/extras
./install_irstlm.sh

安装完成以后,目录下出现irstlm文件夹。由于timit例程里面引用irstlm工具的路径是tools目录,所以把这个文件夹拷贝到tools/目录下。同时irstlm的路径配置文件/tools/extras/env.sh也复制到tools目录下。

2、在/egs/timit/目录下创建data文件夹,Timit语音库分为train和test两个文件夹,将这两个文件夹放在data下面。

3、进入/egs/timit/s5准备训练模型。s5中包含三个关键的脚本:cmd.sh,path.sh,run.sh。

cmd.sh用来定义每个步骤使用的脚本。修改cmd.sh,对于本地运行(不使用集群),cmd.sh修改如下:

# run it locally
export train_cmd=run.pl
export decode_cmd=run.pl
export cuda_cmd=run.pl
export mkgraph_cmd=run.pl

path.sh用来定义各种工具包的路径。修改path.sh如下:

export KALDI_ROOT=`pwd`/../../..
[ -f $KALDI_ROOT/tools/env.sh ] && . $KALDI_ROOT/tools/env.sh
#export PATH=$PWD/utils/:$KALDI_ROOT/tools/openfst/bin:$KALDI_ROOT/tools/irstlm/bin/:$PWD:$PATH
export PATH=$PWD/utils/:$KALDI_ROOT/src/bin:$KALDI_ROOT/tools/openfst/bin:$KALDI_ROOT/tools/irstlm/bin/:$KALDI_ROOT/src/fstbin/:$KALDI_ROOT/src/gmmbin/:$KALDI_ROOT/src/featbin/:$KALDI_ROOT/src/lm/:$KALDI_ROOT/src/sgmmbin/:$KALDI_ROOT/src/sgmm2bin/:$KALDI_ROOT/src/fgmmbin/:$KALDI_ROOT/src/latbin/:$KALDI_ROOT/src/nnetbin:$KALDI_ROOT/src/nnet2bin/:$KALDI_ROOT/src/kwsbin:$PWD:$PATH
[ ! -f $KALDI_ROOT/tools/config/common_path.sh ] && echo >&2 "The standard file $KALDI_ROOT/tools/config/common_path.sh is not present -> Exit!" && exit 1
. $KALDI_ROOT/tools/config/common_path.sh
export LC_ALL=C
export IRSTLM=$KALDI_ROOT/tools/irstlm
export LD_LIBRARY_PATH=$KALDI_ROOT/tools/openfst/lib:$LD_LIBRARY_PATH

run.sh是所有阶段的脚本,包括了读取数据,建立发音字典,特征提取,声学模型训练(单音节、双音节、三音节、SGMM2、DNN等等),解码。最后显示各种模型的正确率。

在运行之前,需要修改run.sh脚本中的Timit数据路径(必须提供自己的Timit绝对路径):
timit=/export/corpora5/LDC/LDC93S1/timit/TIMIT 修改为
timit=/home/zht/kaldi/egs/timit/data # @local

run.sh中SGMM2 Training & Decoding部分 exit 0 要注释掉

4、运行例子

cd kaldi/egs/timit/s5
./run.sh

参考资料:

https://blog.youkuaiyun.com/qq_36035264/article/details/75579003
https://blog.youkuaiyun.com/wujianhaoren123/article/details/51276203
https://www.cnblogs.com/mmziscoming/p/5690971.html
http://www.php.cn/mysql-tutorials-122370.html
https://blog.youkuaiyun.com/jojozhangju/article/details/51446152


### 关于KaldiTIMIT语料库的教程及相关资源 #### Kaldi简介 Kaldi 是一个用于语音识别的工具包,其提供了丰富的功能来处理各种语音数据集,包括但不限于TIMIT语料库[^2]。 #### TIMIT语料库概述 TIMIT是一个广泛使用的英语发音词典数据库,包含了来自不同方言区域的说话人的清晰话语录音。该语料库被设计用来支持自动语音识别系统的开发以及声学-音韵学的研究工作。 #### 使用Kaldi进行基于TIMIT的数据准备和模型训练 对于希望利用Kaldi来进行针对TIMIT语料库实验的新手来说,官方文档提供了一个详细的指南,指导如何下载并准备好所需的文件结构以便后续建模: 1. **安装依赖项** 需要先验证环境配置是否满足条件,可以过执行`extras/check_dependencies.sh`脚本来完成这一步骤[^4]。 2. **获取TIMIT数据集** 用户可以从LDC(Linguistic Data Consortium)官方网站购买获得完整的TIMIT数据集访问权限;不过也有部分开源版本可供初步测试之用。 3. **设置项目目录** 创建一个新的工作空间,在其中放置解压后的TIMIT资料夹,并按照惯例命名为`timit`。 4. **运行示例脚本** 进入到kaldi/egs/timit/s5路径下可以找到一系列预定义好的Shell命令集合,这些脚本能够帮助快速启动整个流程,比如`s0.pl`负责初始化参数设定而`run.sh`则控制着整体的工作流走向。 ```bash cd kaldi/egs/timit/s5 ./local/timit_data_prep.sh /path/to/TIMIT/corpus/ utils/fix_data_dir.sh data/train steps/make_mfcc.sh --cmd "queue.pl -l mem_free=2G" data/train exp/make_mfcc/train mfcc ``` 以上代码片段展示了几个典型的操作步骤,具体细节可以根据实际需求调整。 #### 学习材料推荐 考虑到HMM-GMM理论基础的重要性,建议参考由Michael Gales 和 Steve Young撰写的综述文章《Hidden Markov Models的应用》作为背景阅读材料之一[^3]。此外,《HTK书》同样是非常有价值的参考资料,特别是当涉及到更深入的技术实现方面的话题时。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值