Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

数字语音女朋友 · Digital Voice Girlfriend

一个全本地、会说话有口型的 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).

架构 · Architecture

网页前端 (按住说话 / 打字) → 桥接服务(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/句

快速开始 · Quick Start

📖 完整从零部署教程见 docs/DEPLOY.md(环境搭建 → 模型下载 → LiveTalking → 大脑 → 启动 → 排错,1-2 小时)

依赖 · Dependencies

  • 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 (各自下载, 不入库)

  • models/OmniVoice/ — k2-fsa/OmniVoice (HF, 3.1GB), 声音克隆
  • models/faster-whisper-base/ — ASR
  • WSL: LiveTalking + wav2lip.pth + wav2lip256_myavatar_v2 (由 idle.mp4 生成)

启动 · Run

# 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, 麦克风需要安全上下文)

要点 · Notes

  • 文字与语音同步显示 (轮询 /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 重编码)

语音模型推荐 · TTS Model Guide

实测环境: 2026-08 全量实测 (热合成 5-8 秒音频)。推荐按常规部署配置编写,每项标注最低显存要求

🥇 首选 · Qwen3-TTS 1.7B (Base)

  • 克隆还原度最佳,最贴近参考音色 (小雅实测验证)
  • 速度: 热合成 ~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 构建一次复用 + 文字先行,感知延迟可控

🥈 辅助 · OmniVoice INT4 (速度方案)

  • 速度: 热合成 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+。

接入其他 Agent · Bring Your Own Brain

本项目的大脑是任何 OpenAI 兼容 API —— 不绑定 Hermes。桥接服务只发标准 POST /v1/chat/completions,换大脑只需改配置 + 人设。

支持的大脑 (Agent)

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.py

部署到新机器

git clone https://github.com/daletyler1737/digital-voice-girlfriend
cp .env.example .env   # 改配置
# 下载模型 (见 README 模型表) + 起 LiveTalking + 起桥接

目录 · Layout

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 克隆测试

License

Apache-2.0 (模型权重与素材版权归原作者)

About

全本地 AI 数字人: Hermes大脑 + OmniVoice声音克隆 + LiveTalking口型 (RTX3060 6GB)

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages