ag九游会官方J9登录入口_为什么你的语音助手说话不像人?关于TTS技术原理及挑战
栏目:公司新闻 发布时间:2024-10-13 22:29:01
本文摘要:每一位刚刚(wan)铁(nian)平(dan)男(shen),都梦想上班路上偶遇电影《Her》中的机器人女友萨曼萨。

每一位刚刚(wan)铁(nian)平(dan)男(shen),都梦想上班路上偶遇电影《Her》中的机器人女友萨曼萨。虽然“只闻其声不知其人”,但仅听得声音就能感受到各种情感的演绎。萨曼萨背后的真人配音来自斯嘉丽约翰逊。有人说道,“光听得声音就已符合我对她全部的幻想。

”可以说道,避免人与机器之间的隔阂,加深之间的距离,声音是至关重要的。而在现实生活中,AI 语音助手说出还相比之下约将近我们理想的声音。

为什么你的机器人女友说出不像斯嘉丽约翰逊?今天,Rokid A-Lab 语音合成算法工程师郑杰文将从语音合成技术谈到,给大家分析其中原因。以下,EnjoyTTS背后的技术原理——前端和后端系统让语音助手说出的技术叫 TTS(text-to-speech),也就是语音合成。打造出大自然、现实、清脆的 TTS,是 AI 领域的科学家和工程师仍然希望的方向。但行进过程中总会遇到各种“拦路虎”,它们到底是什么?我们再行从 TTS 的基础原理谈起。

TTS 技术本质上解决问题的是“从文本转化成为语音的问题”,通过这种方式让机器开口说出。图 1语音合成,一个从文本转化成为语音的问题但这个过程并不更容易,为了减少机器解读的可玩性,科学家们将这个转化成过程拆卸分为了两个部分——前端系统和后端系统。图 2前端和后端一起构成的TTS前端负责管理把输出的文本转化成为一个中间结果,然后把这个中间结果赠送给后末端,由后末端分解声音。

接下来,我们再行来理解一下前端和后端系统是如何分工协作的?分解“语言学规格书”的前端系统小时候我们在认字之前必须再行自学拼音,有了拼音,我们就可以用它去拼写我们不了解的字。对于 TTS 来说,前端系统从文本转化成出有的中间结果就样子是拼音。

不过,光有拼音还敢,因为我们要朗诵的不是一个字,而是一句一句的话。如果一个人说出的时候无法准确的用于抑扬顿挫的语调来掌控自己说出的节奏,就不会让人听得着不难受,甚至误会说出人想表达的意思。所以前端还必须再加这种抑扬顿挫的信息来告诉他后末端怎么准确的“说出”。

我们将这种抑扬顿挫的信息称作韵律(Prosody)。韵律是一个十分综合的信息,为了修改问题,韵律又被分解成了如中断,轻声等信息。中断就是告诉他后端在句子的朗诵中应当怎么停车,轻声就是在朗诵的时候应当着重强调那一部分。这些所有的信息综合到一起,我们可以叫”语言学规格书”。

图 3.前端通过分解“语言书规格书”来告诉他后末端我们想制备什么样的内容。前端就像一个语言学家,把给它的纯文本做到各种各样的分析,然后给后端班车一份规格书,告诉他后末端应当制备什么样的声音。

在实际的系统中,为了让机器能准确的说出,这份儿“规格书”相比之下比我们这里叙述的要简单。扮演着“发音人”的后端系统当后端系统获得“语言学规格书”后,目标是分解尽可能合乎这个规格书里叙述的声音。

当然,机器是无法凭空必要分解一个声音的。在这之前,我们还必须在录音棚里录上几个到几十个小时平均的音频数据(根据技术有所不同,用于的数据量不会有所不同),然后用这些数据来做到后端系统。

目前主流的后端系统有两种方法:一种是基于波形拼凑的方法,一种是基于参数分解的方法。波形拼凑的方法思路很非常简单:那就是把事前录音好的音频存储在电脑上,当我们要制备声音的时候,我们就可以根据前端班车的“规格书”,来从这些音频里去找寻那些最合适规格书的音频片段,然后把片段一个一个的拼凑一起,最后就构成了最后的制备语音。比如:我们想制备“你真为漂亮”这句话,我们就不会从数据库里去找寻“你、真为、好、看”这四个字的音频片段,然后把这四个片段拼凑一起。

图表 4用于拼凑法制备“你真为漂亮”当然,实际的拼凑并没这么非常简单,首先要自由选择拼凑单元的粒度,选好粒度还必须设计拼凑代价函数等。参数分解法和波形拼凑法的原理很不完全相同,用于参数分解法的系统必要用于数学的方法,再行从音频里总结出有音频最显著的特征,然后用于自学算法来自学一个如何把前端语言学规格书同构到这些音频特征的转换器。一但我们有了这个从语言学规格书到音频特征的转换器,在某种程度制备“你真为漂亮”这四个字的时候,我们再行用于这个转换器切换出有音频特征,然后用另一个组件,把这些音频特征还原我们可以听见的声音。

在专业领域里,这个转换器叫“声学模型”,把声音特征转化成为声音的组件叫“声码器”。为什么你的AI语音助手说出不像人?如果非常简单的给这个问题一个答案的话,主要有两个方面的原因:你的AI不会受罚。为了制备出有声音,AI必须做到一连串的要求,一但这些要求错误,就不会造成最后制备出来的声音有问题,有反感的机械感觉,听得着不大自然。

TTS的前端系统和后端系统都有受罚的有可能。用于AI制备声音时,工程师对这个问题过度修改,造成没精确的刻画声音分解的过程。这种修改一方面是来自于我们人类自己对语言,和人类语音分解的了解还不充足;另外一方面也来自于商用语音合成系统在运转的时候要对成本掌控展开考量。下面我们明确来聊聊导致AI语音助手说出不大自然的前端错误和后端错误问题。

前端错误前端系统,当作一个语言学家,是整个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 用于的是波形拼凑的方法。而在国内,大多数公司都是用于参数法。

所以我们关键来看一下参数法有可能的后端错误。后端系统在获得前端给的语言信息后,要做到的第一件事情是,要求每个汉字究竟要发音多长时间(甚至是每个声母,韵母要发音多长时间)。这个要求发音长短的组件在专业领域里叫“时长模型”。

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

一个 TTS 系统里,典型的后端错误有以下几种类型:1、时长模型错误在一句话朗诵的时候,根据上下文语境的有所不同,每个字朗诵发音时间是不一样的。TTS系统必需根据上下文去要求究竟哪些字应当读音拖长一点,哪些字应当读书较短一些,其中一个较为典型的例子就是语气词的朗诵。一般来说这些语气词由于装载了说出人的语气情感,它们的发音都会比普通的字要宽一些,比如这句:“嗯。我想要他是对的。

”(页面听得音频)这里的“嗯”,在这个场景下,很显著必须被拖长,用作回应一种“思维之后的辨别”。但是并不是所有的“嗯”都要扯这么宽,比如这一句:“嗯?你刚才说什么?”这里的“嗯”代表是一种疑惑的语气,发音就要比上面句子中的“嗯”要较短得多。

如果时长模型无法准确的决策出有发音时长的话,就不会给人一种不大自然感觉。2、声学模型错误最主要的声学模型错误就是遇上在训练后末端这个“发音人”时,没见过的发音。声学模型的起到就是指训练音库里,自学到各种“语言学规格书”所对应的语音声学特征。

如果在制备的时候遇上了训练过程中没见过的语言学展现出,那么机器就不过于更容易输入准确的声学特征。一个少见的例子是儿化音。

应以来说,每个汉语拼音都有对应的儿化音,但在实际说出中有些儿化音被用于到的成倍极低,因此录音音库的时候一般来说并会覆盖面积所有的儿化音,而是意味着保有最少见的一些。这个时候就不会经常出现一些儿化音发不出来,或者放很差的现象。

3、声码器错误声码器的种类较为多,但是较为传统、较为少见的声码器一般来说都会中用基频信息。那什么是基频呢?基频就是你在说出的时候声带震动的高低程度。这里教教你一个非常简单的方法来感觉自己说出的基频:把自己的除大拇指以外的其他四个手指松开到自己的喉咙部分,然后自己开始对自己随意说出。

这个时候你就不会感受到你的喉咙在震动,这个震动的信息就是我们的基頻信息。发浊音时会预示声带振动,声带不振动收到的音称作清音。

辅音有明有鼻音,而元音一般皆为浊音。所以制备语音中元音和浊辅音的方位都应当对应有基频,如果我们前面提及的声学模型输入的基频经常出现偏差,声码器制备的声音就不会听得一起很怪异。在训练后末端这个“发音人”时,我们也要通过算法来计算出来出有基频信息。

很差的基频萃取算法可能会导致基频遗失、倍频或者半频的现象。这些都会直接影响基频预测模型的效果。如果应当有基频的地方没预测出基频,制备声音听得一起就是沙哑的,对听感的影响十分显著。

一个好的声码器还要处置好基频人与自然波的关系。如果高频谐波过分显著,在听感上不会导致嗡嗡的声响,机械感觉显著。总结在这篇文章里,我们讲解了 TTS 的基础原理,以及分析了语音助手无法像真人一样说出的原因:TTS 在做到各种决策中不会受罚,造成朗诵错误或者不大自然。

同时,为了让电脑可以制备声音,工程师不会对文本并转语音问题做到修改,造成没精确的刻画声音分解的过程。这种修改一方面来自于对语音语言分解过程的理解局限,同时也受限制于目前的计算出来工具。

尽管现在在这个领域内有很多新的方法,尤其是用于深度自学(Deep Learning)方法来必要做到文本到语音的转化成,而且早已展出出来了十分大自然的声音,但是让你的 AI 助手几乎像人一样说出依然是一项十分具备挑战性的工作。(公众号:)按:本文作者郑杰文,爱丁堡大学人工智能硕士,师从国际知名语音合成专家Simon King教授。

现供职Rokid ALab 语音合成算法工程师,负责管理语音合成引擎架构设计,后末端声学模型研发等工作。特约稿件,予以许可禁令刊登。下文闻刊登须知。


本文关键词:J9九游会,j9·九游会游戏,ag九游会官方J9登录入口

本文来源:J9九游会-www.jiayirouzong.com