CTC-TTS: LLM-based dual-streaming text-to-speech with CTC alignment
Hanwen Liu, Saierdaer Yusuyin, Hao Huang, Zhijian Ou
eess.AS, cs.AI, cs.SD
2026-02-23
新疆大学与清华提出CTC-TTS,用CTC对齐和双词交错替代MFA流水线,单说话人流式合成WER从LLMVox的2.40%降到1.50%,零样本续写MOS达4.33。
大语言模型做 TTS,已经能把文本编成离散语音 token、再解码成波形。但多数系统要等整句文本到齐才开始出声,首包延迟太高,没法边收文本边播语音。
双流合成卡在两件事上。一是文本和语音要对齐:现有工作常靠 Montreal Forced Aligner(MFA,一套基于 GMM-HMM 的强制对齐工具)切词切音素,流水线重,换数据就要重训对齐器。二是训练序列怎么把文本 token 和语音 token 交错进去:按固定比例插,对不齐真实发音节奏,模型很难学到「这一小段音素对应哪一段语音」。对齐感知的交错能缓解,但通常还是绑在 MFA 上,单位还各不相同,有的按词,有的按 BPE,有的按音素。
CTC-TTS 用 Connectionist Temporal Classification(CTC,一种不必逐帧标边界的对齐方法)替代 MFA。先用在 LibriSpeech 上训过、1.15 亿参数的 Whistle ASR,按 25 帧/秒给出音素后验;Viterbi 取出最大概率路径后,把 blank 帧归到后面第一个音素。神经音频编解码器 WavTokenizer 按 75 帧/秒出 token,长度比正好是 1:3,于是每个音素对齐三个语音 token。这套对齐不追求帧级音素边界,只提供够用来组词级音素–语音块的结构对应。对自回归模型来说,学的是局部音素组到语音 token 的映射,比固定比例交错轻,也比 MFA 流水线短。
交错单位是 bi-word 块:当前词的音素,加上词间分隔符和下一个词的音素,再跟上当前词对应的语音 token,最后用块结束符收尾。多看一个词,是因为发音依赖邻接上下文,只看当前词会丢协同发音。
两个变体对应不同的质量–延迟取舍:
训练目标只在语音 token 和块结束符上算交叉熵,文本位置不计入损失。单说话人实验缩到 4 层 Transformer;多说话人零样本用 12 层、约 1.6 亿参数。代码已公开。
单说话人流式任务用 VoiceAssistant400K(约 1750 小时训练),对照固定比例、特征维堆叠的 LLMVox,三项自然度打平,可懂度拉开:
| 方法 | WER↓ | CER↓ | 首包延迟↓ | UTMOS↑ |
| LLMVox | 2.40 | 1.36 | 167 ms | 4.15 |
| CTC-TTS-F | 1.80 | 1.04 | 159 ms | 4.15 |
| CTC-TTS-L | 1.50 | 0.79 | 210 ms | 4.15 |
F 版比 LLMVox 更快一点,L 版多等约 50 ms,WER 再降 0.30 个百分点。
零样本续写在 LibriSpeech 960 小时上训练。CTC-TTS-L 的 WER 4.82、人工 MOS 4.33,对照复现的 MFA+ELLA-V 为 WER 10.98、MOS 3.94。消融把两件事拆开:同样用 bi-word,CTC 对齐略优于 MFA(MFA+bi-word 的 WER 5.14);同样用 CTC,bi-word 远好于 ELLA-V 的 local-advance 序列(CTC+ELLA-V 的 WER 12.01)。跨说话人任务上这个差距更大:MFA+ELLA-V 的 WER 飙到 34.89,CTC-TTS-L 是 6.33,MOS 4.23 对 3.75。
对要做实时配音、语音助手边生成边播报的人,这篇把两件工程麻烦拆开了:对齐不必再跑 MFA,交错也不必拍脑袋定固定比例。L/F 两个变体可以按延迟预算选。消融把主要功劳记在 bi-word 组织上,CTC 对齐是更轻的替代,不是音质的全部来源。
这是渐进改进,不是新的合成范式。骨干仍是单码本自回归 Transformer,英语、单语对齐器。已经在用 CosyVoice2、SyncSpeech 这类双流方案的团队,值得看交错单位要不要改成「当前词+下一个词」;没自建 MFA 流水线的团队,CTC 对齐的接入成本更低。
对齐器是 LibriSpeech 上训的英语 Whistle,音素来自 Phonetisaurus 的 WFST 字形转音素,换语言或乱拼词会先在转写上碎。单码本 WavTokenizer 把架构变简单了,和多码本系统没有直接对比。零样本只在 LibriSpeech 续写和 Seed-TTS test-en 上测,没有长文本、带情绪、带噪音的压力测试。作者自己也说,帧级更准的神经强制对齐、以及神经字形转音素,都还没做。
首包延迟的统计前提是「全文已到齐」。真实双流里文本是逐词到达的,L 版还要等下一个词,端到端延迟会比表上的 210 ms 更差。论文没报实时率和 GPU 吞吐,也没和 SpeakStream、SyncSpeech 做同一套数据上的对照。