当前位置: 首页 > news >正文

李宏毅NLP-11-语音合成

目录

在这里插入图片描述

源起

在这里插入图片描述
VODER(Voice Operation DEmonstratoR),它是人类历史上早期的电子语音合成器,由贝尔实验室在 1939 年研发:

  • 时间:1939 年(距今 85 年),属于电子管时代的语音合成先驱
  • 意义:首次用电子设备模拟人类语音,比现代 TTS(文本转语音)早数十年,是语音合成技术的里程碑。

VODER 通过手动控制多个滤波器和调制器,模拟人类语音的 “基频、共振峰、音高” 等特征,生成简单语音(如单词、短语)。

  • 操作方式:人物通过操作台面的旋钮、按键(类似电子乐器的控制器),调节语音的频率、振幅等参数,合成目标语音。

  • 技术突破:证明 “电子设备可合成人类语音”,为后续语音合成(如声码器、现代 TTS)奠定基础。

  • 科普价值:1939 年纽约世界博览会上展示,让公众首次接触 “机器说话”,引发对语音技术的关注。

在这里插入图片描述
1961 年贝尔实验室John Larry Kelly Jr利用 IBM 计算机实现的早期电子语音合成,使用IBM 计算机(1960 年代的大型主机,体积庞大、算力有限)合成语音。这是计算机辅助语音合成的早期实践,比现代 TTS 早数十年,是语音技术发展的重要节点。

在这里插入图片描述
拼接式语音合成(Concatenative Speech Synthesis)** 的核心原理,这是现代 TTS(文本转语音)的早期主流方法,以下是关键解读:

一、核心思想:从数据库中 “拼接语音片段”

  1. 语音数据库(speeches from a large database)
    预先录制大量语音片段(如单个音素、音节、单词),存储为波形(图中上方的小方框)。
  2. 拼接过程(Concatenation)
    根据输入文本(如 “你好世界”),从数据库中选择合适的片段(如 “你”“好”“世”“界”),按顺序拼接成完整语音(图中下方的长波形)。

二、关键成本:确保拼接自然

为避免拼接后语音 “生硬、不连贯”,需优化两个成本:

  1. 目标成本(Target cost)
    衡量 “选中的片段与目标文本的匹配度”(如音素、声调是否一致),确保语义正确。
  2. 拼接成本(Concatenation cost)
    衡量 “相邻片段的衔接自然度”(如频谱、音高是否平滑过渡),避免拼接处出现 “咔嗒声” 或 “突变”。

三、优缺点:拼接式合成的特性

(1)优点

  • 音质自然:直接使用真实人录音片段,保留人类语音的自然韵律(比早期电子合成更自然)。
  • 简单可控:通过数据库和成本函数,可手动优化拼接效果。

(2)缺点

  • 数据依赖:需录制海量语音片段(覆盖所有可能的文本组合),否则会出现 “找不到匹配片段” 的问题。
  • 灵活性低:难以合成 “数据库外的内容”(如生僻词、特殊发音),且无法灵活改变语音风格(如情绪、语速)。

在这里插入图片描述
参数化语音合成方法(Parametric Approach) 中的HMM/DNN-based 语音合成系统(HTS,Hidden Markov Model-based Speech Synthesis System),是继拼接式合成之后的主流技术,核心通过统计模型生成语音参数而非直接拼接波形

一、系统架构:训练(Training)与合成(Synthesis)两阶段

(1)训练阶段(Training part)

  • 输入:语音数据库(SPEECH DATABASE)+ 文本标签(Labels,如音素、声调、上下文信息)。
  • 特征提取:
    • 激励参数(Excitation parameters):提取语音的基频(F0)、声门脉冲等 “声源特征”;
    • 频谱参数(Spectral parameters):提取梅尔倒谱系数(MFCC)、线谱对(LSP)等 “声道滤波特征”。
  • 模型训练:
    • 用 HMM(隐马尔可夫模型)或 DNN(深度神经网络)学习 “文本标签→语音参数” 的映射关系,得到上下文相关 HMM(Context-dependent HMMs)状态时长模型(state duration models)

(2)合成阶段(Synthesis part)

  • 输入:目标文本(TEXT)。

  • 文本分析(Text analysis):将文本转换为音素序列、上下文标签(如前后音节、语速)。

  • 参数生成(Parameter generation from HMMs):

    • 基于训练好的 HMM/DNN,从文本标签生成激励参数频谱参数
  • 语音合成:

    • 激励生成(Excitation generation):根据激励参数生成声源信号(如脉冲串或噪声);
    • 合成滤波(Synthesis Filter):用频谱参数控制滤波器,对声源信号滤波,生成最终语音(SYNTHESIZED SPEECH)。
  • HMM 的作用:将语音参数建模为 “状态序列”,通过转移概率和输出概率描述语音的动态变化(如音素的过渡),解决拼接式合成的 “数据依赖” 和 “拼接不连贯” 问题。

  • DNN 的改进:后期 HTS 引入 DNN 替代 HMM 的参数生成模块,通过深度网络学习更复杂的 “文本 - 语音” 映射关系,提升合成语音的自然度。

  • 激励参数:模拟声带振动(浊音为周期脉冲,清音为白噪声),决定语音的音高和清浊特性;

  • 频谱参数:模拟声道共鸣(口腔、鼻腔的形状变化),决定语音的音色和元音 / 辅音特征。
    两者通过 “源 - 滤波模型”(Source-Filter Model)结合,生成完整语音信号。

优缺点:参数化合成的特性

(1)优点

  • 数据效率高:无需海量语音片段,通过少量数据训练模型即可合成任意文本;
  • 灵活性强:可灵活调整语音参数(如音高、语速、情感),支持个性化定制(如改变说话人性别、年龄)。

(2)缺点

  • 音质限制:生成的参数化语音(尤其早期 HMM-TTS)常带有 “金属音” 或 “模糊感”,自然度低于拼接式合成;
  • 模型复杂度:HMM 状态对齐和参数优化难度高,需专业知识调优。

在这里插入图片描述

Deep Voice的是由 Arik 等人在 ICML 2017 提出的端到端神经语音合成系统(Neural TTS)

一、核心目标:文本→语音的直接映射

输入任意文本(text),输出对应的合成语音(audio),通过模块化设计实现自然语音生成,替代传统参数化合成(如 HMM-TTS)。

二、四大模块的协同

(1)字符转音素(Grapheme-to-phoneme)

  • 作用:将文本中的字符(Grapheme,如字母、汉字) 转换为音素(Phoneme,如国际音标),解决不同语言的发音规则(如英语 “ough” 的多种发音)。
  • 意义:统一文本的 “发音表示”,为后续语音合成提供基础。

(2)时长预测(Duration Prediction)

  • 作用:预测每个音素的持续时长(duration),决定语音的 “语速” 和 “韵律节奏”(如元音拖长、辅音短促)。
  • 创新:用神经网络学习 “文本 - 时长” 的映射,替代传统 HMM 的状态时长模型,更灵活适配自然语音的节奏。

(3)基频预测(Fundamental Frequency Prediction)

  • 作用:预测语音的基频(F0,Fundamental Frequency),决定语音的 “音高”(如疑问句结尾音高上升)。
  • 意义:控制语音的情感和语调,让合成语音更自然(传统方法常忽略 F0 的动态变化)。

(4)音频合成(Audio Synthesis)

  • 输入:音素序列 + 时长 + F0 → 生成最终语音波形。
  • 核心:通过神经网络(如 WaveNet、声码器)学习 “音素 + 韵律参数→波形” 的映射,直接生成高质量语音。

创新点:模块化端到端设计

  • 解耦优化:将 “发音、时长、音高、波形生成” 拆分为独立模块,可分别优化(如单独调优时长预测提升韵律)。
  • 跨语言适配:字符转音素模块支持多语言(如英语、中文),只需替换该模块即可适配新语言,无需重新训练整个系统。

Deep Voice 是工业级神经 TTS 的早期代表(后被 Google Tacotron、Microsoft VALL-E 等继承发展),证明了 “模块化神经设计” 在语音合成中的可行性,推动了 TTS 从 “参数化” 向 “自然语音级” 的跨越。


tracotron 端到端tts

在这里插入图片描述
Tacotron是 Google 提出的端到端神经语音合成系统(Neural TTS)初稿发表于 INTERSPEECH 2017([Wang, et al., INTERSPEECH’17]);修订版发表于 ICASSP 2018([Shen, et al., ICASSP’18])。

Tacotron 的历史地位

  • 端到端突破:首次实现 **“文本→波形” 的直接映射 **,无需传统 TTS 的 “字符转音素→韵律预测→声码器” 多阶段流程。

  • 工业级影响:是现代神经 TTS(如 Tacotron 2、VITS)的基石,Google Assistant 的语音合成曾基于此优化。

  • *These authors really like tacos.:标*的作者喜欢玉米卷(呼应 Tacotron 命名);

  • †These authors would prefer sushi.:标的作者更喜欢寿司(趣味分组)。

Tacotron 的核心是注意力机制(Attention) + 循环网络(RNN),学习文本和语音的对齐关系,直接生成梅尔频谱(Mel-spectrogram),再通过 WaveNet 等声码器转波形。后续 Tacotron 2 引入双向注意力更强大的解码器,进一步提升自然度。

在这里插入图片描述
在 Tacotron(2017)提出前,已有研究尝试用神经网络实现 **“文本→语音参数 / 波形” 的直接映射 **,但未达到工业级自然度,却为 Tacotron 铺路。

(1)Tacotron 的早期形态(未命名阶段)

  • 输入:字符(character,如字母、汉字)
  • 输出:线性频谱(linear spectrogram)
  • 意义:首次尝试 “字符→频谱” 的端到端映射,虽未正式命名,但已是 Tacotron 的雏形。

(2)参数化 TTS 的第一步(First Step Towards End-to-end Parametric TTS)

  • 输入:音素(phoneme,如国际音标)
  • 输出:STRAIGHT 声码器的声学特征(acoustic features)
  • 论文:[Wang, et al., INTERSPEECH’16]
  • 局限:依赖 “音素→特征” 的映射,需先做字符转音素(G2P),未完全端到端;但证明神经网络可学习 “发音→声学特征” 的关系。

(3)Char2wav

  • 输入:字符(character)
  • 输出:SampleRNN 声码器的声学特征
  • 论文:[Sotelo, et al., ICLR workshop’17]
  • 创新:跳过 “音素转换”,直接从字符生成特征,更接近 “端到端”;但生成的语音自然度仍低(声码器技术限制)。

在这里插入图片描述
Tacotron 架构,通过 “编码器提取文本特征→注意力对齐→解码器生成频谱→声码器转波形” 的流程,实现了 “文本→语音” 的端到端合成。核心是注意力机制的动态对齐,让神经 TTS 真正具备自然语音的韵律和质量,成为现代语音合成的基石。
在这里插入图片描述
CBHG(Convolution Bank + Highway + GRU):

  • 卷积银行(Convolution Bank):用多组卷积核(1~16)提取不同长度的局部特征(如字母组合的发音模式);
  • 高速网络(Highway):传递关键特征,避免梯度消失;
  • 双向 GRU:捕捉文本的长时依赖(如 “hello” 中 “l” 的重复发音)。
  • 输出:文本的高维特征序列(绿色长条),为注意力机制提供输入。
    第二版中就不一样了。

在这里插入图片描述注意力机制(Attention):学习 “文本特征→语音特征” 的动态对齐(如 “h” 对应语音的起始部分,“o” 对应结尾部分)。对解码器的所有输出应用注意力(Attention is applied to all decoder output),确保每个时间步的语音都能找到对应的文本位置,解决长文本的 “节奏匹配” 难题。

在这里插入图片描述
解码器(Decoder):特征→梅尔频谱

  • 输入:注意力对齐后的文本特征 + 开始标记(,Begin of Speech)。
  • Pre-net:与编码器的 Pre-net 结构类似,对输入特征降维、增加非线性。
  • 多层 RNN:用堆叠的 RNN(循环神经网络)学习 “文本特征→梅尔频谱” 的映射,生成梅尔频谱序列。

在这里插入图片描述
(1)RNN 解码器输出
RNN 解码器生成的初步梅尔频谱存在局限性(如依赖时序建模导致的局部韵律缺陷、频谱不光滑),需后处理优化。
(2)非因果 CBHG(Non-causal CBHG)

  • 非因果(Non-causal):区别于编码器的 “因果 CBHG”(仅依赖历史 / 当前特征),非因果 CBHG 可访问未来时间步的特征(双向信息),更全面地优化频谱。
  • CBHG 结构:与编码器一致(卷积银行 + 高速网络 + 双向 GRU),提取多尺度频谱特征,修复局部缺陷(如元音的共振峰不清晰、辅音的能量突变)。
    (3)双损失优化(Two losses)
  • 梅尔频谱损失:直接优化 “初步梅尔频谱→优化后梅尔频谱” 的重建损失,确保基础频谱质量;
  • 线性频谱损失:将优化后的梅尔频谱转换为线性频谱(更接近原始语音的频谱表示),进一步约束频谱细节,提升声码器生成波形的自然度。

在这里插入图片描述
声码器(Vocoder):将优化后的梅尔频谱转换为时域波形(如 WaveNet、Griffin-Lim 算法),输出最终音频。
(1)Tacotron v1:Griffin-Lim 算法

  • 原理:传统 “相位重建” 算法,通过迭代优化相位信息,从梅尔频谱恢复线性频谱,最终生成波形。
  • 局限:
    • 依赖 “相位猜测”,生成的语音常带有金属音、模糊感(相位信息丢失严重);
    • 计算量大,难以实时合成。

(2)Tacotron v2:WaveNet 声码器

  • 原理:深度学习声码器,直接学习 “梅尔频谱→波形” 的映射,生成高质量时域信号。
  • 突破:
    • 利用自回归模型捕捉波形的细微特征(如气流声、喉音),音质接近真人;
    • 结合 Tacotron 的注意力机制,实现 “端到端” 高质量合成,摆脱传统声码器的缺陷。
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      Tacotron 在推理阶段必须保留 dropout,通过在 Pre-net 输入中引入微小随机扰动,解决自回归生成中的 “注意力对齐失败” 和 “生成中断” 问题。
      (1)With dropout
      语音生成流畅,注意力对齐稳定(如每个文本字符对应正确的语音片段),无重复或中断。
      (2)Without dropout
      易出现注意力坍缩(如多个语音时间步锁定同一文本字符),导致语音重复(某音节无限循环)或提前终止(未生成完整文本)。

tracotron之外的方法

在这里插入图片描述
Tacotron 2 在语音合成中的 “发音错误(Mispronunciation)” 问题,导致其音质自然度低于真实录音(ground truth)。根本原因是模型对 “生僻词、复杂发音规则” 的学习不足,本质是训练数据的发音覆盖度有限。
随着录音时长增加,LibriTTS 数据集的 “唯一单词数” 逐渐饱和(曲线趋于平缓),但离覆盖所有英语单词(如 Unisyn、CMU 发音词典的单词量)仍有差距。即使增加录音时长,“词根 / 词素” 的覆盖度增长也会放缓,说明数据集难以覆盖语言的所有形态变化(如动词的时态变化、名词的复数形式)。

Tacotron 2 是数据驱动的端到端模型,其发音能力完全依赖训练数据:

  • 若数据集中缺乏某单词的发音(如生僻词、专业术语),模型会 “猜发音”,导致错误;
  • 复杂语言的形态变化(如英语的不规则动词、法语的连读)难以被有限的数据集完全覆盖。在这里插入图片描述
    使用发音词典(lexicon)将单词转换为音素序列(如 “What→W AH T”“is→IH Z”),再将音素作为 Tacotron 的输入,避免模型直接从字符学习发音规则。显式引入标准发音知识,减少 “猜发音” 导致的错误;解决拼写不规则语言(如英语)的发音问题(如 “through” 与 “tough” 的不同发音)。

问题是当遇到词典中不存在的词(如专业术语 “nCoV”、新造词、外来词)时,系统无法生成音素,导致发音失败。

改进方案:字符 - 音素混合输入(Hybrid Input)
同时输入字符(Character)音素(Phoneme),让模型同时学习:

  • 字符的拼写模式(解决 OOV 词的发音猜测);
  • 音素的标准发音(提升已知词的发音准确性)。

混合输入方案的核心是 “动态切换输入类型”—— 对已知词用音素(保证准确性),对 OOV 词用字符(保证可处理性),让模型在 “标准发音” 和 “泛化猜测” 间找到平衡。

在这里插入图片描述
为 TTS 编码器(Encoder)注入更多信息,核心是通过引入句法信息(Syntactic information)BERT 语义嵌入(BERT embedding) 提升编码器对文本的理解,以下是详细解析:

TTS 的编码器需将文本转换为语音特征,但传统编码器仅依赖字符 / 音素信息,缺乏对语法结构、语义关联的理解。注入更多信息可:

  • 提升语音合成的韵律自然度(如正确停顿、重音);
  • 解决歧义句的正确发音(如 “Can you read ‘bass’ as a fish or a instrument?” 需根据语法判断重音)。

策略 1:注入句法信息(Syntactic information)

通过句法分析树(syntactically parsed tree) 提取文本的语法结构(如主谓宾、定状补),将语法标签(如 NP 名词短语、VP 动词短语)作为额外特征输入编码器。

示例解析(句子 “Both of these two boys like eating apples.”)

  • 句法树分层标注:
    • 顶层:S(句子)→ 分解为 NP(名词短语,主语 “Both of these two boys”)+ VP(动词短语,谓语 “like eating apples”);
    • 底层:细化到词法标签(如 DT 限定词 “these”、CD 数词 “two”、NNS 名词复数 “boys”)。
  • 编码器输入:字符 / 音素 + 句法标签,让模型学习 “语法结构→韵律” 的映射(如 NP 通常对应语音的重音部分,VP 对应谓语的流畅连读)。

策略 2:注入 BERT 语义嵌入(BERT embedding as input)

BERT 是预训练语言模型,可提取文本的深度语义特征(如词与词的关联、上下文歧义消解)。将 BERT 生成的词嵌入(word embedding)作为编码器输入,让模型利用大规模语料的语义知识。

  • 解决语义歧义:如 “bank” 在 “river bank” 和 “bank account” 中的不同语义,BERT 嵌入可区分;
  • 提升韵律与语义的匹配:如疑问句的句尾音高上升,BERT 可捕捉 “疑问语义” 并指导编码器生成对应韵律。

在这里插入图片描述
Tacotron 的注意力机制需学习 “编码器时间步(文本特征)” 与 “解码器时间步(语音特征)” 的对齐关系(对角线区域为理想对齐)。但训练初期,注意力可能随机分散(非对角线区域激活),导致:

  • 语音生成重复 / 中断(如解码器时间步锁定错误的编码器时间步);
  • 模型收敛慢,甚至无法对齐长文本。

引导注意力(Guided Attention),训练时显式惩罚非对角线区域的注意力权重,强制模型优先对齐对角线区域(理想的文本 - 语音时序对应)。

在这里插入图片描述
另外两种重要的注意力机制优化策略 ——单调注意力(Monotonic Attention)位置感知注意力(Location-aware attention),核心解决 “文本 - 语音 / 语音 - 文本对齐” 的稳定性问题:

一、策略 1:单调注意力(Monotonic Attention)

强制注意力权重单调递增移动(如解码器时间步只能从左到右遍历编码器时间步,不能回退),适用于严格时序对齐的任务(如语音合成、语音识别)。

  • Memory h:编码器输出的文本 / 语音特征序列(横轴);

  • Output:解码器生成的语音 / 文本特征序列(纵轴);

  • 黑色节点:注意力权重的移动路径,严格沿对角线从左上到右下,体现 “单调递增” 的对齐约束。

  • 优势:避免注意力 “来回跳转” 导致的生成重复 / 中断,对齐稳定;

  • 局限:仅适用于 “严格时序对应” 的任务(如朗读式 TTS),无法处理 “灵活韵律”(如诗歌的倒装句)。

二、策略 2:位置感知注意力(Location-aware attention)

在计算注意力权重时,显式引入 “历史注意力位置” 作为特征,让模型学习 “注意力应该关注的位置趋势”,解决以下问题:

  • ASR 中:语音帧的时序波动(如说话人语速变化);

  • TTS 中:文本韵律的灵活变化(如长句的停顿位置)。

  • h¹~h⁴:编码器生成的语音特征(横轴,对应 “generate the 1st token”);

  • α̂:原始注意力权重,通过softmax 归一化;

  • process history:历史注意力位置的特征(如前一时间步关注 h²,当前更倾向关注 h³);

  • match:结合历史位置与当前特征,生成新的注意力权重(如 z¹ 对应生成第 2 个 token 时的对齐)。

将 “位置感知” 机制迁移到 TTS,让解码器在生成语音时:

  • 参考 “历史注意力位置”(如前一个音素的对齐位置);

  • 灵活调整当前注意力的关注区域(如长元音的拖尾、短辅音的快速跳过)。
    在这里插入图片描述
    (1)数据集

  • Lessac <5sec:短文本数据集(最长约 1400 字符,84 秒);

  • LJ <10sec:较长文本数据集(最长约 1400 字符,84 秒)。

(2)注意力策略

  • Content-Based:纯内容驱动的注意力(无显式位置约束);
  • Location-Sensitive:位置敏感注意力(参考历史位置,如前图的 Location-aware);
  • GMMv2b:基于高斯混合模型的注意力;
  • DCA:动态卷积注意力(Dynamic Convolution Attention,更复杂的位置约束)。

GMMv2b/DCA:CER 始终维持在低水平,证明强位置约束的注意力更适合长文本。
在这里插入图片描述
推理时通过inference mask限制注意力范围,仅允许在固定窗口(fixed window) 内对齐(如右侧蓝色框 “only attend at here”),解决长文本对齐漂移问题。

在这里插入图片描述

FastSpeech(核心是通过时长信息(Duration) 实现非自回归语音合成,解决传统 TTS 的 “生成速度慢” 问题。

传统 TTS(如 Tacotron)是自回归模型(解码器逐时间步生成语音,速度慢),FastSpeech 通过非自回归设计(一次性生成所有语音特征)实现实时合成

  • 编码器(Encoder):输入文本(字符 / 音素),生成文本特征序列(图中 “c a t” 等字符的高维表示)。

  • 时长预测(Duration)

    • 预测每个文本单元(如音素、字符)的持续时长(如 “c” 对应 2 帧,“a” 对应 3 帧,“t” 对应 1 帧);

    • 输出时长序列(如 [2, 3, 1]),决定语音的 “语速” 和 “韵律节奏”。

  • 添加时长(Add length)

    • 根据时长序列,将编码器输出的文本特征扩展到对应长度(如 “c” 的特征重复 2 次,“a” 重复 3 次,“t” 重复 1 次);

    • 生成 “扩展后的文本特征序列”,为解码器提供非自回归的输入。

  • 解码器(Decoder):接收扩展后的文本特征,一次性生成完整的梅尔频谱(Mel-spectrogram),无需逐时间步依赖。
    在这里插入图片描述
    FastSpeech训练阶段细节的核心是如何通过 “真实时长标注(ground truth duration)” 训练模型学习 “文本→语音时长” 的映射,解决非自回归合成的 “时长预测难题”。

(1)真实时长的来源(ground truth duration)

  • 传统方法:用自回归 TTS 模型(如 Tacotron) 生成 “文本→语音” 的对齐关系(Attention Matrix),从中提取每个文本单元的真实时长(如 “c” 对应 2 帧,“a” 对应 3 帧,“t” 对应 1 帧);
  • 暗示真实时长需依赖其他模型(如 Tacotron)的对齐结果,这是 FastSpeech 训练的 “间接监督” 特点。

(2)时长预测与监督

  • Duration 模块:预测每个文本单元的时长(如 [2, 3, 1]);
  • 监督信号:用 “真实时长标注”(从 Tacotron 对齐中提取)监督 Duration 模块的训练,让模型学习 “文本→真实时长” 的映射。

(3)添加时长(Add length)

  • 根据预测的时长(或真实时长,训练阶段),将编码器输出的文本特征扩展到对应长度(如 “c” 的特征重复 2 次,“a” 重复 3 次);

  • 扩展后的特征输入解码器,生成梅尔频谱(Mel-spectrogram)。
    在这里插入图片描述
    在这里插入图片描述
    双学习(Dual Learning)框架下的 ASR 与 TTS 循环,核心模拟人类的 “语音链(Speech Chain)”——ASR 将语音转文本,TTS 将文本转语音,形成闭环,通过 ASR 和 TTS 的循环,让模型学习:

  • ASR:从语音(Speech)中提取文本(Text);

  • TTS:从文本(Text)中生成语音(Speech);

  • 闭环优化:用 TTS 生成的语音反馈优化 ASR,反之亦然。

在这里插入图片描述

双学习的前提是预训练的基础模型

  • 先用少量标注数据预训练 TTS 和 ASR;
  • 再用双学习的闭环,在无标注数据上持续优化,实现 “小数据→大数据” 的自监督扩展。

可被控制的TTS

在这里插入图片描述
在这里插入图片描述
可控文本转语音(Controllable TTS) 的两大核心问题 ——“谁在说?(说话人控制)”“怎么说?(韵律控制)”

**一、核心问题 1:“谁在说?”—— 说话人克隆(**Voice Cloning)

生成特定说话人的语音(如克隆某人的音色、口音),实现个性化 TTS(如语音助手模仿用户音色)。

  • 数据稀缺:训练高质量单说话人模型需要大量高质量录音(如 10 小时以上),但实际中难获取;
  • 泛化性:小数据训练的模型易过拟合,导致合成语音不自然或无法适配新文本。

二、核心问题 2:“怎么说?”—— 韵律控制(Prosody Control)

控制维度

  • 语调(Intonation):语音的高低变化(如疑问句尾音高上升);
  • 重音(Stress):语音的强弱变化(如 “我中国” 中 “爱” 的重音);
  • 韵律(Rhythm):语音的节奏变化(如诗歌的押韵、停顿);
  • 整体韵律(Prosody):上述要素的综合,决定语音的 “情感与风格”(如悲伤时语调低沉、节奏缓慢)。

在这里插入图片描述

可控 TTS vs 语音转换(VC)

两者都通过参考音频控制语音的 “风格 / 音色 / 韵律”,但输入和目标不同:

技术输入目标核心逻辑
可控 TTS文本(Text)+ 参考音频生成 “文本内容 + 参考音频风格” 的语音文本→语音,风格由参考音频控制
语音转换(VC)音频(Audio)+ 参考音频转换 “原有音频内容 + 参考音频风格” 的语音音频→音频,保留内容、替换风格

可控 TTS

  • 输入

    • 文本(Text):需要合成的内容(如 “今天天气很好”);

    • 参考音频(Reference audio):包含目标风格(如 “温柔的语调”“特定人的音色”),标注为 “say it like this”。

  • 流程:TTS 模型接收 “文本 + 参考音频”,生成 “文本内容按参考风格合成的语音”(如 “今天天气很好” 用 “温柔语调” 说出)。

语音转换(VC)

  • 输入

    • 待转换音频(Audio to be converted):包含原始内容(如某人说 “今天天气很好” 的音频);

    • 参考音频(Reference audio):包含目标风格(如 “温柔的语调”“特定人的音色”),标注为 “say it like this”。

  • 流程:VC 模型接收 “原有音频内容 + 参考音频风格”,生成 保留原始内容、替换为参考风格” 的语音(如把 “今天天气很好” 的 “生硬语调” 换成 “温柔语调”)。

两者都基于 “内容与风格解耦” 的思想:

  • 内容:TTS 中是文本,VC 中是原有音频的语义;
  • 风格:由参考音频提供,通过模型解耦并重组,实现 “内容不变、风格可控”。

在这里插入图片描述
训练阶段(Training):学习风格映射

  • 输入

    • 文本:相同内容(如 “hello”);

    • 参考音频:对应文本的目标风格音频(如 “hello” 的温柔语调音频)。

  • 流程: TTS 模型接收 “文本 + 参考音频”,学习 “文本内容→参考风格音频” 的映射。

  • 优化目标:通过L1 损失让模型生成的音频尽可能接近参考音频,学习到风格特征(如语调、韵律)。

推理阶段(Inference):风格迁移

  • 输入

    • 新文本:内容不同(如 “hello”);

    • 参考音频:风格不同的音频(如 “I love you” 的兴奋语调音频)。

  • 流程:TTS 模型接收 “新文本 + 参考音频”,生成 “新文本内容按参考风格合成的语音”(如 “hello” 用 “ I love you” 的兴奋语调说出)。

在这里插入图片描述
让 TTS 模型生成特定说话人的语音(如模仿用户音色),通过 “说话人嵌入” 编码说话人特征。

  • 模块组成

    • Feature Extractor:预训练的特征提取网络(如说话人识别模型,参数固定),提取语音的说话人嵌入(speaker embedding);

    • TTS Model:文本转语音模型,接收 “文本 + 说话人嵌入”,生成对应语音;

    • Pre-trained network:预训练的说话人识别模型,提供稳定的特征提取能力。

在这里插入图片描述
GST-Tacotron的核心模块 ——全局风格令牌(Global Style Tokens, GST),用于控制 TTS 的语音风格,以下

模块组成:

  • 风格特征提取(Feature Extractor)

    • 输入:参考音频(如一段温柔语调的语音);

    • 输出:一个风格向量(output only one vector),编码参考音频的风格特征(如温柔、欢快)。

  • 文本编码(Encoder)

    • 输入:文本(如 “hello!”);

    • 输出:文本的高维特征,为注意力机制做准备。

  • 风格令牌复制(duplicate)

    • 将提取的单个风格向量复制为多组风格令牌(图中蓝色、绿色向量组);

    • 作用:为注意力机制提供多组风格参考,让模型学习 “文本特征→风格特征” 的对齐。

  • 注意力机制(For attention)

    • 风格令牌与文本特征通过注意力机制对齐,让 TTS 生成的语音同时匹配文本内容参考风格
      在这里插入图片描述
      通过预定义的风格令牌(Style Tokens) 和注意力权重,让模型学习 “参考音频→风格令牌混合→语音风格” 的映射,实现灵活的风格控制。
      在这里插入图片描述

每个风格令牌学习到特定语音特征的控制维度:

  • 语速(speed):控制语音的时间压缩 / 拉伸;
  • 音调(pitch):控制语音的高低变化;
  • 生动度(animated):控制语音的情感表达强度。

在这里插入图片描述
在这里插入图片描述
第一阶段训练(Training):基础 TTS 训练

  • 输入

    • 文本:与参考音频内容一致(如 “hello”);

    • 参考音频:对应文本的语音(如 “hello” 的录音)。

  • 流程

    • TTS 模型学习 “文本→参考音频” 的映射,通过最小化重建误差(合成音频与参考音频的差异)优化模型,目标是让模型生成与参考音频一致的语音。

第二阶段训练(2nd stage training):跨文本风格迁移

  • 输入

    • 新文本:内容不同(如 “good bye”);

    • 参考音频:风格不同的语音(如 “I love you” 的录音)。

  • 流程:

    • 通过ASR(自动语音识别)构建闭环监督,解决跨文本风格迁移的 “目标不明确” 问题
http://www.xdnf.cn/news/1316071.html

相关文章:

  • 在 Element UI 的 el-table 中实现某行标红并显示删除线
  • 【PHP】Hyperf:接入 Nacos
  • Centos中内存CPU硬盘的查询
  • vscode无法检测到typescript环境解决办法
  • OpenCV 图像处理核心技术:边界填充、算术运算与滤波处理实战
  • 大模型应用发展与Agent前沿技术趋势(中)
  • JVM常用工具:jstat、jmap、jstack
  • 【Linux】IO多路复用
  • 17-线程
  • Python自学10-常用数据结构之字符串
  • Python异常、模块与包(五分钟小白从入门)
  • 文件快速复制工具,传输速度提升10倍
  • riscv中断处理软硬件流程总结
  • 【C语言强化训练16天】--从基础到进阶的蜕变之旅:Day6
  • Vue3 中的 ref、模板引用和 defineExpose 详解
  • 安卓14系统应用收不到开机广播
  • 【Java后端】Spring Boot 集成 MyBatis-Plus 全攻略
  • 大模型算法岗面试准备经验分享
  • (机器学习)监督学习 vs 非监督学习
  • 智能制造——解读37页 案例分享灯塔工厂解决方案【附全文阅读】
  • 电子电气架构 --- 自动驾驶汽车的下一步发展是什么?
  • LeetCode 分类刷题:2962. 统计最大元素出现至少 K 次的子数组
  • 零墨云A4mini打印机设置电脑通过局域网络进行打印
  • 详解flink java基础(一)
  • Flink作业执行的第一步:DataFlow graph的构建
  • nodejs 错误处理
  • Gradle快速入门学习
  • 数据结构初阶(19)外排序·文件归并排序的实现
  • 机器学习案例——对好评和差评进行预测
  • error #include<cuda_runtime_api.h>解决方案