谷歌再出黑科技!人工智能模拟的人声和真人几乎难以分辨
谷歌再出黑科技
用人工智能模拟出来的声音
几乎可以和真人以假乱真
在我们的印象中,机器的声音都是冰冷的电子音,虽然人类也一直致力于研究让机器“说人话”,但搞出来的成果似乎还是跟人类真实的声音差距很大,生硬、不自然一直是通病。
在这方面,谷歌倒是一直不遗余力的在研究,所谓只要功夫深,铁杵磨成针。前段时间,他们终于宣布,让机器说人话这事儿,有进展了!!!
谷歌最近发布了一个利用神经网络合成语音的模型,它可能会让电脑发出的声音变得更有“人味儿”。
根据dailymail报道,谷歌最近展示了一种新的语音系统,可以让语音助手的声音听起来更加自然,更加像真人的声音。
(图片来自dailymail)
这个名为Tacotron 2的机器人,是通过真实的人类对话案例和文本记录训练出来的,据说这样可以让它的交流显得更加自然。
日前,这套机器人系统演示了一下如何顺利的朗读不同文本,甚至连Peter Piper的绕口令都读了!!!
嗯......只是被一些比较困难的文字绊住了,不过也可以理解啦,毕竟人类自己读绕口令还嘴瓢呢。
不信你试试——
Peter Piper picked a peck of pickled peppers.
Did Peter Piper pick a peck of pickled peppers?
If Peter Piper picked a peck of pickled peppers,
where's the peck of pickled peppers Peter Piper picked?
(图片来自Tom's Hardware)
在一篇新的博客文章中,谷歌的研究人员解释说,最新的文字转语音系统(TTS)可以把从培训中学到的内容用自己的话说出来。
与普通的TTS系统相反,Tacotron 2不使用复杂的语言和声学特性作为输入,用语音示例和相应的文本记录进行训练,使系统从文本生成更显自然的人类声音。
(图片来自TechCrunch)
关于Tacotron 2,谷歌这次综合了以前研发的Tacotron和WaveNet的思路,并且增加了更多的改进。
这里简单说一下Tacotron和WaveNet——
Tacotron是今年3月Google 提出的一种新的端到端的语音合成系统。该系统可以接收字符输入并输出相应的原始频谱图,然后将其提供给 Griffin-Lim 重建算法直接生成语音。
WaveNet 则是由Deepmind在一年前提出的生成原始音频波形的深层神经网络模型,已正式商用于Google Assistant中。今年10月,Deepmind发表博客称,该模型比起一年前的原始模型效率提高1000倍,且能比目前的方案更好地模拟自然语音。
研发团队对Tacotron 2的表现也充满信心,很多听众都表示它的效果都可以拿来跟专业录音媲美了。
研究人员对此解释说,Tacotron 2的工作原理是使用序列-序列模型来映射序列字母到编码音频的功能,这其中还结合了发音、音量、速度和语调,所以它可以捕捉到人类发音的各种微妙之处。
小编倒是觉得,讲话语调的变化真的很重要。
比如wo cao 这个词
wō cāo 表轻蔑
wǒ cáo 表疑问
wǒ vào 表愤怒
wò cào 表惊叹
同理可用于fuck一词。
最后,这些特征被转换成24 kHz的波形。
虽然Tacotron 2在听众的评分中表现还不错,但研发团队也表示——
它还并不是很完美。
“尽管我们的样本听起来不错,但还是有一些棘手的问题需要解决。例如,Tacotron 2系统在复杂词语(比如“decorum”和“merlot”)方面还是有些困难,在极端的情况下甚至会随机产生些奇奇怪怪的噪音。”研究人员说。
另外有点遗憾的是,Tacotron 2系统还不能实时生成音频。
以及,虽然可以比较流畅的生成自然人声,但他们还不能控制系统所产生的音频,比如引导它这段音频的感情是高兴还是悲伤。
毕竟用丧气的语调读一段婚礼致辞场面还是略显尴尬的。
谷歌的研究人员对这些问题还是很乐观的——“这些问题,每个都是有趣的研究问题啊”(可以说是很热爱学习和研究的一群人了)。
Tacotron 2建立在WaveNet的一些想法的基础上,WaveNet能够通过分析来自人声的声波来创造自然的合成语音,而不是专注于人类语言。
去年,DeepMind的研究人员声称,这个开创性的项目已经把计算机系统和人类语音之间的质量差距减半了。
最新的Tacotron 2系统旨在进一步进行文本到语音的转换,以获得更自然的计算机生成的语音。
根据报道,Tacotron 2 模型平均意见得分为 4.53(满分5),专业录音平均意见得分为 4.58。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 12-1 定制提示符
- MySQL INSERT的4种形态
- PowerBI DAX 性能优化 高级视图算法 超越经典 性能提升成千上万倍
- Java开发必备 Git 分支开发:规范指南及完全学会Git的24堂课笔记
- 聊聊dubbo-go的failbackCluster
- 视频综合管理平台EasyNVS通道列表如何获得RTMP地址和RTSP地址?
- 【每周一库】 rust-ftp - an FTP client written in Rust
- Mall 电商实战项目发布重大更新,全面支持SpringBoot 2.3.0 !
- Python与Tableau相结合,万字长文搞定传统线下连锁店数据分析
- 社群答疑精选03:拆分数据到新工作表
- 【Rust日报】2020-08-08:用rust制作的一个Taskwarrior终端用户界面
- 【Rust日报】2020-08-09:1Paasword Linux版本
- 聊聊dubbo-go的failfastCluster
- Caused by: java.lang.ClassNotFoundException: Cannot find class: userMap
- 链路聚合实验