加入收藏 | 设为首页 | 会员中心 | 我要投稿 东莞站长网 (https://www.0769zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 评论 > 正文

为什么你的语音助手说话不像人?关于TTS技术原理及挑战

发布时间:2019-08-08 01:28:17 所属栏目:评论 来源:郑杰文
导读:副标题#e# 每一位刚(wan)铁(nian)直(dan)男(shen),都梦想下班路上偶遇电影《Her》中的机器人女友萨曼萨。虽然只闻其声不见其人,但仅听声音就能感受到各种情感的诠释。 萨曼萨背后的真人配音来自斯嘉丽约翰逊。有人说,光听声音就已满足我对她全部的幻想。

有了这个时间信息后,后端系统就可以通过我们前面说的一个转换器(也叫声学模型)把这个语言学规格书转化为音频特征了。然后再用另一个叫“声码器”的组件把这些音频特征还原成声音。从时长模型到声学模型,再到声码器,这里面的每一步都可能犯错或者不能完美的生成我们想要的结果。

一个 TTS 系统里,典型的后端错误有以下几种类型:

1、时长模型错误

在一句话朗读的时候,根据上下文语境的不同,每个字朗读发音时间是不一样的。TTS系统必须根据上下文去决定到底哪些字应该读音拖长一点,哪些字应该读短一些,其中一个比较典型的例子就是语气词的朗读。

通常这些语气词由于携带了说话人的语气情感,它们的发音都会比普通的字要长一些,比如这句:“嗯。。。我想他是对的。”(点击听音频)

这里的“嗯”,在这个场景下,很明显需要被拖长,用于表示一种“思考之后的判断”。

但是并不是所有的“嗯”都要拖这么长,比如这一句:“嗯?你刚才说什么?”

这里的“嗯”代表是一种疑问的语气,发音就要比上面句子中的“嗯”要短得多。如果时长模型不能正确的决策出发音时长的话,就会给人一种不自然感觉。

2、声学模型错误

最主要的声学模型错误就是遇到在训练后端这个“发音人”时,没有见过的发音。声学模型的作用是从训练音库里,学习到各种“语言学规格书”所对应的语音声学特征。如果在合成的时候遇到了训练过程中没有见过的语言学表现,那么机器就不太容易输出正确的声学特征。

一个常见的例子是儿化音。原则上来说,每个汉语拼音都有对应的儿化音,但在实际说话中有些儿化音被使用到的频次极低,因此录制音库的时候通常并不会覆盖所有的儿化音,而是仅仅保留最常见的一些。这个时候就会出现一些儿化音发不出来,或者发不好的现象。

3、声码器错误

声码器的种类比较多,但是比较传统、比较常见的声码器通常都会用到基频信息。那什么是基频呢?基频就是你在说话的时候声带震动的快慢程度。这里教你一个简单的方法来感受自己说话的基频:把自己的除大拇指以外的其他四个手指按压到自己的喉咙部分,然后自己开始对自己随便说话。

这个时候你就会感受到你的喉咙在震动,这个震动的信息就是我们的基頻信息。发浊音时会伴随声带振动,声带不振动发出的音称为清音。辅音有清有浊,而元音一般均为浊音。所以合成语音中元音和浊辅音的位置都应该对应有基频,如果我们前面提到的声学模型输出的基频出现偏差,声码器合成的声音就会听起来很奇怪。

在训练后端这个“发音人”时,我们也要通过算法来计算出基频信息。不好的基频提取算法可能会造成基频丢失、倍频或者半频的现象。这些都会直接影响基频预测模型的效果。如果应该有基频的地方没有预测出基频,合成声音听起来就是沙哑的,对听感的影响十分明显。

一个好的声码器还要处理好基频和谐波的关系。如果高频谐波过于明显,在听感上会造成嗡嗡的声响,机械感明显。

总结

在这篇文章里,我们介绍了 TTS 的基础原理,以及分析了语音助手不能像真人一样说话的原因:TTS 在做各种决策中会犯错,导致朗读出错或者不自然。同时,为了让电脑可以合成声音,工程师会对文本转语音问题做简化,导致没有准确的刻画声音生成的过程。这种简化一方面来自于对语音语言生成过程的认知局限,同时也受限制于目前的计算工具。

尽管现在在这个领域内有很多新的方法,特别是使用深度学习(Deep Learning)方法来直接做文本到语音的转化,而且已经展示出来了非常自然的声音,但是让你的 AI 助手完全像人一样说话仍然是一项非常具有挑战性的工作。

关于作者:本文作者郑杰文,爱丁堡大学人工智能硕士,师从国际著名语音合成专家Simon King教授。 现任职Rokid ALab 语音合成算法工程师,负责语音合成引擎架构设计,后端声学模型开发等工作。

本文转自雷锋网,如需转载请至雷锋网官网申请授权。

(编辑:东莞站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读