来源:互联网 更新时间:2026-08-10 15:20
5月14日凌晨,OpenAI正式发布了新一代生成模型GPT-4o,这一波更新带来的冲击力,用“技术碘伏产品形态”来形容并不为过。最让人眼前一亮的地方在于:它用一种几乎无缝的交互方式,把GPT-4级别的智能体验带给了每一位用户。语音方面尤其惊艳——响应速度极快,平均延迟几乎和人类对话节奏同步,输出的语音不仅听感自然,还能精准感知上下文,甚至捕捉到情感和情绪的微妙变化,说实话,这已经和真人对话没有明显界限了。
GPT-4o本质上是一个“any2any”的多模态模型。它能接收文本、音频、图像、视频等多种输入形式,也能同时输出文本、语音、图像、视频等混合内容。本文的重点落在语音多模态实现上,顺带聊聊我对语音研究方向的一些看法。
如果只看文本和语音这两个模态,GPT-4o其实就是一个“语音语言模型”(speech language model, SLM)。它既具备语音理解能力,也具备语音合成能力,输入和输出都可以是文本和语音的混合体。那么,这个SLM到底是怎么造出来的呢?在大型语言模型(LLM)已经深入人心的今天,一个直觉的思路是:
按照这个思路来搭建SLM,我们需要解决三个核心问题:
下文就逐一拆解这些问题,看完现有的方案之后,还会延伸聊一些工程实现的思考,以及这些新兴语音技术对游戏业务可能带来的影响。最后用一张完整的路线图来收尾。
在讨论语音离散化之前,我们先搞清楚语音和文本这两种模态的区别和联系,这直接关系到后续建模方法的选择和离散化特征的侧重点。
语音和文本的差异很明显:
当然,语音和文本也有联系:
接下来,先看语义token是怎么拿到的。
语音的语义建模,最经典的方法就是BERT的MLM(掩码语言模型)思路。这方面的里程碑工作有三个:
和BERT类似,wa v2vec 2.0在隐空间中随机遮盖一部分语音输入,然后用对比学习的目标来训练帧的表征。这里有一个特别巧妙的设计:对比学习中目标帧的离散化处理,把连续的无限特征空间压缩成有限的离散空间,让帧特征的鲁棒性显著增强。这个trick在语音领域非常实用,模型可以接受带噪声的语音作为输入。
wa v2vec 2.0只是借用了BERT的mask操作,核心训练目标还是对比学习。能不能直接用BERT的MLM目标来得到高质量的语音表征呢?HuBERT做的就是这件事。它的核心思想是用简单的KMeans聚类方法给语音数据抽取离散化的分类标签,也就是论文里说的hidden unit或acoustic unit。拿到分类标签后,再用BERT的MLM loss来学习语音数据内部的上下文依赖关系。针对KMeans对初始值和K值敏感的问题,作者设计了集成(ensemble)和迭代优化(iterative refinement)的方法:前者是用多个聚类模型投票,后者则是先在基于MFCC的聚类标签上学习,学到一定程度后,用模型学到的表征重新聚类,再跑一轮BERT。
对比学习和BERT的MLM都能学语义表征,那把二者结合起来会不会有互补效果?w2v-BERT就是干这个的。HuBERT的离散token需要通过KMeans离线聚类获得,不是端到端的,而wa v2vec 2.0正好能提供音频帧的量化离散表征,两个模型天然可以缝合。方法也很直观:前几层做类似wa v2vec 2.0的对比学习,学出HuBERT要用的离散表征;后面几层再做类似HuBERT的MLM训练。
前面讲的预训练模型主要学习上下文关系,得到的表征以语义信息为主。但如果要把语音token还原成有真人表现力的信号,还需要包含
说到压缩,第一个想到的自然是自编码器(AutoEncoder)。要提升压缩效率、方便数字传输和存储,同时满足离散化建模的要求,压缩模型里还需要引入量化(quantization),把连续的音频信号转换成离散的数值。基于这些考虑,模型大体上采用VQVAE的结构。为了平衡向量量化(VQ)与音频实时高保真传输之间的矛盾,通常会使用多个残差连接的码本(codebook)来量化,这就是所谓的RVQ(残差向量量化)。RVQ的好处主要有两个:第一,不同的量化块有明确分工,第一个块承载最重要的语义信息,后续的块负责还原副语言信息;第二,训练时可以随机采样前面若干个块来训练,保持一定精度的同时,实现对码率的动态适应。
总的来说,
不难发现,SoundStream和Encodec这种基于RVQ-VAE的压缩建模,虽然包含了声学特征,但也不可避免地带入了语义特征。两者提取的其实是一种语义和声学的混合体。在此基础上,
上面讲的语音离散表征,无论是HuBERT的语义token还是Encodec的声学token,都是直接从原始音频波形中抽取的。其实也可以基于语音的中间表征来抽取,最典型的就是梅尔谱(MEL spectrogram)。梅尔谱本身就对语音做了一次压缩,把梅尔谱类比成图像,用单码本的VQ就能达到和SoundStream、Encodec类似的压缩程度。这种MEL+VQ的做法在各种语音合成模型中很常见,我们在合成部分会详细介绍。
有了语义token和声学token之后,就可以着手构建语音层面的语言模型了。经典的工作包括谷歌的AudioLM、AudioPaLM,字节的SALMONN,复旦的SpeechGPT系列,阿里的LauraGPT,以及新加坡国立大学的NextGPT。它们的思路大同小异,挑几个代表性的看看就明白了。
顾名思义,AudioLM构建的是一个语音层面的语言模型——给定一段语音,模型预测后续的语音。输入和输出都只有语音模态。这个任务形式和GPT-4o非常接近,不会经历ASR→LM→TTS的流程,而是直接从语音上下文中推理语义信息,再结合声学信息合成贴合上下文的高表现力语音。前面讲的语义token和声学token正好能满足这个任务的要求。
AudioLM的具体做法是:用SoundStream提取声学token,用w2v-BERT提取语义token,模型主体是一个常规的GPT,词表包含所有声学token和语义token。它的建模过程很有启发性:先做最重要的语义建模,然后预测SoundStream的前若干层特征(粗糙的声学特征),再预测剩余层特征(声音的细节信息),最后基于所有声学token还原为语音。这种层次化的建模思路,在VALL-E这类语音合成模型里也很常见。
当然,AudioLM只关注语音模态,用的也是常规LM,还不具备GPT-4o那种强悍的指令遵循和对话能力,语音对话的连贯性和表现力都比较弱。但它的开创性在于证明了:即使是常规的LM,也能理解语音token。
这是AudioLM的后续版本。谷歌把常规LM替换成了已经训练好的、具备强大文本理解和生成能力的大语言模型PaLM-2。这样一来,模型既继承了AudioLM保留副语言的能力,又融合了PaLM-2的语义理解和推理能力。此外,模型的词表同时包含大语言模型的token和语音token,可以同时做语音理解和语音生成,第一次把这些任务整合到了一个模型里。
不过,论文中的语音token嵌入是直接输入到Transformer中的,没有使用音频编码器做转换。而且AudioPaLM的训练更接近文本多任务的T5,没有用到丰富多样的指令来表达任务意图,还不是真正严格的指令微调。
这是字节跳动和清华大学电子系的合作成果。虽然这个工作的目标是让LLM理解语音(还不能生成语音),但它的训练方法跟LLM很接近,而且在多个语音相关任务上都表现出了涌现能力,可以用作通用的特征提取器。这对于构建高质量的、包含语音-文本多模态的指令微调数据集非常有价值。
这是复旦大学邱锡鹏组在这个领域的一系列工作,一个一个来看。
SpeechGPT也是兼具语音理解和语音生成能力的多模态模型。在训练上,它大幅度向LLM看齐,用了三段式训练:第一阶段做模态适应的预训练(其实就是用ASR数据);第二阶段和第三阶段都是指令微调,根据指令模态的不同,细分为跨模态指令微调和模态链指令微调。指令微调的数据集来自ASR,描述任务需求的指令由GPT-4生成。
这个工作还是偏学术化,有几个值得商榷的地方。第一,语音的离散化只用了HuBERT,模型只能看到语义特征,对合成语音的音质和表现力影响很大,demo中的语音也确实验证了这一点。第二,指令微调数据集的构造有问题。他们用的是ASR数据集,其实更好的选择应该是TTS数据集,但高质量TTS数据集实在太少了。ASR数据集中的文本和语音可能不是严格对齐的,GPT-4生成的元提示词和语音本身的特征也可能对不上——比如提示词要求大声朗读,但语音本身可能是低沉的。而且元提示词本身无法做到足够复杂丰富,描述不了语音的一些细粒度信息。第三,训练方法也没有跟人类偏好做对齐。
针对第一个问题,作者在后续的SpeechGPT-Gen中做了改进。核心思路是让模型不仅看到语义token,也要看到声学token。具体做法是:将HuBERT特征替换成SpeechTokenizer中的语义特征,用SpeechGPT这个LLM自回归地建模语义特征,然后使用Flow-Matching这类扩散模型来建模声学特征。这里选用Flow-Matching,可能是受了SD3和Voicebox/Audiobox的启发。为了增强两阶段建模的依赖关系,作者还把语义特征的先验信息注入到第二阶段扩散模型的先验分布中。可以看到,语音的解码同样是层次化渐进式的。
SpeechAlign做的则是SLM与人类偏好的对齐,彻底向LLM的训练方法看齐。他们构建了对比gold token和合成token的Encodec数据集,然后通过偏好优化(包括RLHF和Chain of Hindsight)来改进模型。
简单总结一下上面这些工作中值得关注的点:
既然前面重点讲了语音理解多模态模型,那接下来就把目光转向Zero-shot TTS模型——它对构建高质量指令微调数据集同样至关重要。同时,LLM解码语音的方法也能从Zero-shot TTS方案中得到很多启发。
前面提到,SLM的词表里包含了语音的语义token和声学token。语义token保证生成语音与对话上下文的连贯性,声学token保证合成语音的质量和表现力。要想合成上下文连贯、自然度高的语音,必须解决两个问题:
对于第一个问题,以VALL-E为代表的众多Zero-shot TTS模型给出了不同的解决方案,虽然各有千秋,但也有一些共同点。对于第二个问题,以VoiceLDM和ParlerTTS为代表的text/prompt-guided Zero-shot TTS工作给出了肯定的答案。简单解释一下:通常的语音合成只是把文本变成声音,而text/prompt-guided TTS在文本之外还增加了描述性输入,用来描述合成语音的情感、口音、语气、语速、音高、环境、氛围等信息。逐个来看这些工作。
2023年以来,学术界和工业界出了不少具备in-context learning(zero-shot/few-shot)能力的TTS模型。这些模型通常会把低信息密度、长序列的连续语音数据,压缩成高信息密度的token或latents(也就是码本中的具体嵌入向量)。它们本质上在做的事情就是:如何高效地实现语音token/latents到音频波形的映射。
这些方案基本都遵循一个准则:语义token和声学token层次化解码,先语义后声学,或者先解码成MEL再加声码器,并且非必要不做自回归(毕竟自回归上线虽高,但太吃数据了)。
先看微软的VALL-E,这是Zero-shot TTS的开山之作,首次在TTS任务上用上了上万小时的数据。它用Encodec把语音转换为离散token,然后用GPT在这些token上做语言模型的任务。但语音毕竟不是文本,如果直接在语音的所有特征上都做自回归,训练成本高得吓人。考虑到Encodec RVQ特征的层次性——低层特征表示语义内容这类重要信息,高层特征表征声学细节——前者上下文依赖强,适合用自回归建模;后者如音色这类全局性特征,用非自回归也能搞定。于是就有了VALL-E中自回归+非自回归的层次建模方式。
尽管VALL-E已经基于token的层次化特性做了分治处理,但受限于语音数据集的规模(几万小时可能还不够),GPT自回归的难度仍然很大,解码过程中存在常见的错误传播问题,鲁棒性差,非常不稳定。按照Ilya Sutskever对自回归的论述,GPT自回归比BERT这种双向结构要更依赖数据,万小时级别的数据可能确实不够。根据一些同行的经验,VALL-E这类自回归模型(也包括tortoise-tts和xtts v2),至少需要十几万小时的数据才能显现出威力。
既然GPT自回归的难度这么大,很多人就开始想办法降低它的学习难度。最直接的方案就是给GPT提供额外的条件信息。典型的工作有微软的RALL-E和吉利的HAM-TTS。RALL-E先生成时长和音高信息,作为GPT自回归的先验——这个思路大概来自FastSpeech2这样的非自回归模型,这两个指标的引入有助于提升合成的鲁棒性。HAM-TTS则补充了基于HuBERT的语义信息。值得注意的是,
说到VALL-E的后续改进,VoiceCraft值得一提。我愿意称它为“优雅的VALL-E”。它的优雅主要体现在两个设计上:causal masking和delayed stacking。Causal masking是为了用自回归GPT架构来做语音编辑任务——把被mask的部分移到序列末尾去预测,一套架构同时搞定合成和编辑。Delayed stacking则是为了适配自回归和RVQ,通过延时错位让当前码本的token预测正好能利用前面token的预测结果,比起VALL-E那种自回归和非自回归缝合在一起的结构要优雅得多。
我们通常说的语音token是离散的。但如果用对应码本中的嵌入向量来表示语音,它也可以是连续的、低维的latent变量。既然是低维的连续latent变量,那图像合成领域大火的LDM(latent diffusion model,也就是Stable Diffusion 1&2采用的模型)自然也能用到语音合成上。这方面的经典工作不少,比如NaturalSpeech 2&3、AudioLDM 2、VoiceLDM。不过这里面只有NaturalSpeech 2用到了前面讲的声学/语义token,NaturalSpeech 3的属性分解式VQ更像是另一种形式的RVQ。先看NaturalSpeech 2&3,其他工作后面再说。
NaturalSpeech 2基本上就是VALL-E的连续版本。它用的latent也来自Encodec,先把不同层次的latent求和,然后作为扩散模型的训练目标。值得一提的是,扩散模型和FastSpeech2一样,也用了时长和音高作为合成的先验条件——这一点后来也被RALL-E采用。这个扩散模型是用Wa veNet实现的,同时预测不加噪的latent和后验均值,和图像合成领域的扩散模型在实现方式上不太一样。
然后是NaturalSpeech 3,依然是非自回归的,而且非自回归的正统味道更浓,借鉴了不少FastSpeech2和MegaTTS 1&2的设计思想。和MegaTTS一样,它也用了监督信号对语音token编码的内容做了限制,不再是VALL-E/NaturalSpeech2那样一把抓。相应地,语音token化的方法用VQ就行。具体来说,文章把语音信号分解为时长、内容、韵律和细节四个部分,每个部分用离散化的扩散模型来建模。不过,原文用GRL来促进语音属性分解的做法,可靠性存疑。我也试过文章里的FACodec,效果不太理想。三级扩散模型级联的结构,预测起来也非常复杂。
当然,也有不少工作用梅尔谱作为中间特征,然后在梅尔谱上用VQ提供离散token,或用CNN提取连续latent。MEL+VQ的代表有tortoise-tts、xtts 1&2、MegaTTS 1&2、Base TTS。MEL+latents的代表有AudioLDM 1&2、StyleTTS 1&2。简单看看它们是怎么做的。
SLM不仅要合成合乎上下文语义的高表现力语音,还要能响应用户的即时要求。一些text-guided Zero-shot TTS工作值得参考。这些工作通常是在已有的Zero-shot TTS模型或text-to-audio模型上改造而来,同时接收转录文本和描述文本两路条件。重点还是在于数据集的构建。这方面的代表有PromptTTS、InstructTTS、ParlerTTS、VoiceLDM和Audiobox。重点说说ParlerTTS和VoiceLDM。
林林总总说了这么多Zero-shot TTS方法,核心结论有这么几点:
另外,对于语音的解码方案,倾向认为:
除了上面这些,Zero-shot TTS还有很多值得研究的方法,限于篇幅不再详述:HierSpeech++、Base TTS、Voicebox/Audiobox、UniAudio、Make-a-Voice等。
如果聚焦于GPT-4o的语音多模态,还有几个问题值得关注:
Text/prompt-guided Zero-shot TTS方法对游戏的AI配音意义重大,主要体现在两个方面:
总结一下本文的内容。GPT-4o语音多模态的实现可能走了以下的技术路线:
新浪机器学习热点小时报丨2026年07月25日18时_今日实时机器学习热点速递
黄金价格不断创新高!黄金稳定币XAU、PAXG市值达11亿美元
CC币价格预测(2026-2035):Canton币今日价格走势+长期价格预测
新浪互联网热点小时报丨2026年07月26日16时_今日实时互联网热点速递
腾讯ima怎么创建共享知识库?
蚂蚁庄园今日答案7月21日(今日已更新) 蚂蚁庄园今天正确答案是什么呢
今日比特币暴涨分析:Metaplanet的比特币BTC投资推动股价上涨17%
区块链OTC交易所有哪几家比较正规?
2026热门直线加速赛车手游推荐:高人气、爽快加速体验的精品榜单
腾讯ima怎么把微信内容一键导入知识库?
Intel喜讯连连:18A工艺良率提升到85%、CPU将涨价15%
原神霜月三处月灵龛具体位置汇总
抖音怎么取消申请退货退款?抖音上取消退货怎么操作
合集38个项目筹集5.406亿美元 Figure融资2亿
Windy卫星云图怎么看?云层变化识别技巧
9条破亿视频,新号涨粉百万,过去半年谁在制造AI爆款?
如何修复Edge浏览器无法通过微软账号进行身份验证?
五菱星光L六座新能源SUV上市:三版可选,中配12.28
kimi提示词专家使用方法新手指南
新浪人工智能热点小时报丨2026年07月30日18时_今日实时人工智能热点速递
手机号码测吉凶
本站所有软件,都由网友上传,如有侵犯你的版权,请发邮件haolingcc@hotmail.com 联系删除。 版权所有 Copyright@2012-2013 haoling.cc