美文网首页
语音识别新手入门指南/教程

语音识别新手入门指南/教程

作者: jackieyoung | 来源:发表于2018-01-27 09:34 被阅读4284次

本教程适用范围

面向有计算机专业基础的读者,至少熟悉Linux,掌握shell脚本语言,掌握python,目的是学习语音识别基础知识和理论,并且追踪能够使用Kaldi工具包来完成自己的项目、实验

步骤

1 对语音识别有粗略的认知

推荐:

语音识别技术的前世今生_王赟的知乎live

知乎语音识别的技术原理

https://www.zhihu.com/question/20398418

可以自己手动搭一个孤立词识别,孤立词语音识别跟MNIST手写字识别几乎一模一样,直接输入声音波形,输出声波所对应的孤立词类别。可以参考下面的项目

https://github.com/microic/niy/tree/master/examples/speech_commands

另一个就是使用谷歌的Tensorflow官方语音识别入门教程

这个入门教程将教会你训练一个简单的语音识别网络,能识别10个词,就像是语音识别领域的MNIST(手写数字识别数据集)。同时这个教程也附上了相应的语音指令数据集http://www.codeclip.com/3971.html

2 跑一遍kaldi

(1)安装Kaldi

看官方主页的Readme就可以了

(2)跑一个例子

可以从跑thchs30开始,教程https://www.jianshu.com/p/c48466d36162

理解thchs30/s5/run.sh的主要步骤http://blog.csdn.net/BBZZ2/article/details/72884979

(3)初步阅读Kaidi的官方文档
http://www.kaldi-asr.org/doc/kaldi_for_dummies.html

3 学习hmm-gmm

途径:学习htkbook,《语音识别实践》

学习kaldi的话,先从hmm-gmm入手比较好,像steps/train_delta.sh, steps/train_fmllr.sh, steps/decode.sh这些脚本都是基于hmm-gmm模型。kaldi官网上没有多少关于hmm-gmm的资料,没有hmm-gmm基础知识的初学者可能对于decision tree,alignment, lattice这些概念一头雾水。若要搞清楚这些概念,可以看语音识别另一开原工具htk的文档htk book,htk book是学习hmm-gmm很好的一部著作,将hmm-gmm从训练到解码的过程讲解的很透彻。只要知道决策树,训练/识别网络扩展,viterbi解码,EM算法,区分训练这几个概念的原理hmm-gmm也就理解透彻了。htk book对于这些都有讲解,部分内容如EM算法,区分训练需要看一些文献。htk book第二,八,十,十二,十三章需要重点看;在学习htkbook的过程中,可以结合着kaldi的脚本对照理解;比如steps/train_delta.sh中build-tree命令那部分的代码对应htk book第十章tree-based clustering, gmm-est命令那部分的代码对应htk book第八章的Parameter Re-Estimation Formulae;

4 学习神经网络

搞清楚hmm-gmm之后对语音识别就有了一个清晰的理解,接下来就可以上手神经网络。kaldi支持很多神经网路,如MLP, RNN, CNN, LSTM,如果对神经网路了解不多还是从MLP入手较好,MLP是神经网路中最基础的模型。

神经网路kaldi有3个工具nnet1, nnet2, nnet3,初学者可以从nnet1开始。nnet1使用的是hmm-dnn架构,相关的知识可以查阅微软俞栋2009-2013期间发表的论文。

nnet2的架构和nnet1同样是hmm-dnn架构,但是使用的是dan povey团队设计的NSGD算法,支持多线程并行训练,学习nnet2可以追dan povey从2012年之后的论文

至于nnet3,chain model,以及其他的神经网路结构(rn,cnn,lstm)的学习,

5 看论文

当完成我上面的说的学习内容后自然对语音识别有一个大体的认识,后面要做的就是看相关的文献。微软,dan povey,google, 多伦多大学来自这些地方的论文不断的追就行了。

最后总结,语音识别是对理论要求很高的方向,学习过程中一定要注重理论知识的学习,很多公式还是有必要自己去推导下才能有深刻的理解。

资料推荐

论文

多关注ICASSP,InterSpeech的论文集

文字资料

Kaldi的官方文档

网友总结的《kaldi的全部资料_v0.4.pdf》

以及《Chinese_doc_of_kaldi》

王赟的知乎live pdf

https://zhihu-live.zhimg.com/0af15bfda98f5885ffb509acd470b0fa

HMM-GMM部分

<htk book>: HTK Speech Recognition Toolkit

http://lasa.epfl.ch/teaching/lectures/ML_Phd/Notes/GP-GMM.pdf

此文献详细讲解了hmm-gmm训练算法的推导过程

http://www.cc.gatech.edu/~dellaert/em-paper.pdf

此文献详细讲解了EM算法的基本原理

Discriminative Training for Large Vocabulary Speech Recognition (PDF Download Available)

此文献详细讲解了区分训练的基本原理

神经网络部分:

Dan Povey

kaldi作者Dan Povey的个人主页,学习nnet2, nnet3, chain model看Povey的论文会很有帮助;

书籍

htkbook 《语音信号处理》《语音识别实践》《统计学习方法》《机器学习》《模式识别》

《语音识别实践》:微软研究院俞栋对HMM-DNN架构在语音识别中的相关理论讲解;内容主要是2009~2014期间学术界关于HMM-DNN架构的论文;

《模式识别》: 这本书第四章的非线性分类器作为神经网络的入门还是很合适的,理论讲解很详细;

网络课程

(1)ASR webpage (ASR 课程)

(2)Speech Processing: 15-492/18-492 (CMU ASR课程)

一些工具的使用方法

FFmpeg

http://blog.csdn.net/Allyli0022/article/details/78355248

常见问题与解答

kaldi triphone decision tree 训练生成的tree结构是怎样的?

见回答:https://www.zhihu.com/question/263969544/answer/275975955

相关文章

  • 语音识别新手入门指南/教程

    本教程适用范围 面向有计算机专业基础的读者,至少熟悉Linux,掌握shell脚本语言,掌握python,目的是学...

  • 语音识别

    python语音识别终极指南

  • Go 语法基础--学习笔记

    安装以及基本语法参考官方文档即可。 入门资源分享: Go 编程基础::无闻录制的新手入门视频教程 Go入门指南 :...

  • 智能语音客服服务助手

    智能语音客服服务助手 语音识别 阿里语音识别 百度语音识别 讯飞语音识别 语音合成 阿里语音合成 百度语音合成 讯...

  • Python语音识别终极指南

    译者 | 廉洁编辑 | 明明出品 | AI科技大本营(公众号ID:rgznai100) 【AI科技大本营导读】亚马...

  • python语音识别终极指南

    【导读】亚马逊的 Alexa 的巨大成功已经证明:在不远的将来,实现一定程度上的语音支持将成为日常科技的基本要求。...

  • 语音识别

    SDK下载离在线语音识别 Android SDK文档结合demo认真阅读 集成指南 1、DEMO 中已经集成了 S...

  • 新手入门!给零基础小白专门打造的色彩基础教程

    新手入门!给零基础小白专门打造的色彩基础教程 新手入门!给零基础小白专门打造的色彩基础教程

  • AI语音基本原理

    一、语音识别分类: (1)特定人的语音识别——只识别指定人的语音,使用前需要训练; (2)非指定人的语音识别 二、...

  • .NET调用讯飞语音识别webapi

    参考资料:语音听写 · 科大讯飞REST_API开发指南 开发目的:前面做语音识别的时候用的百度的API,发现百度...

网友评论

      本文标题:语音识别新手入门指南/教程

      本文链接:https://www.haomeiwen.com/subject/mhxnaxtx.html