第3章 视频与音频 Agent
视频 LLM(Video-LLaVA/Gemini 2.5/Qwen2.5-VL video)+ 音频(Whisper/Voxtral/GPT-4o Realtime/Gemini Live)全景对比、流式 API 范式、应用场景
第3章 🎬🎤 视频与音频 Agent
一句话:视频 LLM 让 agent 看 1h 监控/会议/教学,Realtime API 让 agent 200ms 延迟说话——这两个方向是 2025-2026 多模态最大变化。Gemini 2.5 Pro 在视频上一骑绝尘(1M 上下文,真看 1h),GPT-4o Realtime / Gemini Live 重塑了语音对话范式。
📑 目录
- 一、视频 Agent 全景
- 二、Gemini 2.5 视频原生
- 三、Qwen2.5-VL video / VideoLLaMA / Video-LLaVA
- 四、视频处理工程实践
- 五、音频 Agent 全景
- 六、Whisper
- 七、流式 API 范式 ⭐
- 八、TTS(Text-to-Speech)
- 九、应用场景与选型
一、视频 Agent 全景
视频 = 时间维度 + 视觉,挑战:
1 张图 ── 1 个 visual frame
1 分钟视频 ── 30 fps × 60 s = 1800 frames
1 小时视频 ── 108,000 frames
如果每帧像普通 VLM 那样占 256 token → 1h 视频 = 27M token,远超任何 LLM。
3 种主流策略:
1.1 帧采样
每秒抽 1-2 帧,把 1h 视频降到 ~3600-7200 帧。再 token 压缩 → 仍是几十万 token。
1.2 时间池化
CNN-style 时间维度池化(VideoChat / Video-LLaVA),把多帧合成单 spatio-temporal feature。
1.3 Long-context 直接吞
Gemini 2.5 Pro:1M 上下文 + 高效编码 → 可直接读 1h 视频(token 数几十万,模型扛得住)。
二、Gemini 2.5 视频原生
地址:https://ai.google.dev/gemini-api/docs/vision#video-input
优势:
- 1M 上下文 ──1h 视频原生支持
- 视频是 first-class citizen ──prompt 里直接
Part.from_uri(video_uri) - 自动抽帧(默认 1 fps,可配置)
- 视频理解 benchmark Video-MME 领先(78%+)
典型用法(Python):
import google.generativeai as genai
# 上传视频
video_file = genai.upload_file('meeting.mp4')
# 等处理完
import time
while video_file.state.name == 'PROCESSING':
time.sleep(5)
video_file = genai.get_file(video_file.name)
# 调用
model = genai.GenerativeModel('gemini-2.5-pro')
response = model.generate_content([
"总结这段会议的主要决策点和 action items",
video_file
])
print(response.text)
Pricing(2026):
- 视频 token:每秒 ~263 token(Gemini Pro)= 1h 视频 ≈ 95 万 token
- 输入:1.2** ⭐
业界共识:长视频处理首选 Gemini 2.5 ——别家差距明显。
三、Qwen2.5-VL video / VideoLLaMA / Video-LLaVA
3.1 Qwen2.5-VL video ⭐(开源 SOTA)
- 支持长视频(动态帧率)
- 32B / 72B 性能强
- 已被 vLLM / SGLang 等推理框架支持
# vLLM 推理 Qwen2.5-VL 视频
vllm serve Qwen/Qwen2.5-VL-32B-Instruct \
--tensor-parallel-size 4 \
--max-model-len 65536 # 视频需要长上下文
3.2 VideoLLaMA / VideoLLaMA 3
学术开源,DAMO 等团队。
3.3 Video-LLaVA
LLaVA 团队的视频版,2023-12 发布。架构开放,适合改造研究。
3.4 ShareGPT4Video
数据集 + baseline,2024-06 发布,大规模视频 caption 数据(40M+ 高质量 caption)。
四、视频处理工程实践
4.1 抽帧
import cv2
def extract_frames(video_path, fps=1):
"""每秒抽 fps 帧"""
cap = cv2.VideoCapture(video_path)
video_fps = cap.get(cv2.CAP_PROP_FPS)
interval = int(video_fps / fps)
frames = []
i = 0
while cap.isOpened():
ret, frame = cap.read()
if not ret:
break
if i % interval == 0:
frames.append(frame)
i += 1
cap.release()
return frames
4.2 关键帧选择(降低 token)
不必每秒 1 帧——只在有变化时抽:
def keyframe_selection(video_path, threshold=0.3):
"""SSIM-based 关键帧"""
from skimage.metrics import structural_similarity
frames = extract_frames(video_path, fps=2)
keyframes = [frames[0]]
for f in frames[1:]:
sim = structural_similarity(
cv2.cvtColor(keyframes[-1], cv2.COLOR_BGR2GRAY),
cv2.cvtColor(f, cv2.COLOR_BGR2GRAY)
)
if sim < (1 - threshold):
keyframes.append(f)
return keyframes
技巧:对静态视频(slides / talking head)关键帧可降到 1 张/分钟,token 压缩 60×。
4.3 视频 + 转录文本组合
更鲁棒做法:视频(关键帧)+ 全文转录(Whisper):
def video_summary(video_path):
# 1. 关键帧
keyframes = keyframe_selection(video_path)
# 2. 音频转录
transcript = whisper_transcribe(video_path)
# 3. 一起送给 LLM
response = gpt4o_call(
prompt="基于以下关键帧和转录,总结视频",
images=keyframes,
text=f"转录:\n{transcript}"
)
return response
优势:transcript 提供语义、关键帧提供视觉细节,比单纯 Gemini video 还便宜 + 准确(很多场景)。
五、音频 Agent 全景
┌────────────────────────────────────────┐
│ ASR(Speech → Text) │
│ Whisper / Whisper Large v3 ⭐ │
│ Voxtral(Mistral) │
│ Qwen2.5-Audio │
│ Gemini Audio │
├────────────────────────────────────────┤
│ Native Audio LLM(Speech ↔ LLM) │
│ GPT-4o Realtime ⭐ ⭐ │
│ Gemini Live(2025) ⭐ │
│ Qwen2.5-Omni(开源全模态) │
│ Anthropic Realtime(2026 Q1) │
├────────────────────────────────────────┤
│ TTS(Text → Speech) │
│ OpenAI tts-1 / 1-hd │
│ ElevenLabs │
│ Google Wavenet │
│ Cartesia / PlayHT │
└────────────────────────────────────────┘
六、Whisper
论文:arXiv 2212.04356,OpenAI 2022-09 发布。
特点:
- 30+ 语言 ASR
- 完全开源(MIT 许可证)
- Large v3(2024)是当前 SOTA 开源 ASR
6.1 用法
import whisper
model = whisper.load_model('large-v3')
result = model.transcribe('audio.mp3')
print(result['text'])
6.2 fast-whisper / whisper.cpp
实战常用:
- faster-whisper:CTranslate2 后端,4× 快于原版
- whisper.cpp:C++ 实现,可跑 macOS / iPhone
- WhisperX:加 forced alignment,精确时间戳
6.3 部署
# 用 fast-whisper 跑生产服务
pip install faster-whisper
from faster_whisper import WhisperModel
model = WhisperModel('large-v3', device='cuda', compute_type='float16')
segments, info = model.transcribe('audio.mp3', beam_size=5)
七、流式 API 范式 ⭐
7.1 旧范式(2022-2024):串联
用户说话 ─→ Whisper ─→ 文本 ─→ GPT-4 ─→ 文本 ─→ TTS ─→ 用户听
(3-5 秒延迟)
问题:延迟高、转换损失语义(情感、语调丢失)、模型间割裂。
7.2 新范式(2024 起):Native 流式
GPT-4o Realtime API(2024-10)开创:
用户说话 ──┐
├─→ GPT-4o(同时听 + 理解 + 生成)──→ 用户听
用户视频 ──┘ (200-300 ms 延迟)
特点:
- 同一模型处理音频输入 + 输出
- 音频 token 化,与文本混合
- 可中途打断、可情感化语音
- WebSocket / WebRTC 流式
7.3 GPT-4o Realtime 用法
from openai import OpenAI
client = OpenAI()
with client.realtime.connect(model='gpt-4o-realtime-preview') as conn:
conn.session.update(session={
'modalities': ['audio', 'text'],
'voice': 'alloy',
'instructions': '你是一个友好的助手'
})
# 发送音频
conn.send({'type': 'input_audio_buffer.append', 'audio': audio_b64})
conn.send({'type': 'input_audio_buffer.commit'})
conn.send({'type': 'response.create'})
# 接收音频流
for event in conn:
if event.type == 'response.audio.delta':
play(event.delta)
7.4 Gemini Live(2025)
类似 Realtime,多模态原生(同时音频 + 视频):
import google.generativeai as genai
# Gemini Live 开 session
session = genai.live.connect(model='gemini-2.0-flash-live')
# 同时发音频和视频帧
session.send_audio(audio_chunk)
session.send_video_frame(camera_frame)
# 接收
for response in session:
if response.audio:
play(response.audio)
if response.text:
print(response.text)
优势:屏幕共享 + 视频 + 语音三合一(适合远程会议 / 协作场景)。
7.5 Qwen2.5-Omni(开源全模态)
阿里 2025-Q3 开源,7B 全模态(音频 + 视频 + 文本一体)。
- 完全开源
- 可端侧部署
- 性能接近 GPT-4o(部分 benchmark)
7.6 流式 API 应用
| 场景 | 方案 |
|---|---|
| 手机助手(Siri/Google Assistant 替代) | GPT-4o Realtime + 自家 wake word |
| 远程客服 | Realtime + 工具调用 |
| 同声传译 | Realtime,实时翻译 |
| AI 老师 / 陪练 | Realtime + 教学 prompt |
| 远程医疗咨询 | Gemini Live(屏幕 + 视频 + 语音) |
八、TTS(Text-to-Speech)
虽然 Realtime API 内置 TTS,但独立 TTS 仍有用:
8.1 主流商业 TTS
| 服务 | 特色 | 价格 |
|---|---|---|
| OpenAI tts-1 / tts-1-hd | 主流,质量稳定 | $15/M chars |
| ElevenLabs | 业界最强 ⭐ 表情/克隆 | $99/月起 |
| Google Wavenet | 多语言,云原生 | $4/M chars |
| Cartesia | 极低延迟(<100ms) | 按用量 |
| PlayHT | 克隆,创作 | $39/月起 |
8.2 开源 TTS
- XTTS-v2(Coqui):多语言克隆
- F5-TTS:质量极好的 zero-shot 克隆
- Bark:Suno AI 开源
- GPT-SoVITS:中文社区流行
- Spark-TTS(2025):Apache 2.0,工业级
8.3 用法
# OpenAI TTS
import openai
response = openai.audio.speech.create(
model='tts-1-hd',
voice='alloy',
input='你好,这是一段测试'
)
response.stream_to_file('out.mp3')
# ElevenLabs
from elevenlabs import generate, save
audio = generate(
text='你好',
voice='Rachel',
model='eleven_turbo_v2_5'
)
save(audio, 'out.mp3')
九、应用场景与选型
Q1: 视频 or 音频?
│
├── 视频
│ ├── 长视频(>10 min) → Gemini 2.5 Pro ⭐
│ ├── 短视频开源 → Qwen2.5-VL video
│ └── 帧采样 + Whisper 组合 → GPT-4o + Whisper
│
└── 音频
│
├── 单纯 ASR(转录)
│ ├── 高质量 → Whisper Large v3 ⭐
│ ├── 极速 → faster-whisper
│ └── 端侧 → whisper.cpp
│
├── 流式对话
│ ├── 闭源 + 高质量 → GPT-4o Realtime ⭐
│ ├── 视频 + 音频 → Gemini Live ⭐
│ └── 开源 → Qwen2.5-Omni
│
└── TTS
├── 高质量 → ElevenLabs / OpenAI tts-1-hd
├── 低延迟 → Cartesia
└── 开源 → F5-TTS / XTTS-v2
9.1 视频 + 音频组合最佳实践
典型企业场景(会议摘要、教学视频分析):
def video_audio_pipeline(video_path):
# 方案 A: 全交给 Gemini
return gemini_2_5_video_analyze(video_path)
# 方案 B: 拆分(更便宜 + 可控)
transcript = whisper_transcribe(extract_audio(video_path))
keyframes = keyframe_selection(video_path)
summary = gpt4o(transcript=transcript, keyframes=keyframes)
return summary
| 方案 | Cost(1h 视频) | 质量 | 延迟 |
|---|---|---|---|
| 全 Gemini 2.5 | ~$1.5 | 中-高 | 高 |
| Whisper + 关键帧 + GPT-4o | ~$0.5 | 高 ⭐ | 中 |
✅ 自我检验清单
- 能说出视频 token 爆炸问题及 3 种解法
- 能解释 Gemini 2.5 在长视频上的优势
- 能区分 Qwen2.5-VL video / VideoLLaMA / Video-LLaVA
- 能说出关键帧选择的实战意义
- 能解释 Realtime API 的范式与传统 ASR+LLM+TTS 串联的区别
- 能背出 GPT-4o Realtime / Gemini Live / Qwen2.5-Omni 三家定位
- 能根据”视频 / 音频转录 / 流式对话 / TTS”4 个场景给出选型
📚 参考资料
视频
- Video-LLaVA (arXiv 2311.10122)
- VideoLLaMA 3 (arXiv 2406.07476)
- ShareGPT4Video (arXiv 2406.04325)
- Qwen2.5-VL Technical Report
音频 / 流式
- Whisper (arXiv 2212.04356)
- OpenAI Realtime API — https://platform.openai.com/docs/api-reference/realtime
- Gemini Live — https://ai.google.dev/gemini-api/docs/live
- Voxtral (Mistral 2024) — https://mistral.ai/news/voxtral
- Qwen2.5-Omni — https://github.com/QwenLM/Qwen2.5-Omni
TTS
- ElevenLabs — https://elevenlabs.io
- OpenAI TTS — https://platform.openai.com/docs/guides/text-to-speech
- F5-TTS (arXiv 2410.06885)
工程实践
- faster-whisper — https://github.com/SYSTRAN/faster-whisper
- whisper.cpp — https://github.com/ggerganov/whisper.cpp
- WhisperX — https://github.com/m-bain/whisperX
下一章:第4章 多模态 Agent 评测 —— MMMU / MathVista / MMBench / Video-MME / VoiceBench 等 5 大主流 benchmark + SOTA 数据 + 幻觉问题分析。