语音识别技术未来发展

核心提示机器之心整理演讲者:俞栋5 月 27-28 日,机器之心在北京顺利主办了第一届全球机器智能峰会,来自美国、加拿大、欧洲,香港及国内的众多顶级专家分享了精彩的主题演讲。在这篇文章中,机器之心整理了腾讯 AI Lab 副主任、西雅图人工智能研究

机器心脏排序演讲人:于冬

5月27-28日,机器之心在北京成功举办了首届全球机器智能峰会,多位来自美国、加拿大、欧洲、香港和中国的顶尖专家分享了精彩的主题演讲。在这篇文章中,机器心梳理了腾讯AI实验室副主任、西雅图人工智能实验室负责人于冬,并在大会首日发表了主题为“语音识别前沿研究”的演讲,探讨和分享了语音识别领域的四个前沿问题。

于冬是著名的语音识别和深度学习专家。他于1998年加入微软。曾任微软研究院首席研究员、浙江大学兼职教授、中国科技大学客座教授。迄今为止,他已经出版了两部专著和160多篇论文。他是60多项专利的发明人,也是深度学习开源软件CNTK的发起人和主要作者之一。于冬获得2013年IEEE信号处理协会最佳论文奖。他目前是IEEE语音和语言处理委员会的成员。在此之前,他还担任IEEE/ACM音频,语音和语言处理汇刊,IEEE信号处理杂志和其他杂志的编委。

以下是于冬演讲的主要内容:

大家好,我是于冬,现在是西雅图腾讯AI实验室的负责人。我的主要研究方向是语音识别,所以今天我在这里介绍一些语音识别最近的研究前沿。

众所周知,语音识别领域有着悠久的研究历史。在过去的几十年里,研究人员从词汇量非常小的最简单的阅读语音识别问题开始,逐渐转向越来越复杂的问题。现在,即使是以前认为非常困难的自由对话形式的语音识别,也已经能够达到甚至超过人的识别水平。但是,我们不得不看到,虽然我们取得了这些进步,但是距离真正自由的人机交流还有一定的距离。这就是为什么我们在语音识别的研究上又前进了一步。现在我们研究的问题越来越多的是不限制环境,说话风格,口语。但是,这些非限定环境大大增加了语音识别的难度。尤其是近几年,我们发现很少有人愿意在真实的应用场景中佩戴麦克风,于是研究前沿从近场麦克风转向了远场麦克风。

近场麦克风到远场麦克风的变化有一个重要的区别,就是在远场麦克风中,当人声到达麦克风时,声音的能量衰减很厉害。因此,一些在近场麦克风中很难看到的困难,在远场麦克风中就变得非常重要。最著名的问题是鸡尾酒会,本文后面会详细介绍。如果不解决这些远场问题,用户仍然会发现语音识别在许多应用中不方便。

所以今天在这个背景下,我想介绍一下最近语音识别方面的一些前沿研究方向。主要有四种:

研究方向1:更有效的序列间直接转换模型。

研究方向2:鸡尾酒会。

研究方向3:连续预测和适应模型

研究方向4:前端和后端联合优化

研究方向1:更有效的序列间直接转换模型。

如果我们仔细思考一下语音识别的问题,我们都会看到,语音识别实际上是一个把语音信号序列转换成单词或单词序列的问题。这也是为什么很多研究人员一直认为,要解决这个问题,只需要找到一个非常有效的从一个序列转换到另一个序列的模型。

在以往的所有研究中,大部分工作都是研究者对问题做一些假设,然后根据这个假设从语音信号序列到单词信号产生几个分量,再逐步转换成单词序列。很多假设在某些特定情况下是合理的,但在很多现实情况下还是有问题的。那么,直接对这样一个序列模型进行变换的思路是,如果我们能够摆脱这些潜在的有问题的假设,然后通过数据驱动让模型自我学习,就有可能找到更好的方法,让这个序列的变换更加准确。这还有另一个好处,因为所有这些人为的成分都可以去掉,所以整个训练过程可以缩短。

目前,序列到序列的直接转换和直接映射的研究主要有两个方向:

方向1:四氯化碳模式

如上图所示,第一个方向是CTC模式。从上图最下面一行可以看出,在CTC模式下,系统会一直保持一个内部状态。当这种内部状态提供了足够的信息来做出某个决定时,就会产生一个峰值。说明当你到了某个位置,你就能准确推断出你听到了哪个或哪些单词。而当没有听到足够的信息时,只会产生空信号,表示没有足够的信息来判断某个单词或词是否被听到。这个模型非常适合于语音识别,因为它要求输出序列的长度比输入序列的长度短得多。

CTC模型还有一个优点,就是传统的深度神经网络和混合模型一般建模单元都很小,但是在CTC模型中,建模单元可以相对自由的选取,在某些场景下,建模单元越长越大,识别效果会越好。

最近,谷歌进行了一项研究,他们使用YouTube上几十万甚至上百万小时的数据来训练CTC模型,发现CTC模型的识别率可以超过传统模型,而不需要依赖额外的语言模型。CTC模型仍然比传统模型更难训练,因为它的训练稳定性不是很好。

方向2:具有注意机制的序列到序列转换模型

第二个潜在的方向是具有注意机制的序列到序列转换模型。该模型的基本思想是首先将输入序列和语音信号序列转换成中间序列表达式,然后根据中间序列表达式向基于递归神经网络的特殊生成模型提供足够的信息,一次生成一个单词、一个单词或一个音符。现在这种方法已经成为机器翻译中的主流方案,但在语音识别中还是一项非常不成熟的技术。它有以下问题:

问题1:训练和识别过程之间有很大的不匹配。在训练过程中所依赖的信息是准确的和已知的,但在识别过程中,这些信息是估计的和不准确的。所以,一旦出现错误,这个错误就有可能累积到下一个词或词的生成。所以这种方法比较适合只识别一个短语,但对长句效果较差。问题2:这个模型和语音识别本身也有不匹配的地方。这种不匹配是由它的注意机制造成的,因为注意可以在不同的位置移动。但是对于语音识别来说,下一个词的关注度肯定是在前一个词的关注度后面,有一个恒定的约束。这种约束在目前具有注意机制的序列对序列模型中是不存在的,所以目前这种模型在语音识别中的效果是很不稳定的。

如何解决这类问题,获得更好的效果?目前最好的解决方案是将CTC模型和注意力模型结合起来。最基本的思想是,CTC具有连续的信息,其单词是根据后续帧的语音信号信息生成的,因此会帮助注意力模型生成更好的嵌入空间表达。这两种方法的结合产生了一个比CTC模型训练的结果和注意力模型训练的结果更好的结果,所以变成了1+1大于2的结果。

后面我们会看到,即使把两种代价函数和模型结构结合起来,其效果也比传统的混合模型好不了多少。所以我们还需要解决一些问题。

问题1:在这样的框架下,有没有更好的模型结构或者训练准则,可以比现有的CTC或者注意力模型更好?问题2:当我们看到YouTube用CTC模型训练时,其效果比传统的使用语言模型的方法要好。很大的原因是它的训练集有很多训练语料,所以我们可以在里面训练非常好的语言模型,所以语言模型和声学模型是紧密结合的。那么,当我们没有那么多数据的时候,有没有办法建立一个结构,让这个语言模型和声学模型紧密结合呢?但是在训练数据不够的时候,如果有足够的文本数据,我们也可以用它来加强语言模型的训练,这样两个部分可以互补。问题3:有什么方法可以把各种语料库的数据结合起来?因为一个语料库可能没有足够的数据,有没有办法在模型的各个层次做迁移学习?这样,我们可以整合各种语料库的数据来训练更好的序列到序列转换模型。

研究方向2:鸡尾酒会。

众所周知,在一个非常嘈杂的环境或者很多人同时在说话的地方,人有一个非常好的特点,就是能够集中注意力在一个人的声音上,把周围的声音或者噪音屏蔽掉,能够非常好的理解那个需要关注的人的声音。现在,大多数语音识别系统都做不到这一点。如果不做特殊处理,你会发现只要附近有人说话,语音识别系统的性能就会急剧下降。

因为人的信噪比很大,所以这个问题在近场麦克风中并不明显;而在远场情况下,信噪比急剧下降,问题变得非常突出,成为难以解决的关键问题。

鸡尾酒会一个相对简单的问题就是声音和噪音的加入。因为你已经知道了要注意的语音部分,其他的就可以忽略了,所以这个问题就可以从之前的无监督学习的盲分类问题变成人工定制监督信息的监督学习问题。

但是监督学习在很多人说话的时候会遇到困难。这个难点在于,此时你无法轻易提供监督信息,因为麦克风接收信息时,接收的是两个或两个以上麦克风的混合语音,但它无法知道混合语音是A+B还是B+A,所以在训练过程中,你无法提前知道是用说话人A的语音作为输出1的监督还是输出2的监督。这个问题有一个专门的术语叫做标签排列问题。目前,它有两个较好的解决方案:

方案1:深度聚类

假设两个人说话,每个时频点会被一个说话人控制;在这种情况下,它可以将整个语谱图分成两个聚类,一个属于说话人A,另一个属于说话人B,然后在空之间训练一个嵌入表达式。如果两个时频点属于同一个说话人,它们在embedding 空中的距离比较近;如果属于不同的说话人,距离就更长了。因此,基于聚类的距离来定义训练标准。识别时,它先把语音信号映射到嵌入式空房间,然后在上面训练一个相对简单的聚类,比如使用k-means的方法。这个思路很有意思,但同时聚类算法的引入也带来了一些问题,使得训练和识别相对复杂,难以与其他方法融合。

选项2:排列不变训练

这个想法是因为我们真正做分离的时候,其实并不在乎是A+B还是B+A,而只关注两个信号的分离水平好不好。真正决策的时候,我们会实际比较音频信号,选择成本最低的作为最终分类。这也提醒我们在训练中也可以这样做。那么你在训练中做什么?

每次得到一个新的混声,我都不会预设它的监督标签是什么样子,而是动态决定我的监督对于当前模型应该是什么样子。由于取监督的最小差错率,我进一步优化,它的差错率进一步降低,这是它的基本思想。唯一需要改变的是训练的标注分布,其他部分不需要改变。所以识别比较简单,很容易和其他方法融合。

然后我放一些声音给大家听听:

三个扬声器:三个人的混合声音很难分开。这种方法的另一个优点是,它不需要事先知道有多少人在说话,所以当两个人在说话时,它可以做得很好。两个扬声器:当有两个扬声器时,不输出第三个数据,只保持静音,所以它有一个非常好的特性:不需要做特殊处理,输出结果就是分离结果。

但到目前为止,我们使用的一些信息仅来自单个麦克风。我们都知道,麦克风阵列可以提供很多信息,所以:

第一个重要的问题是如何有效地利用多麦克风信息来继续加强其能力;第二个问题是我们能否找到一个更好的分离模型,因为LSTM仍然被使用,但它不一定是最好的模型。第三个问题是,我们是否可以使用其他信息作为约束来进一步提高其性能。

研究方向3:连续预测和适应模型

大家关注的第三个研究热点,是要不要建立一个持续的预测和适应体系。我们之前做了一个模型,如上图所示;它的优点是能够快速适应,不断进行预测,进而提高下一帧的识别结果。但由于目前该机型循环较大,在性能上仍难以训练,类似于CTC机型。所以我们现在的问题是如何建立一个更好的模型来持续进行预测。这种模式需要什么特征?

第一,模型能很快适应;第二,可以找到一些一致的规律性,转化为长时记忆中的信息,这样下一次做识别的时候,就会变成一个稳定的状态,而其他的状态就会变成需要适应的状态。第三,我们有没有办法更好的把同类说话人的信息压缩到它的模型里,这样在遇到新说话人的时候可以快速适应。

研究方向4:前端和后端联合优化

第四个研究前沿是针对远场识别的需要,即如何更好的优化前端和后端。这包括几个问题,因为传统上是用信号处理技术来处理前端信号,一般只使用当前状态下的语音信号信息,比如训练集信息;而机器学习方法使用了训练器中的大量信息,很少使用当前帧的信息,也没有对其数据进行建模。所以能否更好的融合这两种方法,是目前很多研究机构都在努力的一个方向。

另外,我们有没有办法更好的优化前端的信号处理和后端的语音识别引擎。因为前端的信号处理可能会丢失信息,而丢失的信息在后端可能无法恢复,能否做一个自动化的系统来分配这些信息的信号处理,让前端少丢失一些信息,后端更好的利用。

今天的演讲到此结束。谢谢你。

 
友情链接
鄂ICP备19019357号-22