[总结]语音识别职业发展Aug2017

这篇文章起源于,知乎的一个邀请《即将入学的语音学研究生,未来希望从事语音合成以及语音识别方面的工作,需要学习哪些技能?  除了希望以下的回答能够给这个问题提供一些思路以外,同时也是对入职3个多月以来所干,所学,所想的一个总结,希望能从中明确一些未来的职业规划。

问题描述:

题主今年考上东部某211中文系应用语言学下的语音学方向研究生,了解到导师研究方向丰富,包括:语音韵律的分析和建模,语音声学特征与发音生理、听觉心理、脑神经机制、语言结构、交际情感、社会文化之间的关系,以及语音信息在人机智能通讯、语言教学实践、言语康复工程中的应用。心感迷茫,不知道未来是否能同自己规划的一样。如果不能,题主希望能够以研究生3年作为一个缓冲期,不断充实自己,学习技能,故而求问。

最近听从身边朋友的建议已经开始自学python。

就问题而言,我的回答会稍微有些偏题,不会针对文科生的身份进行特别多分析,因为我不是很清晰地了解文科生与理科生思维上的差别。并且其他人也已经在这方面进行了很多的讨论了,我也说不出更多了。 我所想提供的是,在语音识别的团队或者部门中,现阶段什么知识技能是重要的,甚至不可或缺的。

另外还需要声明的是我的身份标签,这样是为了便于理解这个回答是站在什么角度,什么高度上写出来的。我是一个刚刚入职语音识别领域3个多月的语音工程师(经验少),所在的公司是美国的一家规模很小的公司(识别英语),语音识别的技术团队也就是5人左右(规模小)。所以我的情况与比较大型的公司或团队有所不同。表现为两个方面。在系统的模型方面,大公司往往采用最新的模型(通过足够的人手来更新跟进系统,通过大量的训练数据和优良的计算设备来得到理想的识别率)。而小团队由于各个方面的欠缺,往往是对历史稳定模型的微调,以相对较缓的速度朝着最新的方向发展。即使如此,小团队依然还能存活就在于第二个方面,目标的不同。 大公司往往面向的群体大或者识别的内容宽泛,小团队往往面向特定的团体或者识别的领域比较局限。因此,两者或许在最终结果上能够有着不分伯仲的表现。物尽其用吧。综上,我的视角更多的来源于小团体,而非大公司。

现在开始正面回答问题(图片与文字相互解释):

index

 

上方的结构图,是依据我所见到过的语音识别工程来绘制的。黑色实线框为通常都会含有的模块,虚线框则表示该模块不一定会存在于所有语音识别系统中,红色文字标识的是可能涉及的知识、理论、工具、编程语言等。红字的部分有些混乱,也肯定有很多缺失,这是因为我对于整个系统还没有完全的掌握,以后等我了解更深入,再进行更改吧。

各个模块细节,在此就不一一做以阐述了,毕竟这不是要讨论的内容。我简要地用文字描述一下整个流程。

语音识别在初始通常分为两条线,一条是语音,一条是文本。

对于语音这条线来说,语音经过采集、传输最终存储到某终端。然后存储好的语音经过预处理、特征提取的变化之后,用来训练各种神奇的声学模型。前者大多涉及硬件与通信方面的知识,后者大多涉及的是机器学习方面的知识。不过在语音领域,后者又一般局限在几个模型之中(上图中列出了具体名字)。这个部分训练时的输入是生活中的实际语音,训练的是模型中的各个参数。 实际应用时输入的是实际语音,输出的是这个语音中每一帧有可能是什么音的概率。

对于文本来说,首先是收集与项目相关的文本。然后就是对文本进行一定的预处理,再训练某种语言模型(大多是N-gram)。因为我对语言模型的实践经验特别少,暂时还不能指出其中最需要的知识技能,但应该有一些和NLP(自然语言处理)是相关的。(值得一提的是,NLP中的N-gram,几乎是每一个语音人都知道的东西)。从实践上来讲,语言模型的作用就是限定语音识别能够输出的结果。基于项目,一般有两种需求。一种需要输出的内容是有限的,可数的。一种是输出内容无限的,不可数的,在一定领域内有意义的。 这个部分训练的时候输入就是文本,训练的是你所设计的模型的参数。 实际应用时输入的是一串文本,输出的是这串文本合理的概率。

理论上有了上述两个模型之后就可以进行语音识别了。但实际实现中出于效率的考虑,希望能够把两者结合在一起。因此人们就发现了WFST这个神奇的模型,他可以有效的把声学模型和语音模型结合在一起,以便于更加快捷,高效的得出识别结果。这所涉及的理论基本就是WFST本身,及其如何应用在语音模型中。实践时需要掌握的则是任何能够操控WFST的工具或代码。

再得到语音识别结果之后,由于实际项目的需求,很有可能还有额外的操作,对识别的内容进行进一步的分析。比较常见的需求是信息抽取(IE)。这里和语言模型其实是相呼应的。这一步骤的本质就是将无限可能的文本,改变为有限的,结构化的输出。所需要的知识我预计是逃不出NLP的圈子的。

最后语音识别或者NLP分析之后的结果会送到前端,就完全跟实际项目有关,而跟语音识别这一技术无关了。这时考验就是纯纯的代码开发方面的能力了。

最后的最后回到问题本身,从文科背景来考虑,我觉得NLP可能是更适合的一个在语音领域发展的方向,或者寻求方法将自己对语言的研究成果转化到语音识别中语言模型的构建上。至少从我所在的团队来看,是真的急需这样的人才的。另外,从工作的角度,如果你觉得你所学会的内容,能对我上述所提到的任意一个模块,有所帮助,都是可以的,不需要非得掌握每一个模块,有个概念就可以了。另外的另外,这里提到基本都是研究生级别或者本科生高年级需要掌握的技术。如果你发现哪个技能实在理解不了,可能需要再往回找相关的基础知识来补充,补充的方式可以有找国内、外的公开课,看国内外的教材。(如果你选择看语音方面的教材话,有些教材会在书的附录中涵盖基础知识的教学。)

最后的最后的最后回对我自己说,我目前为止的对各个模块都有一丝或者一些的接触。图片中列出来的技能肯定是我有所接触,才知道的。 目前这三个月功夫花在了有限可能的语言模型上(即利用Thrax搭建基于命令的Fst)以及一个较简单的基于某医疗app的IE系统。 接下来的一两周时间用来巩固当前的技能。再之后可能要转向decoder方向。我急切的想要了解到底WFST好在哪里,能否做更多的扩展,使语音识别的模块更多的联合在一起。

 

 

 

 

 

 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s