kaldi 的安装和thchs30语音识别测试
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_demo
的run.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语音识别测试相关推荐
- 使用docker成功安装paddlespeech进行语音识别
@[TOC]使用docker成功安装paddlespeech进行语音识别 多次使用单机安装paddlepaddle及paddlespeech失败后,遇到绝大多数的原因是pyton与paddlespee ...
- kaldi windows安装_Kaldi安装
AI 人工智能 Kaldi安装 Kaldi是基于C++开发并遵守Apache License v2.0的一款语音识别工具包,是目前最流行的ASR工具之一,本文基于Ubuntu 18.04 LTS介绍了 ...
- 电脑w ndoWs语言权限通知,如何在 Wndows XP 中安装和配置语音识别
<如何在 Wndows XP 中安装和配置语音识别>由会员分享,可在线阅读,更多相关<如何在 Wndows XP 中安装和配置语音识别(16页珍藏版)>请在技术文库上搜索. 1 ...
- Myeclipse安装、配置、测试
Myeclipse安装.配置.测试(win7_64bit) 目录 1.概述 2.本文用到的工具 3.安装与激活 4.JavaSE开发测试(确保JDK已正确安装) 5.JavaEE开发测试(确保服务器和 ...
- jieba库 python2.7 安装_Python中文分词工具大合集:安装、使用和测试
这篇文章事实上整合了前面两篇文章的相关介绍,同时添加一些其他的Python中文分词相关资源,甚至非Python的中文分词工具,仅供参考. 首先介绍之前测试过的8款中文分词工具,这几款工具可以直接在AI ...
- Ubuntu 18.04上进行HyperLedger Fabric 1.2.0环境及链码安装、部署和测试
Ubuntu 18.04上进行HyperLedger Fabric 1.2.0环境及链码安装.部署和测试 1.环境安装 HyperLedger Fabric 1.2.0环境的安装推荐一篇博客:http ...
- 【阿里云 Linux 服务器】购买 Linux 到项目部署过程中遇到的问题,部署 SpringBoot 项目到服务器上,在手机上安装 Android 程序进行测试
文章目录 一.购买好服务器之后要重置密码 二.利用 putty 程序登录访问你的服务器 三.配置安全组开放端口 四.部署项目前期准备工作 4.1 安装 Java 4.2 安装 mysql 4.3 安装 ...
- 安装jdk配置环境、cmd命令行测试环境变量配置是否正确及运行java程序、安装IDEA编写代码测试
文章目录 1.安装jdk配置环境 2.cmd命令行测试环境变量配置是否正确及运行java程序 3.安装IDEA编写代码测试 1.安装jdk配置环境 首先打开官网Oracle https://www.o ...
- Eclipse For JavaSE安装、配置、测试
Eclipse For JavaSE安装.配置.测试(win7_64bit) 目录 1.概述 2.本文用到的工具 3.安装与配置 4.JavaSE开发测试 5.ADT安装与Android开发测试 6. ...
最新文章
- iOS开发中乱用hook可能导致灾难
- 关于信噪比的确切含义——Eb/No和SNR的区别
- Java微信公众平台开发(四)--回复消息的分类及实体的创建
- cmd编译java命令_使用CMD命令编译执行java命令
- android软件的data使用方法,实例讲解Android中SQLiteDatabase使用方法
- 忍者必须死3 玩什么忍者_降维:忍者新手
- 查看Linux下端口占用情况的命令
- CCF201803-4 棋局评估(100分)【博弈+DFS】
- POJ 3037 SPFA
- HDU 4421 Bit Magic(2-sat)
- meterpreter使用
- element-ui MessageBox弹框确定和取消位置(this.$confirm)
- kubernetes配置管理:cm,sercret,sa
- 世界上服务器最多的游戏,魔兽科普 国服人最多的几个服务器都什么来头
- C++版本OpenCv教程(十一)多通道分离与合并
- 上海住房公积金账号系统及查询
- 暗影精灵3中mysql安装不上_惠普暗影精灵II代Pro内部做工怎么样?惠普暗影精灵II代Pro拆机详细评测图解...
- 【Android】【Java】写一个字符串到Android系统得文件里去存起来,保存字符串到文件
- alertmanager 简介
- 浮动以及清楚浮动的几种方法