-
-
Notifications
You must be signed in to change notification settings - Fork 173
安装指南 ‐ 中文
本文由 gemini 2.0 flash experimental 翻译成中文,因为我懒得写了...
欢迎!
这里是 Open-LLM-VTuber,一个允许你通过语音(免提)在本地与任何大型语言模型(LLM)对话(并打断它),同时使用 Live2D 虚拟形象的应用。
⚠️ 此项目尚处于早期阶段,目前正在积极开发中。功能不稳定,代码混乱,并且会发生重大更改。此阶段的主要目标是使用易于集成的技术构建一个最小可行原型。
⚠️ 如果你想在服务器上运行此程序,并在你的笔记本电脑上远程访问它,前端的麦克风只能在安全的环境中启动(即 https 或 localhost)。请参阅 MDN Web 文档。因此,你可能需要使用反向代理配置 https,或者在本地启动前端并通过 websocket 连接到服务器(未测试)。使用浏览器打开static/index.html
,并在页面上设置 ws URL。
确保你的计算机上已安装 ffmpeg
。
Python 版本 >= 3.10,< 3.13(Python 3.13 中目前存在依赖项安装问题。如果遇到这种情况,请使用 3.12 或更低版本,应该可以正常工作)。
所有设置都在 conf.yaml
文件中。你可以在那里(而且很可能会)进行许多设置,该文件中也有注释解释这些设置的含义。
- 克隆仓库
- [可选] 为此项目创建一个虚拟环境,如 conda 或 venv
- 使用
pip install -r requirements.txt
安装 基本 依赖项 - 设置大型语言模型(LLM)
- 设置你所需的自动语音识别(ASR)
- 设置你所需的文本转语音(TTS)
- 运行它
在你的计算机上找到一个合适的位置,克隆仓库或下载最新版本。
git clone https://github.com/t41372/Open-LLM-VTuber
很好。现在,如果你还没有这样做,请前往 GitHub 并为这个项目点亮星标,否则你会 &&Eujehruedjhnoeire4939#pE$
这是可选的,但我 强烈 建议你为此项目创建一个虚拟环境。
此项目是使用 Python 3.10.13
开发的。Python 3.11 经过测试。其他一些版本也可能有效,但未经测试。
Python 虚拟环境 (venv) 是一个包含 Python 解释器、第三方库和其他脚本的文件夹。Venv 与其他虚拟环境隔离,因此对依赖项的更改不会影响其他虚拟环境或系统范围的库。
-- dataquest
我强烈建议你为此项目使用虚拟环境的原因是,这将使你的生活轻松许多。此项目使用了很多依赖项,并且经常发生依赖项冲突。使用虚拟环境来隔离它们可以避免很多麻烦。
如果你不知道 conda 是什么,我们可以使用 venv
,它是 Python 内置的,并且非常好用。
# 创建一个虚拟环境
python -m venv open-llm-vtuber
要激活虚拟环境,请运行以下命令:
在 Windows 上
open-llm-vtuber\Scripts\activate
在 macOS/Linux 上
source open-llm-vtuber/bin/activate
如果你知道 conda 是什么,那么你就知道该怎么做。这是我个人使用的命令。如果你不知道 conda 是什么,我建议你使用 venv
。
# 在项目目录中创建一个 conda 环境
conda create -p ./.conda python="3.10.4"
# 激活此环境
conda activate ./.conda
在项目根目录中运行以下命令来安装依赖项。
pip install -r requirements.txt # 在项目目录中运行
你需要准备好 Ollama 或任何其他与 OpenAI API 兼容的后端,并使其运行。你可以使用 llama.cpp、vLLM、LM Studio、groq、OpenAI 等等。
如果你想使用带有 MemGPT 的长期记忆,你需要将 MemGPT 设置为你的 LLM 后端,而不是上面提到的那些。请查看 MemGPT 部分以获取更多信息(除非你已经知道如何运行 MemGPT,否则这并不容易,所以我建议你先从 ollama 或其他与 OpenAI 兼容的 LLM 后端开始)。
准备一个你喜欢的大型语言模型,并拥有一个正在运行的 LLM 推理服务器,例如 ollama。
在 conf.yaml
文件中,在 ollama
选项下,你可以编辑所有与 OpenAI 兼容的 LLM 推理后端的配置。
以下是 conf.yaml
中的设置:
# ============== LLM 后端设置 ===================
# LLM 的提供者。选择 "ollama" 或 "memgpt" (或用于调试目的的 "fakellm")
# "ollama" 适用于任何与 OpenAI 兼容的后端。"memgpt" 需要设置
LLM_PROVIDER: "ollama"
# Ollama 和与 OpenAI 兼容的推理后端
ollama:
BASE_URL: "http://localhost:11434/v1"
LLM_API_KEY: "somethingelse"
ORGANIZATION_ID: "org_eternity"
PROJECT_ID: "project_glass"
## LLM 名称
MODEL: "llama3.1:latest"
# system prompt 在此文件的末尾
VERBOSE: False
如果你不使用 LLM_API_KEY
、ORGANIZATION_ID
和 PROJECT_ID
,只需将它们保持原样即可。
如果你现在非常兴奋,想在没有语音交互的情况下尝试这个项目,你可以在 不要更改 conf.yaml
中将 LIVE2D
、VOICE_INPUT_ON
和 TTS_ON
设置为 False
,以便通过打字与 LLM 对话,而无需语音或 Live2D。稍后记得将它们重新打开。LIVE2D
、VOICE_INPUT_ON
和 TTS_ON
选项。这些选项是为 CLI 模式设计的,该模式将在下一个主要版本 v1.0.0
中移除。LIVE2D
选项已在 v0.2.0
版本中弃用并变得无用,并且在 v0.4.0
版本发布后,用户现在可以直接在浏览器中与文本进行交互,这使得 VOICE_INPUT_ON
选项变得无用。使用这些选项的 Web 前端可能会导致不可预测的结果。幸运的是,这些选项以及 CLI 模式将在下一个主要版本 v1.0.0
中移除,并且整个文档将被重写,所以,是的,未来应该会减少混乱。
此项目支持许多不同的语音识别模型和提供商。请查看 ASR 部分以获取安装说明。
通常,以下是设置语音识别的步骤:
- 安装依赖项
- 在
conf.yaml
中编辑你使用的 ASR 的配置。如果支持,你通常可以在那里更改语言或模型。 - 将
ASR_MODEL
设置为你选择的 ASR。
在撰写本文时,此项目支持以下 ASR:
-
FunASR,它支持 SenseVoiceSmall 和其他一些模型。(
本地目前需要互联网连接才能加载。在本地计算) - Faster-Whisper(本地)
- Whisper-CPP 使用 python 绑定 pywhispercpp(本地,可以配置 mac GPU 加速)
- Whisper(本地)
- Azure 语音识别(需要 API 密钥)
如果你不介意它在启动时连接到互联网(将来会修复),我建议使用带有 SenseVoiceSmall 的 FunASR。它非常快,而且准确率相当不错。
如果你想要离线工作的工具,如果你有 Nvidia GPU,我建议使用 Faster-Whisper,如果你使用的是 macOS,则建议使用带有 coreML 加速的 Whisper-CPP。
如果你正好有 API 密钥,也可以使用 Azure 语音识别。
⚠️ 如果你想在容器内或远程机器上运行此应用程序(服务器),并使用本地设备访问 webui,你需要在conf.yaml
中将MIC_IN_BROWSER
设置为 True。还有更多需要考虑的事项,这在页面顶部已经提到。
请查看 TTS 部分以获取有关设置你想要的 TTS 的说明。
通常,以下是设置文本转语音服务的步骤:
- 安装依赖项
- 在
conf.yaml
中编辑你使用的 TTS 的配置。如果支持,你通常可以在那里更改语言或发言人。 - 将
TTS_MODEL
设置为你选择的 TTS。
以下是一些在撰写本文时支持的 TTS:
- py3-tts(本地,它使用你系统的默认 TTS 引擎)
- bark(本地,非常消耗资源)
- CosyVoice(本地,非常消耗资源)
- MeloTTS(本地,快速)
- Edge TTS(在线,无需 API 密钥)
- Azure 文本转语音(在线,需要 API 密钥)
现在,如果你正在使用 live2D 和我们上面提到的所有内容,以下是运行程序的步骤:
- 运行
server.py
- 使用你的浏览器打开
localhost:12393
(默认,但你可以在 conf.yaml 中更改) -
运行(不再需要)main.py
- 在 Live2D 模型加载后,与 LLM 对话。
如果你只想对话,而不想要 Live2D 和浏览器之类的东西,你可以只运行 main.py
以进入 cli 模式。
你可能感兴趣的 conf.yaml
中一些相关设置:
- 在
LIVE2D
中关闭 live2D(以及 Web UI,这样你就不需要 server.py) - 在
VOICE_INPUT_ON
中关闭语音识别,并在终端中开始输入 - 在
MIC_IN_BROWSER
中让麦克风在浏览器而不是终端中监听 - 在
TTS_ON
中关闭 TTS - 在
SAY_SENTENCE_SEPARATELY
中让 TTS 一次性说出所有内容 - 在
PERSONA_CHOICE
和DEFAULT_PERSONA_PROMPT_IN_YAML
中更改/编辑角色提示 - 在
HOST
和PORT
中更改服务器正在监听的主机和端口 - 以及
VERBOSE
某些模型将在你第一次启动期间下载,这可能需要一段时间。