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在报文里并非字符串或直接的 ...
随机推荐
- css 写打印样式问题
(1)背景颜色打印不出来问题解决方法 background样式要加上 !important: color样式要加上 !important: -webkit-print-color-adjust: ...
- DDL-库的管理
一.创建库create database [if not exists] 库名[ character set 字符集名]; 二.修改库alter database 库名 character set 字 ...
- 【转】Linux常用命令大全(非常全!!!)
最近都在和Linux打交道,感觉还不错.我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制,当然,这也是很多人喜欢linux的原因,比较短小但却功能强大.我将我了解到的命令列举一 ...
- jQuery+zTree
0 zTree简介 树形控件的使用是应用开发过程中必不可少的.zTree 是一个依靠 jQuery 实现的多功能 “树插件”.优异的性能.灵活的配置.多种功能的组合是 zTree 最大优点. 0.0 ...
- 基于OpenCV的微信跳一跳外挂
摘要:微信跳一跳是时下热门的微信小游戏,基本原理是根据按压屏幕的时间控制棋子跳过的距离,使其跳到下一个方块上:现利用Android adb工具,PC端获取实时截图,使用OpenCV库分析图片计算距离, ...
- git提交代码速度过慢解决方法(macos)
iterm2中ping下github.com和github.global.ssl.fastly.net $ ping github.com 得到以下 PING github.com (192.30.2 ...
- 通过SSH服务登陆linux服务器(版本RHEL7)
通过SSH服务登陆linux服务器(版本RHEL7) SSH服务概述:是一种能够以安全的方式提供远程登陆的协议,也是目前远程管理linux系统的首选方式.在此之前,我们一般使用FTP或者telnet来 ...
- 爬虫常用的 urllib 库知识点
urllib 库 urllib 库是 Python 中一个最基本的网络请求库.它可以模仿浏览器的行为向指定的服务器发送请求,同时可以保存服务器返回的数据. urlopen() 在 Python3 的 ...
- python学习笔记(四):pandas基础
pandas 基础 serise import pandas as pd from pandas import Series, DataFrame obj = Series([4, -7, 5, 3] ...
- 20155304 2016-2017-2 《Java程序设计》实验三 敏捷开发与XP实践
实验三 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 实验步骤 (一)敏捷开发与XP 软件工程是把系统的.有序的.可量化的方法应用到软件的开发.运营和维护上的过程.软件工程包括下列领 ...