什么是流式语音合成(Streaming Speech Synthesis)?
流式语音合成是一种在文本尚未全部就绪时就开始生成语音、并边生成边输出的语音合成方式,目标是让语音的起始延迟不再随句子或文本长度增长。它主要解决传统「先拿到完整文本、再整句合成」流程中等待时间过长的问题,使大语言模型输出、实时对话等场景能够以接近说话的节奏发声。
流式语音合成(Streaming Speech Synthesis)是一种在文本尚未全部就绪时就开始生成声学特征或波形、并边生成边输出的语音合成方式。它要解决的问题是:传统文本转语音(Text-To-Speech,TTS)通常需要先拿到完整句子甚至整段文本,再一次性合成,用户必须等到整句处理完毕才能听到第一个音,这段等待在实时对话中会显得很长。
为什么重要
在流式语音合成被明确提出之前,主流的神经语音合成流程是「整句进、整句出」:文本先被完整送入声学模型,模型自回归地生成整句的声学特征,再由声码器(vocoder)合成波形。这种做法的好处是模型在生成每个音时都能看到整句的上下文,韵律和音质更容易做好;代价是延迟与句子长度绑定——句子越长,用户等待第一个音的时间越久。
当语音合成的上游变成大语言模型(Large Language Model,LLM)时,这个矛盾被放大。arXiv 论文《Speak While You Think: Streaming Speech Synthesis During Text Generation》指出,大语言模型能力很强,但与它们的交互大多仍通过文本进行;若用文本转语音去朗读大语言模型的输出,通常会产生明显的延迟,对流畅的语音对话来说并不实用。该论文因此提出 LLM2Speech 架构,在 LLM 生成文本的同时合成语音,以获得显著的延迟下降。
另一条动机来自端侧实时应用。arXiv 论文《High Quality Streaming Speech Synthesis with Low, Sentence-Length-Independent Latency》关注的是在 CPU 上低延迟运行的端到端文本转语音系统,面向实时应用;其核心诉求是让延迟几乎恒定、与句子长度无关。这两篇论文从不同角度说明了同一件事:语音合成的延迟结构,而不只是音质,决定了它能否用在交互式场景里。
工作机制
流式语音合成的核心做法可以概括为「边来边算、边算边出」,具体体现在以下几个环节:
- 增量输入。文本不再等整句到齐,而是以词、子词或音素片段为单位陆续送入声学模型。模型必须在只有部分上下文的情况下开始预测,这与整句合成时「全上下文可见」的假设不同。
- 解码器展开与流式特征生成。在推理阶段,自回归解码器被逐步展开(unrolled),每得到一小段声学特征就立即交给声码器,而不是等整句特征全部生成完再统一合成波形。前述 2021 年的论文即采用这一方式,使延迟接近常数、不随句子长度增长。
- 控制对未来的可见度。流式意味着模型不能依赖尚未到达的后文。LLM2Speech 的做法是模仿一个非流式教师模型(teacher model)的预测,同时限制模型对未来上下文的接触,从而在可流式运行的前提下尽量保持教师模型的音质。
- 复用上游中间表示。LLM2Speech 还利用了 LLM 的隐藏嵌入(hidden embeddings)——这是文本生成过程的副产品,含有丰富的语义上下文——作为合成侧的信息来源,而不是只依赖已经输出的文字。
- 稳定性约束。由于流式解码需要在长序列上持续自回归,注意力机制的选择会影响是否会出现重复、跳字等失稳现象。2021 年的论文采用一种纯基于位置的注意力机制(purely location-based attention),以保证任意句长下的生成稳定性,其声学模型同时借鉴了 Tacotron 1 与 Tacotron 2 的模块。
需要强调的是,上述机制分别来自各自的论文,属于该论文提出的具体设计,而非整个领域的统一规范。
典型例子
素材中出现过两个具体系统,可作为理解流式语音合成的实例:
- LLM2Speech。由 Avihu Dekel、Slava Shechtman、Raul Fernandez、David Haws、Zvi Kons、Ron Hoory 在 2023 年提交的论文中提出,目标是「在文本生成过程中合成语音」。论文称其能在保持教师模型音质的同时降低延迟,从而支持自然的对话;该论文投稿时处于 ICASSP 2024 审稿阶段。
- 基于自回归注意力声学模型与 LPCNet 声码器的端到端系统。由 Nikolaos Ellinas 等作者在 2021 年提交、发表于 INTERSPEECH 2020 的论文中给出。该系统由自回归注意力序列到序列声学模型与 LPCNet 声码器组成,面向 CPU 上的实时应用。论文报告的实验结果为:声学模型在计算机 CPU 上约比实时快 31 倍、在移动端 CPU 上约快 6.5 倍,端到端系统经听测可生成接近自然质量的语音。这些数字是该论文在其设定下的实验结果,不代表其他系统的普遍水平。
边界与常见误解
流式语音合成容易被误解为「更快的语音合成」,但两者的含义并不相同。普通优化追求的是整体合成耗时更短;流式追求的是首包延迟低且不随输入长度增长,即使总计算量并未减少。反过来,一个总耗时很短的整句合成系统,如果必须等整句文本到齐才能启动,在交互场景中依然会让人感到停顿。
另一个常见误解是认为流式必然牺牲音质。上述两篇论文都在试图缩小这一差距:LLM2Speech 通过模仿非流式教师模型来维持音质,2021 年的论文则通过纯位置注意力保证长句稳定性。但这类结论均出自论文作者自己的实验与听测,是否在其它语言、音色、设备上成立,素材并未给出证据。
在适用边界上,流式方案对「未来上下文」的可见度是受限的,这天然不利于需要长距离依赖才能处理好的现象,例如跨句的语调规划、依赖后文才能确定的停顿与重音。此外,流式解码要求模型在部分信息下持续自回归,稳定性与错误累积是需要专门设计来应对的代价;2021 年的论文正是为此引入特定注意力机制。对离线配音、有声书制作等不要求实时响应、但要求整体韵律最优的场景,整句合成仍是更自然的选择。
最后需要区分「流式合成」与「流式传输」:前者指模型在文本未完整时就开始生成声学内容,后者只是把已生成好的音频分块下发。仅做后者并不能降低首音延迟。