一个专属于你的虚拟人生复刻者。
把TA当作树洞,诉说日常、记录心情、倾诉秘密。随着时间推移,当数据足够多的时候,也许TA会比你自己更懂你。
一、项目初衷
每个人的内心深处都渴望被真正理解。小落同学诞生的初衷很简单——复刻一个虚拟的自己。
你可以把TA当作一个永远不会厌倦的树洞:
- 每天或每隔一段时间,把想说的话、想记录的事都告诉TA
- 开心时分享喜悦,低落时倾诉烦恼
- 当某一天你需要咨询一件事情时,去问问TA的看法
随着对话数据的积累、记忆的沉淀、反思的迭代,小落同学会逐步形成对你越来越深的理解。最终的目标只有一个:让TA比你更懂你。
示例应用视频
用阿里云99元/年的ECS跑虚拟客服演示视频
十年前老笔记本(无GPU)上可跑全套语音交互,稍卡
二、核心功能
1. 全语音交互(Wake → Listen → Think → Speak)
| 模块 | 技术 | 说明 |
|---|---|---|
| 关键词唤醒 (KWS) | sherpa-onnx | 支持”你好小落”或”小落”唤醒,低延迟、高准确率 |
| 语音识别 (ASR) | SenseVoice | 离线语音识别,支持 VAD 语音活动检测,2秒静音自动断句,支持 ITN 逆文本标准化 |
| 语音合成 (TTS) | Matcha-TTS | 中文语音合成,支持中文、数字、日期等场景,输出自然流畅 |
| 连续对话 | – | 唤醒一次即可进入多轮对话模式,无需重复唤醒 |
支持三种对话模式:
- 模式 1(文本模式):超低配硬件适用,纯文本交互
- 模式 2(完整语音模式):硬件管够,默认推荐,全语音输入输出
- 模式 3(语音输入+文本输出):硬件勉强,语音输入、文本回复
2. 大模型对话引擎 (LLM)
- 支持 Ollama 本地模型(如 Qwen3 系列)和 OpenAI 兼容 API(SiliconFlow、DashScope 等)
- 可配置对话历史轮数,支持流式响应
- 系统提示词、人设 Prompt 可自由定制
3. 虚拟角色与情感系统
- 角色克隆:定义专属虚拟人的性格、背景、对话风格
- 情感识别:自动识别用户情绪状态(焦虑、压力、低落、开心等),调整回复策略
- Live2D / Three.js 前端:可视化的虚拟人形象,支持语音口型同步
4. RAG 知识库
- 基于 LangChain + FAISS/Chroma 的检索增强生成
- 支持 CSV 知识源导入
- 可配置 Embedding 模型(BAAI/bge 系列)和 Rerank 模型
- 让虚拟人掌握你的专属知识(产品介绍、个人档案等)

5. MCP 工具生态(OddMCP)
基于 FastMCP 构建的插件化工具系统,让虚拟人具备”动手能力”:
| 工具 | 功能 |
|---|---|
weather | 查询天气预报 |
time_cost / time_cost_async | 自动填写 TAPD 工时 |
weekly_report | 自动生成 Git 周报/日报 |
summary / summary_async | 长文本内容总结 |
markit / markit_async | 收藏文章到知识库 |
translate | 百度翻译 |
smarthome | 智能家居控制(Home Assistant) |
email_reader | 读取邮件 |
weibo_reader | 读取微博 |
ainews | AI 新闻聚合 |
photo_location | 照片 GPS 定位与地址解析 |
notifications | 多通道通知(支持点滴清单、邮件等) |
6. 定时任务调度器
- 基于 Django ORM 的定时任务系统
- 支持一次性任务和循环任务(每天/每周/每月/每年)
- 通过 MCP 提交异步执行,完成后 HTTP 回调通知
- 超时自动重试,执行日志持久化
7. Agent 智能体工作流
6 阶段多智能体协作流水线:
plan(需求分析) → design(产品设计) → develop(技术开发)
→ test(测试验证) → market(市场推广) → support(技术支持)
每个阶段由不同的 Agent 角色执行,支持上下文传递和结果汇总。
8. 记忆与反思系统
- 记忆存储:可选启用长期记忆,保存对话历史
- 反思生成:定期对对话内容进行总结反思,形成对用户的深度认知
9. 多通道通知系统
- 支持点滴清单机器人、邮件等多种通知渠道
- 定时任务执行完成后自动推送结果
- 基于 onepush 框架,可扩展更多渠道
10. Web 管理界面
- 基于 Django 的完整 Web UI
- 聊天界面、知识库管理、定时任务管理、MCP 工具面板
- 支持 OAuth2 登录(GitHub / Google / QQ / Weibo)
三、技术架构
┌─────────────────────────────────────────────────────────────┐
│ 前端层 │
│ Django Templates + Live2D + Three.js + WebSocket │
└─────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────┐
│ Django 应用层 │
│ URL路由 · 视图 · ORM模型 · WebSocket消费者 · 中间件 │
│ OAuth2认证 · 定时任务API · MCP回调接口 │
└─────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────┐
│ 引擎层 │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ KWS │ │ ASR │ │ LLM │ │ TTS │ │
│ │ oddkws │ │ oddasr │ │ oddllm │ │ oddtts │ │
│ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ Agent │ │ RAG │ │ Emotion │ │Character│ │
│ │ Pipeline│ │ FAISS │ │ Manage │ │ Role │ │
│ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │Scheduler│ │ Notify │ │Reflection│ │
│ │ 定时任务│ │ 通知 │ │ 反思 │ │
│ └─────────┘ └─────────┘ └─────────┘ │
└─────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────┐
│ MCP 插件层 │
│ weather · workhours · weeklyreport · summary · markit │
│ translate · smarthome · email · weibo · ainews · photo │
└─────────────────────────────────────────────────────────────┘
四、技术栈
| 类别 | 技术 |
|---|---|
| Web 框架 | Django 4.2 + Django Channels + Daphne |
| 实时通信 | WebSocket (Django Channels) |
| 语音处理 | sherpa-onnx (KWS/ASR) + Matcha-TTS (TTS) + VAD |
| 大模型 | Ollama (本地) / OpenAI 兼容 API (在线) |
| RAG | LangChain + FAISS / Chroma |
| MCP 框架 | FastMCP |
| 前端 | Django Templates + Live2D + Three.js |
| 数据库 | SQLite(默认)/ MySQL / PostgreSQL |
| 认证 | OAuth2 (social-auth-app-django) |
| 构建 | Cython(性能关键模块) |
| 部署 | Daphne ASGI 服务器 |
五、快速开始
1. 环境准备
- Python 3.10+
- 可选:ffmpeg、libsndfile1、libportaudio2、espeak-ng
2. 安装依赖
pip install -r requirements.txt
3. 配置环境变量
cp .env.example .env
# 编辑 .env,配置 LLM API、Embedding 模型等
关键配置项:
CONVERSATION_MODE:对话模式(1=文本, 2=完整语音, 3=语音输入+文本输出)GPT_URL/GPT_MODEL/GPT_API_KEY:大模型接口EMBEDDING_MODEL/EMBEDDING_API_KEY:向量模型MCP_CALLBACK_URL:MCP 回调地址
4. 数据库初始化
set DJANGO_SETTINGS_MODULE=xiaoluo.settings
python manage.py migrate
python manage.py initmodels
5. 启动服务
Windows(推荐):
env.bat
start.bat
Linux / Mac:
daphne -b 0.0.0.0 -p 8000 xiaoluo.asgi:application
或使用包装脚本:
python xiaoluo_app.py
访问 http://localhost:8000 即可使用。
六、模型文件
项目运行需要以下模型(已预置在相应目录):
| 模型 | 路径 |
|---|---|
| 关键词检测 | engine/oddkws_model/ |
| 语音识别 | engine/oddasr_model/model/ |
| 语音合成 | engine/oddtts_model/matcha-icefall-zh-baker/ |
七、对话数据流
用户语音输入
↓
KWS 关键词唤醒("你好小落")
↓
ASR 语音识别 → 文本
↓
LLM 大模型推理(流式响应)
↓
TTS 语音合成(后台线程池)
↓
WebSocket 发送音频数据 → 前端播放
文本模式下跳过 KWS/ASR/TTS,直接进行 HTTP 请求响应。
八、核心配置说明
xiaoluo_config.py 中的主要配置:
| 配置项 | 说明 |
|---|---|
conversation_mode | 对话模式:1=文本, 2=完整语音, 3=语音输入+文本输出 |
llm_max_history | LLM 保留的历史对话轮数 |
vad_silence_duration | VAD 静音判断时长(秒) |
memory_storage_enabled | 是否启用长期记忆存储 |
enable_emotion | 是否启用情感识别 |
九、开发规范
- 语言:Python 3.10+
- 构建:性能关键模块使用 Cython(
.pyx),编辑.py文件后执行python setup.py build - 日志:使用
xiaoluo_log模块,非直接使用logging - 命名:所有中文名称保持原样,不强制英文化
- 测试:
tests/目录下的独立脚本,直接运行python tests/test_xxx.py
十、许可证
MIT License
“也许有一天,小落会比你自己更懂你。”
欢迎关注我的公众号:
