黄学东:微软TTS,第一款实时神经网络语音合成服务-阿里云开发者社区

开发者社区> 开发者小助手-bz8> 正文

黄学东:微软TTS,第一款实时神经网络语音合成服务

简介: 就此,我们采访了微软语音、自然语言与机器翻译的技术负责人黄学东,他向我们展示了一系列 TTS 生成的「真假难辨」的语音样例,并分享了微软在 TTS 一途上的经历与考量。
+关注继续查看

一个月之前,微软发布了基于深度神经网络的文本到语音(text-to-speech,TTS)系统,并且做为 Azure 认知服务中的一项,提供面向客户的预览版本。


就此,我们采访了微软语音、自然语言与机器翻译的技术负责人黄学东,他向我们展示了一系列 TTS 生成的「真假难辨」的语音样例,并分享了微软在 TTS 一途上的经历与考量。


下面的视频里包括了三段录音与三段合成音,你能分辨出机器与人声的区别吗?


1638251017(1).png点击查看原视频链接


机器之心:微软是从什么时候开始提供 TTS 服务的?TTS 与微软语音系统的关系是什么?


事实上,TTS 是微软语音 API(Microsoft Speech API, SAPI)进入大众视野的契机。


1995 年,我作为项目负责人推出 SAPI 1.0 的目标是让人机互动更加自然。而研发 TTS(文本转语音)技术的初衷是为了给残障人士提供更多「无障碍功能」(accessibility)。1996 年,文本转语音功能被纳入 Microsoft NT 4.0 中,那是 SAPI 第一次整合进 Windows,进入大众视野。


机器之心:在神经网络用于 TTS 之前,常用的方法有哪些?


语音合成经历了许多次技术与范式的转移。


第一代 TTS 技术采用的是由麻省理工学院的教授 Dennis Klatt 提出的共振峰合成法(Formant synthesis)。这样的技术生成的语音能够被人们所理解,但是听上去特别机械。已逝的理论物理学巨匠 Stephen Hawking 在失去发声能力之后,就在使用这一套技术对外交流。


这个模型非常非常小,需要的计算资源也非常少,甚至在当时的德州仪器公司(TI)开发的很多玩具中,都有简单的语音合成功能。


第二个阶段是拼接合成法(Concatenation synthesis),把语音的每个单元存下来,拼接到一起。串联法的交接部分会有很多问题,这时候就需要进行很多的处理。从最早的直接对接、平滑(smoothing)到后来使用基于统计的参数合成的隐马尔科夫方法(HMM)进行处理。


选择用 HMM 是因为它在语音识别领域获得了非常不错的结果,因此在语音大领域内都流行了起来。


第三个阶段就是利用深度神经网络了,这是一次飞跃式的进步。谷歌的 WaveNet、Tacotron,百度的 ClariNet,都是基于深度神经网络的 TTS [BD4] 系统,在学术上都取得了一定的突破,但是工程化方面仍然没有一个实时的系统。

 

机器之心:能否介绍一下微软的深度神经网络 TTS?


微软的深度神经网络 TTS 系统由两部分组成,第一部分是将文本转换成包含语音信息(phonetic)和韵律信息(prosodic)的声学参数(acoustic features)。第二部分是将两部分信息转为声波(waveform)。


我们的系统最大的突破在于,这是第一个实时的神经网络 TTS,并且大家直接可以在 Azure 云上使用。


之前我们的很多与人类相比较的突破不同的是,之前的大部分突破是从研究角度,我们的算法可以达到人类的水平。例如我们在 ImageNet 图像识别数据集、Switchboard 语音识别数据集、SQuAD 问答数据集上的工作都是这一类型。而此次我们除了合成的声音 MOS 分(Mean Opinion Score)非常高,达到了与真人的声音不可区分的水平之外,最值得骄傲的是,我们构建了一个云计算服务系统,可以让大家来实时地使用 TTS。


实时深度神经网络 TTS 能够实现,有几个关键因素:第一是我们的云计算平台,提供了人工智能算力的支持;第二是我们的工程方面的进步,让这样一个序列到序列的过程可以实现实时;最后,我们的系统具有比较强的泛化能力,在实际应用场景中出现错误的概率比一般模型小很多。

 

机器之心:TTS 的使用文档中提到,用户可以提交训练样本定制自己的声音模型,想要完成定制,用户需要提交什么规模的何种数据?


「定制」是写在微软的基因里的一个概念。


我们第一次推出语音识别认知服务时,就同时推出了量身定制的语音识别系统,自然语言理解系统 LUIS 也是一个量身定制的语言理解系统,除此之外机器翻译、图像识别等等,都有量身定制的功能。


用户提供几百句声音样本数据,就能获得一个「入门」级的声音定制;提供五千句左右,可以进行「标准」的定制,如果能够提供一万句甚至更多,我们就能提供接近人声水平的 TTS 语音定制。

 

机器之心:TTS 和语音识别算法之间有哪些联系呢?


我们借鉴了很多语音识别领域的做法。


例如,以前李开复在卡内基梅隆大学的博士论文中,一个最大的贡献就是把不同人的声音合在一起,共同训练出一套通用的语音识别系统,而不需要为特定人训练自己的语音识别系统。


我们的语音合成系统也可以把不同人的声音性能整合起来,变成一个通用的、自然的语音合成系统。在这个情况下,要量身定制某一个人的语音就会比较容易。

 

机器之心:TTS 相比于机器翻译和语音识别模型,对算力的需求如何?


相对要求还是要高,这也是为什么其他厂商现在还没有提供实时神经网络语音合成系统的原因。


另一方面,TTS 的质量和对算力的要求是非线性的,想要达到类似人类的水平,需要的算力非常多,但是稍微降低要求,算力需求就小很多。

 

机器之心:TTS 有哪些应用场景?


最大的应用场景是智能音箱。其次是无障碍功能,Windows 可以读出屏幕中的内容。第三是公共汽车、火车、机场上的报站功能、GPS 导航、语音读物等等。


我们把「产生声音」的能力放在云上之后,人们可以用它进行各种不同的工作。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
linux服务器将iptables卸掉了,导致服务器网络问题
如果是阿里云服务器,可以通过控制台登录服务器,参考一下步骤进行修复 通过ifconfig 配置IP信息ifconfig <网卡> < IP > netmask <掩码>内网和外网网卡都是配置上。然后添加路由:route add -net 0.0.0.0/0 gw <公网网关>route add -net 10.0.0.0/8 gw <内网网关>route add -net 100.64.0.0/10 gw <内网网关>这样网络就通了,然后使用 yum install initscripts ,并重启网络服务即可。
985 0
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
9485 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
10842 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13168 0
Linux基础命令---ntpdate网络时间服务器
ntpdate ntpdate指令通过轮询指定为服务器参数的网络时间协议(NTP)服务器来设置本地日期和时间,从而确定正确的时间。 此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、Fedora。
6064 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
11502 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
6886 0
1642
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载