项目简介
开放-LLM-VTuber 允许您通过语音(无需动手)与任何 LLM 进行交谈,本地使用 Live2D 说话表情。LLM 推理后端、语音识别和语音合成器都设计为可互换。此项目可以配置在 macOS、Linux 和 Windows 上离线运行。
MemGPT 的长期记忆可以配置为实现持续聊天、无限*上下文长度和外部数据源。
这个项目最初是尝试使用开源替代品重新创建闭源 AI 虚拟歌手
neuro-sama
,这些开源替代品可以在除了 Windows 以外的平台上离线运行。
演示视频使用了 llama3(Q4_0)与 Ollama、edgeTTS 和 WhisperCPP 运行小型模型的核心 ML 版本。
项目优势
基本目标
-
通过语音与LLM聊天
-
选择你自己的LLM后端
-
选择您自己的语音识别与文本转语音服务提供商
-
长期记忆
-
Live2D 前端
目标平台
实现的功能
-
与LLM通过语音交谈。离线。
-
聊天历史上的 RAG(暂时移除)
当前支持LLM后端
当前支持的语音识别后端
-
FunASR,支持 SenseVoiceSmall 和许多其他模型。(本地当前需要网络连接加载。计算在本地进行)
-
Faster-Whisper (Local)
-
Whisper-CPP 使用 Python 绑定 pywhispercpp(本地,mac GPU 加速可以配置)
-
Whisper (local)
-
Azure 语音识别(需要 API 密钥)
-
服务器终端中的麦克风将默认使用。您可以更改设置
MIC_IN_BROWSER
在
conf.yaml
中,将麦克风(和语音激活检测)移动到浏览器(目前会增加延迟)。如果您在不同的机器上运行后端或在虚拟机或 Docker 内部运行,您可能希望在客户端(浏览器)上使用麦克风,而不是在服务器上使用。
当前支持的文本转语音后端
快速文本合成
Live2D 说话脸
-
使用
config.yaml
更改 Live2D 模型(模型需要在 model_dict.json 中列出)
-
加载本地 Live2D 模型。查看
doc/live2d.md
获取文档。
-
在LLM响应中使用表情关键词控制面部表情,因此无需额外的情感检测模型。表情关键词自动加载到系统提示中,并从语音合成输出中排除。
live2d 技术细节
-
使用 guansss/pixi-live2d-display 在浏览器中显示 live2d 模型
-
使用 WebSocket 在服务器和前端之间控制面部表情和说话状态
-
所有所需包均在当地可用,因此前端可以离线工作。
-
您可以从 URL 或存储在
live2d-models
目录中的本地文件加载 live2d 模型。默认的
shizuku-local
是本地存储的,可以离线使用。如果模型_dict.json 中模型的 URL 属性是一个 URL 而不是以
/live2d-models
开头的路径,那么每当前端打开时,都需要从指定的 URL 获取这些模型。请参阅
doc/live2d.md
以了解如何从本地加载您的 live2D 模型的文档。
-
运行
server.py
以启动 WebSocket 通信服务器,在
./static
文件夹中的
index.html
打开前端,运行
launch.py
main.py
以启动后端用于LLM/ASR/TTS 处理。
安装与使用
新安装指南正在这里创建
在您的计算机上安装 FFmpeg。
克隆这个仓库。
您需要准备好 Ollama 或任何其他与 OpenAI-API 兼容的后端,并且使其运行。如果您想将 MemGPT 用作后端,请滚动到 MemGPT 部分。
选择并准备LLM。在项目目录的
conf.yaml
中编辑 BASE_URL 和 MODEL。
这个项目使用 Python
3.10.13
开发。我强烈建议为这个项目创建一个类似于 conda 的虚拟 Python 环境。
在终端中运行以下内容以安装依赖项。
pip install -r requirements.txt
该项目默认启动音频交互模式,这意味着你可以通过语音与LLM进行对话,而LLM会通过语音回复你。