对话语音合成大模型GPT-Talker: Generative Expressive CSS

文摘   2024-10-28 18:09   北京  
本次分享由内蒙古大学刘瑞研究员字节跳动青年科学家任意香港中文大学(深圳)李海洲教授合作发表于ACMMM2024的对话语音合成大模型工作GPT-Talker《Generative Expressive Conversational Speech Synthesis》。


1️⃣ 基于GPT 大模型架构和VITS 合成器提出了可以理解多模态对话上下文的对话语音合成大模型 GPT-Talker。另外,我们探索了三阶段的训练策略,主客观实验证明了方法和模型的有效性。

2️⃣ 该工作构建了一个包含 236个小时的自然对话语音数据集NCSSD,包含录制和爬取两个子集,并且包含中英双语。

📍GPT-Talker github: 

https://github.com/walker-hyf/GPT-Talker

(或者 https://github.com/AI-S2-Lab/GPT-Talker)


📍NCSSD github: (包含数据处理Pipeline)

https://github.com/walker-hyf/NCSSD

(或者 https://github.com/AI-S2-Lab/NCSSD)


📍NCSSD Hugging Face: 

https://huggingface.co/datasets/walkerhyf/NCSSD


📍论文地址:

https://arxiv.org/pdf/2407.21491


📍Demo地址:

https://walker-hyf.github.io/GPT-Talker/


0

Abstract

对话语音合成(CSS)是指在用户代理(user-agent)对话环境中以适当的说话风格表达目标话语。现有的CSS方法采用有效的多模态上下文建模技术来实现同理心理解和表达。然而,他们往往需要设计复杂的网络架构,并精心优化其中的模块。此外,由于小规模数据集具有脚本化录制风格的限制,它们往往无法模拟真实的自然对话风格。为了解决上述问题,我们提出了一种新颖的生成式情感CSS系统,称为GPT-Talker。我们将多轮对话历史的多模态信息转化为离散Token序列,并无缝地将它们整合在一起,形成全面的用户代理对话上下文。利用GPT的力量,我们预测包含语义和风格知识的响应Token序列,供代理使用。然后,通过对话增强的VITS合成情感对话语音,向用户提供反馈。此外,我们提出了一种名为NCSSD的大规模自然CSS数据集,其中包括自然录制的即兴对话和从电视节目中提取的对白。它涵盖了中文和英语两种语言,总时长为236小时。我们对NCSSD的可靠性和GPT-Talker的有效性进行了全面的实验。主观和客观评价表明,我们的模型在自然性和表现力方面明显优于其他最先进的CSS系统。代码、数据集和预训练模型可在https://github.com/walker-hyf/GPT-Talker上找到。

1

Introduction

对话语音合成(CSS)(或对话式文本转语音(TTS),CTTS)旨在在用户代理对话场景中生成具有适当风格的语音。在这样的场景中,用户通常发起对话,然后代理和用户轮流发言。在交互过程中,代理应该理解用户的需求,并提供帮助和情感支持。目前,随着智能设备的日益普及,在各种应用场景中对人类与机器交互的需求不断增长,例如智能手机助手[47]、智能家居控制[21]、智能车辆系统[15]以及虚拟现实/增强现实交互[13]。


先前的工作从上下文建模的角度出发,为增强合成对话语音的自然性和表现力进行了许多尝试。郭等人[17]提出了一种基于GRU的上下文编码器,用于从对话上下文中为代理提取全局韵律信息。FCTalker [19]进一步结合了单词和句子级别的上下文知识,代表了细粒度和粗粒度的上下文,以增强代理的上下文理解能力。然而,这些工作只考虑了文本信息,忽略了对话中的语音和多模态依赖关系。为此,研究人员为多模态上下文建模的研究做出了贡献[10, 35, 39, 40]。然而,他们越来越倾向于设计复杂的网络架构,并精心优化其中的模块。例如,多尺度多模态 CTTS(M2-CTTS)系统[53]包含一个文本上下文模块和一个声学上下文模块,同时进行粗粒度和细粒度的建模。李等人[28, 29]和刘等人[34]提出了基于图神经网络的上下文学习方案。


随着大型语言模型(LLM)的进步,一些研究旨在构建适用于语音领域的语言模型[23]。我们注意到,生成式预训练Transformer(GPT)具有简洁而强大的上下文建模能力[14],并且在诸如对话生成[58]和理解[32, 33, 56]等任务中,在捕捉细粒度和粗粒度的依赖关系方面表现出色。尽管取得了成功,但上述所有工作都不适用于CSS,因为CSS使用多模态上下文作为输入来生成响应语音。我们注意到,GPT的上下文建模与CSS的要求非常契合,但这一方面在很大程度上之前被忽视了。因此,如何利用GPT为人类与机器的交互构建简洁而强大的上下文理解解决方案,将是本研究的重点。


此外,现有的口语对话数据集在规模和质量方面都难以满足基于GPT的生成式情感 CSS 模型的训练要求。具体而言,M2-CTTS [53]、EmoSit-TTS [35] 和 ECSS [34] 等都使用了小规模的DailyTalk数据集[27],该数据集总共包含约 20 小时内的 2541 段对话语音。更重要的是,它只包含阅读风格的录音,缺乏足够的表现力。一些工作[10, 29]曾尝试使用诸如 IEMO-CAP [4]和ECC [28]等数据集。然而,这些数据集是为诸如对话情感识别[4, 41]和对话教育等目的而设计的,它们可能包含背景噪声问题,这会影响合成结果。因此,有必要构建一个大规模且高质量的情感CSS数据集,以支持基于GPT的CSS模型实现真正的自然对话风格。


在本文中,我们提出了一种新颖的生成式情感CSS系统,称为GPT-Talker。我们将对话历史的多模态信息转换为离散token序列,并将它们无缝集成,以形成一个全面的用户代理对话上下文。利用GPT的力量,我们为代理预测响应Token序列,其中包含语义和风格知识。之后,通过对话增强的VITS合成情感对话语音,向用户提供反馈。此外,我们提出了一个大规模的自然CSS数据集,称为NCSSD,其中包括自然录制的即兴风格对话语音以及从电视节目中提取的对白。它涵盖了中文和英语,总时长为236小时。NCSSD数据集及相关标注将免费公开。我们对NCSSD的可靠性和我们的GPT-Talker的有效性进行了全面的实验。主观和客观评估均表明,我们的模型在自然性和情感表达方面明显优于其他最先进的CSS系统。


总之,我们的主要贡献如下:


1) 据我们所知,我们是最早将GPT引入对话语音合成并为用户代理对话构建简洁而强大的上下文建模方案的团队之一。


2) 我们提出了一种新的大规模自然CSS数据集,称为NCSSD,它能够支持我们的GPT-Talker训练,甚至未来的GPT式CSS模型实现真正的自然对话语音风格。


3) 我们对模型的有效性和数据集的可靠性进行了全面的验证。我们的模型在自然性和表现力方面明显优于基准模型。


2

Related Works

2.1

 Conversational Language Model

文本和语音是人类交流的两种重要形式。基于文本的大型语言模型(LLMs)在包括对话聊天机器人[2]、代码生成[6]、创意写作[46]和机器翻译[36]等各个领域都取得了显著的成就。


受上述工作的启发,最近许多研究探索了对话语言建模来解决涉及语音和文本的各种任务[48, 49],如自动语音识别[12]、口语问答[1]和语音到文本翻译[51]等。例如,SpeechGPT[57]通过采用离散单元表示来转换连续语音信号,并将大型语言模型与单元解码器集成,展示了跨模态对话能力。这使得模型能够有效地处理多模态输入并生成相应的输出。dGSLM[38]提出了一种基于离散语音单元的双塔口语大型语言模型,用于对双通道口语对话进行建模,但生成的口语句子缺乏语义信息。USDM[24]提出了一种通用的语音-文本预训练方案,利用大型语言模型的推理能力基于对话语音生成连贯的口语响应。在人类对话中,虽然对话主要依赖词汇方面,但说话风格传递的信息远不止文本,甚至可以改变口语句子的语义[5]。为此,E-Chat [52] 提出了一种新颖的基于LLM的口语对话系统,该系统利用由语音编码器提取的情感嵌入,使其能够根据不同的情感情境做出响应。ParalinGPT [31] 将文本的对话情境、语音嵌入和副语言属性作为输入提示,供LLM改进当前和响应情感预测以及响应文本生成,以实现自然的口语对话。此外,Spoken-LLM [32]提议将LLM与一个自监督的语音情感表示模型相融合,以帮助LLM预测响应说话风格和文本,从而使后续的情感TTS模型能够生成自然和多样化的语音响应。


我们的工作与上述研究有显著的不同。具体来说,我们的工作专注于CSS任务,即把多轮多模态对话上下文整合为一个统一的序列,并预测当前话语的语音的语义和风格表示,然后我们利用这种表示来生成最终的富有表现力的对话语音。然而,上述工作,如dGSLM、SpeechGPT和USDM等,忽略了对多轮对话历史的有效建模机制,而E-chat、ParalinGPT和Spoken-LLM等只根据对话历史生成文本响应,而不是语音表示。尽管MQTTS[7]和Pheme[3]也声称是对话语音生成系统,但它们不建模对话上下文,而只关注合成语音的自然性。我们的GPT-Talker类似于近期的风格迁移TTS模型GPT-SoVITS[16],但一个明显的区别在于 GPT-SoVITS并未关注对话上下文信息。


2.2

Conversational Speech Datasets


表1展示了我们已知的相关现有数据集。第6-11行提供了一些专门为CSS任务设计的对话语音数据集的信息。可以观察到,这些数据集的规模相对较小。例如,ECC[28]从YouTube的英语对话频道收集了66组公共视频,总共24小时的内容。这些对话涉及两个、三个或多个参与者。DailyTalk[27]源自DailyDialog数据集[30],展示了2541个高质量的男女对话,总共20小时。用于情感对话研究的日语语料库STUDIES[44]和CALLS[43]涵盖了两种场景,即学校中师生之间的交流和电话客服,分别包含8.2小时和6.5小时的语音。RyanSpeech[54]是一个高质量的男性TTS语料库,用于对话领域,包含9.84小时的语音样本。请注意,CALLS和RyanSpeech声称是对话数据集,但它们只包含一个说话者,不适合CSS任务。郭等人[17]记录了一个内部数据集(我们在此称为“ASLP-CH”),其中包含了2位中国女性之间的对话,时长3小时,她们分别扮演了客户和客服代表的角色。


总之,这些数据集的规模不足以保证基于GPT模型训练高质量的CSS模型。这需要创建一个大规模、公开可用的CSS数据集。此外,与现有数据集相比,我们的数据集在语言多样性和数据来源多样性方面具有优势。具体来说,它包括中英文双语数据,以及录制数据和收集数据的子集。此外,我们还开发了一个自动化处理流程,大大提高了创建自然CSS数据集的效率。我们希望这一举措能够为社区的发展做出贡献。此外,在表1中,我们列出了一些最新的对话语音数据集,这些数据集是为诸如对话情感理解等任务而设计的。可以看出,与这些数据集相比,我们的数据集在语言多样性、数据来源多样性和数据集规模方面仍然具有显著的优势。


3

GPT-Talker: Methodlogy

3.1

Task Definition

在用户代理的口语对话中,用户和代理轮流发言。用户先发言,代理理解用户的语义并提供口语响应。随着时间的推移,多轮用户代理对话历史不断积累并形成。因此,在我们的 CSS 任务中,任务设定是根据对话情境生成代理响应的口语,其中响应的文本已给出。具体来说,假设N轮对话情境包括多模态对话历史H和当前话语C。CSS的目标是确保合成的语音适合整个对话情境。因此,如何对多轮多模态对话情境进行建模,并为代理提供适当的说话风格是该任务的重点。


为此,我们的GPT-Talker由两个关键组成部分构成,即基于GPT的上下文建模和富有表现力的对话语音合成。具体而言,基于GPT的上下文建模提出了一种新颖的对话GPT(ConGPT),通过将上下文的离散Token序列视为条件提示来对多轮多模态对话上下文进行建模,并为代理预测适当的语义和风格表达。富有表现力的对话语音合成提出了对话VITS(ConVITS),用代理的语义、风格和音色增强VITS,以便根据已知的响应内容生成富有表现力的对话语音。


3.2

Conversational GPT


如图1左侧所示,ConGPT 包括 1) 多轮多模态上下文离散化, 2) 基于ConGPT的语义和风格推理。前面模块将多模态上下文转换为统一的离散化Token,然后构建多轮对话上下文的离散表示。基于此表示,后面模块推断响应话语的语义和风格。 

3.2.1Multi-turn Multi-modal Context Tokenization 


与采用复杂的图神经网络[29, 34]或级联流水线[35]来理解上下文的传统CSS工作不同,我们的ConGPT试图直接在统一的离散序列中理解多模态上下文。


文本离散化:与VALL-E [48]类似,我们将对话历史H和当前话语 C的文本数据转换为离散的音素序列。音素编码器中,英文是基于Python模块g2p_en构建的,中文则基于opencpop-strict字典。

语音离散化:为了对自然语音对话进行建模,离散语音表示不仅需要包含话语的语义,还必须包含说话风格等表现力特征,这些特征对于CSS任务至关重要。先前的研究[24]表明,HuBERTToken包含丰富的语义信息以及强烈的副语言特征痕迹,可用于准确分类语音情感。因此,我们遵循[24]并采用HuBERT[18]来获取高维语音表示。受[26]的启发,我们不对HuBERT单元进行单元去重,因为它保持与语音的一致长度比例,无需准备单独的持续时间预测器。具体来说,我们将语音单元作为声学上下文单元,这些单元是从HuBERT的中间语音表示的k均值聚类中获得的。我们遵循GPT-SoVITS,然后使用向量量化(VQ)层将声学上下文单元转换为可学习的Token序列,从而更好地匹配表现力语音生成任务。

统一上下文序列化:在获取上下文的文本和语音模态的离散Token后,我们模拟实时对话流,并将文本和声学标记交替组合成多模态对话格式。我们采用文本和语音模态之间的交替方法,而不是先组合文本模态然后连接语音模态来序列化对话历史。我们相信,交替方法可以更好地捕捉对话历史中的跨模态上下文依赖关系。


3.2.2 ConGPT-based Semantic and Style Inference


为了根据序列化的多模态用户代理上下文推断响应话语的语义和风格信息,ConGPT 将整个序列化的对话上下文作为输入,然后预测语义和风格知识。这个过程如下所示:


使用自回归方法对离散Token序列中的子Token进行解码,直到解码到序列结束(EOS)标签。请注意,与[33]类似,我们不会为序列化上下文的Token序列分配明确的说话者身份。


3.3

 Conversational VITS

在统一上下文建模之后,我们提出了对话式VITS(ConVITS),为智能体的响应提供适当的富有表现力的语音。请注意,ConVITS采用智能体的三个信息源,包括智能体的话语内容渲染、由ConGPT推断出的用于语义和风格渲染的智能体的语义和风格表示,以及用于音色渲染的额外参考说话人。如图 1 右侧所示,它由四个关键组成部分组成,分别是上下文编码器、Token编码器、音色编码器和VITS合成器。采用交叉注意力机制来整合智能体的内容、语义和风格信息。

3.3.1 Content, Semantic and Style Rendering


首先,我们使用由6层Transformer编码器组成的文本编码器 来处理响应内容,提取其固有的文本信息以确保合成语音的可理解性。之后,使用由3层Transformer编码器组成的Token编码器将预测的上下文感知语义和风格标记转换为高维风格表示。


最后,为了实现富有表现力的CSS在内容、语义和风格渲染方面的统一,将文本信息和高维风格表示通过交叉注意力层集成到最终代理的样式嵌入中。我们在交叉注意力层中使用多头注意力模块,以适应不同的输入长度。


3.3.2 Timbre Rendering


为了实现灵活多样的表现风格,我们不依赖固定的说话者ID来进行说话者控制。相反,我们使用一个音色编码器和一个参考编码器来对任何参考语音进行音色迁移,从而实现基于内容、语义和风格渲染的灵活说话者音色渲染。如图1所示,音色编码器由6个卷积层、一个门控循环单元(GRU)层和一个线性层组成,它针对特定说话者获取参考语音并提取音色嵌入。


在训练期间,选择上一次对话中代理的语音作为参考语音。在推理阶段,我们可以为任何说话者分配一个参考,以实现零样本音色渲染性能。


3.3.3 Speech Generation


语音生成阶段通过利用上述对话表现力渲染将普通的VITS [25]扩展到对话环境中。重要的是,ConVITS架构不包括随机时长预测器,因为由ConGPT预测的语义和风格标记已经包含了时长信息,没有必要单独预测。最终的Agent风格嵌入通过投影层进行处理,以推导出均值和方差。Agent的音色嵌入由后置编码器进行编码,以生成潜在正态后验分布变量,然后由基于流的解码器对其进行解码,以生成标准化流。HiFi-GAN生成器随后将潜在变量上采样为语音波形。


3.4

Training Strategy

我们提出了一种三阶段训练策略,以确保我们的GPT-Talker的性能:


1)在第一阶段,我们专注于ConGPT和ConVITS在单句语音场景中的建模能力。我们使用包括 LibriTTS [55]、LJSpeech [20]、AISHELL-3 [45]等在内的单句语音数据集对ConGPT和ConVITS进行训练,总时长约为2.5千小时。通过这种方式,ConGPT可以根据文本Token序列预测语音Token。ConVITS在输入提供的文本后能够稳定地生成语音。


2)在第二阶段,我们使用 NCSSD的收集子集继续训练ConGPT。这使其能够利用提供的对话上下文和多模态信息准确预测当前句子的语义和风格知识。


3)在第三阶段,我们使用NCSSD的录制子集对ConGPT和ConVITS进行微调,以进一步增强合成语音的自然性和表现力。


关于模型总损失的计算。GPT-Talker 的损失由两部分组成。LConGPT计算预测声学单元与真实单元之间的交叉熵损失。LConVITS包括梅尔重建损失、来自于VAE的KL散度损失、特征匹配损失、对抗训练损失,以及来自向量量化的损失。


4

NCSSD Construction

如前所述,我们还提出了一种大规模的自然对话语料库NCSSD,以支持基于GPT的CSS训练。如表1所示,该数据集包括两个子集,即收集部分和录制部分,总时长超过236小时。我们的数据集遵循CC-BY-SA 4.0许可协议。与传统的数据构建方法不同,传统方法需要人工参与[8, 41, 59],而我们为收集子集提出了一种自动数据构建管道,为录制子集提出了一种ChatGPT辅助的工作Pipeline。我们下面将报告数据收集过程和数据统计结果。


4.1

Automatic Data Construction for CollectionSubset

用于收集子集的自动数据构建流程包括 1)视频选择,2)对话场景提取,3)对话片段提取,4)对话脚本识别。


视频选择: 为了构建一个大规模、多样化和自然的对话数据集,我们从不同的电视剧中收集视频,以模拟现实世界环境中的自然对话行为[41, 59]。我们分别收集了79部和34部电视剧的英文和中文对话。所有电视剧的详细列表见附录。与其他需要根据某些规则手动选择电视剧的数据创建方法不同[59],我们使用对话场景提取、对话片段提取和对话脚本识别模块自动筛选出符合条件的对话和相应的时间戳。

对话场景提取: 一个完整的电视节目由多个对话场景(可能包括两个或多个说话者)组成,这些场景相互关联但彼此独立。为了提取这些对话场景,我们采用了语音活动检测(VAD)技术,该技术利用整个电视节目的语音信息中的静音段来识别对话场景。随后,对提取的对话场景语音进行进一步处理,以获得清晰的对话语音。

具体来说,我们首先使用预训练的VAD模型silero-vad来识别视频中非静音语音片段的时间戳,因为silero-vad是在包含超过100种语言的巨大语料库上训练的,并且在具有各种背景噪声和质量水平的语音上表现良好。我们将静音片段阈值设定为4秒以获取VAD结果,因为4秒的静音通常表明新对话的开始,这通过大量的初步数据测试得到了证明。然后我们将视频的完整语音文件分割成各种不连续的语音片段,这些片段代表不同的对话场景。为了确保每个对话场景包含适当长度的多轮对话,我们进一步丢弃“静音片段与非静音片段的比例超过30%”或“总持续时间少于15秒”的语音片段。

随后,我们使Demucs 进行背景音乐分离,以去除背景音乐和其他干扰信息。为了进一步提高语音部分的品质,我们全面评估了语音和背景噪声的信噪比(SNR),只保留信噪比高于4的语音片段,并采用语音增强模型sepformer为所有对话场景获取清晰的语音。

对话片段提取: 对话片段提取旨在从先前获得的对话场景语音中提取仅包含两人互动的对话语音。为了实现这一目标,我们利用基于字节跳动的说话人识别接口来分析所有对话场景中的语音信息。该接口为我们提供了说话人的数字标签和相应的时间戳信息。随后,我们根据说话人标签和时间戳提取两人对话的片段。我们的提取标准要求对话片段包含超过四条话语,且每个说话人至少贡献两条。

对话脚本识别: 通过上述步骤,我们获得了两人对话的对话级语音和视觉信息。为了获取对话脚本,我们使用阿里巴巴自动语音识别引擎来识别语音。最后,将所有对话的语音、脚本和视觉信息更紧密地结合起来,作为NCSSD的集合子集。


4.2

ChatGPT-assisted Data Construction forRecording Subset

与收集子集不同,录制子集的构建涉及设计对话脚本并邀请志愿者录制他们的声音和上半身图像信号。脚本作为对话内容的提示,而不是严格要求的,志愿者在录制过程中可以自发地扩充对话。然后,将生成的对话语音、上半身图像和脚本录制下来,以获得最终的录制数据。

4.2.1 Dialogue Script Draft Generation


准备录制语音数据的第一步是创建对话脚本。手动准备脚本可能既耗时又费力,而且在对话主题方面可能缺乏多样性。因此,我们利用ChatGPT强大的文本生成能力,通过使用基于提示的方法来生成符合我们期望的多样化对话脚本。


具体来说,我们使用ChatGPT的GPT-3.5 Turbo版本来生成两个人之间的对话脚本。如附录中图3所示,我们设计了一个两步提示模板,以提示ChatGPT输出大规模的对话脚本,以反映现实世界中自发的对话行为。在第一步中,我们的目标是提示ChatGPT生成人类对话的各种话题词,以确保交流内容的丰富性。在第二步中,我们选择一个特定的对话主题,并设置起始说话者的情绪状态。我们提示ChatGPT生成4到15个回合的多回合对话。此外,我们还要求GPT在生成的脚本中添加情感和意图标签,以增强其可解释性,并为后续的语音录制提供更多的参考信息。详细的提示模板见附录。

4.2.2 Spoken Dialogue Recording


基于之前获得的脚本,我们邀请志愿者录制对话。我们还捕捉了参与者在录制期间的上半身图像。重要的是,在录制过程中,鼓励志愿者根据脚本中提供的情感和意图信息自由添加对话内容,以创造自然随性的对话话语。具体来说,我们雇用了27名以英语为第二语言的年轻志愿者,让他们参与录制过程。他们的报酬是根据录制的对话数量计算的。录制地点包括教室、会议室、研讨会厅等,提供了多样化的环境。我们允许志愿者在提供的脚本、情感标签和意图标签的指导下进行自然对话。这种方法确保了最终录制的声音听起来自然和真实。

4.2.3 Dialogue Script Re-identification


由于在录制过程中存在演员的即兴话语,我们使用语音识别接口重新转录录制的语音,并将识别出的文本作为最终的对话脚本。与录制的语音和上半身图像一起,构成了我们最终的录制子集。


4.3

 Data Statistics


表2展示了NCSSD数据集的总体统计数据。它包含了来自113个电视节目的19,456段对话和193,450句话,确保了数据的规模和多样性。该数据集大约持续236小时,其中最长的中文对话为308.21秒,最长的英语对话为177.51秒。每段对话都超过4秒,满足了对话任务所需的最低持续时间。平均而言,每段对话至少包含8轮对话,有助于训练模型处理较长的对话序列。数据集包含超过776名说话者,涵盖了各种说话风格和习惯。关于NCSSD的更多统计数据,请参考附录。


5

Experiments

在实验部分,我们将首先在单句语音合成场景中评估NCSSD的质量。随后,我们将通过与各种CSS任务的先进基准进行比较来验证GPT-Talker。我们将在下一节中介绍基准和评估指标,并在下一节中报告结果。请注意,实验设置可在附录中查看。

5.1

Baseline Models

为了验证NCSSD的可靠性,我们在单句语音合成任务上对其进行了评估,并选择先进的端到端TTS模型 VITS [25] 作为基准。请注意,VITS也被许多CSS模型[9, 11]选为骨干网络,我们认为它作为基准是合适的。

为了评估GPT-Talker在上下文理解和建模方面的有效性,我们开发了三个先进的CSS系统,它们代表了各种上下文学习方法,分为以下三类:


(1)基于GRU的上下文学习:[17]中提出的对话上下文感知 TTS(我们在此称为“CCATTS”)模型采用基于GRU的网络来对对话上下文中的句子级依赖关系进行建模;


(2)多尺度上下文学习:FCTalker [19]是一个具有代表性的工作,它同时考虑对话上下文中的句子级和单词级上下文;


(3)基于异构图的上下文学习:ECSS [34]是一个先进的、富有表现力和情感的 CSS 模型,它采用异构图来对多模态上下文之间的复杂关系进行建模。

5.2

Metrics

我们使用客观和主观的指标进行综合评估。

主观指标。主观评价包括三个组成部分:(1)ABX偏好测试,听众必须决定在对话情境中,经过两种不同方法处理的语音A或B哪个听起来更接近真实语音,还是两者没有偏好。(2)对话层面的自然度平均意见评分(N-DMOS),要求参与者主要评估其在对话情境下的自然度。(3)对话层面的情感平均意见评分(E-DMOS),主要集中于评估通过语音传达的情感表达,并确定其与对话情境中正在进行的情感基调的契合度。

客观指标。(1)动态时间规整距离DTWD:我们遵循[42],采用基频分布的平均动态时间规整(DTW)距离[37]来评估真实语音和合成语音的表现力相关性能。(2)说话者相似度(SSIM),我们遵循[22],并利用使用WavLM进行微调的说话者验证模型,为真实语音和合成语音提取说话者嵌入。然后,我们计算两个嵌入之间的余弦相似度得分作为最终的说话者相似度指标。相似度得分范围为[-1, 1],值越高表示相似度越大。

6

Results and Discussions

我们报告了以下方面的结果,包括“NCSSD的可靠性验证”、“GPT-Talker的有效性验证”以及“三阶段训练的分析”。更多结果请参考附录。


6.1

Reliability Verification of NCSSD

我们使用我们的NCSSD在单句场景中训练VITS,合成中文和英文语音的ABX偏好测试结果如图2所示。


对于每种语言,我们将收集和录制的子集结合起来训练VITS模型。我们从中文和英文数据集中随机选择50个句子进行合成,并进行了ABX偏好测试,邀请30名志愿者标记出 VITS模型合成的语音和真实语音之间自然度更高的语音。图2的结果表明,VITS的性能非常接近真实语音。中文语音中“无偏好”的比例高达33.35%,而英文语音中约为34.35%。这表明我们的NCSSD能够支持先进的TTS模型合成高质量的语音。


毫无疑问,GT语音的表现更好。然而,由于我们的NCSSD旨在模仿现实世界中的人类对话,有效地纳入上下文建模方法是进一步提高TTS模型性能的有效途径。因此,在下一节中,我们将进一步验证所提出的GPT-Talker在上下文学习中的有效性。

6.2

Validity Verification of GPT-Talker

在本节中,我们将把GPT-Talker与三个先进的CSS基准进行比较。由于这些基准在其各自的研究中使用英语数据集DailyTalk进行了实验,我们将使用NCSSD数据集的英语部分和 DailyTalk数据集对我们的模型进行验证。与上一节类似,英语部分将通过合并收集子集和录制子集进行训练。


对于主观评价,由于预算限制,我们不邀请以英语为母语的人作为志愿者。相反,我们邀请了30名精通英语听、说、读、写的中国学生作为志愿者。我们从测试集中随机选择50句话,为每个待测试的系统合成语音。然后,我们要求志愿者使用N-DMOS对语音进行评分,并且基于这些引导也使用E-DMOS进行了评分。他们的酬劳是根据测试样本的数量计算得出的。此外,针对 50 个测试样本,我们计算了SSIM和DTWD。所有指标的结果都在表3中呈现。



从表中的DTWD结果来看,显然由GPT-Talker合成的语音优于基线,表明GPT-Talker更能够捕捉到与音高相关的表现力,类似于GT。此外,N-DMOS和E-DMOS结果显示,我们的GPT-Talker显著优于所有基线。例如,在DailyTalk数据集中,GPT-Talker的N-DMOS和E-DMOS得分分别为3.890和3.908,而基准得分低于3.6。在NCSSD数据集的结果中也观察到了类似的趋势。此外,与基线相比,GPT-Talker更接近GT。这些结果表明,GPT-Talker利用ConGPT有效地建模了上下文对当前句子语义和风格的影响,而ConVITS成功地将CSS中的语义和风格方面呈现出来,从而产生了高度自然和富有表现力的合成语音。最后,通过观察SSIM指标结果,可以看出GPT-Talker与所有基准相比实现了最高的说话者相似度,证明我们的ConVITS在语调渲染方面优于语义和风格渲染。凭借 ConGPT 的对话情境建模能力,ConVITS 实现了极具表现力的对话语音合成。

6.3

Analysis of Three-Stage Training

本节验证了第3.4节中介绍的三阶段策略,用于训练GPT-Talker。我们设计了以下四种训练策略进行验证:


1)单阶段(w/ CL&RC)表示我们直接使用NCSSD的收集和录制子集来训练GPT-Talker;


2)两阶段(w/ CL&RC)表示我们采用与第3.4节相同的方法进行预训练。之后,我们将两个子集合并在一起进行微调;


3)两阶段(w/ CL):这种方法与第二种方法类似,不同之处在于微调时只选择收集子集;


4)两阶段(w/ RC):这种方法与第二种方法类似,不同之处在于微调时只选择记录子集。我们使用与上一节相同的配置进行主观和客观实验,并将所有结果报告在表4中。



我们观察到,多阶段方法在所有指标上都优于单阶段方法,这表明使用预训练策略使模型能够学习基本的语音生成能力,而对对话数据进行微调有助于提高对话上下文理解和表达能力。此外,“两阶段()”和我们的三阶段方法优于以往的两阶段方法,这表明在整个对话数据集上进行微调使模型能够在大量数据的支持下学习对话表达能力。将“两阶段()”方法与我们的三阶段方法进行比较,尽管在中文和英文数据集中有一个指标略有滞后,但我们的三阶段方法在剩余的六个指标上显示出显著的优势。这证实我们的三阶段方法逐渐引导模型学习更丰富的对话表达信息,从而提高对话语音生成能力。


7

Conclusion

在这项工作中,我们提出了一种新颖的基于GPT的对话式语音合成(CSS)模型,称为 GPT-Talker,用于用户代理交互。它由ConGPT和ConVITS组成,用于在统一的用户代理离散对话上下文序列中对语义和风格表达进行建模,并为代理推断富有表现力的语音。我们还提出了迄今为止最大规模的对话式语音合成数据集,称为NCSSD,它在语言和数据源多样性方面表现出色。该数据集能够支持GPT-Talker甚至未来GPT风格的CSS模型的训练,为推进CSS 技术提供了宝贵的资源。我们对NCSSD的可靠性以及我们的GPT-Talker的有效性进行了全面的实验。我们鼓励研究界使用NCSSD进行口语对话建模。


永久福利 直投简历
简历投递:join@speechhome.com
扫码关注我们
助力AI语音开发者的社区

语音之家
助力AI语音开发者的社区
 最新文章