语音识别作为一门交叉学科,涉及到很多方面。这几年语音识别技术进步显著,也有着更多的人开始学习语音识别。

下面我就主要从两个方面来对语音识别做一些简单的说明,希望对大家有所帮助,尤其对一些刚接触语音识别的人。


学生角度:


<1>装备储蓄

上面已经说了语音识别是一门交叉学科,如果你想学好的话需要花费很多时间跟经历,首先得数学和英语比较好,这会比较占优势,不过很多学科对这两门相求都比较高,良好的数学基础可以更好的帮你理解理论基础,数学推导起来会比较容易,英语则是方便你阅读英文期刊,因为语音识别的很多高端论文,书籍都是英文的。

这里就当你有一定的基础,如学习过矩阵相关理论和随机过程,其中很重要的就是数据结构和算法,这对你很重要。还有一些简单的,模式识别原理,以及基本的英文阅读能力。当然除了这些理论上的知识储蓄之外,必备的一些计算机基础,比如C语音和C++,一些常见的脚本处理语音python,shell,perl等,如果你没有的话,也不要灰心,可以通过书籍或者网上的一些公开课来学习,我只是说明一下需要的技能。最后一项就是你必须会一些Linux的基本命令,在使用过程中你自然会越来越熟悉,向着高阶的进步。具备以上这些,那你已经有了一个良好的开端了,如果认为难得话,就可以就此打住,要知道后面的路还有很长很长。。。。个人觉得不管什么事情,要想做好,都得付出对应的精力。


<2>“打怪”进阶

装点好上面所说的基本装备,带上你的信心,你就可以踏上语音识别这条慢慢打怪升级之路了。。。。

第一步就是针对语音识别方向,学习一些针对性强的基础知识,何为语音?语音的特点?所谓的傅里叶变换是怎样的?还有信号的基本原理及基本处理方法有哪些?这些你得知道,对应的相关书籍为信号与系统、数字信号处理、通信原理等等。

其次就是语音识别的一些基础知识了,这个中文的课本似乎没有说的比较好的,你可以向从机器学习,如逻辑斯特回归、支持向量机、高斯混合模型以及隐马尔科夫模型,这些将伴随你语音识别的整个过程。当然还有信号检测和估计的一些理论,多维高斯模型和最大似然估计等等,推荐给大家的是HTK,看懂前三章很重要,英文不好理解的话,有对应的中文前三章。当然你也可以看看kaldi主页的内容,比如课外的一些语音课程,这个主要是PPT和资料居多,较少有视频,比如上海交通大学的俞凯老师讲的就非常好,大家可以看看。

在学习这些的时候,你可能会遇到很多困难,但是不要怕,一点点的慢慢来,多思考,或许下面的某个瞬间你就会明白,等上面这些你差不多都了解了,恭喜你,已经进阶成功,带着你收获的“战利品”迈向高阶发展之路。。。


<3>高阶发展

知识储备充足之后,就得武装你的武器了,现在你可以去看看kaldi的脚本和代码,或者一些其他平台,在这个阶段,一定要将你之前所学到的理论知识与此结合,知道哪里用到了什么,或者说某一个地方用到了什么原理?不懂得时候也可以多问问,大家互相交流会更容易理解。

语音识别的理解过程就现在而言,首先是GMM-HMM,DNN,RNN,LSTM,CTC。。。一步一步,慢慢你就成为高手了!

 

一些学生的常见问题:

(1)有没有可能爬虫去网上下载训练数据?

   商业数据太贵,对于学生来说无法企及,但是网上的训练数据会有很多问题需要注意:

   a:采样率是否统一,有没有做过重采样?

   b:说话人是否足够?

   c:数据是否有标注?

   d:若有声读物标注是一长段,不太适合训练,需要弄短点;

   e:电影里的北京声音问题

   f:新闻里面的倒是有可能可以用,但是也需要很多人工切分以及处理等。

 

(2)自己的数据怎么弄?

  kaldi中有很多例子,你可以参考里面的任何一个例子,英文的可以参考的更多,中文的就参考王东老师提供的thchus30就可以了,主要是数据准备阶段,其他的都可以复用脚本,但要主要调整参数。


工业角度:

上面所说都只是基础纸上以及一些模拟平台,理论跟产品往往要走更多的路。。。

如果你只是想使用语音识别,那你直接调别人做好的SDK就OK了,如果你想做语音识别,上面说的那些,你具备了吗?

具备理论之后,在实际工业产品之前,第一个问题就是你有语料吗?没有语料就成了大家耳熟能详的“巧妇难为无米炊”了。因此语料的价格自然就贵,因为没有它,其他的一切都是空谈。其次你有人吗?如果没有懂的人,直接做产品,那你把语音识别想的就太简单了,所以在此劝说,如果不是刚需,你就去调别人的SDK 吧!

 

关于工业方面的几个基本问题:

(1)我就想说一句话,然后识别出来文字

   这个问题忽略了语音识别的整个过程,我只能呵呵了,首先你要有语料,然后训练一个模型,然后解码,最后才出来,这背后的东西太多。

(2)不是已经有kaldi或者htk了吗?再说王东老师都开源了中文识别的例子了,我觉得我自己可以搞。

   我想说然而并不是,王东老师开源这个例子是为了促进中文语音的发展,在这里要代表广大语音识别的同胞感谢王东老师。但是开源的语料仅仅只是科研,如果你想要应用在工业上,依然是那句话吗,路还有很远。。。开源的的确有,但是你需要有你自己的数据库,然后才能利用开源的那些来搭建一个适合自己情景的系统。

(3)机器真的需要GPU吗?

   现在都知道DNN、LSTM或者CTC 的效果更好,而这些都是用显卡和语料烧出来的,换句俗话就说用钱喂出来的,所以说GPU的确需要。

 

相信这些能够给工业的人一些帮助,至少能够自己判断了,如有你有语料又有人,加上你那坚韧不拔的毅力,那么期待你的语音识别产品!但不得不说语音识别是一个高门槛的事情,慎入!

说了这么多,希望对大家有所帮助吧!还是希望有更多的人喜欢语音识别,加入到这个大家庭来!如果你有什么问题,欢迎提出来,我们会不断改进,大家共同成长!