跳转到内容

输入关键词开始搜索

    流式语音合成

    概念更新 2026-08-17置信度 medium#概念#语音合成#流式#基础#易过时

    在文本尚未全部到达时增量生成并播放语音,使输入、模型推理与音频输出形成连续流水线的 TTS 技术。

    普通离线 TTS 先接收完整文本,再一次性生成整段语音。流式 TTS 将文本、语音表示和波形切成可递增处理的 chunk:前几个词或音素到达后就启动合成,后续文本与音频边到边处理。

    需要区分两种常见含义:

    • 单流式:完整文本已知,但声学模型或 vocoder 分块输出;
    • 双流式:文本也在逐步到达,系统一边接收文本、一边输出语音。

    双流式更接近实时 LLM 对话:上游语言模型还在生成回答,TTS 已开始播放前半句。它比“把离线模型的波形切小块”更难,因为模型必须在缺少未来文本时做发音、停顿和韵律决定。

    1. 降低交互等待:用户不必等 LLM 写完整段回答后再听到声音。
    2. 支撑实时对话:语音助手、数字人、游戏角色和客服需要连续反馈。
    3. 减少峰值内存:按 chunk 处理可避免一次缓存整段声学表示和波形。
    4. 改善长文本体验:有声阅读可以边合成边播放,而不是等待整章生成。
    5. 暴露真正的系统瓶颈:文本调度、对齐、模型、vocoder、网络与播放器都进入延迟预算。

    上游可以按字符、subword、词、短语或句子发送文本。粒度越小,越早启动,但上下文越少:

    • 太早:首词读音、重音和语调可能在看到后文后才发现不合适;
    • 太晚:质量较稳,但首包延迟上升;
    • 实际系统常按标点、语义短语和最长等待时间动态组 chunk。

    系统需要知道“当前看到的文本,足够生成到哪一段语音”。常见方案包括:

    对齐方式 思路 流式特点
    固定比例交织 每若干文本 token 插入固定数量语音 token 简单,但不适应语速和音素时长变化
    MFA 强制对齐 用 GMM-HMM 工具得到帧级音素边界 精确但流水线较重
    CTC 对齐 神经对齐器给出音素/blank 的单调路径 可与 ASR 技术栈复用,适合构造交织序列
    时长预测 显式预测音素持续时间 可控,但增加组件和误差来源
    隐式单调注意力 训练模型自行学局部单调推进 系统简洁,依赖数据与训练稳定性

    CTC-TTS 综述中的 bi-word 策略,以相邻两个词和其对齐语音作为局部推进单元,避免固定比例交织忽略真实时长差异。

    流式模型不能偷看未到达的未来文本或未来音频。常见骨干包括:

    • 因果 decoder-only Transformer;
    • chunk-causal attention;
    • temporal Transformer + depth Transformer;
    • block-wise AR:低频 LM 规划下一 block,局部 decoder 生成细节;
    • 因果 Flow Matching/DiT:只在当前可用条件下生成声学 chunk。

    KV cache 保存历史状态,避免每次新文本到达都重算完整前缀。

    即使 LM 已输出语音 token,非因果 decoder 或等待长窗口的 vocoder 仍会拖慢首包。完整流式链路通常要求:

    1. tokenizer/声学头能分块解码;
    2. chunk 之间处理重叠、边界和相位连续性;
    3. vocoder 使用因果卷积或有限 lookahead;
    4. 播放器能立即消费小音频块;
    5. 生成速度长期保持快于播放速度,即 RTF < 1。

    “首包延迟”至少应拆成:

    • 文本 prefill 等待;
    • 首次模型 forward;
    • 声学 chunk 缓冲;
    • vocoder 生成;
    • 服务排队与网络传输;
    • 客户端播放缓冲。

    不同论文可能从不同起点计时,也可能输出不同长度的首个音频包。只有同时报告硬件、模型规模、并发、输入长度、chunk 大小和计时边界,延迟数字才可比较。

    缩短延迟的手段 可能收益 可能代价
    减少文本 prefill 更早开口 首词读音和语调缺少后文
    减小音频 chunk 更快出首包 边界伪影、调度开销上升
    减少 lookahead 因果性更强 韵律、连读和跨句计划变差
    降低 tokenizer 帧率 LM 序列更短 单 token 信息量和重建压力增大
    减少 Flow/Diffusion 步数 RTF 降低 音质或稳定性下降
    蒸馏/量化/小模型 计算更快 容量、鲁棒性或控制能力下降
    • 传统阶段:统计参数 TTS 和早期神经 TTS 主要面向完整文本离线生成。
    • 流式 vocoder 阶段:WaveRNN、LPCNet、因果卷积等先解决边生成边播放。
    • chunk 声学模型阶段:FastSpeech/Flow/扩散模型逐步加入 chunk-aware 或因果约束。
    • Codec LM 阶段:语音 token 使 KV cache、AR streaming 和多流序列成为主线。
    • 双流式阶段:LLMVoX、SpeakStream、StreamMel、VoXtream、CTC-TTS 等同时处理增量文本和语音输出。
    • 全双工阶段:Moshi/PersonaPlex 一类系统还需处理用户打断、重叠说话、backchannel 和 turn-taking;这已经超出单向 TTS。
    • “RTF < 1 就是低延迟”:RTF 描述持续吞吐,不等于首包快;模型可能等很久再快速生成整段。
    • “首包快就是体验好”:首包之后若卡顿、音频 chunk 太短或输出追不上播放,体验仍差。
    • “把文本按句切开就是双流式”:句切分通常仍等待完整句子,且没有训练期对齐和因果序列设计。
    • “双流式一定比离线质量差很多”:差距取决于 prefill、lookahead、训练序列、数据和声学解码器;不是固定结论。
    • “延迟数字可直接跨论文排名”:计时口径、硬件、并发和首包大小常不同。
    • “端到端语音 LLM 不需要对齐”:即便没有显式 MFA,模型仍要在隐空间学习文本/语义与声学时间的对应关系。
    • “流式 TTS 就等于全双工对话”:全双工还要求监听、打断、重叠语音、轮次状态和回声处理。
    概念 输入/输出 与流式 TTS 的区别
    离线 TTS 完整文本 → 完整语音 可利用全部未来上下文,不以首包为主要目标
    流式 ASR 增量语音 → partial/final 文本 方向相反,关注 partial 稳定与首字延迟
    Speech-to-Speech 语音 → 语音 包含理解、推理与生成,TTS 只是输出环节
    全双工语音对话 双向连续语音流 还需打断、重叠、轮次和 backchannel
    实时 voice conversion 语音 → 转换后的语音 内容通常来自输入语音,不由文本规划
    低 RTF 离线合成 完整文本 → 快速整段语音 吞吐高,但可能仍需等完整文本和整段生成