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

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

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

使用AI合成声音时,工程师对这个问题过度简化,导致没有准确的刻画声音生成的过程。这种简化一方面是来自于我们人类自己对语言,和人类语音生成的认识还不足够;另外一方面也来自于商用语音合成系统在运转的时候要对成本控制进行考量。

下面我们具体来聊聊造成AI语音助手说话不自然的前端错误和后端错误问题。

前端错误

前端系统,做为一个语言学家,是整个TTS系统里最复杂的部分。为了从纯文本生成出最后的“语言学规格书”,这个语言学家做的事情要比我们想像的多得多。

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

图表 5典型的前端处理流程

一个典型的前端处理流程是:

文本结构分析

我们给系统输入一个文本,系统要先判断这个文本是什么语言,只有知道是什么语言才知道接下来如何处理。然后把文本划分成一个一个的句子。这些句子再送给后面的模块处理。

文本正则

在中文场景下,文本正则的目的是把那些不是汉字的标点或者数字转化为汉字。

比如”这个操作666啊”,系统需要把“666”转化为“六六六”。

文本转音素

也就是把文本转化为拼音,由于中文中多音字的存在,所以我们不能直接通过像查新华字典一样的方法去找一个字的读音,必须通过其他辅助信息和一些算法来正确的决策到底要怎么读。这些辅助信息就包括了分词和每个词的词性。

韵律预测

用于决定读一句话时的节奏,也就是抑扬顿挫。但是一般的简化的系统都只是预测句子中的停顿信息。也就是一个字读完后是否需要停顿,停顿多久的决策。

从上面四个步骤可以看出,任何步骤都是有可能出错的,一但出错,生成的语言学规格书就会错,导致后端合成的声音也会错。一个TTS系统,典型的前端错误有以下几种类型:

1、文本正则错误

由于我们的书写形式和朗读形式是不一样的,所以在前端非常早期的阶段,需要把书写形式转化为我们实际朗读的形式。这个过程在专业领域里叫“文本正则”。比如我们前面说到的“666”

要转为“六六六”。我们非常容易感受到TTS系统中文本正则的错误。比如下面这句:

“我花了666块住进了一个房号是666的房间。”(点击听音频)

我们知道前面的“666”应该读成“六百六十六”,后面的“666”应该要读“六六六”。但是TTS系统却很容易搞错。

另外一个例子:“我觉得有2-4成的把握,这场比分是2-4。”

这两个“2-4”到底应该是读“二到四”,“两到四”,还是“二比四”呢?你应该一眼就能知道到底怎么样读才是正确的。但是,对于前端系统来说,这又是一个难题。

2、注音错误

中文是一门博大精深的语言,正确的朗读它可并没有好么容易。其中一个比较棘手的问题就是,面对多音字时,到底应该选择哪一个音来朗读呢?

比如这两句:“我的头发又长长了。”和“我的头发长长的。”这里的“长”到底应该是读二声的“chang”还是读四声的“zhang”呢?

当然,人可以很轻松的挑选出正确的答案。那么下面这一句呢:

人要是行,干一行行一行,行行都行,要是不行,干一行不行一行,行行不行。(点击听音频)

可能你也要略加思索,才能读对这中间的所有“行”。对于AI来说就更难了。

你可能时不时的就能听到AI助手在朗读多音字时读错了,这种错误很容易就被你的耳朵捕捉到,并让你立刻有一个印象:“这绝对不是真人在说话~”。

当然,多音字错误只是注音错误中的一种,还有其他的一些错误,如轻声,儿化音,音调变调等。总之,准确的让你的AI助手朗读所有的内容并不容易。

3、韵律错误

如前面所说,为了更准确的传递信息,人在说一句话的时候需要有节奏感。如果一个人在说话的时候中间不做任何的停顿,会让我们很难理解他说的意思,甚至我们会觉得这个人不礼貌。我们的科学家,工程师,都在想方设法的让TTS朗读得更具备节奏感一些,更礼貌一些。但是在很多时候TTS的表现却总是差强人意。

这是因为语言的变化太丰富了,根据不同的上下文,甚至不同的场合,我们的朗读的韵律节奏都不太一样。韵律中,最重要的就是讨论一句话的停顿节奏,因为停顿是一句话朗读正确的基础,如果停顿不对,错误很容易被人耳朵抓住。

比如这句:”为你切换单曲循环模式”。如果我们用“|”来表示停顿,那么一个正常的人朗读的停顿节奏一般是这样的:“为你切换|单曲循环模式”。

但是如果一但你的AI助手说“为你切|换单曲循环模式”这种奇怪的节奏感时,你内心可能是奔溃的。

后端错误

聊完前面这个“经常犯错的语言学家”,我们再来看看后端:这个按照“语言学家”给的 “规格书”来读稿子的“发音人”。

前面提到,后端主要有拼接法和参数法两种方式。现在苹果,亚马逊的AI助手Siri和Alexa 使用的是波形拼接的方法。而在国内,大多数公司都是使用参数法。所以我们关键来看一下参数法可能的后端错误。

后端系统在拿到前端给的语言信息后,要做的第一件事情是,决定每个汉字到底要发音多长时间(甚至是每个声母,韵母要发音多长时间)。这个决定发音长短的组件在专业领域里叫“时长模型”。

(编辑:东莞站长网)

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

热点阅读