目标:读完后能说清楚 ASR、TTS、VLM 和 Omni 模型分别解决什么问题;知道音频、图像进入模型后经历了哪些处理;能理解编码器、特征、token、对齐、声码器等常见术语在链路中的位置。

1. 先建立全局认识#

1.1 什么是“模态”#

模态(modality)是信息的表现形式。文字、语音、环境声音、图片和视频是不同模态。同一件事可以由多种模态表达,例如一句“下雨了”既可以写成文字,也可以由人说出来,还可以表现为一张雨景照片。

语言模型原本主要处理离散的文字 token,而音频和图像是连续信号。多模态模型的第一个共同问题因此是:怎样把声音或像素转换成神经网络可以处理的一串向量或 token

1.2 三类模型的边界#

类型典型输入典型输出核心任务
Audio Model(音频模型)语音、音乐、环境声、文字文字、语音、音频标签听懂声音或生成声音
VLM(Vision-Language Model,视觉语言模型)图片/视频 + 文字指令文字、坐标、结构化数据让语言模型理解视觉内容并用语言回答
Omni Model(全模态模型)文字、图片、视频、音频的任意组合文字、语音,部分模型还能生成图片/视频在一个系统或一组联合训练的模块中跨模态理解与生成

“多模态”不等于“什么都能生成”。只接收图片、输出文字的 VLM 已经是多模态模型;能够同时接收音频、图像、视频并实时输出文字和语音,才更接近这里所说的 Omni 模型。

1.3 所有链路都在做三件事#

原始信号
↓ 前处理:采样、缩放、切块、归一化
模态编码器
↓ 把波形或像素变成高维特征
对齐 / 连接模块
↓ 把不同模态的特征转换到主模型可使用的表示空间
主干模型
↓ 理解上下文并预测输出表示
解码器 / 生成器
↓ 把表示还原为文字、波形、图片等可观察结果
最终输出

下面分别沿着真实的输入到输出链路展开。


2. Audio Model:让模型听懂和生成声音#

Audio Model 是处理音频的总称。最常见的两条链路是:

ASR:语音波形 → 文字
TTS:文字 → 语音波形

音频不只有人声。环境声识别、音乐生成、说话人识别和语音情感识别也属于音频模型。入门时先掌握 ASR 和 TTS,因为它们构成语音助手的输入、输出两端。

2.1 音频进入模型前是什么#

现实中的声音是连续的空气振动。麦克风按固定频率测量振幅,得到一串数字,这个过程叫采样(sampling)

一秒音频就可能包含数万个采样点,直接逐点建模成本很高。传统和许多现代语音模型会先把波形转换成声谱图(spectrogram):横轴是时间,纵轴是频率,数值表示某一时刻某个频段的能量。

常见的 Mel 频谱(梅尔频谱)进一步把频率轴映射为更接近人类听觉分辨方式的尺度。它仍然是声音特征,不是文字,也不是最终音频。

2.2 ASR:自动语音识别#

ASR(Automatic Speech Recognition,自动语音识别)负责把语音转写成文字。一次较完整的线上链路通常是:

麦克风/音频文件
↓ 解码、重采样、转单声道
VAD:找出真正有人说话的区间
↓ 分段
声学前端:波形 → Mel 频谱或可学习特征
声学编码器:提取发音和上下文信息
文字解码器:预测字符、子词或单词
时间戳、标点、大小写、数字格式化
可读的转写文本

VAD 为什么在 ASR 前面#

VAD(Voice Activity Detection,语音活动检测)判断哪一段有人声。它不负责识别说了什么,只负责给出“从第几秒到第几秒存在语音”。

没有 VAD 时,长录音中的静音会浪费计算,背景噪声也可能被误识别成文字。实时会议场景还需要靠 VAD 判断一句话是否暂时结束,但过早切段会截断句子,过晚切段会增加延迟。

VAD 怎么从声音中识别人声#

VAD 不是一次判断整段录音,而是先把音频切成很短的连续片段,通常每片约 10~30 ms。这种短片段叫 frame(音频帧),这里的“帧”表示一小段声音,不是视频画面。

连续波形
↓ 每 10~30 ms 切成一帧
[帧 1] [帧 2] [帧 3] [帧 4] ...
↓ 为每帧提取特征或直接输入神经网络
语音概率:0.02 0.08 0.91 0.96 ...
↓ 阈值 + 连续帧规则
静音 │ 语音开始 ────────── 语音结束 │

判断过程分为三步。

第一步:观察这一小段声音的声学特征。

传统 VAD 会人工计算一些特征:

但“声音强”不等于“有人说话”。空调、音乐和汽车声也可能很强;轻声说话的能量又可能很低。因此只使用音量阈值的 VAD 在复杂环境中很容易出错。

第二步:模型给每一帧计算语音分数。

现代 VAD 通常用带标注的音频训练一个小型神经网络。训练数据会标明哪些时间段有人声、哪些没有。模型接收波形、频谱或其他可学习特征,学习人声在能量、频率结构和前后变化上的组合规律,最后为当前帧输出一个分数,例如:

0.03:非常不像人声
0.48:不确定
0.95:非常像人声

这个模型只学习“是否有人声”,不会预测音素或文字,所以比 ASR 小得多、运行也更快。WebRTC VAD 体现了传统信号处理与统计判断路线,Silero VAD 则是神经网络 VAD 的常见实例。

第三步:把逐帧分数变成稳定的语音区间。

不能看到某一帧超过 0.5 就立刻开始录音,也不能某一帧低于 0.5 就立刻结束。人说话时字与字之间有短暂停顿,单帧结果也可能受噪声干扰。因此系统通常使用状态规则:

连续若干帧高于开始阈值 → 判定语音开始
进入说话状态后继续接收音频
连续若干帧低于结束阈值 → 判定语音结束

开始和结束可以使用不同阈值,这叫 hysteresis(迟滞),目的是避免状态在临界分数附近反复切换。检测到低分后再保留一小段等待时间,叫 hangover(尾部延迟),用于保住句中停顿和最后一个字的尾音。

例如:

语音概率: .03 .06 .72 .91 .95 .42 .83 .88 .20 .10 .05
状态: 静音 └─── 一段完整语音 ─────┘ 静音
↑ 连续高分后开始 ↑ 连续低分后结束
VAD 能判断什么,不能判断什么#

VAD 输出的是时间区间或逐帧语音分数:

speech: 1.24s ~ 3.86s
speech: 5.10s ~ 8.42s

它不能告诉系统说话人是谁、说了什么,也不一定能区分真人语音、电视人声和扬声器回放。环境变化还会产生两类典型错误:

阈值较低通常更不容易漏掉人声,但会送入更多噪声;结束等待时间较长不容易截断句子,但用户需要等更久才得到回复。因此 VAD 参数必须结合麦克风距离、噪声环境和实时延迟要求调整。

ASR 主干模型在预测什么#

一段语音经过声学编码器后,会变成按时间排列的特征。假设“你好”这段声音被切成 6 个短时间步:

音频时间: t1 t2 t3 t4 t5 t6
声音内容: ─── “你”的发音 ─── “好”的发音 ──

训练数据通常只告诉模型整段录音的文字是“你好”,不会告诉它“你”精确对应 t2~t3。ASR 模型必须一边学习声音和文字的对应关系,一边输出文字。CTC、RNN-T 和 Attention Encoder-Decoder 的主要区别,就是怎样建立这个对应关系,以及生成当前文字时允许参考什么信息

严格来说,“Encoder-Decoder”是很宽的结构名称,RNN-T 也包含编码和预测模块。下面第三类特指 Attention-based Encoder-Decoder(基于注意力的编码器—解码器,简称 AED)

方法什么时候预测文字预测时参考什么更适合什么场景
CTC每个音频时间步都做一次分类主要看音频特征;模型内部不直接参考已输出文字结构简单、解码快、需要近似时间对齐
RNN-T读音频的同时,决定继续读音频还是输出文字当前/过去的音频 + 已输出文字实时字幕、语音输入法等流式识别
Attention Encoder-Decoder每生成一个文字 token,主动从音频特征中选择相关部分音频上下文 + 已输出文字离线转写、翻译和多任务生成
CTC:先逐帧分类,再压缩成文字#

CTC(Connectionist Temporal Classification,连接时序分类)在每个音频时间步上预测一个文字 token 或“空白”。空白表示这个时间步不产生新文字。

对“你好”,模型可能得到:

时间步: t1 t2 t3 t4 t5 t6
预测: 空白 你 你 空白 好 好
处理 1:合并连续重复 token → 空白 你 空白 好
处理 2:删除空白 → 你好

为什么需要重复和空白?因为一个字的发音会持续多个时间步,而两个相同的字也需要靠空白分开。例如“看看”可以表示为 看、空白、看,否则连续的两个“看”会被合并。

CTC 的关键限制是:一个时间步只做一次分类,输出顺序必须跟音频时间顺序一致。它不会在模型内部根据“前面已经输出了什么字”来决定当前字,因此语言上下文能力相对弱。例如只听当前声音很难区分同音字时,CTC 本身获得的帮助有限。工程上可以在解码时再接语言模型,但那是额外组件。

CTC 不需要人工标注每个字的精确起止时间,训练时会计算所有可能对齐方式的总概率。它结构简单、解码快,也容易从逐帧结果中估计文字位置。

RNN-T:边读音频,边参考已经输出的文字#

RNN-T(Recurrent Neural Network Transducer,循环神经网络转导器)比 CTC 多利用了一类信息:已经输出的文字。

它有三个主要部分:

当前已听到 t1~t3 + 当前已输出“你”
联合判断下一步:
- 输出“好”:文字向前走一步,音频位置暂时不动
- 输出空白:暂时不输出文字,继续读取下一个音频时间步

这里的空白不是最终结果,而是“当前声音信息还不够,继续读音频”的控制信号。RNN-T 可以在同一个音频位置连续输出多个 token,也可以连续读取多个音频时间步而不输出。

它适合流式识别,是因为做当前判断时只需要已经收到的音频和已经输出的文字,不必等整段录音结束。与 CTC 相比,它能利用输出历史判断更合理的文字;代价是训练和搜索过程更复杂。这里的 RNN 是历史命名,现代实现的编码器或预测网络不一定使用传统循环神经网络。

Attention Encoder-Decoder:生成每个字时,从音频中找相关部分#

Attention-based Encoder-Decoder(基于注意力的编码器—解码器)通常先让编码器处理一段音频,再由文字解码器逐 token 生成结果。

整段音频特征: [t1] [t2] [t3] [t4] [t5] [t6]
↑ 生成“你”时重点读取前半段
↑ 生成“好”时重点读取后半段
已输出“你” + 音频上下文 → 预测下一个 token“好”

Attention(注意力)在这里负责计算:生成当前 token 时,各个音频位置应该占多大权重。它不要求像 CTC 那样,在每个音频时间步立刻做一次文字分类。因此模型可以先综合较长范围的声音,再决定输出什么,也容易把语种、任务指令、标点和翻译统一成 token 生成任务。

普通的全局注意力通常要看到整段音频,所以天然更适合离线处理;通过分块、受限注意力等设计也能做流式版本,但实现会更复杂。文字解码器逐 token 生成结果,前面生成错了,也可能影响后面的输出。

最短记忆版本#
CTC: 每个音频时间步先猜一个标签,最后去重、去空白。
RNN-T:一边听,一边结合已经写出的文字,决定“现在写字”还是“继续听”。
AED: 生成每个字时,用注意力从一段音频特征中选择相关信息。

三者不是互斥的产品分类。实际系统可能使用 CTC 辅助训练 Attention 模型,或者给 CTC、RNN-T 接外部语言模型。判断一个具体模型时,要看它真正使用的训练目标和解码过程。

用 Whisper 理解编码器—解码器 ASR#

Whisper 是 OpenAI 发布的通用语音识别模型。结构上,它就是上一节的 AED(Attention-based Encoder-Decoder,基于注意力的编码器—解码器):音频编码器先看完一段声音,文字解码器再逐个生成 token;生成每个 token 时,用注意力从音频特征里选相关的部分。

简化链路:

最长约 30 秒的音频片段
↓ log-Mel spectrogram(对数梅尔频谱)
Audio Encoder(音频编码器)
↓ 音频特征
Text Decoder(文字解码器)
↓ 语种、任务、时间戳和正文 token
转写 / 语音翻译结果

Whisper 的特点是:解码器生成的不只是句子正文。语种、任务类型和时间戳也被写成特殊 token,和正文排在同一串输出里,例如:

<|zh|> <|transcribe|> <|0.00|> 你好,世界。 <|1.20|>
↑ ↑ ↑ 正文+标点 ↑
中文 转写任务 开始时间 结束时间

因此语种识别、转写、翻译、时间戳在 Whisper 里不是三个外挂模型,而是同一个解码器在预测不同种类的 token。正文里的标点也一起生成。这就是“多任务统一成预测一串 token”。

这里的“端到端”是指:从音频特征直接生成这些 token,不再显式串联独立的音素识别器、发音词典和传统语言模型。它不表示线上没有工程步骤——长录音仍可能先做 VAD 分段,再切成约 30 秒的块,最后再做数字、专有名词等格式化。

ASR 链路上的辅助任务:大多不是主干模型顺便生成的#

上一节 Whisper 自己生成的语种、任务和时间戳,是模型内部的统一输出。下面这些则是整条 ASR 产品链路上的额外模块,解决的是“文字之外”的问题。大多数不是 Whisper 那一类主干模型顺便生成的。

任务它回答什么典型输出
Diarization(说话人分离/分段)谁在什么时候说话speaker_1: 0s~5s
Speaker Identification(说话人识别)说话者是已登记的哪一个人张三
Punctuation Restoration(标点恢复)给没有标点的识别结果补标点你好,世界。
Forced Alignment(强制对齐)已有音频和正确文本时,每个字词对应哪一段时间你 0.12s~0.28s
Hotword(热词)提高人名、产品名等特定词被识别出来的概率解码时偏向这些词

两点容易混淆:

一句话:Whisper 能回答“说了什么、用哪种语言、要转写还是翻译、大概什么时候说的”;“谁说的、这个词必须按热词表来、精确到每个字的起止时间”,一般要另接模块。

怎样评价 ASR#

最常用的办法是:准备一段人工校对过的参考文本,拿模型输出去对,统计错了多少。

WER(Word Error Rate,词错误率)按“词”计数:

WER =(替换词数 + 删除词数 + 插入词数)/ 参考文本词数

三种错误分别是:

例如参考是 今天 天气 很好,模型输出 今天 天汽 很好 啊:替换 1 个(天气→天汽),插入 1 个(啊),参考共 3 个词,WER = 2/3 ≈ 67%。数字越低越好

中文常按字而不是按词算,这时用 CER(Character Error Rate,字错误率)。公式相同,只是把“词”换成“字”。上面例子按字算:参考 6 个字,错 2 处,CER ≈ 33%。

入门只需要记住:

评估一个 ASR 系统时,至少同时看:错字多少、专有名词稳不稳、延迟能不能接受。不要只报一个测试集上的 WER。

2.3 ASR 之外的音频理解#

ASR 只关心语音中的文字内容,通用音频理解还要识别非语言信息:

这些任务通常也经过“波形/频谱 → 音频编码器 → 音频特征”,区别主要在输出头和训练目标:分类任务输出类别概率,事件检测还输出时间区间,音频描述则接语言解码器生成文字。

2.4 TTS:文本转语音#

TTS(Text-to-Speech,文本转语音)负责把文字合成为人声。先理解经典的两阶段链路:

原始文本
↓ 文本规范化:2026 → “二零二六年”或“二千零二十六”
分词 / G2P:文字 → 音素及韵律提示
声学模型:音素 → Mel 频谱
Vocoder(声码器):Mel 频谱 → 音频波形
编码为 WAV / MP3,播放或流式传输

文本前端:决定“读什么、怎么读”#

声学模型与声码器各管什么#

声学模型预测“每一小段应该包含哪些频率能量、持续多久”;声码器把这些频谱特征还原成连续波形。Tacotron 2、FastSpeech 2 等主要体现声学模型路线,WaveNet、HiFi-GAN 等常被用作声码器。

VITS 把变分推断、可逆变换、时长预测和对抗训练组合到一个可端到端训练的系统中,可以直接从文字相关表示生成波形。端到端训练表示各模块可以围绕最终语音质量联合优化,并不代表文本清洗和线上音频处理消失了。

新路线:音频 Codec Token + 语言模型#

近年的 TTS 和语音对话模型常把音频先压缩成离散 token:

训练音频 → Neural Audio Codec → 一串离散音频 token
文字 + 音色/参考音频 → 自回归或扩散模型 → 新音频 token
新音频 token → Codec Decoder → 波形

Codec(编解码器)负责压缩与还原音频;Neural Audio Codec(神经音频编解码器)使用神经网络学习这种压缩。它的 token 不直接等于音素,其中同时携带内容、音色、韵律和声学细节。

这种做法让模型能像预测文字 token 一样预测声音 token,便于实现零样本音色复刻、上下文续说和与语言模型联合建模。代价是序列可能很长,而且内容、音色、噪声等因素纠缠在一起,稳定控制并不容易。VALL-E、CosyVoice 一类模型可以帮助理解这条路线。

TTS 中常见的控制信息#

怎样评价 TTS#

2.5 一个语音助手其实是多段系统#

传统语音助手通常是级联系统:

用户说话
↓ VAD + ASR
文字
↓ LLM 推理 / 工具调用
回答文字
↓ TTS
回答语音

优点是每段可独立替换、调试和审计;缺点是 ASR 会丢掉语气、情绪和环境声,错误还会传给后面的语言模型。统一语音模型试图直接处理音频并生成音频,但生产系统仍常保留文字转写,用于检索、审核、日志和无障碍显示。


3. VLM:让语言模型看懂图片和视频#

3.1 VLM 解决什么问题#

VLM(Vision-Language Model,视觉语言模型)把视觉信息和语言放进同一个任务中,常见能力包括:

VLM 主要输出文字或结构化 token。它和文生图模型不是一回事:Stable Diffusion 一类扩散模型的主要目标是生成像素;典型 VLM 的主要目标是根据视觉输入生成语言。

3.2 图片如何变成视觉 token#

一张图片通常先被缩放、归一化,再切成固定大小的 patch(图像块)。例如把图片切成许多 14 × 14 像素的小块,每块转换为一个向量。随后由视觉编码器结合各块之间的关系,形成视觉特征。

常见的视觉编码器是 ViT(Vision Transformer,视觉 Transformer)。它不直接“看到物体名称”,而是通过大量图像训练学习纹理、形状、文字和空间关系等特征。

图片
↓ resize / normalize / patchify
图像块序列
↓ Vision Encoder(常见为 ViT)
视觉特征序列
↓ Projector / Resampler
语言模型能接收的视觉 token
↓ LLM 根据视觉 token 和文字指令生成回答
文本 / JSON / 坐标

这里的 Projector(投影层)通常是一个小型神经网络,用于把视觉编码器的向量维度和分布转换到语言模型使用的表示空间。Resampler(重采样器)会把数量不固定或过多的视觉特征压缩成较固定数量的 token,以控制计算量。

3.3 CLIP 解决了视觉和语言的初步对齐#

CLIP(Contrastive Language-Image Pre-training,对比式图文预训练)分别编码图片和文字,并通过对比学习(contrastive learning)让匹配的图文向量更接近、不匹配的更远。

“一只在草地上的狗” → Text Encoder ─┐
├→ 计算图文相似度
对应图片 → Image Encoder ─┘

CLIP 擅长得到可比较的图文表示,可用于零样本分类和检索;但它本身不是一个能进行长对话的生成式语言模型。后来的 VLM 常复用类似的视觉编码器,再通过连接层把视觉特征交给 LLM。

3.4 用 LLaVA 理解典型 VLM 结构#

LLaVA(Large Language and Vision Assistant)展示了一条很清楚的工程路线:

图片 → 预训练视觉编码器 → 视觉特征 → 线性投影层 ─┐
├→ 语言模型 → 回答
用户问题 → 文字 tokenizer → 文字 token ──────┘

训练通常分阶段进行:

  1. 图文对齐预训练:先训练连接层,让语言模型能够接收视觉特征。
  2. 指令微调(instruction tuning):用“图片 + 用户问题 + 合适回答”数据训练模型按指令对话。

这说明 VLM 不一定从零训练全部组件。常见方案是复用已训练好的视觉编码器和 LLM,再训练连接层并进行多模态微调。

3.5 分辨率、动态切图与 token 成本#

小尺寸输入会丢失文档小字和细节;把整张高分辨率图片直接切成 patch,又会产生大量视觉 token。视觉 token 越多,语言模型的显存、计算量和首 token 延迟通常越高。

常见处理方式包括:

Qwen2.5-VL 是动态分辨率路线的实际例子:不同尺寸图片会转换为不同长度的视觉 token;视频侧还要表示帧与真实时间的关系。它说明图片理解和视频理解不仅是“多放几张图”,还要处理空间尺度和时间顺序。

3.6 OCR、定位和视觉问答不是同一个能力#

一个模型能描述图片,不代表它能稳定读取密集小字;能 OCR,也不代表它理解表格中行列之间的关系。评估时要使用与真实任务一致的数据和输出约束。

3.7 视频理解增加了时间轴#

视频是带时间顺序的图像和音频。常见 VLM 会按一定的 FPS(Frames Per Second,每秒帧数)抽取视频帧,再编码为视觉 token:

视频 → 解码与抽帧 → 每帧视觉特征 → 加入时间/顺序信息
└→ 可选:音轨 → 音频特征 ─────┘
语言模型回答

抽帧太稀会漏掉短暂事件,抽帧太密则 token 数量和计算成本很高。只处理帧而不处理音轨的“视频模型”,无法知道画外音、音乐或撞击声等信息。

3.8 VLM 的主要失败方式#

因此高风险场景不能只保存最终回答,还应保存原图、裁剪区域、模型版本和结构化中间结果,以便复核。


4. 统一多模态模型:方向与关键问题#

4.1 “统一”可以统一到不同程度#

统一多模态不是单一架构,可以分为三层:

  1. 统一接口:系统内部仍是 ASR → LLM → TTS 或 VLM → LLM,只是对用户暴露一个接口。这是产品统一,不是模型统一。
  2. 统一主干:不同编码器把音频、图片等转换为表示,再交给同一个 Transformer 主干推理,输出端仍可能有不同解码器。
  3. 统一 token 与生成目标:文字、图像、音频都被离散化为 token,由同一套或紧密耦合的模型理解和预测。训练更统一,但序列长度、质量和实时性更难兼顾。

判断一个模型是否“端到端 Omni”,要具体问:输入是否直接接收原始音频/图像?中间是否必须转成文字?输出是独立 TTS 合成,还是模型根据共同隐藏表示直接生成语音 token?

4.2 以 Qwen2.5-Omni 理解一种实际架构#

Qwen2.5-Omni 使用 Thinker–Talker 架构,可接收文字、图片、音频和视频,并流式输出文字与语音:

文字 ──────────────────────┐
图片/视频 → Visual Encoder ├→ Thinker → 文本 token
音频 → Audio Encoder ──┘ │
├→ 高层隐藏表示与上下文
Talker → 语音 token → 音频

这个例子说明,“统一”不一定要求只有一个网络。多个专用编码器和生成头仍然可以联合训练、共享上下文,并形成端到端的多模态系统。

4.3 统一多模态的主要技术问题#

不同模态的 token 速率不同#

一句文字可能只有几十个 token,同一时长的语音可能产生数百个音频 token,视频又包含大量帧和图像块。若全部直接进入 Transformer,注意力计算和显存会迅速增长。因此需要抽帧、下采样、token 压缩、分层编码和缓存。

空间与时间必须对齐#

图像主要包含二维空间关系,音频是一维时间序列,视频同时有空间和时间。统一模型不仅要知道“出现了什么”,还要知道“在哪里出现、什么时候发生、声音与哪一帧对应”。

理解与生成的目标不同#

理解任务允许压缩掉部分像素或音色细节,只要语义保留即可;生成任务却需要恢复高频纹理、音色和节奏。一个内部表示很难同时做到高度压缩又保留所有生成细节,因此实际系统常保留不同编码器、解码器或双主干。

实时交互需要因果和流式设计#

离线模型能看到完整输入;实时模型在用户尚未说完、视频仍在输入时就要处理。因果(causal)表示当前输出不能依赖未来还未到达的数据。系统还要处理打断、回声消除、轮次判断、缓存和音视频同步,这些并不会因为使用 Omni 模型而自动消失。

4.4 当前值得区分的两条方向#

这两条方向可能继续融合,但不要因为产品都叫“全模态”就假设其输入、输出和内部链路完全相同。


5. 把三部分放回一张图#

┌─ ASR ─────────────→ 文字
音频/语音 ─ 音频前端 ───┤
└─ Audio Encoder ─┐
图片 ─ 图像切块 ─ Vision Encoder ─────────┼→ 共享主干 / LLM ─→ 文字、结构化结果
│ │
视频 ─ 抽帧 + 可选音轨 ─ 时空编码 ──────────┘ ├→ Talker/Codec ─→ 语音
└→ 图像生成器 ───→ 图片
文字 ─ Text Tokenizer ───────────────────────────────→ 主干或 TTS

读任何多模态模型论文或架构图时,可以按下面五问拆解:

  1. 它接受哪些原始模态,输出哪些模态?
  2. 每种输入如何前处理,又由哪个编码器转换成特征?
  3. 不同模态如何对齐并接入主干模型?
  4. 输出由语言解码器、声码器、Codec 解码器还是扩散模型生成?
  5. 它是离线还是流式?评估的是单模块指标还是完整用户链路?

6. 模型速查:用具体模型定位技术路线#

模型主要定位用它理解什么
Whisper多语种 ASR、语音翻译log-Mel 频谱 + Encoder-Decoder ASR,多任务统一为 token 预测
VITS端到端 TTS时长、潜变量、对抗训练与波形生成如何联合优化
VALL-E / CosyVoiceCodec Token TTS把语音离散化后像语言序列一样建模、参考音频控制音色
CLIP图文表示对齐双编码器和对比学习;“能比较图文”与“能生成回答”的区别
LLaVA视觉对话视觉编码器 + 投影层 + LLM 的典型 VLM 连接方式
Qwen2.5-VL图片、文档、视频理解动态分辨率、视觉定位、视频时间表示
Qwen2.5-Omni多模态理解与实时语音输出专用编码器 + 共享 Thinker + Talker 的 Omni 架构

模型版本和产品能力会持续变化。学习时优先看技术报告中的输入表示、训练目标和输出解码方式,不要只看能力演示。

7. 参考资料#