kaldi DNN在线解码 aishell为例
在kaldi 的工具集里有好几个程序可以用于在线识别。这些程序都位在src/onlinebin文件夹里,他们是由src/online文件夹里的文件编译而成(你现在可以用make ext 命令进行编译)。这些程序大多还需要tools文件夹中的portaudio 库文件支持,portaudio 库文件可以使用tools文件夹中的相应脚本文件下载安装。
# 安装portaudio
yum -y install *alsa*
cd kaldi/tools
./install_portaudio.sh
# 编译在线识别工具
cd src/
make ext
注:online官方不再维护,新版本为online2,不过先从简单的online开始。
下面以aishell的chain模型为例,学习使用online2-wav-nnet3-latgen-faster
对训练好的aishell模型进行解码。
- 首先,生成解码所需配置文件:
# 注意:需要[ --add_pitch=true ]加入pitch特征。
steps/online/nnet3/prepare_online_decoding.sh --add_pitch=true data/lang_chain exp/nnet3/extractor exp/chain/tdnn_1a_sp exp/chain/nnet_online
- 如果直接解码会提示出错:
LOG (wav-copy[5.3]:main():wav-copy.cc:68) Copied 1 wave files
ERROR (online2-wav-nnet3-latgen-faster[5.3]:OnlineTransform():online-feature.cc:421)Dimension mismatch: source features have dimension 91 and LDA #cols is 281
- 不要紧张,是因为特征维度不匹配。我们生成的配置文件里的特征类型是MFCC,而aishell训练nnet和chain模型输入的是更高维度的MFCC,叫mfcc_hire,hire是high resolution单词的缩写[引用文章]。所以我们要修改第一步生成的MFCC配置文件,打开mfcc.conf文件,我们看到:
# 原文件内容:
--use-energy=false # only non-default option.
--sample-frequency=16000
# 我们需要添加新内容,如下:
--num-mel-bins=40 # similar to Google's setup.
--num-ceps=40 # there is no dimensionality reduction.
--low-freq=40 # low cutoff frequency for mel bins
--high-freq=-200 # high cutoff frequently,relative to Nyquist of 8000 (=3800)
- 完成后就可以解码了,使用在线解码工具
online2-wav-nnet3-latgen-faster
进行解码:
online2-wav-nnet3-latgen-faster --config=exp/chain/nnet_online/conf/online.conf --do-endpointing=false --frames-per-chunk=20 --extra-left-context-initial=0 --online=true --frame-subsampling-factor=3 --max-active=7000 --beam=15.0 --lattice-beam=6.0 --online=false --acoustic-scale=0.1 --word-symbol-table=data/lang/words.txt exp/chain/tdnn_1a_sp/final.mdl exp/chain/tdnn_1a_sp/graph/HCLG.fst ark:data/test/spk2utt scp:data/test/wav.scp ark,t:20180803.txt
- 得到识别结果!!!!:
BAC009S0764W0121 甚至 出现 交易 几乎 停滞 的 情况
LOG (online2-wav-nnet3-latgen-faster[5.4.208~1-6f214]:main():online2-wav-nnet3-latgen-faster.cc:286) Decoded utterance BAC009S0764W0121
BAC009S0764W0122 一二 线 城市 虽然 也 处于 调整 中
LOG (online2-wav-nnet3-latgen-faster[5.4.208~1-6f214]:main():online2-wav-nnet3-latgen-faster.cc:286) Decoded utterance BAC009S0764W0122
BAC009S0764W0123 但 因为 聚集 了 过多 公共 四元
LOG (online2-wav-nnet3-latgen-faster[5.4.208~1-6f214]:main():online2-wav-nnet3-latgen-faster.cc:286) Decoded utterance BAC009S0764W0123
BAC009S0764W0124 为了 规避 三四 线 城市 明显 过剩 的 市场 风险
LOG (online2-wav-nnet3-latgen-faster[5.4.208~1-6f214]:main():online2-wav-nnet3-latgen-faster.cc:286) Decoded utterance BAC009S0764W0124
BAC009S0764W0125 标杆 房企 必然 调整 市场 战略
LOG (online2-wav-nnet3-latgen-faster[5.4.208~1-6f214]:main():online2-wav-nnet3-latgen-faster.cc:286) Decoded utterance BAC009S0764W0125
BAC009S0764W0126 因此 土地 储备 至关 重要
LOG (online2-wav-nnet3-latgen-faster[5.4.208~1-6f214]:main():online2-wav-nnet3-latgen-faster.cc:286) Decoded utterance BAC009S0764W0126
BAC009S0764W0127 中原 地产 首席 分析 师 张大 伟 说
LOG (online2-wav-nnet3-latgen-faster[5.4.208~1-6f214]:main():online2-wav-nnet3-latgen-faster.cc:286) Decoded utterance BAC009S0764W0127
BAC009S0764W0128 一 线 城市 土地 供应 量 减少
LOG (online2-wav-nnet3-latgen-faster[5.4.208~1-6f214]:main():online2-wav-nnet3-latgen-faster.cc:286) Decoded utterance BAC009S0764W0128
BAC009S0764W0129 也 助推 了 土地 市场 的 火爆
参考:IT_King1《DNN在线解码(以aishell的chain模型为例)》
kaldi DNN在线解码 aishell为例的更多相关文章
- kaldi - Online Audio Server(服务器客户端建立方法-旧版在线解码)
目录 一.服务器客户端识别系统建立方法 1. Command line to start the server(服务器端启动方式): 2. Command line to start the clie ...
- [转]异常声音检测之kaldi DNN 训练
转自:http://blog.csdn.net/huchad/article/details/52092796 使用kaldi的DNN做音频分类,异常声音检测. HMM/GMM -> HMM/D ...
- kaldi GMM模型解码指令 gmm-latgen-faster详解
目录 - 作用: - 用法: - 可选项及含义: - 使用实例: - 作用: Generate lattices using GMM-based model. 生成基于GMM模型的lattice词格) ...
- 三个小白是如何在三个月内搭一个基于kaldi的嵌入式在线语音识别系统的
前面的博客里说过最近几个月我从传统语音(语音通信)切到了智能语音(语音识别).刚开始是学语音识别领域的基础知识,学了后把自己学到的写了PPT给组内同学做了presentation(语音识别传统方法(G ...
- kaldi 运行voxforge例子
---------------------------------------------------------------------------------------------------- ...
- Kaldi中的Chain模型
Chain模型的训练流程 链式模型的训练过程是MMI的无网格的版本,从音素级解码图生成HMM,对其使用前向后向算法,获得分母状态后验,通过类似的方式计算分子状态后验,但限于对应于转录的序列. 对于神经 ...
- 视频编解码学习之路(H264)
学习视频编解码技术很难吗?视频编解码技术的未来是什么? 明了的说,无论是软件还是硬件设计,视频编解码技术有很多难点,都需要很长一段时间积累才行. 从一开始接触MPEG-2到最新的H.264标准,可算走 ...
- 安卓TV开发(七) 移动智能终端多媒体之在线解析网页视频源
载请标明出处:http://blog.csdn.net/sk719887916/article/details/40049137,作者:skay 结束了所有UI绘制的学习,智能设备常用的应用音视频类, ...
- OID的编解码(即在报文中的体现)
先上干货: 我们常见到OID的地方是SNMP和MIB,实际上理论上所有对象都可以有自己的ID.已存在的ID可以在http://www.oid-info.com/查到.这些ID在报文里并非字符串或直接的 ...
随机推荐
- i2c子系统
linux内核的I2C驱动框架总览(1)I2C驱动框架的主要目标是:让驱动开发者可以在内核中方便的添加自己的I2C设备的驱动程序,从而可以更容易的在linux下驱动自己的I2C接口硬件(2)源码中I2 ...
- Linux系统Java环境配置
1.卸载Linux系统自带的JDK java -version rpm -qa | grep -i java 我们要删除掉自带的JDK环境 rpm -e --nodeps java-1.6.0-ope ...
- Git很简单--图解攻略
Git Git 是目前世界上最先进的分布式版本控制系统(没有之一) 作用 源代码管理 为什么要进行源代码管理? 方便多人协同开发 方便版本控制 Git管理源代码特点 1.Git是分布式管理.服务器和客 ...
- iOS 11.4.1 正式版越狱
在 2018 年 Electra 最新能支持到 11.3.1 越狱,很长的一段时间 11.4 只能支持 Beta 版本,临近春节给了我们一个大礼物,终于支持 iOS 11.4-11.4.1,目前 iO ...
- 课时6.HTTP协议(理解)
HTTP是Hypertext Transfer Protocol的缩写,译为:超文本传输协议 什么是协议? 在现实生活中有很多的协议,例如租房协议/买卖协议/离婚协议 无论是什么协议它们都有一个共同点 ...
- redis必会
1.NosqL 非关系型数据库,里面包含Redis和MondoDB2.为什么会用到关系型数据库?因为当数据量太多,访问人数过多的时候,在访问关系型数据库时会到硬盘里进行读写过多 这样就会导致访问速度很 ...
- Redis API的理解与使用
目录 一.通用命令 二.数据结构与内部编码 三.单线程架构 一.通用命令 Redis有五种数据结构,它们是键值对中的值,对于键来说有一些通用的命令.Redis的全局通用命令有:keys,dbsize, ...
- MongoDB怎么用?
MongoDB简介 MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关系数据库和非关系数据库 ...
- Delphi RAD Server 应用服务基础平台
RAD Server是一个应用服务框架平台,可快速构建和部署应用服务.RAD Server提供自动化的Delphi和C++ REST/ JSON API的 发布与管理.企业数据库集成中间件.智能物联网 ...
- OpenStack部署博客推荐
OpenStack部署推荐博客 shhnwangjian https://www.cnblogs.com/shhnwangjian/category/942049.html(推荐) 点评: 1.实现过 ...