Talk to 峰哥把实时语音对话、音色克隆和人格注入拼到了一起,工程链路延迟压在 1 秒以内。你可以像打电话一样,跟 B 站百万粉丝博主「峰哥亡命天涯」的 AI 分身聊天,音色克隆这块交给 VoxCPM2 完成。
项目简介
目标很直接:和「峰哥亡命天涯」的 AI 分身实时语音聊天。不是文字转语音那种,而是真的对着话筒聊,声音和性格都得像峰哥。
峰哥是这套架构跑通的第一个完整例子。架构本身支持换成别人,你只要准备好语音素材和人格描述,具体做法见下面「换成其他人的声音和性格」那一节。
演示视频:Demo 视频(5.6 万+ 围观)
这个项目有什么不同?
语音克隆的项目不少,实时语音对话的项目也不少,问题是两边通常不通气:
- 能实时对话的(如 GPT-4o Voice)→ 不支持自定义音色克隆
- 能克隆音色的(如 Bark、XTTS)→ 只能文本转语音,不能 实时对话
这个项目把三件事拼在了一起:
- 音色克隆:15-45 秒的语音素材,就能克隆任何人的声音
- 人格注入:说话风格、口头禅、思维方式都跟着来,声音像,性格也像
- 实时对话:像打电话一样聊,工程链路延迟压到 1 秒以内
技术栈
用户说话 → STT(语音识别)→ LLM(大语言模型)→ TTS(音色克隆合成)→ 用户听到回复
↑
人格注入 + 记忆召回(可选)
| 模块 | 默认方案 | 说明 |
|---|---|---|
| 实时音视频 | LiveKit | WebRTC 框架,处理浏览器与 Agent 之间的音频流 |
| 语音识别 (STT) | Cartesia ink-whisper(推荐) | 免费层可用,中文效果好,延迟低 |
| 大语言模型 (LLM) | MiniMax-M2.7-highspeed(推荐) | 国产模型,TTFB 极低,无需 VPN |
| 语音合成 + 音色克隆 (TTS) | VoxCPM(推荐) | 开源音色克隆,效果最好,需 GPU(云或本地) |
| 人格系统 | 基于 女娲 Skill 蒸馏 + 峰哥 Skill + 直播语料补充 | 说话风格 + 口头禅 + 思维方式 |
| 记忆系统 | OpenViking(可选) | 对话记忆沉淀与召回 |
仓库里的 VoxCPM 服务用的是 VoxCPM2:runpod_setup.sh 会把 openbmb/VoxCPM2 下载下来,worker/voxcpm_tts.py 则实现了给 LiveKit agents 用的 VoxCPM2 流式 TTS 插件。
备选方案
改 .env.local 里一行就能换:
- STT:Cartesia ink-whisper(推荐)/ Deepgram nova-2
- LLM:MiniMax(推荐,国产不用 VPN)/ DeepSeek / Gemini
- TTS:VoxCPM(推荐,开源,克 隆效果最好)/ MOSS-TTS(CPU 能跑,兜底用)/ Cartesia Sonic(云端,需要 $5/月 Pro 订阅)/ MiniMax TTS
快速开始
最简单的方式:让 AI 编程助手帮你配
git clone https://github.com/YeJe-cpu/talk-to-fengge.git
cd talk-to-fengge
然后把项目丢给任意一个 AI 编程助手,Claude Code、Cursor、Codex、Windsurf,或者你手边别的工具都行。跟它说「帮我配置并启动这个项目」,Agent 会去读 .env.example,带着你填 API key、装依赖、起服务。
手动配置
1. 前置依赖
- Python 3.12+
- uv(推荐)或 pip
- LiveKit Server
2. 安装
# 安装 Python 依赖
uv sync
# 安装 LiveKit(macOS)
brew install livekit
3. 配置
cp .env.example .env.local
# 编辑 .env.local,填入你的 API key
至少要准备这几样:
4. TTS 音色克隆方案
方案 A:VoxCPM(推荐,开源免费,克隆效果最好)
需要 GPU,NVIDIA 显卡,显存 8GB 起步。本机有卡就本地跑,效果最好、延迟也最低;没卡就用云 GPU,比如 RunPod L4。
峰哥的参考音频已经放进仓库,路径是 assets/voice_samples/fengge_ref.wav,内容整理自峰哥公开的直播。VoxCPM 服务配好就能直接用:
# 在 GPU 机器上
bash runpod_setup.sh # 安装依赖 + 下载模型(首次约 10 分钟)
方案 B:MOSS-TTS(CPU 能跑,兜底用)
不用 GPU,但克隆效果和速度都不如 VoxCPM。在 .env.local 里设 TTS_PROVIDER=moss。
方案 C:Cartesia Sonic(云端,不用 GPU)
想克隆音色,得先有 Cartesia Pro 订阅($5/月)。在 .env.local 里设 TTS_PROVIDER=cartesia。
5. 启动
# 方式一:双击启动脚本(macOS)
./Talk-to-Me-V3.6.command
# 方式二:手动启动各组件
livekit-server --dev --node-ip=127.0.0.1 # 终端 1
LLM_PROVIDER=minimax python -m worker.main start # 终端 2
python -m worker.web_server # 终端 3
打开 http://127.0.0.1:8766 就能开聊了。
换成其他人的声音和性格
峰哥是内置的完整示例。想换成别人,准备两样东西就够:
1. 声音素材
录一段 15-45 秒的干净人声,别带背景音乐和噪音,拿 VoxCPM 克隆音色。
2. 人格描述
最省事的办法:把这个 repo 用 AI 编程助手打开,跟它说:
「我想把人格换成 XXX。这是 ta 的一些素材:[粘贴文字 / 链接 / 你对 ta 的描述]。请参考
docs/persona-*.md和worker/persona.py里峰哥的写法,帮我生成新的人格配置。」
AI 助手会先读现成的峰哥人格当模板,再通过跟你对话把关键特征挑出来,生成新的 persona 代码。手里的素材越全(聊天记录、语音转文字、社交媒体内容、直播切片),效果越好。
架构
┌──────────────────────────────────────────────────┐
│ 浏览器前端 │
│ HTML + LiveKit Web SDK │
│ 麦克风采集 → WebRTC → 播放回复 │
└─────────────────────┬────────────────────────────┘
│ WebRTC (audio)
▼
┌────────────────────────── ────────────────────────┐
│ LiveKit Server(本地) │
│ 房间管理 / 音频流转发 │
└──────┬──────────────────────────┬────────────────┘
│ │
▼ ▼
┌──────────────────────┐ ┌──────────────────┐
│ Agent Worker (Python) │ │ Web Server │
│ │ │ (端口 8766) │
│ 人格 + 记忆 → LLM │ │ 提供前端页面 │
│ │ └──────────────────┘
│ 音频 → STT │
│ ↓ │
│ LLM │
│ ↓ │
│ TTS(VoxCPM 音色克隆)│
│ ↓ │
│ 音频输出 │
└──────────┬─────────────┘
│ (可选)
▼
┌──────────┐
│ OpenViking │
│ 记忆服务 │
└──────────┘
已知不足与后续方向
- 部署环节多:STT、LLM、TTS 各要各的 API key 或服务,还没有一键部署的方案
- 实际延迟看网络:工程链路延迟低于 1 秒,但真聊起来体感大概 2~3 秒,受网络环境和 API 响应速度影响
- 记忆系统有局限:OpenViking 主要靠识别用户侧的事件和主体来沉淀记忆,可峰哥这个场景里 AI 话多、用户话少,能沉下来的东西有限
- 前端简陋:现在就是个带星空粒子效果的单页,没有数字人,也没有虚拟形象
后面想做的:
- 灵动数字人 / 虚拟形象接入
- 一键部署,自动抓素材生成 persona(自动化人格蒸馏)
- 更多克隆人格模板
最想要哪个功能,可以去 Issues 告诉作者。
致谢
- LiveKit:实时音视频框架
- VoxCPM:开源音色克隆模型(OpenBMB)
- OpenViking:本地记忆系统
- 女娲 Skill:人格蒸馏方法论(峰哥人格的底层蒸馏工具)
- 峰哥 Skill:峰哥人格蒸馏产出(本项目的人格基础)
许可证:Apache-2.0(基于 LiveKit Agents 框架开发) 。
相关链接
- GitHub:YeJe-cpu/talk-to-fengge
- 演示视频:X / Twitter
- 作者:X / Twitter · 作品集 & 联系方式
感谢作者 Leaf(@YeJe-cpu)的开源分享!
