文章目录

  • 下载Kaldi
  • 编译安装
  • 运行TIMIT项目(失败)
    • 准备数据
    • 修改脚本
      • Error1
      • Error2
    • 对齐数据
    • 修改配置
      • Error1
  • aishell项目
  • Kaldi 预训练模型
  • 参考文献

下载Kaldi

git clone https://github.com/kaldi-asr/kaldi.git

需要安装大约120MB

编译安装

检查依赖,根据提示安装依赖库

cd kaldi/tools
extras/check_dependencies.sh


接着进行编译,这一步需要较长时间

make -j 8

cd ../src
./configure
make -j 8

运行yesno项目验证是否安装成功

cd ../egs/yesno/s5
./run.sh

运行TIMIT项目(失败)

准备数据

下载TIMIT数据集,并放到kaldi\egs\timit\s5目录下。将其解压后生成data文件夹

unzip TIMIT.zip

修改脚本

修改cmd.sh的运行模式。我是在本地运行,所以修改为run.pl运行

# cmd.run# export train_cmd="queue.pl --mem 4G"
# export decode_cmd="queue.pl --mem 4G"
# # the use of cuda_cmd is deprecated, used only in 'nnet1',
# export cuda_cmd="queue.pl --gpu 1"export train_cmd="run.pl --max-jobs-run 10"
export decode_cmd="run.pl --max-jobs-run 10"
export cuda_cmd="run.pl --max-jobs-run 2"
export mkgraph_cmd="run.pl --max-jobs-run 10"

修改run.sh中数据集的目录以及cpu参数

# run.sh
feats_nj=10
train_nj=20
decode_nj=5
# timit=/mnt/matylda2/data/TIMIT/timit # @BUT
timit=<your workspace>/kaldi/egs/timit/s5/data/lisa/data/timit/raw/TIMIT # @BUT

Error1

运行过程中出现以下错误

针对"Error: the IRSTLM is not available or compiled"解决方案如下:
到kaldi/tools/目录

cd ../../../tools/
extras/install_irstlm.sh

Error2

重新./run.sh之后又出现以下错误:
Cannot find scoring program at /<workspace>/kaldi/egs/timit/s5/…/…/…/tools/sctk/bin/hubhubscr.pl

tools目录下没有sctk,所以应该是需要重新编译sctk,但是解压自带的sctk-20159b5.tar.gz出错

可能是由于最开始make的时候网速差没下全,压缩包不完整。因此重新下载该压缩包

cd ../../../tools
wget https://github.com/usnistgov/SCTK/archive/20159b5.tar.gz
mv 20159b5.tar.gz sctk-20159b5.tar.gz
tar -zxvf sctk-20159b5.tar.gz

重新编译一次

make clean
make -j 8
# Warning: IRSTLM is not installed by default anymore. If you need IRSTLM
# Warning: use the script extras/install_irstlm.sh
# All done OK.
extras/install_irstlm.sh
cd ../src
./configure
make -j 8

之后就运行成功了。但是如果把exit 0注释掉,继续运行下面的训练过程,就会报错!!ubm的问题

对齐数据

steps/nnet/align.sh --nj 4 data-fmllr-tri3/train data/lang exp/dnn4_pretrain-dbn_dnn exp/dnn4_pretrain-dbn_dnn_ali
steps/nnet/align.sh --nj 4 data-fmllr-tri3/dev data/lang exp/dnn4_pretrain-dbn_dnn exp/dnn4_pretrain-dbn_dnn_ali_dev
steps/nnet/align.sh --nj 4 data-fmllr-tri3/test data/lang exp/dnn4_pretrain-dbn_dnn exp/dnn4_pretrain-dbn_dnn_ali_test

修改配置

修改pytorch-kaldi/cfg/TIMIT_baselines中的TIMIT_MLP_mfcc_basic.cfg路径。将kaldi路径修改为自己环境下kaldi的工作路径(记住用绝对路径)

[dataset1]
data_name = TIMIT_tr
fea = fea_name=mfccfea_lst=/home/mirco/kaldi-trunk/egs/timit/s5/data/train/feats.scp# fea_opts=apply-cmvn --utt2spk=ark:/home/mirco/kaldi-trunk/egs/timit/s5/data/train/utt2spk  ark:/home/mirco/kaldi-trunk/egs/timit/s5/mfcc/cmvn_train.ark ark:- ark:- | add-deltas --delta-order=2 ark:- ark:- |fea_lst=/<your workspace>/kaldi/egs/timit/s5/data/train/feats.scpfea_opts=apply-cmvn --utt2spk=ark:/<your workspace>/kaldi/egs/timit/s5/data/train  ark:/<your workspace>/kaldi/egs/timit/s5/mfcc/cmvn_train.ark ark:- ark:- | add-deltas --delta-order=2 ark:- ark:- |cw_left=5cw_right=5lab = lab_name=lab_cd# lab_folder=/home/mirco/kaldi-trunk/egs/timit/s5/exp/dnn4_pretrain-dbn_dnn_alilab_folder=/<your workspace>/kaldi/egs/timit/s5/exp/dnn4_pretrain-dbn_dnn_alilab_opts=ali-to-pdflab_count_file=auto# lab_data_folder=/home/mirco/kaldi-trunk/egs/timit/s5/data/train/# lab_graph=/home/mirco/kaldi-trunk/egs/timit/s5/exp/tri3/graphlab_data_folder=/<your workspace>/kaldi/egs/timit/s5/exp/timit/s5/data/train/lab_graph=/<your workspace>/kaldi/egs/timit/s5/exp/timit/s5/exp/tri3/graphn_chunks = 5[dataset2]
data_name = TIMIT_dev
fea = fea_name=mfcc# fea_lst=/home/mirco/kaldi-trunk/egs/timit/s5/data/dev/feats.scp# fea_opts=apply-cmvn --utt2spk=ark:/home/mirco/kaldi-trunk/egs/timit/s5/data/dev/utt2spk  ark:/home/mirco/kaldi-trunk/egs/timit/s5/mfcc/cmvn_dev.ark ark:- ark:- | add-deltas --delta-order=2 ark:- ark:- |fea_lst=/<your workspace>/kaldi/egs/timit/s5/data/dev/feats.scpfea_opts=apply-cmvn --utt2spk=ark:/<your workspace>/kaldi/egs/timit/s5/data/dev/utt2spk  ark:/<your workspace>/kaldi/egs/timit/s5/mfcc/cmvn_dev.ark ark:- ark:- | add-deltas --delta-order=2 ark:- ark:- |cw_left=5cw_right=5lab = lab_name=lab_cd# lab_folder=/home/mirco/kaldi-trunk/egs/timit/s5/exp/dnn4_pretrain-dbn_dnn_ali_devlab_folder=/<your workspace>/kaldi/egs/timit/s5/exp/dnn4_pretrain-dbn_dnn_ali_devlab_opts=ali-to-pdflab_count_file=auto# lab_data_folder=/home/mirco/kaldi-trunk/egs/timit/s5/data/dev/# lab_graph=/home/mirco/kaldi-trunk/egs/timit/s5/exp/tri3/graphlab_data_folder=/<your workspace>/kaldi/egs/timit/s5/data/dev/lab_graph=/<your workspace>/kaldi/egs/timit/s5/exp/tri3/graphn_chunks = 1[dataset3]
data_name = TIMIT_test
fea = fea_name=mfcc# fea_lst=/home/mirco/kaldi-trunk/egs/timit/s5/data/test/feats.scp# fea_opts=apply-cmvn --utt2spk=ark:/home/mirco/kaldi-trunk/egs/timit/s5/data/test/utt2spk  ark:/home/mirco/kaldi-trunk/egs/timit/s5/mfcc/cmvn_test.ark ark:- ark:- | add-deltas --delta-order=2 ark:- ark:- |fea_lst=/<your workspace>/kaldi/egs/timit/s5/data/test/feats.scpfea_opts=apply-cmvn --utt2spk=ark:/<your workspace>/kaldi/egs/timit/s5/data/test/utt2spk  ark:/<your workspace>/kaldi/egs/timit/s5/mfcc/cmvn_test.ark ark:- ark:- | add-deltas --delta-order=2 ark:- ark:- |cw_left=5cw_right=5lab = lab_name=lab_cd# lab_folder=/home/mirco/kaldi-trunk/egs/timit/s5/exp/dnn4_pretrain-dbn_dnn_ali_testlab_folder=/<your workspace>/kaldi/egs/timit/s5/exp/dnn4_pretrain-dbn_dnn_ali_testlab_opts=ali-to-pdflab_count_file=auto# lab_data_folder=/home/mirco/kaldi-trunk/egs/timit/s5/data/test/# lab_graph=/home/mirco/kaldi-trunk/egs/timit/s5/exp/tri3/graphlab_data_folder=/<your workspace>/kaldi/egs/timit/s5/data/test/lab_graph=/<your workspace>/kaldi/egs/timit/s5/exp/tri3/graph

运行run_exp.py

python3 run_exp.py cfg/TIMIT_baselines/TIMIT_MLP_mfcc_basic.cfg

Error1

...
File "/<workspace>/pytorch-kaldi/data_io.py", line 149, in _sort_chunks_by_length    fea_conc, lab_conc = zip(*fea_sorted)ValueError: not enough values to unpack (expected 2, got 0)
...
File "/<workspace>/pytorch-kaldi/core.py", line 496, in run_nndata_name = shared_list[0]
IndexError: list index out of rangev

卡住!!!

aishell项目

建立数据保存的文件夹

mkdir export
mkdir export/a05
mkdir export/a05/xna
mkdir export/a05/xna/data

修改local/cmd.sh,使用run.pl启动

diff --git a/egs/aishell/v1/cmd.sh b/egs/aishell/v1/cmd.sh
index d1ca1a6d1..170829d99 100644
--- a/egs/aishell/v1/cmd.sh
+++ b/egs/aishell/v1/cmd.sh
@@ -10,6 +10,7 @@# conf/queue.conf in http://kaldi-asr.org/doc/queue.html for more information,# or search for the string 'default_config' in utils/queue.pl or utils/slurm.pl.-export train_cmd="queue.pl --mem 4G"
+# export train_cmd="queue.pl --mem 4G"
+export train_cmd="run.pl --mem 4G

修改local/download_and_untar.sh,这部分有路径错误,导致解压出错

diff --git a/egs/aishell/v1/local/download_and_untar.sh b/egs/aishell/v1/local/download_and_untar.sh
index b0636a8cd..8321ce283 100755
--- a/egs/aishell/v1/local/download_and_untar.sh
+++ b/egs/aishell/v1/local/download_and_untar.sh
@@ -78,9 +78,9 @@ if [ ! -f $data/$part.tgz ]; thenfifi-cd $data
+# cd $data-if ! tar -xvzf $part.tgz; then
+if ! tar -xvzf $data/$part.tgz; thenecho "$0: error un-tarring archive $data/$part.tgz"exit 1;fi
@@ -93,6 +93,7 @@ if [ $part == "data_aishell" ]; thenecho "Extracting wav from $wav"tar -zxf $wav && rm $wavdone
+  cd ../../..fiecho "$0: Successfully downloaded and un-tarred $data/$part.tgz"

修改run.sh,此处data目录是在根目录,可将其修改为相对路径

diff --git a/egs/aishell/v1/run.sh b/egs/aishell/v1/run.sh
index b16939bd3..46bb6d976 100755
--- a/egs/aishell/v1/run.sh
+++ b/egs/aishell/v1/run.sh
@@ -12,7 +12,7 @@# See README.txt for more info on data required.# Results (EER) are inline in comments below-data=/export/a05/xna/data
+data=export/a05/xna/datadata_url=www.openslr.org/resources/33. ./cmd.sh

运行./run.sh,它占用大量的cpu资源,需要等待很长一段时间(我在服务器跑需要7.5小时),得到错误率为0.224845%

Kaldi 预训练模型

罢了罢了,使用别人训练好的模型他不香吗?
Kaldi ASR中既有语音识别(ASR),也有说话人识别(SID)以及其他部分任务

参考文献

kaldi 笔记:运行 timit 例程脚本(部分)
语音识别之PyTorch-Kaldi详细教程

Kaldi 入门使用教程相关推荐

  1. Kaldi入门教程 aishell脚本

    Kaldi入门教程 aishell脚本 文章目录 Kaldi入门教程 aishell脚本 @[toc] 准备词典 准备数据,分为test.dev.train集 词典.语言文件准备,生成对应的数据关系 ...

  2. 扫掠两条引导线_NX10 入门图文教程——异形台架(扫掠或者沿引导线扫掠)

    NX10 入门图文教程--异形台架(扫掠或者沿引导线扫掠) 块,长方体,由于这个体不是对称的,所以选择长方体完成,原点开始,设置参数 长方体,选择棱边端点,这个地方用长方体目的是上方的这个块与下面的块 ...

  3. MAYA 2022基础入门学习教程

    流派:电子学习| MP4 |视频:h264,1280×720 |音频:AAC,48.0 KHz 语言:英语+中英文字幕(根据原英文字幕机译更准确)|大小解压后:3.41 GB |时长:4.5小时 包含 ...

  4. 3dmax Vray建筑可视化入门学习教程

    面向初学者的3Ds Max Vray最佳Archviz可视化课程 从安装到最终图像的一切都将从头开始教授,不需要任何经验 大小解压后:3.25G 时长4h 6m 1280X720 MP4 语言:英语+ ...

  5. Blender 3.0基础入门学习教程 Introduction to Blender 3.0

    成为Blender通才,通过这个基于项目的循序渐进课程学习所有主题的基础知识. 你会学到什么 教程获取:Blender 3.0基础入门学习教程 Introduction to Blender 3.0- ...

  6. Maya游戏角色绑定入门学习教程 Game Character Rigging for Beginners in Maya

    准备好开始为游戏制作自己的角色动画了吗? 你会学到什么 了解Maya的界面 优化并准备好你的模型,为游戏做准备 了解关节以及如何使用它们来构建健壮的角色骨骼,以便在任何游戏引擎中制作动画 了解IK和F ...

  7. 三维地形制作软件 World Machine 基础入门学习教程

    <World Machine课程>涵盖了你需要的一切,让你有一个坚实的基础来构建自己的高质量的电影或视频游戏地形. 你会学到什么 为渲染或游戏开发创建高分辨率.高细节的地形. 基于Worl ...

  8. Blender3.0动画制作入门学习教程 Learn Animation with Blender (2021)

    要求 下载并安装Blender.免费下载和免费用于任何目的. 描述 加入我的动画课程. 在本课程中,我将从头开始讲述在Blender中创建动画场景的过程. 从第一步到最终渲染.在这个课程中,我们将使用 ...

  9. UE5真实环境设计入门学习教程

    大小解压后:4.69G 时长4h 30m 1280X720 MP4 语言:英语+中英文字幕(根据原英文字幕机译更准确) 虚幻引擎5–面向初学者的真实环境设计 Unreal Engine 5 – Rea ...

最新文章

  1. .net中语音识别和语音合成(二)语音合成提高篇
  2. centos6查看java命令_centos6.5下常见命令和操作
  3. JVM调优总结(一)
  4. 【Leetcode | 6】136. 只出现一次的数字
  5. php获取访问者ip地址汇总,php获取访问者IP地址汇总_PHP
  6. wifi 小米pro 驱动 黑苹果_搞定小米黑苹果自带WIF,又可省一个USB接口了
  7. 2019阿里云910会员节大促主会场全攻略
  8. 敏感性分析算法 程序_计算机程序设计艺术(TAOCP)精读笔记1 - 算法分析真正应该有的样子 Part 1...
  9. IndexOf() LastIndexOf() Contains() StartsWith() EndsWith()方法比较
  10. ViewModel中C# Property自动添加OnPropertyChanged处理的小工具, 以及相应Python知识点...
  11. Windows 10 + kali Linux 双系统安装教程(详细版)
  12. 当 p<1时,p 范数不满足三角不等式的证明 | p norm | triangle inequality
  13. 前端商城项目实战-(前端篇)
  14. 最经典的人生定律、法则、效应总结
  15. 云闪付华为P9指纹_华为云闪付app下载-华为云闪付 安卓版v9.0.11.301-PC6安卓网
  16. alter的详细用法
  17. HDU 2154:跳舞毯(递推)
  18. 修改计算机管理员administrator的密码
  19. 生产排故_ORA-01000: maximum open cursors exceeded
  20. http协议之http响应

热门文章

  1. pdf文档转化为doc文档 (转载)
  2. 计算机指纹识别的原理步骤,指纹识别技术的基本原理及过程
  3. spyder pyecharts不显示_逆袭的IGZO-IPS小金刚!微星PAG272QRZ显示器评测:色域、响应速度更优秀...
  4. 小米一代扫地机器人磨损家具_为了以后的众测 篇二:无差评居家神器——Mi 小米 扫地机器人...
  5. php时间函数不准确,PHP中DATE函数与实际时间相差8小时的解决办法
  6. 200道物理学难题——001 三只蜗牛
  7. python debugger extension_Pykd——Python extension for WinDbg
  8. 并行与分布式计算导论(七)MPI Collective Communication
  9. 计算机映像缺失磁盘如何修复,电脑映像损坏怎么修复_windows提示损坏的映像怎么处理...
  10. 一个可以截取其他App素材的办法Visual Studio Code