一个全本地、会说话有口型的 AI 数字人「小雅」。基于 Hermes Agent + faster-whisper + OmniVoice (声音克隆) + LiveTalking (wav2lip256 口型) 构建,NVIDIA GPU (最低显存 4GB) 可跑。
A fully local AI digital companion "Xiaoya" that speaks with lip-sync. Built with Hermes Agent + faster-whisper + OmniVoice (voice clone) + LiveTalking (wav2lip256), runs on NVIDIA GPU (min 4GB VRAM).
网页前端 (按住说话 / 打字) → 桥接服务(7861) → faster-whisper (ASR)
→ Hermes soullove profile (大脑, deepseek) → TTS (OmniVoice 克隆声)
→ LiveTalking (8010, wav2lip256 口型) → WebRTC 数字人画面
| 服务 | 端口 | 说明 |
|---|---|---|
| Hermes gateway (soullove profile) | 8642 | 大脑 API (OpenAI 兼容) |
| LiveTalking | 8010 | WSL, wav2lip256 口型, 25fps 形象 |
| 桥接服务 bridge_server.py | 7861 | ASR + 大脑 + TTS + 口型调度 |
| OmniVoice TTS | 7863 | INT4 量化, 声音克隆, ~4.5s/句 |
📖 完整从零部署教程见 docs/DEPLOY.md(环境搭建 → 模型下载 → LiveTalking → 大脑 → 启动 → 排错,1-2 小时)
- Windows + WSL2 + NVIDIA GPU (CUDA 12.4+),最低显存 4GB (OmniVoice 方案 2.5GB 起步)
- Hermes Agent 配置 soullove profile (含 API Server key)
- Python 3.11 venv:
qwen-tts-venv(桥接),omnivoice-venv(TTS)
models/OmniVoice/— k2-fsa/OmniVoice (HF, 3.1GB), 声音克隆models/faster-whisper-base/— ASR- WSL: LiveTalking +
wav2lip.pth+wav2lip256_myavatar_v2(由 idle.mp4 生成)
# 1. Hermes soullove gateway (8642)
HERMES_PROFILE=soullove hermes gateway run --profile soullove
# 2. LiveTalking (WSL, 8010)
cd ~/livetalking/LiveTalking && python app.py --transport webrtc --model wav2lip \
--avatar_id wav2lip256_myavatar_v2 --stun stun:stun.l.google.com:19302
# 3. OmniVoice TTS (7863)
omnivoice-venv/Scripts/python.exe bridge/omnivoice_server.py
# 4. 桥接 (7861)
qwen-tts-venv/Scripts/python.exe bridge/bridge_server.py
# 5. 打开前端
# http://localhost:7861/ (用 Edge/Chrome, 麦克风需要安全上下文)- 文字与语音同步显示 (轮询 /api/last_reply, lt_ok 时一起呈现)
- TTS 服务与口型服务同机跑时注意显存预算 (Qwen3-TTS ~4GB + 口型 ~1.6GB + 系统 ~1.5GB)
- TTS 引擎实测: OmniVoice int4 4.5s ✅ / Qwen3-TTS 19s / XTTS 8s (中文不像) / VoxCPM 32-62s
- 形象: 25fps (原始 16fps 会加速 1.5x, 需 ffmpeg 重编码)
实测环境: 2026-08 全量实测 (热合成 5-8 秒音频)。推荐按常规部署配置编写,每项标注最低显存要求。
- 克隆还原度最佳,最贴近参考音色 (小雅实测验证)
- 速度: 热合成 ~19s/句 (prompt 复用后;flash-attn 或 vLLM 可大幅提升)
- 最低显存: 4GB (bf16 权重 3.4GB + 激活/KV),6GB 可跑但需独占 (与口型服务同跑建议 ≥8GB)
- 模型:
Qwen/Qwen3-TTS-12Hz-1.7B-Base(ModelScope/hf-mirror, 3.86GB) - 推荐理由: 音色还原度天花板,prompt 构建一次复用 + 文字先行,感知延迟可控
- 速度: 热合成 4.5s/句 (num_step=8),24kHz
- 最低显存: 2.5GB,可与口型服务从容同跑
- 模型:
k2-fsa/OmniVoice(HF, 3.1GB) - 适合: 对话流畅优先;int4 有轻微量化损失
| 引擎 | 速度 | 最低显存 | 克隆还原度 | 结论 |
|---|---|---|---|---|
| OmniVoice INT4 (num_step=16) | ~9s | 2.5GB | ✅ 更好 | 音质+速度平衡 |
| Qwen3-TTS 1.7B int8/int4 | — | — | Windows+transformers5.x 有 bug, 无增益 | |
| XTTS-v2 | 8s | 2GB | ❌ 中文不像 | 不推荐 |
| VoxCPM2 (2B) | 62s | 10GB (bf16 4.3GB 权重+48kHz 解码) | 48kHz 顶级 | 大显存首选之一 |
| VoxCPM-0.5B | 32s | 2GB | 16kHz 一般 | 不推荐 |
| 服务 | 速度 | 特点 |
|---|---|---|
| 火山 Doubao-语音合成-2.0 | 1-3s | Seed-TTS 2.0, 情感拟人, 声音复刻, 免费额度 |
| MiniMax 语音 | 1-2s | 商用级克隆, 流式 |
| 阿里 CosyVoice | 2s | 声音复刻, 免费额度 |
- 8GB+: Qwen3-TTS 1.7B 首选 (如需更快可尝试 flash-attn 编译)
- 12GB+: VoxCPM2 / OmniVoice + vLLM-Omni (RTF 0.025, 40x 实时) 或 Nano-vLLM
依据: 实测基准 (3060: Qwen3-TTS 19s / OmniVoice 4.5s) + 显存带宽/算力缩放。实际受驱动、软件版本、flash-attn 影响,误差 ±30%。开启 flash-attn 或 vLLM 后可再提速 3-10x。
| 显卡 (代) | 显存 | 显存带宽 | Qwen3-TTS 1.7B | OmniVoice int4 |
|---|---|---|---|---|
| RTX 3060 (30系) | 12GB | 360 GB/s | ~19s | ~4.5s |
| RTX 4060 (40系) | 8GB | 272 GB/s | ~16s | ~4s |
| RTX 4070 (40系) | 12GB | 504 GB/s | ~12s | ~3s |
| RTX 4080 (40系) | 16GB | 717 GB/s | ~8.5s | ~2s |
| RTX 4090 (40系) | 24GB | 1008 GB/s | ~6s | ~1.5s |
| RTX 5070 (50系) | 12GB | 672 GB/s | ~9s | ~2.5s |
| RTX 5080 (50系) | 16GB | 960 GB/s | ~7s | ~1.8s |
| RTX 5090 (50系) | 32GB | 1792 GB/s | ~4s | ~1s |
规律: TTS 逐 token 解码主要吃显存带宽 (非纯算力),30→40→50 系带宽约 1.5x/1.8x 递进,速度约线性提升;40/50 系还支持 FP8 进一步加速。 显存够不够: 4GB 起可跑 Qwen3-TTS (独占);OmniVoice int4 只要 2.5GB;VoxCPM2 需要 10GB+。
本项目的大脑是任何 OpenAI 兼容 API —— 不绑定 Hermes。桥接服务只发标准 POST /v1/chat/completions,换大脑只需改配置 + 人设。
| Agent | 接入方式 |
|---|---|
| Hermes Agent (默认) | hermes gateway run --profile soullove → 内置 API Server (8642) |
| Claude Code | 本地起 OpenAI 兼容代理 (如 LiteLLM 转 Claude API) → 指向它 |
| OpenAI / 国产模型 | 直接用官方 API 地址 (改 SOULLOVE_API + KEY) |
| OpenClaw / Workbuddy / Codex | 同样: 任何暴露 OpenAI 兼容端点的服务 |
| 本地 vLLM / llama.cpp | 本地部署后指向 localhost 端点, 完全离线 |
# 1. 配置 (环境变量或 .env)
export SOULLOVE_API="https://你的OpenAI兼容端点/v1/chat/completions"
export SOULLOVE_API_KEY="sk-xxx"
export SOULLOVE_MODEL="你的模型名"
# 2. 人设 (可选): 用 SOUL.md 模板作为系统提示词
# Hermes: 放 profile 的 SOUL.md; 其他: 拼进 system prompt
# 3. 起服务 (不变)
python bridge/bridge_server.pygit clone https://github.com/daletyler1737/digital-voice-girlfriend
cp .env.example .env # 改配置
# 下载模型 (见 README 模型表) + 起 LiveTalking + 起桥接bridge/ 桥接服务 + 前端 + TTS 服务
bridge_server.py 主桥接 (ASR→大脑→TTS→口型)
index.html 前端单文件 (语音球 + 文字输入)
omnivoice_server.py OmniVoice int4 服务 (7863)
xtts_server.py XTTS 服务 (弃用)
install_*.sh 环境安装脚本
bench_*.py TTS 性能基准
test_*.py TTS 克隆测试
Apache-2.0 (模型权重与素材版权归原作者)