kaldi 的安装和测试

文章目录

  • kaldi 的安装和测试
    • 1. 下载源码
    • 2. 安装
    • 3. Kaldi 目录介绍
      • 子目录egs
      • 子目录src
    • 训练、识别、测试
      • 语料下载
      • 测试结果

1. 下载源码

git clone https://github.com/kaldi-asr/kaldi.git kaldi --origin upstream
cd kaldi
git pull

2. 安装

cd kaldi
cd tools

检测依赖

extras/check_dependencies.sh

根据指示安装缺失的包,直到看到:

extras/check_dependencies.sh: all OK.

然后make

make

看到下面这句话就表示完成:

All done OK.

完成之后切换到src目录在make

cd ../src
./configure
make

看到下面这句话就表示完成了:

echo Done
Done

3. Kaldi 目录介绍

  • egs :此目录为 Kaldi 例子目录,其中例子包含了不乏语音识别、语种识别、声纹识别、关键字识别等。
  • misc : 此目录包含了一些 pdf、以及相关 docker、htk 等资源
  • scripts: 此目录只用来存放 Rnnlm,以及相应的运行脚本。
  • src : 此目录为 Kaldi 的源代码目录,Kaldi 的多数算法的源代码都存放于此,其中不乏GMM、Ivector、Nnet等一系列的算法。
  • tools: 此目录主要存放 Kaldi 依赖库的安装脚本
  • windows: 此目录为在 Windows 平台运行所必须的脚本以及相关的执行程序。

子目录egs

  • Aishell : 此目录为中文语音识别和声纹识别相关例子。
  • Aishell2 : 此目录主要为中文语音识别例子,但是针对 Aishell 在脚本方面更加规整。
  • ami : 此目录主要涉及到多信道语音识别的例子。
  • an4 : 此例子为 CMU 提供语音识别例子,并没有涉及神经网络。
  • apiai_decode: 此例子为解码器使用的例子,其中包含了如何使用预训练模型,这里主要针对的是 Nnet3 解码。
  • aspire: 此为ASpIRE 挑战赛的例子,其中包含了怎样使用噪声数据构建多条件数据的例子。
  • aurora4: 此例子主要介绍 RBM 预训练。
  • babel: 此例子主要是用来训练 KWS (Key Word Search)。
  • babel_multilang: 此例子为训练多语音 KWS。
  • bentham: 手写笔识别的例子。
  • bn_music_speech : 音乐与语音区分的例子。
  • callhome_diarization : 说话人分割的例子。
  • callhome_etyptian: 埃及语语音识别例子。
  • chime1-5 : 主要针对 CHiME 竞赛开放的例子。
  • cigar : 图像分类的例子。
  • commonvoice: Mozilla Common Voice 语音识别的例子。
  • csj : 日语 语音识别例子。
  • dihard_2018 : DiHARD Speech Diarization CHALLENGE 的例子。
  • fame : 富里西语语音识别和声纹识别的例子。
  • farsdat: 主要用来声学语音研究和语音识别的例子。
  • fisher_callhome_spanish : 使用 Callhome 预料进行语音识别的例子。
  • fisher_english: 英文双声道 8000 Hz 对话电话语音数据集的语音识别例子。
  • fisher_swbd: 包含 fisher 数据集以及 swbd 数据集的语音识别例子。
  • gale_arabic: 阿拉伯语语音识别例子。
  • gale_mandarin: 普通话语音识别例子。
  • gp: 全球电话语音识别例子(多语种语音识别例子)。
  • heroico: 西班牙语音识别例子。
  • houst: 普通话电话语音识别例子。
  • hub4_english : 英语新闻广播语音识别例子。
  • hub4_spanish: 西班牙新闻广播语音识别例子。
  • iam: IAM 手写笔识别例子。
  • iban: 语音识别例子。
  • ifnenit: 阿拉伯语手写笔识别例子。
  • librispeech: 英语语音识别例子。
  • lre/lre07 : 语种识别例子。
  • madcat_ar : 手写笔识别例子。
  • madcat_zh: 中文手写笔识别例子。
  • mini_librispeech: 英语语音识别例子。
  • mult_en: 英语 LVCSR 例子。
  • pub: RNNLM 模型构建例子。
  • reverb: REVERB 挑战赛例子。
  • rimes: 法语手写笔识别例子。
  • rm: 英语语音识别例子,包含了如何进行迁移学习。
  • sitw: sitw 说话人识别挑战赛的例子。
  • sprakbanken: 丹麦语语音识别例子。
  • sprakbanken_swe: 瑞典语语音识别例子。
  • sre08/10/16: 说话人识别的例子。
  • svhn: 图像分类的例子。
  • swahili: 班图人语 语音识别例子。
  • swab: 双声道对电话语音识别例子。
  • tedium: 英语语音识别例子。
  • thchs30: 普通话语音识别例子。
  • tidigits: 基础语音识别的例子。
  • timit: 主要是 GMM/HMM 语音识别例子。
  • tunisian_msa: 阿拉伯语音识别例子。
  • uw3:OCR 识别例子。
  • voxceleb: 说话人识别例子。
  • vystadial_cz: 捷克语语音识别例子。
  • voxforge: 基础语音识别例子,以及对应的在线 demo 的例子。
  • vystadial_en: 英文语音识别例子。
  • wsj: wsj 英文语音识别例子。
  • yesno: 独立词语音识别例子。
  • yomdle_fa/korean/russian/tamil/zh: OCR 识别例子。
  • zeroth_korean: 朝鲜语语音识别例子。

子目录src

  • base : Kaldi 基础目录,主要包括与 Kaldi 项目相关的基础宏定义、类型定义等。
  • bin : Kaldi 的基础 bin 目录,主要是包括基础的执行程序。例如,查看 tree 信息、矩阵拷贝等基础操作。
  • cudamatrix : Kaldi 矩阵计算相关 GPU 计算目录
  • matrix : Kaldi 矩阵计算相关 CPU 计算目录
  • itf : Kaldi 相关的 interface
  • hmm : Kaldi 相关隐马尔可夫算法的代码目录
  • utils : Kaldi 相关,语音算法无关的工具目录,例如,线程操作、io操作、文本操作等。
  • probe : Kaldi 相关的 exp(指数) 测试目录
  • transform : Kaldi 相关的特征转换算法目录
  • fstext : Kaldi 中 fst 相关的算法基础目录
  • fstbin : Kaldi 中 fst 对应的算法执行文件夹
  • feat : Kaldi 相关的特征提取算法目录
  • featbin : Kaldi 相关的特征提取可执行目录
  • gmm : Kaldi 相关的 GMM 算法基础目录
  • gmmbin : Kaldi 相关的 GMM 算法可执行文件目录
  • ivector : Kaldi 相关的 ivector 算法基础目录
  • ivectorbin : Kaldi 相关的 ivector 算法的可执行目录,以及基于能量的 vad 执行目录。
  • kws : Kaldi 相关的关键字搜索基础算法目录
  • kwsbin : Kaldi 相关的关键字搜索执行目录
  • lat : Kaldi 相关的网格生成基础算法目录
  • latbin : Kaldi 相关的网格生成算法的可执行文件目录
  • lm : Kaldi 自带的语言模型基础算法目录
  • lmbin : Kaldi 相关语音模型的可执行文件目录
  • nnet : Kaldi 相关的 nnet1 基础算法实现目录
  • nnetbin : Kaldi nnet1相关的算法可执行文件目录
  • nnet2 : Kaldi nnet2 相关的基础算法实现目录
  • nnet2bin : Kaldi nnet2 相关的算法可执行文件目录
  • nnet3 : Kaldi nnet3 相关基础算法实现目录
  • nnet3bin : Kaldi nnet3 相关实现算法的可执行文件目录
  • online : Kaldi online1 相关解码算法的实现目录
  • onlinebin : Kaldi online1 相关解码器算法的可执行目录
  • online2 : Kaldi online2 相关解码器算法的实现目录
  • online2bin : Kaldi online2 相关解码器算法的可执行目录
  • rnnlm : Kaldi rnnlm 相关的语音模型基础算法实现目录
  • rnnlmbin : Kaldi rnnlm 相关的语音模型的可执行目录
  • sgmm2 : Kaldi sgmm2 相关的子空间 GMM 基础算法实现目录
  • sgmm2bin : Kaldi sgmm2 相关的子空间 GMM 基础算法可执行目录
  • tfrnnlm : Kaldi 相关的 Tensorflow rnnlm 基础算法目录
  • tfrnnlmbin : Kaldi 相关的 Tensorflow rnnlm 基础算法实现的可执行目录

训练、识别、测试

语料下载

www.openslr.org

本例实验 THCHS-30 ,所以下载 https://www.openslr.org/18/

下载完成后解压至任意文件夹,这里放在

/home/kaldi/media/thchs30-openslr

然后修改脚本:

cd kaldi/egs/thchs30/s5
vim cmd.sh
#export train_cmd=queue.pl
#export decode_cmd="queue.pl --mem 4G"
#export mkgraph_cmd="queue.pl --mem 8G"
#export cuda_cmd="queue.pl --gpu 1"
export train_cmd=run.pl
export decode_cmd="run.pl --mem 4G"
export mkgraph_cmd="run.pl --mem 8G"
export cuda_cmd="run.pl --gpu 1"

修改run.sh

vim run.sh

路径改为语料的存放路径:

#corpus and trans directory
#thchs=/nfs/public/materials/data/thchs30-openslr
thchs=/home/kaldi/media/thchs30-openslr

然后运行 run.sh 训练

测试结果

去egs下,打开voxforge,里面有个online_demo,直接考到thchs30下。
在online_demo里面建2个文件夹online-data work,
在online-data下建两个文件夹audio和models,
audio下放你要回放的wav,
models建个文件夹tri1,把s5下的exp下的tri1下的final.mdl和35.mdl考过去。
把s5下的exp下的tri1下的graph_word里面的words.txt,和HCLG.fst,考到models的tri1下。

修改online_demorun.sh:

#注释掉这段
#if [ ! -s ${data_file}.tar.bz2 ]; then
#    echo "Downloading test models and data ..."
#    wget -T 10 -t 3 $data_url;
#    if [ ! -s ${data_file}.tar.bz2 ]; then
#        echo "Download of $data_file has failed!"
#        exit 1
#    fi
#fi
#tri2b_mmi改成tri1
#ac_model_type=tri2b_mmi
ac_model_type=tri1
#model为final.mdl
#online-wav-gmm-decode-faster --verbose=1 --rt-min=0.8 #--rt-max=0.85\
#    --max-active=4000 --beam=12.0 --acoustic-scale=0.0769 \
#    scp:$decode_dir/input.scp $ac_model/model
online-wav-gmm-decode-faster --verbose=1 --rt-min=0.8 --rt-max=0.85\--max-active=4000 --beam=12.0 --acoustic-scale=0.0769 \scp:$decode_dir/input.scp $ac_model/final.mdl

运行./run.sh就是开始识别了。
提示./run.sh –test-mode live命令就是从麦克风识别。

如果报错 “没有online-wav-gmm-decode-faster” ,就去src的online和onlinebin下面重新make clean然后 make

结果:

SIMULATED ONLINE DECODING - pre-recorded audio is usedThe (bigram) language model used to build the decoding graph wasestimated on an audio book's text. The text in question is"King Solomon's Mines" (http://www.gutenberg.org/ebooks/2166).The audio chunks to be decoded were taken from the audio book readby John Nicholson(http://librivox.org/king-solomons-mines-by-haggard/)NOTE: Using utterances from the book, on which the LM was estimatedis considered to be "cheating" and we are doing this only forthe purposes of the demo.You can type "./run.sh --test-mode live" to try it using yourown voice!online-wav-gmm-decode-faster --verbose=1 --rt-min=0.8 --rt-max=0.85 --max-active=4000 --beam=12.0 --acoustic-scale=0.0769 scp:./work/input.scp online-data/models/tri1/final.mdl online-data/models/tri1/HCLG.fst online-data/models/tri1/words.txt 1:2:3:4:5 ark,t:./work/trans.txt ark,t:./work/ali.txt
File: 1
刘 宗 下 今年 六十 岁 五十 年代 进入 海外 就 不 工作 一 久久 斯 年 十二月 任 外交 安 堡 首席 秘书 File: 2
福安 广告 公司 方面 说 他们 并不 赞成 差 朦胧 重 广告 但 上头 有 压力 没有 谈 File: 3
他 奇怪 自己 不仅 无疑 死去 前 就 由 中 与 对手 劈 杀 较量 跃跃欲试 的 行径 File: 4
塞 军 为 职业 运动员 最 常 二十四 千米 业余 运动员 进场 二十一 前 青年 运动员 进场 时 五 千米 File: 5
今年 来 影坛 哨所 魔鬼 亚 辖 耀 涛 文 刀 杀人 鲜 血淋淋 的 凶杀 场面 的 承诺 某些 娱乐 篇 必不可少 的 内容

可见 ,准确度较低

kaldi 的安装和thchs30语音识别测试相关推荐

  1. 使用docker成功安装paddlespeech进行语音识别

    @[TOC]使用docker成功安装paddlespeech进行语音识别 多次使用单机安装paddlepaddle及paddlespeech失败后,遇到绝大多数的原因是pyton与paddlespee ...

  2. kaldi windows安装_Kaldi安装

    AI 人工智能 Kaldi安装 Kaldi是基于C++开发并遵守Apache License v2.0的一款语音识别工具包,是目前最流行的ASR工具之一,本文基于Ubuntu 18.04 LTS介绍了 ...

  3. 电脑w ndoWs语言权限通知,如何在 Wndows XP 中安装和配置语音识别

    <如何在 Wndows XP 中安装和配置语音识别>由会员分享,可在线阅读,更多相关<如何在 Wndows XP 中安装和配置语音识别(16页珍藏版)>请在技术文库上搜索. 1 ...

  4. Myeclipse安装、配置、测试

    Myeclipse安装.配置.测试(win7_64bit) 目录 1.概述 2.本文用到的工具 3.安装与激活 4.JavaSE开发测试(确保JDK已正确安装) 5.JavaEE开发测试(确保服务器和 ...

  5. jieba库 python2.7 安装_Python中文分词工具大合集:安装、使用和测试

    这篇文章事实上整合了前面两篇文章的相关介绍,同时添加一些其他的Python中文分词相关资源,甚至非Python的中文分词工具,仅供参考. 首先介绍之前测试过的8款中文分词工具,这几款工具可以直接在AI ...

  6. Ubuntu 18.04上进行HyperLedger Fabric 1.2.0环境及链码安装、部署和测试

    Ubuntu 18.04上进行HyperLedger Fabric 1.2.0环境及链码安装.部署和测试 1.环境安装 HyperLedger Fabric 1.2.0环境的安装推荐一篇博客:http ...

  7. 【阿里云 Linux 服务器】购买 Linux 到项目部署过程中遇到的问题,部署 SpringBoot 项目到服务器上,在手机上安装 Android 程序进行测试

    文章目录 一.购买好服务器之后要重置密码 二.利用 putty 程序登录访问你的服务器 三.配置安全组开放端口 四.部署项目前期准备工作 4.1 安装 Java 4.2 安装 mysql 4.3 安装 ...

  8. 安装jdk配置环境、cmd命令行测试环境变量配置是否正确及运行java程序、安装IDEA编写代码测试

    文章目录 1.安装jdk配置环境 2.cmd命令行测试环境变量配置是否正确及运行java程序 3.安装IDEA编写代码测试 1.安装jdk配置环境 首先打开官网Oracle https://www.o ...

  9. Eclipse For JavaSE安装、配置、测试

    Eclipse For JavaSE安装.配置.测试(win7_64bit) 目录 1.概述 2.本文用到的工具 3.安装与配置 4.JavaSE开发测试 5.ADT安装与Android开发测试 6. ...

最新文章

  1. iOS开发中乱用hook可能导致灾难
  2. 关于信噪比的确切含义——Eb/No和SNR的区别
  3. Java微信公众平台开发(四)--回复消息的分类及实体的创建
  4. cmd编译java命令_使用CMD命令编译执行java命令
  5. android软件的data使用方法,实例讲解Android中SQLiteDatabase使用方法
  6. 忍者必须死3 玩什么忍者_降维:忍者新手
  7. 查看Linux下端口占用情况的命令
  8. CCF201803-4 棋局评估(100分)【博弈+DFS】
  9. POJ 3037 SPFA
  10. HDU 4421 Bit Magic(2-sat)
  11. meterpreter使用
  12. element-ui MessageBox弹框确定和取消位置(this.$confirm)
  13. kubernetes配置管理:cm,sercret,sa
  14. 世界上服务器最多的游戏,魔兽科普 国服人最多的几个服务器都什么来头
  15. C++版本OpenCv教程(十一)多通道分离与合并
  16. 上海住房公积金账号系统及查询
  17. 暗影精灵3中mysql安装不上_惠普暗影精灵II代Pro内部做工怎么样?惠普暗影精灵II代Pro拆机详细评测图解...
  18. 【Android】【Java】写一个字符串到Android系统得文件里去存起来,保存字符串到文件
  19. alertmanager 简介
  20. 浮动以及清楚浮动的几种方法

热门文章

  1. G711音频编码格式
  2. 关于安装PotPlayer64出现PotPlayer 64 bit need right Try agin的问题
  3. 快过年了用Python抢红包
  4. 详细解读:大数据分析的学习
  5. 史上最通俗易懂的理解云计算
  6. 九龙证券|主力出逃大热门互联网股近13亿元!尾盘两股获加仓超亿元
  7. 质量小议19 -- 熵
  8. JVM(4)—类加载机制
  9. 海量文本中挖掘人物关联关系核心技术介绍-桂洪冠
  10. AndroidStudio项目配置第三方libray库