一张照片加几行 Python:让声音有一张会动的脸
来源:dev.to — 2026-11-01
📋 概述
做过语音代理的人都知道那种尴尬:用户在和一个空白屏幕说话。Openspline 用 MIT 许可解决了这件事——给它一张人像和一路音频,它实时返回这段音频对应的说话视频,模型、TTS 和提示词都留在你自己手里。想快点试就上云,在面板里建一个 avatar;要全部留在本机就自托管,但必须是 Linux 或 WSL2 加 NVIDIA 显卡,AMD 和苹果 GPU 目前不支持,所以 Mac 用户只能走云端。作者把安装脚本、启动 demo、装 SDK 到第一段流式代码都走了一遍,并列出最值得提醒的几个坑:关掉自己的扬声器输出、每个 GPU worker 一次只服务一个会话、远程访问需要 HTTPS 与可能的 TURN 服务、API key 只能留在后端。
🔑 核心要点
- 它只解决「脸」,不绑定你的技术栈:LLM、TTS、提示词都不被接管,LiveKit、OpenAI Realtime、Gemini Live、ElevenLabs Agents、Pipecat 都有现成连接器。
- 低画质是默认,而且应该先选低:README 的 A100 短测里低画质约 64 FPS、高画质约 8 FPS,但作者提醒这是引擎速度而不是端到端延迟。
- 打断必须显式通知:用户抢话时要调用 interrupt(),否则虚拟形象会继续往下说,观感立刻崩掉。
- 容量是硬约束:一个 GPU worker 同时只服务一个会话,忙时会抛 CapacityError,人多只能在 workers.yaml 里加 worker。
💡 金句
It doesn't care where the audio comes from. Your LLM, your TTS, and your prompts stay yours.
译:它不在乎音频从哪里来:你的模型、你的语音合成、你的提示词,都还是你的。
👍 0
👎 0
← 返回 dev.to 首页