把 京东 JoyAI-EchoWM 的「统一相机意图 + 同框架视听生成」范式,做成一个可直接运行、 可配置、可扩展的开源工具。
2026-09-11,京东探索研究院在 JDD 大会开源 JoyAI-EchoWM —— 一个「视听世界模型」: 在同一个框架内同时生成视频、环境音、音乐与语音,并实时响应用户操作。它的核心创新是 把键盘/手柄操作抽象为统一的「相机意图(Camera-Intent)」表示,映射成连续 6-DoF 轨迹, 让第一人称与第三人称共用同一套控制接口。在 158 个 WBench Navigation 案例上,它拿到 81.7 的平均分(一致性 89.8 / 交互性 87.2)。
EchoWorld 把这一范式的完整骨架工程化落地:
- ✅ 统一视听世界模型:一个内核同时产出视频帧 + 环境音 + 音乐 + 语音;
- ✅ 相机意图 → 6-DoF 轨迹:四元数/SE(3) 位姿、Catmull-Rom 平滑、第一/第三人称统一接口;
- ✅ 实时交互闭环:输入操作 → 更新位姿 → 生成视听 → 输出,逐步流式;
- ✅ 视听记忆:关键帧 + 音频指纹,缓解长时生成漂移;
- ✅ WBench 风格评测:一致性 / 交互性 / 连贯性三项指标;
- ✅ 确定性可运行内核:程序化场景渲染 + DSP 音频合成,纯
numpy+ 标准库,装好即跑; - ✅ 真实权重接入接口:
load_checkpoint/save_checkpoint预留,可直接替换内核。
传统世界模型把「第一人称」和「第三人称」拆成两套控制。EchoWM 用一个统一表示消灭这种分裂:
键盘/文本/JSON 操作 ──▶ 相机意图序列 ──▶ 连续 6-DoF 轨迹 ──▶ 视听生成
W/A/S/D/空格/C/方向键/Q/E 等离散操作被解析成 CameraIntent(动作 + 幅度 + 时长),
再由 TrajectoryGenerator 插值为平滑位姿序列(平移 Catmull-Rom + 旋转四元数 slerp)。
Pose(position, Quaternion) 表示刚体在 SE(3) 上的位姿,6 个自由度:平移 x/y/z +
旋转 roll/pitch/yaw。本仓库提供完整的四元数运算(乘法/共轭/求逆/球面插值/欧拉角互转)
与位姿合成/求逆/插值,全部 numpy 实现。
┌─▶ 视觉:程序化场景 → 射线求交 → Lambert 着色 → RGB 帧
位姿 + 场景 ──────┤
└─▶ 听觉:环境音(1/f 噪声合成) + 音乐(和弦/旋律) + 语音(共振峰)
↓
混音器 Mixer → 连续音轨
EchoWM 尚无显式持久三维记忆、长时生成会漂移。EchoWorld 用 AVMemory 缓存关键帧与
音频指纹,长时生成时按步就近召回关键帧做一致性锚定。
# 仅核心(零服务依赖,最快)
pip install numpy
# 或完整安装(含 FastAPI 服务)
pip install -e .python -m echoworld.cli.main doctor输出应包含 ALL CHECKS PASSED。
python -m echoworld.cli.main generate --text "你好,欢迎来到回声世界" --scene corridor --out out
# → out/frame.png + out/audio.wavpython -m echoworld.cli.main interact --text "前进, 左转, 前进, 抬头"python -m echoworld.cli.main trajectory --text "前进, 左转, 前进, 右转, 停止"python -m echoworld.cli.main evalpip install ".[serve]"
python -m echoworld.cli.main serve --port 8000
# http://127.0.0.1:8000/health
# http://127.0.0.1:8000/docs配置为 JSON(echoworld/configs/default.json),可用 echoworld.config.load_config 加载:
| 键 | 默认 | 说明 |
|---|---|---|
camera.width/height |
320/240 | 渲染分辨率 |
camera.fov_deg |
60 | 视场角 |
audio.sample_rate |
22050 | 音频采样率 |
audio.ambience |
forest | 环境音(wind/rain/forest/city/ocean/cave/fire) |
audio.music_enabled |
true | 是否叠加音乐 |
audio.speech_enabled |
true | 是否合成语音 |
world.scene |
corridor | 场景(corridor/outdoor) |
world.first_person |
true | 第一/第三人称 |
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /health |
健康检查 + 模型信息 |
| POST | /generate |
生成单帧视听 |
| POST | /interact |
交互闭环 |
| POST | /eval |
WBench 评测 |
| GET | /models |
模型卡列表 |
| WS | /ws |
WebSocket 实时交互 |
echoworld/
├── echoworld/
│ ├── core/ # 6-DoF 相机/位姿/四元数/轨迹/意图/世界状态
│ ├── audio/ # 环境音/音乐/语音/混响/空间音频 DSP
│ ├── vision/ # 程序化场景/渲染/帧编码(PNG)
│ ├── world/ # 统一视听世界模型/生成器/交互/记忆
│ ├── eval/ # WBench 评测 + 指标
│ ├── serving/ # FastAPI + WebSocket
│ ├── cli/ # 命令行
│ ├── models/ # 模型卡 (JSON)
│ └── configs/ # 默认配置
├── tests/ # 单元测试
├── examples/ # 示例脚本
├── docs/ # 文档
├── k8s/ # Kubernetes 部署
├── Dockerfile
├── pyproject.toml
└── requirements.txt
Apache-2.0。热点背景中的 EchoWM 商标/权重归京东探索研究院所有,本仓库仅复现其方法范式。