浅谈语音信号处理系列之五 语音识别与说话人识别

语音识别和说话人识别-短暂的邂逅

本文主要总结了学习语音识别的一段经历...

一 初识
 上研究生的时候,那时主攻的方向是低码率语音编码技术,但是已经听说语音识别是一个非常了不起的技术,可以想象,如果可以和机器进行无障碍的对话将是一个多么令人兴奋的事情。当时只是埋下了种子,简单的了解了一些名词解释和对Rabiner、李开复与CMU(卡内基梅隆)的钦佩。 

 

二 学习
 工作了一段时间,公司对语音编码好像可以做的都做了,于是计划将来的发展方向是语音识别,这下确实让我激动了好一阵,主动请求参与这个计划并担当主要开发人员。接下来就是在网上疯狂搜索语音识别相关的学习资料,包括书籍、论文以及源代码。在短短的几天后,明确了我们开发语音识别的方向是非特定人、小词汇量、孤立词的语音识别。毕竟我们基本上是从零开始,许多概念需要理解,许多算法需要明白,许多经验也需要积累。

 首先,我们选择了HTK开发工具,这是剑桥提供的一套可以参考学习的语音识别工具。我们选择HTk主要是为了学习语音识别的基本原理和流程。HTk提供的学习资料和源代码还是非常不错的。花了三个月时间,我们学习了基本概念和开发流程,对特征提取、模型匹配、隐马尔科夫模型进行了实验,尤其是隐马尔科夫(HMM)的球与缸(ball and urn)实验很清楚的解释了HMM的概念。接下来的三个月,我们基于自己的嵌入式平台应用,开发了一个用于玩具中的小词汇量,非特定人的、孤立词识别应用方案以及配套的工具,处理语料库是一项非常耗时的工作。

 

三 应用
 接下来,我们也找来几家第三方语音识别方案进行比较,从中我们知道了什么叫做技术积累和工程应用,在综合的评测后,我们自己的方案还是有一些差距的,这也是我们意料之中的,毕竟第三方已经在这个领域做了十多年,客观的讲,我们的各种资源投入也没有办法与第三方比。后来公司又计划转向说话人识别,有了先前的基础,学习说话人识别并不是太难入门了,其实主要是特征参数的提取不同而已,语音识别提取的特征参数强调了说话的内容而抑制了不同说话人的风格,而语者识别(说话人识别)恰恰关注说话人之间的差异,对说话内容并不关心。另外,我们采用了高斯混合模型(GMM)进行模型匹配,对于训练集外的拒识采用了支持向量机(SVM)技术作二元判断。

 

四 夭折
 公司的变化决定比计划来得快,由于受到资源的限制,最终整个计划还是搁浅了。

 

五 总结
 语音识别想说爱你并不容易,最好有一个有经验的人带带可以少走弯路,但这也是比较难找的,对于个人自己学习你需要坚实的数学基础(尤其概率和统计学方面)、不断钻研的决心和毅力,最重要的是要有激情和兴趣。
 
整个学习开发语音识别的一点经验是:
1、要有不同范围的优质的语料库。
 语音识别本质是模式识别,需要一定的学习提取出关键的特征参数,然后利用这些参数在识别时进行匹配。因此,提供学习(训练)的语料非常重要。例如,想要识别北方人说的话,就需要录制北方男人、女人、老人和小孩的语料按一定比例搭配来进行训练。如果识别的对象包括北方人和南方人,那么在你训练模型时就要包括北方人和南方人的语料。道理很简单,一个北方人第一次去听南方人说话,正常情况下肯定听不懂,但是经过几次沟通学习,他就慢慢适应了,听懂了。同样,要想让机器明白人说的话,也一定要事先多多适应和学习,因此识别对象差异越大,语料库内容搭配越复杂。

 

2、工程应用比一般的学习研究更复杂
 复杂的地方不是指一个个孤立的知识点,而是一个可以面对不同环境、不同对象的系统。在嵌入式系统资源受限的约束下如何开发尽可能满足客户的方案;在噪声环境下如何提高语音辨识率;在识别对象故意操作失败时系统如何处理,总之,书本上的知识并不能简单转化成实际项目的应用,知识不等于技巧,更不等于一个满足客户的应用。

 尽管语音识别的项目被暂停了,但是从中还是学习了不少东西;虽然还有很多难点限制语音识别的应用,但是还有很多学者和爱好者在不断的突破语音识别技术,另外,其实没有完美的技术,只有符合客户需求的应用方案。
 最后,我仍然认为语音识别技术是一项很有实际应用价值的技术,因为语音直接交流是人机交互中最为自然的方式之一。

你可能感兴趣的:(Speech,Signal,Processing)