打开网易新闻 查看精彩图片

你可能没意识到,过去两年生成式AI音频领域悄悄分裂成了两个阵营。

一边是文本转语音,专注把字念得像真人;另一边是文本转音乐、文本转音效,忙着从一句描述里造出环境音或者一段旋律。这两拨人几乎是各干各的,用不同的模型架构,不同的训练数据,甚至不同的评价标准。你要是想做一个既能生成对话又能配上背景音乐和音效的完整场景,得把好几个模型拼在一起用,接口对不上,风格也不统一。

StepFun-Audio团队这次做的事情有点不一样。他们发布的StepAudio 3 Gen想用同一套框架把语音合成、声音设计、唱歌、音效、音乐,全部塞进一个模型里。更值得琢磨的是,它没有走当下最流行的路子。

为什么大家都在用扩散模型,他们却反着来

先说说现在的主流做法。

近几年做通用音频生成,业内更青睐一种叫扩散Transformer的技术路线,简单说就是让模型在连续的数据空间里,通过不断去除噪声的方式,逐步"雕刻"出一段音频。这条路径的好处是可以并行渲染声音的细节,速度和质量都不错。

但StepAudio 3 Gen选择了另一条路:离散自回归建模。

自回归模型*:一种按顺序逐个预测下一个元素的模型,就像你写句子时一个字一个字往后接,每个字的选择都依赖前面已经写出的内容。ChatGPT这类语言模型用的就是这套机制。

这意味着StepAudio 3 Gen不是在连续空间里"雕刻"声音,而是把声音先转换成一串串离散的编号(有点像给每一帧声音贴上一个数字标签),然后像语言模型生成文字一样,一个编号接一个编号地往后蹦。

为什么要这么干?因为团队的野心不止是生成声音好听,他们想让声音理解、声音生成和文本智能共处一个模型里。语言模型天生擅长处理离散的、有因果顺序的、可以交错混合的序列——文字是这样,如果声音也变成同样格式的离散序列,两者就能在同一套词表里自由穿插,不需要额外的桥梁模块。

这就像两种做菜方式。扩散模型像是把食材直接倒进搅拌机高速搅拌出成品,一步到位但配方是黑箱;自回归模型像是切菜、炒料、调味一步步来,每一步都依赖前一步的结果,速度可能慢一点,但每一步都能追溯,而且厨房里的其他菜(比如文本任务)可以用同一套刀具和火候来处理。如果非要用扩散模型统一所有任务,你得给文字也搞一套扩散生成机制,这和现有的语言模型体系完全不兼容,等于推倒重来。

声音怎么变成一串数字:StepAudio Tokenizer

要把声音变成离散编号,首先得有一套"翻译规则",这就是StepAudio Tokenizer的工作。

它以每秒12.5次的频率对音频采样,每一帧用16个编号(专业说法是16个"codebook",每个codebook里有2048种可能的取值)来描述。

残差向量量化(RVQ)*:一种把连续信号压缩成多层离散编号的技术。第一层编号抓住信号的大致轮廓,后面每一层都在补充前一层没表达清楚的细节,层层叠加逼近原始信号,类似先画草图再一层层上色加细节。

这里有个设计上的巧思。团队没有把语义信息(这段声音"说的是什么"、"是什么音色")和声学细节(具体的波形、音质)分开用两套系统处理,而是让一个冻结的自监督学习编码器提供语义特征,一个用SnakeBeta激活函数的卷积编码器直接从原始波形里提取声学特征,两路信息在通道维度上融合,再统一交给一个共享的量化器处理。

自监督学习(SSL)*:一种不需要人工标注、模型自己从数据里挖掘规律的训练方式,这里用来提取声音里和内容、语义相关的特征。

这样做的结果是,16层编号里的每一层都同时携带语义和声学两种信息,而不是让某几层专门管"说的什么",另几层专门管"听起来怎么样"。团队还用了一种叫"量化器dropout"的训练技巧,训练时以50%的概率随机丢弃后面的编码层,这会逼着前面几层(尤其是第一层)承担更多语义信息,后面的层就负责补充细节。

如果不这样设计,会发生什么?如果语义和声学彻底分离成两套独立系统,模型在生成声音时就得分别决定"说什么内容"和"听起来什么样",两边配合不好容易出现内容对但音色跑偏,或者音色对但咬字模糊的情况。就像让两个互不通气的团队分别负责剧本和配音,很难保证最后严丝合缝。

解码这一端也有讲究。为了支持实时流式生成(比如语音助手要边生成边播放,不能等整句话生成完才出声),解码器被设计成完全因果的结构,用25帧的滑动窗口注意力,配合逆短时傅里叶变换直接输出24kHz的波形,不需要看未来的信息就能一帧一帧往外吐声音。

LLM怎么"听懂"并"说出"声音:RVQ Adaptor

声音变成了数字编号,接下来的问题是怎么塞进一个原本只认识文字的语言模型里。

最直接的想法是,把每个codebook当成一个新的词汇,加进语言模型的词表。但这里有个隐藏的坑:16个codebook,每个2048种取值,如果全部堆进词表,新增词汇的向量表示是随机初始化的,统计特性和原本训练好的文字词向量完全不搭。

打个比方,这就像一个已经精通了十年中文写作的作家,突然被要求同时学会用摩斯电码写作,而且摩斯电码的符号还是随手编的,没有任何历史积累的规律可循。如果直接把这套新符号硬塞进他原本流畅的写作系统,他大概率会先手忙脚乱一阵,甚至因为要适应新符号而把原本流利的中文表达能力搞乱。

团队的解法是只把第一个codebook(信息最集中的那一层)真正并入语言模型的主词表,由语言模型沿着时间轴自回归地预测它。剩下的15层交给一个独立的、轻量级的因果Transformer模块,这个模块沿着"深度轴"(也就是同一帧里从第2层到第16层)接力预测。

这就是论文里说的"时间-深度"架构:主干语言模型负责想清楚"接下来该说什么、语义和长程规划怎么走",一个小模块专门负责把细节声学信息填满。

RVQ Adaptor*:一个零初始化的、按token处理的残差适配模块,用来把16层编号求和之后的声音向量,转换成语言模型能理解的输入空间,再叠加到对应的文字词嵌入上。

这个适配器有个关键细节:它的"下投影"权重被初始化为零,也就是说,在训练刚开始的时候,这个模块相当于什么都没做,输出恒为零,不会给原本的语言模型输入添加任何扰动。随着训练推进,它才逐渐学会怎么把声音信息恰当地"翻译"进语言模型能理解的空间。

这个零初始化的设计其实很聪明。想象一下你要往一栋已经装修好、住满人的老房子里新接一根电线,如果一上来就直接通上大电流,很可能把原有的电路系统烧坏。零初始化相当于先把新电线接上但不通电,等确认接线方式没问题、不会干扰原有电路,再慢慢加大电流。如果一开始就用随机初始化的强信号硬灌进去,语言模型原本积累的语言能力很可能在磨合期就被破坏掉,这种破坏往往是不可逆的。

四阶段训练:怎么让模型学会新技能又不忘老本事

说到这里,还有一个更深层的矛盾没解决:即便输入端做了缓冲,训练过程中声学预测任务带来的梯度信号依然很强,15层残差编码的损失加起来,数值上可能远大于普通的文字预测损失。如果放任不管,这股强梯度会在模型还没学会怎么好好利用之前,就把语言模型原本的知识结构冲乱。

团队管这个问题叫"干扰",并且设计了一套四阶段的渐进式训练方案来专门应对它。

第一阶段叫"模态对齐",语言模型的主干网络整个冻结,只训练输入端的声音嵌入和刚才说的RVQ Adaptor,用的是语音识别和语音翻译这类只监督文字输出的任务。因为主干冻结、适配器又是零初始化的恒等映射,这一阶段理论上对文字能力的影响是零。

第二阶段叫"音频理解",这时候整个模型解冻,用语音理解类任务和文字语料一比一混合训练,但依然不监督任何声音生成的目标,只是让模型学会"听懂"。

第三阶段是主力训练阶段,真正引入声音生成任务,这时候一个巧妙的开关登场了:负责预测15层残差编码的那个小Transformer,它接收的语言模型隐藏状态被人为"断开梯度",声学预测的损失只用来训练这个小模块本身,不会反向传播影响到语言模型主干。

为什么要断开?因为这个小模块是随机初始化的,一开始预测得很差,如果它的强梯度直接怼向刚刚积累了两阶段知识的主干网络,很可能把主干重新搅乱。这就像一个刚入职的新员工提的意见,哪怕出发点是好的,如果没有经过筛选就直接影响到公司的核心决策流程,风险太大,得先让他自己练熟业务,证明靠谱了再放权。

第四阶段叫"长上下文联合冷却",这时候才把梯度断开的开关关掉,让声学预测的信号真正开始影响主干,同时用很低的学习率、拉长训练序列长度(从16384扩展到32768,按12.5Hz的频率算相当于覆盖44分钟的音频)。之所以放到最后,是因为这时候小模块已经训练得比较成熟了,加上学习率很低,即便梯度传回主干,冲击也是可控的。

从第二阶段开始,团队还坚持让文字语料占据每次训练更新的一半份额,相当于每学一点新东西,就复习一遍老知识,防止遗忘。

这套设计到底有没有用?团队做了对照实验。一个不用这套渐进策略、只用三阶段简化流程的基线模型,和完整的四阶段模型,在FinEval、C-Eval、MMLU等一系列纯文本能力测试上对比。结果显示,四阶段模型在几乎所有指标上都明显更好,比如MMLU准确率从64.99%提升到69.20%,数学题测试MATH从36.62%提升到45.07%,提升幅度都在4到8个百分点之间。这说明干扰确实存在,而且这套渐进策略确实有效地保住了语言模型原本的文字智能。

效果到底怎么样

光有巧妙的架构设计不够,还得看实际生成效果站不站得住脚。

在语音合成(TTS)这个最核心的任务上,团队特别强调了一件事:他们没有过度依赖字错率(CER)、说话人相似度(SS)这些常见的客观指标,原因是这些指标测不出"听起来像不像真人在自然说话"这种更主观、更模糊但也更重要的体验。一个语调完全平淡的机器人念白,只要内容念对了,字错率照样能很低。

于是团队搞了一场"人类相似度竞技场",找真人评委,拿StepAudio 3 Gen和五个主流商业TTS系统(包括通义千问的TTS、豆包、MiniMax的Speech 2.8等)两两PK,总共做了1500场对比,用Elo积分系统排名。

结果StepAudio 3 Gen拿到1755.33分,排名第一,领先第二名211.1分。在和五个对手各100场的头对头比拼里,整体胜率82.0%,对每一个对手的胜率都在73%到90%之间,没有一场输掉整体优势。

声音设计(Voice Design)这个任务,是让用户用自然语言描述想要的音色、风格,模型据此生成对应声音。团队在一个叫InstructTTSEval的公开基准上测试,涵盖声学参数指定、风格化描述、角色扮演三种指令类型,中英文各1000条文本,总共生成6000段音频,由Gemini 3.1 Pro来判断生成的声音是否符合指令。

| 系统 | 中文平均分 | 英文平均分 |

| Qwen3-TTS-VoiceDesign | 74.0 | 73.5 |

| MOSS-VoiceGenerator | 65.1 | 64.9 |

| Ming-omni-tts-0.5B | 71.0 | 65.1 |

| **StepAudio 3 Gen** | **85.2** | **77.7** |

同时团队也做了真人盲评,StepAudio 3 Gen拿到1668.5的Elo分,同样排名第一,对四个对手的整体胜率75.5%。

除了这两项核心能力,StepAudio 3 Gen还支持从文本或参考语音生成唱歌(可以指定歌词、调性、唱腔),生成超过60秒且结构连贯的纯音乐,单独或复杂场景下的音效合成(支持指定多个声音事件的先后顺序和叠加关系),以及所谓"氛围语音",也就是把说话内容、语气、背景环境音、多人对话都融合在一个连贯场景里生成。

有个小实验特别能说明RVQ Adaptor是不是真的有用。团队对比了有和没有这个适配器的两个版本,在语音识别、音频理解推理(MMAU)、中英互译(CoVoST)、知识问答(SpeechMMLU)四类任务上测试。

| 指标 | 无RVQ Adaptor | 有RVQ Adaptor |

| AISHELL-1字错率 | 5.25% | **3.00%** |

| LibriSpeech词错率 | 6.00% | **3.41%** |

| MMAU准确率 | 40.70% | **51.70%** |

| CoVoST英译中BLEU | 12.05 | **30.56** |

| SpeechMMLU准确率 | 12.13% | **58.76%** |

看SpeechMMLU这一项,差距最夸张,从12.13%直接跳到58.76%,提升了将近五倍。这说明单纯把声音编号塞进词表还不够,中间这层"翻译"确实是决定模型能不能真正理解声音内容的关键一环。

强化学习:让模型更听话

有了基础的生成能力后,团队还用了一轮强化学习,具体是Group Relative Policy Optimization(GRPO)这套方法,目标是让模型更精准地遵循用户指令。

打分机制设计得挺细致。对于每一条生成的音频,先用一个音频理解模型给它生成一段文字描述(相当于让模型自己"复述"一遍它生成了什么),再用另一个文本模型对比这段描述和原始指令,打出0到100的一致性分数,重复打四次取平均减少误差。如果是有明确文本内容的语音任务,还会用语音识别模型把生成的语音转回文字,和目标文本比对计算错误率,错误率超过50%这条数据的最终得分直接归零。

这个"错误率超过阈值就归零"的设计很关键。因为单纯看风格匹配度容易出现一种情况:模型生成的声音"风格"很对味,但内容说错了,或者说的完全是另一回事。这种输出如果只按风格打分,可能拿到不错的分数,但实际上是不可用的。乘法式的奖励设计确保了内容对不上,不管风格多贴切,总分都会被拉低甚至清零。

写在后面

读完这篇论文,最触动我的其实是那个"零初始化"的细节。

一个看起来微不足道的工程选择,却精准踩中了这类跨模态改造任务里最容易翻车的地方:新加入的模块,在还没学会怎么正确表达之前,不该有发言权。这个思路其实在很多领域都适用,不只是给语言模型接上声音能力,任何往一个已经训练成熟的系统里插入新组件的场景,恐怕都得先问一句,这个新组件在没学会之前,会不会先把老系统搞坏。

另一个让我意外的地方是,团队没有选择当下更热门的扩散模型路线,而是坚持用离散自回归去做。这背后其实是一种更大的赌注:他们赌的不是"哪种方法生成质量更高",而是"哪种方法更适合让声音、文字、理解、生成最终统一进同一个大脑里"。扩散模型或许在单点生成质量上有优势,但很难和语言模型的因果序列、交错上下文这套体系无缝对接。这篇论文某种程度上是在下注,未来的通用智能体系,可能不是靠不同模态各自最优的模型拼起来的,而是靠一套统一的、离散的、能互相理解的语言体系撑起来的。

这个赌注最后会不会赢,现在还不好说。但至少目前看到的数据,让这条路显得不那么孤注一掷。

Q&A

Q1:StepAudio 3 Gen是什么?

A:StepAudio 3 Gen是StepFun-Audio团队推出的通用音频生成模型,能在同一个框架下完成语音合成、声音设计、唱歌、音效、音乐生成等多种任务,核心采用离散自回归建模而非主流的扩散模型路线。

Q2:StepAudio 3 Gen和普通的文本转语音模型有什么区别?

A:普通TTS模型通常只专注于语音合成一项任务,而StepAudio 3 Gen把语音、唱歌、音效、音乐都统一到同一套16层残差向量量化的离散编码体系里,一个模型能覆盖多种音频生成需求,且在人类相似度评测中胜率达到82%。

Q3:StepAudio 3 Gen是怎么避免破坏原有语言模型能力的?

A:团队设计了四阶段渐进训练,先冻结主干只训练适配器,再逐步引入声音理解和生成任务,并用零初始化的RVQ Adaptor和梯度断开机制控制新模块对主干的冲击,实验显示这套方法让文本能力测试分数比简化流程平均高出5到8个百分点。