Kaldi语音识别1.声学建模单元的选择1.1对声学建模单元加入位置信息2.输入特征3.区分性技术4.多音字如何处理?5.Noise Robust ASR6.Deep Learning[DNN/CNN替换GMM]7.在手机等资源受限设备

author:Feiteng

Email:lifeiteng0422@gmail.com

date:2014/08/10Kaldi训练脚本针对不同的语料库,需要重写数据准备部分,脚本一般放在conf、local文件夹里;

conf放置一些配置文件,如提取mfcc、filterbank等特征参数的配置,解码时的一些参数配置

local一般用来放置处理语料库的数据准备部分脚本>中文识别,应该准备:发音词典、音频文件对应的文本内容和(文件标注)一个基本可用的语言模型(解码时使用)

注:一般情况下,在模型训练阶段LM对ASR的参数训练没有影响,即不影响GMM、HMM、DNN/CNN的参数值;使用区分度模型训练会有影响[生成Lattice候选]1.声学建模单元的选择

全音节[是否带声调]、声韵母[是否带声调]、音素?>带声调的声韵母作为建模单元是比较常见的中文识别选择,也有一些文章指出,使用更细化的phones 集可以有更多的性能提升:

中文连续语音识别系统音素建模单元集的构建——包叶波等

基于发音特征的汉语普通话语音声学建模——颜永红等

基于发音特征的汉语声调建模方法及其在汉语语音识别中的应用——刘文举等1.1对声学建模单元加入位置信息

For instance, we'd have:

AA AA_B AA_E AA_I AA_Sfor (B)egin, (E)nd, (I)nternal and(S)ingletonand inthe case of silence

SIL SIL SIL_B SIL_E SIL_I SIL_S

仍然要注意,中英文的差别,中文声学建模单元可能不含有全部的_B _E _I _S2.输入特征

MFCC、fbank、PLP

使用对角协方差矩阵的GMM由于忽略了不同特征维度的相关性,MFCC更适合用来做特征

DNN/CNN可以对更好的利用这些相关性,把MFCC的DCT省略,使用fbank特征可以更多地降低WER

tips: Deep Learning更多是实验性质,解释多半是迎合实验现象

甚至直接从语音波形图上直接提取特征

IBM-Tara N. Sainath-2014-IMPROVEMENTS TO FILTERBANK AND DELTA LEARNING

Tara N. Sainath发表了一系列的CNN on Speech的文章,我觉得质量是CNN on Speech的文章中最好的

中文是带声调的语言,声调不同,差别很多,因此可以在特征上加入声调信息2014-A DNN-BASED ACOUSTIC MODELING OF TONAL LANGUAGE AND ITS APPLICATION TO MANDARIN PRONUNCIATION TRAINING2014-AUTOMATIC PHONETIC SEGMENTATION IN MANDARIN CHINESE BOUNDARY MODELS, GLOTTAL FEATURES AND TONE

Noise Robust feature?

LiDeng2013-An Overview of Noise-Robust Automatic Speech Recognition3.区分性技术

区别特征提取:LDA、MLLR、SAT、fbMMI

区分度模型训练:MMI、MPE、MCE、smbr

经验:并不是所有区分性技术都有正面效果4.多音字如何处理?

假设我们的文本标注如下:

spk001 我们 的 作品 为 第一名

发音词典如下:

的 d e0

的 d e4

的 d i2

为 w ei2

为 w ei4

的和为都是多音字,那么在模型训练阶段如何根据标注spk001联合phones的HMM模型呢?

有两种解决策略:

①唯一化处理:更改文本标注和发音词典,将多音字唯一化标注

如:

的1 d e0

的2 d e4

为1 w ei2

为2 w ei4

spk001 我们 的1 作品 为1 第一名

这样做的话,我们在解码阶段需要去除发音词典中的标识1、2,从而不会在解码结果中引入多余的1、2②自动处理:Kaldi可以将多种选择(多音)编入spk001的fst,在Align阶段根据音频特征选择phone的标号

这种处理可能不够精确,ML本来就不能100%准确,这点让人悲伤;

不过可能语料库的发音人并不能对所有的多音字都发正确的音,

如果使用①需要校对每一个含有多音字的音频发音,人工大大的;

英语单词也存在多音字,不过相比中文少得多,可参考:冯志伟-汉语拼音音节的歧义指数5.Noise Robust ASR

从特征提取、模型层面把噪声考虑进去 可参考:

综述文章:LiDeng2013-An Overview of Noise-Robust Automatic Speech Recognition6.Deep Learning[DNN/CNN替换GMM]

这一步“需要”先训练一个HMM+GMM,然后获得wav文件的alignment,即每一帧对应的phone->state

这样我们就为DNN准备好了train.data train.label

注:我们可以使用为GMM提取的特征,也可以重新从wav提取特征,需要注意的是窗口大小、帧移要与alignment匹配;

通常提取fbank特征作为DNN的输入,而且组合当前帧左右相邻的n帧成 2n+1帧特征作为输入

Dropout、ReLU

关于Dropout我在TIMIT做了不下20组实验,才看到WER的下降,更绝大多数文章的描述并不相同;

ReLU做了几组实验,没看到更低的WER,有待继续。

CNN

根据实验CNN相比DNN会有5%-10%的WER下降,卷积层不同的实现[FFT vs 矩阵乘积]性能会有差异,这一层计算量略大

Tara N. Sainath发表了一系列的CNN on Speech的文章,我觉得质量是CNN on Speech的文章中最好的

直接HMM+DNN混合训练

参考:2014-google-GMM-FREE DNN TRAINING

其他

SVD低秩逼近W矩阵7.在手机等资源受限设备

参考 雷欣 的两篇文章,针对数值存储、模型等做优化,在资源暂用与识别率下降方面做权衡1.2013-Accurate andCompact Large Vocabulary Speech Recognition on Mobile Devices2.FINE CONTEXT, LOW-RANK, SOFTPLUS DEEP NEURAL NETWORKS FOR MOBILE SPEECH RECOGNITION

[转]Kaldi语音识别相关推荐

  1. kaldi语音识别实战pdf_语音识别相关工具和资料分享

    作者:帅帅家的人工智障 原创文章,转载请申请原作者同意 常见的语音相关工具很多,这里介绍几种常见的工具.主要有Kaldi.PyTorch-Kaldi.SpeechBrain.pykaldi.ESPne ...

  2. kaldi 语音识别

    广告关闭 腾讯云双11爆品提前享,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高满返5000元! 所以kaldi.cntk.tensorflow等支持深度学习的工具目前比较流行,k ...

  3. Kaldi 语音识别基础教程

    Kaldi 介绍 Kaldi 是由 C++ 编写的语音识别工具,其目的在于为语音识别研究者提供一个研究和使用的平台. Kaldi 环境搭建 本文主要通过使用 Docker 和 Nvidia-docke ...

  4. kaldi教程_赠书 | 全球稀缺的Kaldi学习资料,《Kaldi语音识别实战》给补上了

    刚刚过去的十年是语音技术发展的黄金十年.Kaldi的出现,被业内公认为极大地降低了语音识别技术学习与使用的门槛,成为广受欢迎的工具. Kaldi 项目发布不久,就吸引了国内外的大量用户,形成了一个活跃 ...

  5. Kaldi语音识别技术

    一.参考资料 如何用Kaldi做语音识别? Kaldi官网 kaldi仓库 二.相关介绍 Kaldi是当前最流行的开源语音识别工具(Toolkit),旨在提供灵活且可扩展的组件,包括多种语音信号处理, ...

  6. Kaldi语音识别技术(三) ----- 完成L.fst的生成

    Kaldi语音识别技术(三) ----- 完成L.fst的生成 文章目录 Kaldi语音识别技术(三) ----- 完成L.fst的生成 基础知识 一.运行环境准备 二.文件准备 lexicon.tx ...

  7. kaldi语音识别实战网盘_小米开源语音模型 KaldiONNX 转换工具,助力移动端部署!...

    作者 | 小米开源团队 责编 | 胡巍巍 近日,小米对外开源了Kaldi模型到ONNX模型的转换工具Kaldi-ONNX,有望进一步促进Kaldi生态与深度学习生态间的互通. 同时,配合移动端深度学习 ...

  8. 基于《Kaldi语音识别》技术及开源语音语料库分享

    前言: 数据堂自AI开源计划发起,面向高校和科研机构首次开源的[1505小时中文普通话语音数据集],该数据集句标注准确率达到了98%,得到了很多开发者的认可. 不仅如此,数据堂基于此开源数据集还精选出 ...

  9. Kaldi语音识别技术(五) ----- 特征提取

    Kaldi语音识别技术(五) ----- 特征提取 文章目录 Kaldi语音识别技术(五) ----- 特征提取 一.识别流程 二.MFCC特征提取概述 三.文件格式 文件格式说明 提取部分数据 修复 ...

最新文章

  1. JavaScript小记
  2. Java 获得方法调用者名称
  3. 地理(GIS)教学神器:气象地球生成器
  4. volatile实现原理
  5. c语言程序改错输入5结果为15,《C语言程序设计教学课件》程序改错(自我总结).doc...
  6. 登录个税显示局端服务器显示,天津金税三期个人所得税扣缴系统
  7. 人工智能自动修复图片,模糊图片秒变高清
  8. 使用c++filt工具demangle C++符号
  9. 汇编语言编写程序从1加到100要求使用循环结构。
  10. java用户登录进入系统_Java CRM系统用户登录功能实现代码实例
  11. 计算机保研面试中,都有哪些令人窒息的问题?
  12. Kalibr标定时卡在Extracting calibration target corners的问题
  13. aria2 linux 手动安装,Linux安装aria2(示例代码)
  14. Plotly Express 详细使用指南,20组案例从入门到进阶(附源代码)
  15. 【微信小程序——云音乐播放器】
  16. 数据结构之二叉树的实现
  17. qq登录 适用于 laravel
  18. oracle导出1455,oracle 11g导出数据时报ORA 1455错误的处理方法
  19. Codex Network经济模型篇 (PoA、PoV、CPoA)
  20. 2-3 golang项目中benchmark的写法

热门文章

  1. Practice 10
  2. 《PRML.Translation》pdf
  3. android 点击,触摸事件
  4. HDU 5898 odd-even number
  5. codeforces 664B B. Rebus(乱搞题)
  6. testservice小项目总结
  7. Hibernate学习笔记_核心幵发接口及三种对象状态
  8. Bailian2911 受限完全平方数【暴力】
  9. Bailian2811 熄灯问题【暴力】
  10. UVA10852 Less Prime【筛选法】