情感语音合成

情感语音合成让机器能够表达情感,使人机交互更加自然生动。

预计阅读时间:45分钟·难度:中级

情感语音概述

情感语音合成(Emotional TTS)旨在生成具有特定情感色彩的语音。

为什么需要情感语音

  • 自然交互:人类交流带有情感,机器也应如此
  • 情感共鸣:增强用户体验和情感连接
  • 角色塑造:游戏、动画中的角色需要情感表达
  • 辅助沟通:帮助表达障碍人士传达情感

技术发展

早期方法

通过调整语速、音调等参数模拟情感,效果有限。

情感嵌入方法

将情感编码为向量,作为条件输入TTS模型。

参考引导方法

从情感参考音频提取风格,迁移到目标语音。

大模型方法

使用大语言模型理解文本情感,生成对应情感的语音。

情感分类

情感语音合成需要明确的情感分类体系。

基本情感模型

Ekman六种基本情感
😊
快乐
Happy
😢
悲伤
Sad
😠
愤怒
Angry
😨
恐惧
Fear
😲
惊讶
Surprise
😒
厌恶
Disgust

情感维度模型

VA模型

情感可以用两个维度表示:效价(Valence,正向/负向)和唤醒度(Arousal,平静/激动)。 这种连续表示比离散类别更精细。

中文情感特点

  • • 中文的四声本身带有情感信息
  • • 语调变化与情感表达密切相关
  • • 中文情感词汇丰富(如"欣喜"、"愉悦"等细微差别)
  • • 需要考虑文化背景下的情感表达方式

合成方法

基于情感嵌入的方法

原理

将情感类别或情感向量作为条件输入TTS模型。

实现方式
  • • 情感类别编码为one-hot向量
  • • 学习情感嵌入向量
  • • 通过AdaIN等方式注入模型

基于参考音频的方法

原理

从情感参考音频提取风格信息,迁移到目标语音。

实现方式
  • • 参考编码器提取风格向量
  • • GST(Global Style Token)
  • • 情感风格迁移

基于文本理解的方法

原理

从文本内容推断情感,自动生成对应情感的语音。 使用LLM理解文本的情感含义。

情感模型

情感Tacotron

架构
  • • 在Tacotron基础上增加情感嵌入输入
  • • 情感嵌入与文本嵌入拼接或融合
  • • 训练时使用情感标注数据

GST-Tacotron

Global Style Token
  • • 学习一组风格token
  • • 参考音频通过注意力选择token组合
  • • 无需显式情感标注

Emotion VITS

基于VITS的情感模型
  • • 在VITS中引入情感嵌入
  • • 支持情感强度控制
  • • 高质量情感语音生成

大模型情感语音

ChatGPT Voice

使用大模型理解对话的情感上下文,生成自然情感语音。 能够根据对话内容动态调整情感表达。

情感控制

精细的情感控制是情感语音合成的关键能力。

控制维度

维度说明示例
情感类别基本情感类型快乐、悲伤
情感强度情感的强烈程度微喜、狂喜
情感混合多种情感组合悲喜交加
情感变化情感随时间变化从平静到愤怒

控制方式

显式控制

用户指定情感类别和强度。如:emotion=happy, intensity=0.8

文本推断

从文本内容自动推断情感。如"太好了!"自动推断为高兴。

参考迁移

提供情感参考音频,迁移情感风格。

数据集

情感语音数据集是训练情感TTS模型的基础。

英文数据集

数据集情感规模
EmoV-DB7种情感4说话人
IEMOCAP5种情感10说话人
RAVDESS8种情感24说话人
VESUS10种情感10说话人

中文数据集

数据集情感规模
EMO-VS5种情感专业配音
ST-CMDS4种情感10000句
AISHELL-3情感版多情感大规模

数据集挑战

  • • 情感标注主观性强,一致性难保证
  • • 表演的情感与真实情感有差距
  • • 数据量通常较小,难以训练大模型
  • • 中文情感数据集相对稀缺

评估方法

主观评估

MOS评分

听众对语音的情感自然度打分(1-5分)。

情感识别准确率

听众判断语音表达的情感,计算准确率。

客观评估

  • • 使用情感识别模型预测情感
  • • 对比预测结果与目标情感
  • • 分析韵律特征(音调、能量、时长)

应用场景

游戏配音

游戏角色需要丰富的情感表达,情感语音可以动态生成不同情感状态的对白。

有声书

有声书需要根据剧情情感变化调整语气,增强沉浸感。

虚拟主播

虚拟角色需要情感表达来增强互动性和真实感。

语音助手

语音助手可以根据对话情境调整情感,更自然地与用户交互。

----