NAVA
NAVA
NAVA是百度ERNIE团队提出的6.3B参数原生音视频对齐生成模型,基于Wan2.2-TI2V-5B骨干网络。其核心架构为Align-then-Fuse MMDiT,先通过10层双流块建立音视频对齐空间,再经20层单流块融合文本与说话人embedding。在Verse-Bench上,NAVA在Sync-C(7.7914)、Sync-D(7.5655)、视频质量(0.659)和音频WER(0.099)上取得SOTA,参数量仅为开源基线的1/2至1/5。模型支持720p 1分钟生成、双声道音频、多音色控制及多分辨率输出。
TL;DR
NAVA 是一个 6.3 B 参数的联合音视频生成器,能够根据单一 prompt 合成同步的视频和音频——包括具有参考音色控制的多说话人语音以及图像条件续接。
与事后对齐的双塔结构或完全统一的三模态堆叠不同,NAVA 使用 Align-then-Fuse MMDiT:一个专用的对齐空间首先建立音视频对应关系,然后通过 cross-attention 融合上下文(文本、说话人 embedding)。在 Verse-Bench 上,它在 Sync-C / Sync-D / 视频质量 / 音频 WER 上取得了新的 SOTA,同时使用的参数比开源基线少 2 到 5 倍。
亮点
- 720p 1 分钟快速生成 — 通过 8-GPU Ulysses 序列并行,约 1 分钟生成 720p 同步音视频。
- 双声道音频 — 立体声音频(场景 + 语音)与视频联合去噪,无需事后 vocoder 对齐。
- 精确的多音色控制 — 参考 WAV 绑定到
<S>...<E>语音片段,实现每个说话人的声音身份控制。- 语言描述的镜头控制 — 直接从 prompt 控制镜头构图、运动和节奏。
- 多分辨率 — 同一 checkpoint 支持横屏 / 竖屏 / 方形宽高比。
模型详情
快速概览
| 架构 | Align-then-Fuse MMDiT(Wan2.2 骨干网络) |
| 参数量 | 6.3 B(骨干网络,联合 AV) |
| 模态 | 联合音频 + 视频,文本条件 |
| 分辨率 | 1280×704(推荐)· 也支持 960×960 |
| 帧数 / FPS | 37 帧 @ 24 fps ≈ 6 秒 · 55–61 帧 ≈ 9–10 秒 |
| 音频 | 25 个 latent token / 秒,最长 10 秒 |
| 采样 | Flow matching · UniPC 调度器 · 默认 50 步 |
| 精度 | bf16 |
| 并行 | 单 GPU 或 Ulysses 序列并行(最多 8 GPU) |
| 基础模型 | Wan-AI/Wan2.2-TI2V-5B |
架构
NAVA 将原生音视频对齐实例化为一个 Align-then-Fuse MMDiT 堆叠:
- 层级对齐层 — 10 个双流块。 视频和音频保持独立的 QKV 投影和 FFN,但在拼接的
[video_tokens; audio_tokens]上共享联合 self-attention,外加专用的文本 cross-attention。这构建了一个对齐空间,其中 AV 对应关系在没有语义上下文干扰的情况下学习。 - 统一融合层 — 20 个单流块。 视频和音频共享 QKV/FFN;统一的联合 attention 将所有 token 视为一个流,并带有一个单一的文本 cross-attention 路径。这是上下文条件去噪发生的地方。
- 骨干网络超参数。
dim=3072,ffn_dim=14336,24 个 attention 头,30 层(10 个双流 + 20 个单流),text_len=512,patch 大小(1, 2, 2)。QK 上的 RMSNorm;cross-attention norm;ε = 1e-6。 - 位置编码。 视频使用 3D RoPE(时间 + 高度 + 宽度),音频使用 1D RoPE,在联合 attention 路径内共同应用。
- 上下文内音色条件。 参考 WAV 的说话人 embedding(ReDimNet,192-d)通过上下文路径注入,并绑定到
<S>...<E>语音片段,从而在多说话人场景中实现每个说话人的音色控制。 - 3D 跨模态 CFG。 视频、音频和跨模态对齐方向的独立无分类器引导尺度(
video_align_guidance_scale、audio_align_guidance_scale)在推理时保持 AV 同步紧密。
与现有开源 AV 模型的不同之处
| 设计轴 | 典型基线 | NAVA |
|---|---|---|
| 流布局 | 双塔(事后对齐)或完全统一的三模态 | Align-then-Fuse — 先建立对齐空间,后融合上下文 |
| 语音控制 | 仅描述,无每个说话人音色 | 上下文内音色,通过参考 WAV 实现 |
| 参数预算 | 10 B – 32 B | 6.3 B |
随骨干网络一起提供的组件
| 组件 | 描述 | 大小 |
|---|---|---|
| WanAVModel(骨干网络) | MMDiT,联合 AV attention | 6.3 B |
| Wan2.2 Video VAE | 因果 3D ConvNet · 16×16×4 时空压缩 · 48 个 latent 通道 | 2.7 GB |
| LTX Audio VAE + Vocoder | 128 个 latent 通道 · 25 tokens/秒 · 内置波形解码器 | 348 MB |
| umt5-xxl Text Encoder | T5 · 4096-d embeddings | 11 GB |
| ReDimNet | 说话人 embedding · 192-d | ~50 MB |
评估
表 1 — VerseBench(通用 AV 能力)
NAVA 以最小的参数预算取得了最佳的 AV 同步(Sync-C / Sync-D)、视频质量和音频 WER。
| 模型 | 参数量 | 分辨率 | Sync-C ↑ | Sync-D ↓ | IB ↑ | 视频质量 ↑ | WER ↓ | PQ ↑ | FD ↓ |
|---|---|---|---|---|---|---|---|---|---|
| Ovi 1.1 | 10 B | 720p | 7.4839 | 7.9791 | 0.199 | 0.636 | 0.102 | 5.8432 | 0.9418 |
| MOVA | A18B (32 B) | 720p | 7.2888 | 7.808 | 0.269 | 0.603 | 0.126 | 7.2331 | 0.9222 |
| Davinci | 15 B | 540p | 7.1487 | 7.8158 | 0.269 | 0.600 | 0.151 | 5.9559 | 0.9307 |
| LTX 2.3 | 19 B | 512p | 7.2476 | 7.6902 | 0.337 | 0.576 | 0.106 | 6.9459 | 0.8287 |
| NAVA(我们的) | 6.3 B | 720p | 7.7914 | 7.5655 | 0.313 | 0.659 | 0.099 | 6.8609 | 0.8328 |
↑ 越高越好 · ↓ 越低越好 · 粗体 = 最佳 · 下划线 = 次佳。
表 2 — Seed-TTS-eval(语音质量)
在联合 AV 模型中,NAVA 的语音质量接近专用的纯音频系统。纯音频行仅供参考;它们不可直接比较。
| 类别 | 模型 | WER ↓ | 说话人相似度 ↑ |
|---|---|---|---|
| 纯音频 (参考) | CosyVoice | 4.29 | 60.9 |
| 纯音频 (参考) | Qwen2.5-Omni | 2.72 | 63.2 |
| 音视频联合 | DreamID-Omni | 33.44 | 34.1 |
| 音视频联合 | NAVA(我们的) | 5.81 | 62.4 |
如何使用
TL;DR 命令。 完成 §1 设置后:
bash scripts/inference.sh # 通用 T2AV bash scripts/inference_timbre.sh # I2AV + 音色控制输出位于
eval_results/目录下。
1 · 设置(一次性)
git clone https://github.com/ernie-research/NAVA && cd NAVA
# Python 依赖
pip install torch torchvision torchaudio
pip install diffusers transformers accelerate safetensors einops scipy PyYAML tqdm sentencepiece
pip install flash-attn --no-build-isolation
# 一次性下载所有权重 — 主 checkpoint + Wan2.2 VAE + T5 + LTX 音频 VAE
huggingface-cli download <NAVA-repo-id> --local-dir .
NAVA/
├── NAVA.ckpt # 主 checkpoint(24 GB)
├── Wan2.2-TI2V-5B/
│ ├── Wan2.2_VAE.pth # 2.7 GB
│ ├── models_t5_umt5-xxl-enc-bf16.pth # 11 GB
│ └── google/umt5-xxl/{spiece.model, tokenizer.json}
├── params/
│ └── LTX2/
│ ├── ltx-2.3-22b-dev_audio_vae.safetensors # 348 MB
│ └── LICENSE # LTX-2 社区许可证
└── configs/ # 推理 YAML 文件
LTX 音频 VAE 的 Python 代码已内置于 nava_src/vendor/ltx_core/ 下(参见其 NOTICE.md),因此无需单独克隆 LTX-Video 仓库。ReDimNet 在首次运行时通过 torch.hub 获取。
2 · 单命令推理(推荐,8 GPU SP)
该仓库提供了两个端到端脚本,它们内联构建 JSONL 并启动 SP=8 推理:
# 通用 T2AV(仅文本)
bash scripts/inference.sh
# I2AV + 音色控制(首帧图像 + 参考语音)
bash scripts/inference_timbre.sh
通过环境变量覆盖默认值:
CKPT=/path/to/NAVA.ckpt OUT_DIR=eval_results/run1 bash scripts/inference.sh
TIMBRE_SCALE=3.0 SPK_WAV=/path/to/spk.wav bash scripts/inference_timbre.sh
3 · 自定义批次 — 编写您自己的 JSONL
每行对应一个 prompt:
{"prompt": "一位男子在海边奔跑,镜头跟随。背景是海浪声和风声。"}
{"prompt": "两人对话<S>Hello<E><S>Hi there<E>", "spk_wavs": ["spk1.wav", "spk2.wav"]}
{"prompt": "镜头跟随主体...", "image_path": "/abs/path/first_frame.png"}
| 字段 | 必需 | 描述 |
|---|---|---|
prompt |
是 | 文本描述(也接受旧版字段名 text) |
image_path |
否 | 首帧图像的绝对路径 — 自动为此样本启用 I2V |
spk_wavs |
否 | 说话人参考 WAV 的绝对路径列表(最多 2 个) |
然后启动:
SETUPTOOLS_USE_DISTUTILS=stdlib torchrun \
--nnodes=1 --nproc_per_node=8 \
--master_addr=127.0.0.1 --master_port=29507 \
inference_nava.py \
--config configs/baseline_t2av_demo_mmdit_no_split_ltx_control_unipc.yaml \
--ckpt NAVA.ckpt \
--out_dir ./outputs \
--data_format json --data_file my_prompts.jsonl \
--width 1280 --height 704 --frames 37 --fps 24 \
--steps 50 --save_sample --gen_turn 1 --use_sp
输出位于 outputs/{save_path}-{gen_turn}_av.mp4。对于音色控制的样本,还需传递 --timbre_cfg --timbre_align_guidance_scale 3.0。
模式速查表
| 目标 | JSONL 字段 | 额外标志 |
|---|---|---|
| 文本 → AV | prompt |
— |
| 图像 → AV | prompt + image_path |
(自动检测) |
| 音色控制语音 | prompt + spk_wavs |
--timbre_cfg --timbre_align_guidance_scale 3.0 |
| 9 秒视频 | 任意 | --frames 55 |
| 单 GPU(较慢) | 任意 | 省略 --use_sp |
4 · Prompt 重写(推荐用于简短或英文输入)
NAVA 在中文密集描述上训练;简短或英文 prompt 在推理前进行重写会显著受益。提供了三种途径,它们共享相同的系统 prompt 和采样配置(因此输出风格保持一致),同时 <S>...<E> 语音片段会原样保留。
| 途径 | 后端 | 速度 | 最佳用途 |
|---|---|---|---|
vLLM 批处理服务器(pe_src/) |
通过 vLLM 服务的 Qwen3-4B-Thinking-2507,异步 HTTP | < 2 秒 / prompt | 离线批处理 |
本地 transformers,单次(gradio_demo/rewrite_single.py) |
相同模型,进程内 | 40–80 秒 / prompt | 一次性 CLI |
| Gradio "Rewrite" 按钮 | 同上,托管在 Gradio 中 | 40–80 秒 / prompt | 交互式 UI |
# 批处理路径:启动 vLLM 服务器,然后重写一个 txt 文件中的 prompts
bash pe_src/start_server.sh --gpu 0 --low-footprint
python pe_src/rewrite.py -i prompts.txt -o prompts_rewritten.txt
5 · Gradio Web UI
交互式演示,支持点击重写(Qwen3-4B)、图像上传和参考 WAV 上传:
bash gradio_demo/start_gradio.sh \
--config configs/baseline_t2av_demo_mmdit_no_split_ltx_control_unipc.yaml \
--ckpt NAVA.ckpt \
--rewrite_model pe_src/Qwen3-4B-Thinking-2507 \
--port 8000 --nproc 8
python gradio_demo/gradio_server.py --debug --port 8000
偏见、安全与滥用
NAVA 可以根据参考图像(image_path)和参考语音(spk_wavs)合成视频和语音。未经同意使用它来描绘真实人物——包括再现面部相似性或语音相似性——是许可证所禁止的,并且在您的司法管辖区也可能违法。我们建议:
- 仅使用经同意批准的参考媒体。
- 将生成的内容标记为合成内容。
- 在重新分发前应用来源/水印。
引用
@article{nava2026,
title = {NAVA: Native Audio-Visual Alignment for Joint Audio-Video Generation},
author = {ERNIE Team},
journal = {arXiv preprint},
year = {2026},
}
致谢
NAVA 建立在优秀的 upstream 工作之上:Wan2.2-TI2V-5B(视频骨干网络和 VAE)、LTX 2.3(音频 VAE + 内置 vocoder)、umt5-xxl(文本编码器)和 ReDimNet(说话人 embedding)。我们还感谢开源 AV 生成社区——Ovi、MOVA、Davinci、LTX——发布了强大的基线,使得公平的基准测试成为可能。
许可与联系方式
基于 Apache-2.0 发布。有关研究/商业咨询,请联系百度 ERNIE 团队。