expr

hmm读法_hmmm…怎么读

本文由竹间智能科技出品,作者为机器学习科学家马永宁。

Emotibot致力于打造中国首款人工智能伴侣,以情感计算研究为核心,深度学习等尖端技术为基础,满足广大用户的日常生活和工作所需。

如需转载,请联系Emotibot情感机器人微信,并注明出处。

前言

1984年1月24日,Steve Jobs向世界展示了第一代Macintosh。在展会上,当计算机对着观众说出“Hello, I am Macintosh. It sure is great to get out of that bag!”的时候,整个会场的观众都沸腾了。他们为了这台会说话的电脑全体起立鼓掌欢呼,久久不息。

▲第一台Mac

32年后,自动语音合成早已在我们的日常生活中普及:银行的自动客服,是GPS的语音导航,又或者是手机的智能助手,都能够用语音进行交流。

可是这些语音给人的感觉总还是有些机械,无法像当年乔布斯所希望的那样,给冰冷的机器注入人性——直到DeepMind发布了新一代的声音合成引擎WaveNet,人类朝着这个理想似乎前进了一大步。

语音合成

当然,要让计算机能够像人类一样说话,并不是一件容易的事情。

语言是人类独有的一种极其复杂、极端高效的传递信息的系统,我们的声音除了要负责传达主要的文字信息之外,还要负责通过语调、音量和语速的微妙变化传递出丰富的言外之意,所以人类的发声系统非常的复杂,有非常多的肌肉和组织参与了发声这一过程——要用一块简单的扬声器模拟出这样一个复杂的系统,还真的给工程师们出了个难题。

为了生成的语音尽量真实自然,有两种不同的办法。

▲人类的发声器官

▲手机扬声器

这两种方法分别是

Concatenation TTS

以及

Parametric TTS。

第一种方式

,也是最简单的方法就是利用人类自己的声音。如果我们能建立一个语音片段数据库,当需要说到一个字的时候就可以直接去数据库里把这个发音给找出来就行了。这种做法被称为

Concatenation TTS

——用连接声音片段的方法来让电脑发声。

这个办法的缺点在于人们说话不可能说到相同的字的时候总是同样的语调、同样的语速、毫无顿挫、毫无感情——更别说同样的字在不同的句子里的不同位置,音调和发音都可能完全不一样。

举个例子,“吗”这个字,在表达疑问和在表示专有名词的时候读法会很不一样的。另外,当两个字在一起发音的时候会产生连音的现象,最典型的就要数“儿化音”了——儿化音中的“儿”字,无论接在哪一个字的后面,都不会单独发音,而是会和前一个字连起来读,对于一个字一个字发音的电脑,无论如何也掌握不了的。

一个改进的办法就是尽量去想办法搜集尽量大的数据库,把每个字可能的各种读法都穷尽,把需要连读的两个字的读法都穷尽,把每个句子可能的读法都穷尽,把每个句子在不同的感情下的读法都穷尽。

而这个方法最大的问题是:如果我们需要换一种声音,那就得再请另外一个人来再录一整套语音数据库了,既不灵活也不经济。

第二种方式

,则是采用一个参数模型来存储发音的特征,这样针对不同的输入,我们的模型就能够产生不同的输出效果了。在实际的工程当中,我们采用隐藏马尔科夫模型和混合高斯模型来做到这一点。这一类的声音合成技术,被称为

Parametric TTS

这种方法其实跟传统的语音识别很相似,只是输入和输出颠倒了:语音识别是给定一组发音,生成一串最可能产生这组发音的句子;语音合成呢,就是给定一组句子,生成最可能对应于这个句子的发音。用数学公式来表示如下:

其中O表示输出的语音,λ则是表示一个高斯混合隐藏马尔科夫模型。这个O可能是两种形式:波形的向量,或者是一个声学模型。讲到声学模型,就有必要插播一条小知识了。

数字音频的小知识

声音在计算机里有两种表示:一种是大家很熟悉的波形表示,就是直接表示出在观测点上所测量到的振幅和时间的关系。当然为了能够将连续的波形记录为数字形式,我们需要对这个波形进行采样和数字化。

在上面的图中,分别展示了一秒钟的人声音频片段,以及截取其中一毫秒的数据的放大图。

我们最熟悉的CD音频,每秒钟采样44100次,而每个样本都用16位的二进制来表示。

这样每一个样本可以表示最多65,536种不同的振幅。如果假定每一个时间点采用8位的二进制数字来表示,那么总共可能会有256种可能的值,我们就用一个256位的one-hot向量来表示它,最后在计算机中保存的声音片段,就可能是这样的。

另一种表示要抽象一些,我们称之为频域表示。

如果对输入的波形做一次傅立叶变换,会发现,一个复杂的sine波形,实际上在转换后的“频谱”上,可以被很简单的表示出来。

转换后的音频,是一种频率的表示——我们只关心这个波形到底是以什么样的频率在震动,而恰好,我们人类对于声音的认知,也是基于频率而不是振幅的——实际上这样的表示,更加符合人类对于声音的认知,也更容易对其进行数字处理。

在实际的基于HMM的参数模型当中,我们一般都会使用一种基于频率表示的高效语音特征,叫做MFCC。

WaveNet和深度生成模型

DeepMind的WaveNet,也是一种参数模型,用数学公式表示,是这样的:

其中的h就代表输入的参数,包括你想要他说的文字,以及你想要他模仿谁的口音这些信息,而最大化p(x|h)就代表,对于这样的输入,要选择一个最有可能的波形输出向量。

这个波形在每一个时间点的输出x(t),都取决于此前模型自己的输出,以及输入参数h,这样看起来跟之前所提到的隐藏马尔科夫模型,似乎是一样的。

但WaveNet的模型中,并没有采用HMM的隐藏状态、以及高斯混合模型来对声学输出进行建模。它也并没有使用频域的特征来对声音进行建模,而是直接对原始波形进行学习。

它所关心的,完完全全的只有之前的输出状态,以及初始输入h——这样的生成模型,有别于一般的参数模型,我们称为自回归模型。

这样做的好处是显而易见的。在隐藏马尔科夫模型中,我们一般还是会基于字或者词汇来进行建模,那么我们在字与字之间的一些微妙发音就无法被捕捉到;而MFCC虽然是一种高效而且准确的语音模型,毕竟还是不如原始波形所包含的信息量丰富。

当然,能够通过自动学习特征学习到丰富的信息量,是深度学习的一个巨大优势。

在深度学习中,一般使用循环神经网络来处理这种时序相关的情况,比方说我们常用LSTM来生成语言模型。

但LSTM在这里就显得有些不太合适了。原因在于,LSTM只能适用于相对比较短程的依赖关系,而咱们这次要生成的波形,如果是按照CD音质的话,只生成一秒钟的音频都会有44100个输出。

为了能够处理这样的超长距离的依赖关系,DeepMind采用了causalconvolutions。

因果卷积网络是一个可以在时序上展开的多层卷积神经网络,而每一步当前所输出的结果,只能够依赖于过去的输出,不能够依赖于未来的输出。

下图就显示了一个完全连接的因果卷积网络。

▲完全连接的因果卷积网络

在不违反时序依赖的情况下,为了提升性能,可以略过一些连接,这种行为被称为Dilation。

采用了扩张以后,所需要的连接数就会指数级的减少,从而大幅的提升性能。下图所示是扩张后的网络情况。

▲扩张后的网络情况

当然,Google还对这个模型进行了工程的优化,比如利用残差传递和略过连接的方式来增加可训练的深度。

有关深度残差网络的细节,请看参考资料。

这样的策略取得了非常良好的成效——根据Deep Mind的测试,WaveNet的生成效果远远超越了之前最好的系统并非常接近人类语音。

这么优秀的一个模型当然不仅可以用于生成语音,而且还可以生成音乐和图片,同样取得非常惊人的效果,可说是多才多艺。

言归正传,深度生成模型绝对是现在深度学习的一个热点,除了今天介绍的Autoregressive 自回归模型之外,还有VAE、GAN等等不同的类型,未来将继续由我为大家介绍。欢迎继续关注。

参考文献:

1. https://www.wired.com/2015/01/intel-gave-stephen-hawking-voice/

2. Cognition, brain,and consciousness : introduction to cognitive neuroscience, Bernard Baars,Nicole Gage, Elsevier 2010

3. WaveNet: AGenerative Model for Raw Audio, Aaron van den Oord, Sander Dieleman, Heiga Zen,Karen Simonyan, Oriol Vinyals, Alex Graves, Nal Kalchbrenner, Andrew Senior,Koray Kavukcuoglu, ICLR 2017, open review

4. Pixel RecurrentNeural Networks, Aaron van den Oord, Nal Kalchbrenner, Koray Kavukcuoglu, ICML 2016

5. Building Machines that Imagine and Reason:Principles and Applications of Deep Generative Models, Shakir Mohamed, DeepLearning Summer School 2016

6. https://openai.com/blog/generative-models/

7. Deep residual learning for imagerecognition, He,Kaiming, Zhang, Xiangyu, Ren, Shaoqing, and Sun, Jian, CoRR 2015.

Emotibot最新产品体验

在各大应用市场均可下载小影机器人APP

或微信搜索:小影机器人

即可体验小影机器人

Emotibot 最新技术API开放平台:

http://www.emotibot.com/web/APILogin.html

温馨提示:本文内容由互联网用户自发贡献,该文观点仅代表作者本人,如有侵权,请联系删除!