对各位语音识别新手的建议
由于工作的原因,很长时间不能更新博客和管理kaldi群,每天看着kaldi群的人数不断增长,由衷的为从事语音感到自豪,希望在我博客和群里能得到你们想要的,但我同时拒绝伸手党。这几年语音的发展很迅速,所以导致更多的人来学习:
下面主要从2个方面来说明,一个是从学生角度,一个是从工业角度。希望以后问怎么学习和怎么研究的人会越来越少,当然我这里也只是抛砖引玉。
学生角度
如果你是本科生,你或许付出的努力会更多。如果你是研究生,最好是数学和英语好,要不然你同样付出很多努力。
1、基础部分
默认你是研究生,你学过基本的矩阵理论和随机过程,一些简单的模式识别原理,这样你或者利于理解识别的原理。默认你能够阅读一般的英文文献,不要害怕专有名词,等你见多了,自然能看懂。也行英文六级过了,一般的文章能看得懂,只要语句知道怎么翻译。这就是数学和英文基础,希望你具备。
此外,默认你具有一些计算机基础,比如c语言和c++,和其他的一些脚本语言如python,shell,perl等基础。如果你不会的话,不要怕,去网上听公开课,也许你听的够多,也就会了。此外,你一定要会linux的基本命令,仅仅是基本命令,慢慢的你也会其他高阶的命令,这个只要你慢慢用。
如果你不具备这些,可以早点学;如果你具备,那你已经达到基础的一步。如果你觉得特别难,赶紧放弃吧。其他的路也是一条很好的路,其实学语音识别需要的东西太多,所以你要有足够的思想准备。如果你的老师或者其他人只丢给你一个课题,如果你根本不感冒,那就劝你直接放弃吧。也许你学习其他的东西,也可以活得很好。再次强调,这也许是一条不归路,或者说很长很长的路,远比你之前遇到的都难。
2.进阶
哦,忘记一个非常重要的东西,就是数据结构和算法。如果你没有学过,赶紧学,这个东西非常非常重要。
这也许是第一个进阶的 东西,这个东西很奇妙,如果你有兴趣,你可以做的很好。
接下来你需要看一些语音的基础知识,知道语音的一些基本处理或者信号的一些基本处理。如果你根本不懂傅里叶变换或者你根本不知道为什么那样,或许你需要思考。这个是大学的信号与系统,数字信号处理,通信原理等等的一些基础知识。
然后,你可以看下语音识别的一些基本知识,当然这个中文的课本也没一个说的好的。你可以先看看机器学习,比如逻辑斯特回归,支持向量机,高斯混合模型,隐马尔科夫模型。当然还有信号检测和估计的一些理论,多维高斯模型和最大似然估计等等。结合你的中文课本和htk中文版前三章,试试看,能不能更好的理解。当然你可以看kaldi主页的内容,看看一些简单的东西,比如课外的一些语音课程,这个只有ppt和一些材料,很少有视频,如果你们学校有老师讲那就更好。比如上海交通大学的俞凯老师。
这里,默认你已经知道一些基本的原理了,也许你不够具体,不要怕,继续走,也许某一个瞬间就明白了。多思考多想想,这个是最好的建议。
3.高阶
你可以去看看kaldi的脚本和代码或者htk的脚本和代码或者其他平台,再根据你的理论试试结合,如果你不懂,多问问,也许你慢慢就积累了,慢慢就会了。如果有人带你,那就更好了。慢慢的你就成为高手了。
这时候你理解了GMM-HMM那套后,就去看DNN那一套吧,甚至更高深的东西。
如果你是学生,发现上面跟你的差别特别大,如果你没兴趣的话,最好放弃,别为难自己。要学的的确很多,但为了你未来的路好走,或许你必须这样辛苦。
工业角度
如果你只是想使用语音识别,你最好去调别人家的SDK。如果你的确需要去做,你可以看看上面的那么多条,你具备吗?
其次,你真的很想很想做,第一个问题来,语料有吗?买,的确很贵,不买,做不出来。然后,你有人吗?没有几个懂得人慢慢去弄也很麻烦,所以的确不是刚需,你可以尝试去调别人的SDK。
经常会被问的问题:
1.我就想做个我说一句话,然后就识别为文字。
有时候问这个问题,我的确挺气的。你们知道这背后有多少东西,没有那么简单就搞出来的。统一回答:你需要找到训练语料,然后训练一个模型,然后再弄解码,然后再出来。这个需要训练模型,需要语料,你有吗?
2.不是有kaldi或者htk了吗?再说王东老师都开源中文的识别例子了?自己可以搞了。
然而并不是,王东老师弄这个例子是为了促进中文语音识别的发展,真的特别感谢王东老师。我当时读研的时候什么数据库都没,就自己看。但这个语料仅仅只是科研,你想要工业应用,还差十万八千里。开源的的确存在,你需要有自己的数据库,然后利用开源来搭建一个适合自己情景的系统。
3.机器真的要GPU吗?
现在都知道dnn或者LSTM的效果好,这些都是用显卡和语料烧出来的,也就是用钱喂出来的。所以这个的确需要钱……
基本对于工业的人来说已经够了,应该足够自己做判断了。再次强调语音识别还是一个高门槛的事情,谨慎入。当然土豪就无所谓了。
以上对于大家来说,可以做判断了,聪明的人做聪明的判断。
希望更多的人加入到语音这个大家庭来,共同繁荣语音事业。
后续会根据反馈情况,逐步反馈。
看了群里n多初级的问题,这里汇总下:
1.请问有没有可能做爬虫去网上下载训练数据?商业数据还是太贵了…
答:
网上的训练数据问题:1)采样率是否统一,有没有做过重采样;2)说话人是否足够;3)是否有标注;4)若有声读物标注是一长段,不太适合训练,需搞短点;5)电影里的背景声音问题;6)新闻的倒是有可能用,但也需要很多人工切分,处理等。
2.自己的数据怎么弄?
kaldi中有很多的例子,你可以参考kaldi里的任何一个例子,英文的可以参考的很多,中文的就参考王东老师提供的thchus30。主要是数据准备阶段,其他的都可以复用脚本,但不一定适合自己,别忘了调整参数。
版权所有,如果您转载,请附上原链接。