立即下载 知乎日报 每日提供高质量新闻资讯

Siri 们的腔调怎么听起来那么「假」?

图片:《她》

目前,人工智能语音在说中文时的语气感觉上还比较机械,怎样使人工智能语音的语气更自然一些?

Meng Meng

我觉得,与其说发音和语气说成是分开的两个过程,不如说是合成目标的两种层级。发音清晰是首先需要解决的问题,是解决让用户听不听得懂的问题;而语气自然不自然则是更高层级的问题,是要使得合成语音听起来就是一个真人在说话。

目前主流的 TTS 都是数据驱动的,抑扬顿挫的感觉必须从声优的录音数据中学习出来。要对语气进行建模,对录音数据量的要求一定更高,因为毕竟变量增加了,要做好,一定需要更多的学习数据。

合成本身是从简到繁的数据产生问题。仅仅看 TTS 的一头一尾:输入的是文本,最终输出的是语音,这是一种 1 对多的产生式问题。用人来举例子,一句文字,放在电影剧本中,让同一个演技派演员来表演,都能用多种表达方式展现给导演。何况现实中,每句话的上下文,说话对象,情绪,场景都会发生变化。因此文字摆出来,可以有各种各样的表达方式,每一种表达对人来说都是自然的,那让机器怎么学?学哪一种呢?

据我所知,现在通常的做法是,训练时需要先对数据进行更加细致的描述。训练数据的标注就是要把发音中的不同语气现象描述出来,然后再送给模型训练算法进行学习。 常见的语气相关的数据描述包含但不限于下面这些:韵律边界,重音,边界调,甚至情感。 还有更多的信息甚至是难以客观描述的,目前的算法只能暂且忽略。

上面讲的都是训练时的工作,在语音被合成的时候,还要从文字中将这些数据描述信息预测出来。告诉 AI 用哪种表达方式来读,然后才用模型生成对应的语音。预测的不准确通常是造成合成不自然现象的首要原因。

个人认为,从原理上来说,如果有足够大的训练数据,涵盖了足够全面的语气现象,再经过详细的数据描述,这样训练出来的模型是能支持合成各种变化的语气的。并且随着各种训练数据量的增加,能够有越来越好的自然度。

但是实际情况中,数据的积累是很慢的(毕竟数据标注的难度摆在那里)。通常的做法是让录音包含的语气逐步进行扩充。首先选择产品最通用的语气情感,然后逐步放开限定范围,增加相应的变化。 对于人工智能助手产品来讲,这是一种比较自然的进化过程。

最后,最新的 end-to-end 的 TTS 也许能将数据描述的学习过程直接从未标注数据中学到。将来的数据描述可能不需要像今天这么细致,但我觉得很大的可能性是:还是要有一些基础的描述信息,来辅助机器学习建模。 但是,一旦能够放松对数据描述的依赖,数据量的增加就变得及其容易,合成的性能就能有真正本质性的提升。

ps. 母语比外语更难提高语气自然度。因为人类被母语训练的太熟了,不仅仅能从母语中听到语义的内容,还能从语气,节奏中听出话外的意思。这就造成语音中一点点的语气不自然都能被母语用户听出来。

扫描二维码下载知乎日报

支持 iOS 和 Android
二维码下载知乎日报
阅读更多 Apple Watch Series 5 的实际体验如何? 下载 「知乎日报」 客户端查看更多