Skip to content

安装指南 ‐ 中文

Yi-Ting Chiu edited this page Dec 23, 2024 · 4 revisions

本文由 gemini 2.0 flash experimental 翻译成中文,因为我懒得写了...

欢迎!

这里是 Open-LLM-VTuber,一个允许你通过语音(免提)在本地与任何大型语言模型(LLM)对话(并打断它),同时使用 Live2D 虚拟形象的应用。

⚠️ 此项目尚处于早期阶段,目前正在积极开发中。功能不稳定,代码混乱,并且会发生重大更改。此阶段的主要目标是使用易于集成的技术构建一个最小可行原型。

⚠️ 如果你想在服务器上运行此程序,并在你的笔记本电脑上远程访问它,前端的麦克风只能在安全的环境中启动(即 https 或 localhost)。请参阅 MDN Web 文档。因此,你可能需要使用反向代理配置 https,或者在本地启动前端并通过 websocket 连接到服务器(未测试)。使用浏览器打开 static/index.html,并在页面上设置 ws URL。

⚠️ 目前,此项目的设置非常复杂。模块化以及它是一个使用大量需要在本地执行的 AI 组件的 Python 项目,导致了很多麻烦。我正在开发一个带有推荐配置的安装脚本来简化流程,但尚未完成。

前提条件

确保你的计算机上已安装 ffmpeg

Python 版本 >= 3.10,< 3.13(Python 3.13 中目前存在依赖项安装问题。如果遇到这种情况,请使用 3.12 或更低版本,应该可以正常工作)。

基础知识

所有设置都在 conf.yaml 文件中。你可以在那里(而且很可能会)进行许多设置,该文件中也有注释解释这些设置的含义。

设置步骤

  1. 克隆仓库
  2. [可选] 为此项目创建一个虚拟环境,如 conda 或 venv
  3. 使用 pip install -r requirements.txt 安装 基本 依赖项
  4. 设置大型语言模型(LLM)
  5. 设置你所需的自动语音识别(ASR)
  6. 设置你所需的文本转语音(TTS)
  7. 运行它

步骤 1:下载仓库

在你的计算机上找到一个合适的位置,克隆仓库或下载最新版本。

git clone https://github.com/t41372/Open-LLM-VTuber

很好。现在,如果你还没有这样做,请前往 GitHub 并为这个项目点亮星标,否则你会 &&Eujehruedjhnoeire4939#pE$

步骤 2:[可选] 为此项目创建一个虚拟环境

这是可选的,但我 强烈 建议你为此项目创建一个虚拟环境。

此项目是使用 Python 3.10.13 开发的。Python 3.11 经过测试。其他一些版本也可能有效,但未经测试。

如果你不知道什么是虚拟环境,这里有一个简短的解释:

Python 虚拟环境 (venv) 是一个包含 Python 解释器、第三方库和其他脚本的文件夹。Venv 与其他虚拟环境隔离,因此对依赖项的更改不会影响其他虚拟环境或系统范围的库。

-- dataquest

为什么?

我强烈建议你为此项目使用虚拟环境的原因是,这将使你的生活轻松许多。此项目使用了很多依赖项,并且经常发生依赖项冲突。使用虚拟环境来隔离它们可以避免很多麻烦。

Venv

如果你不知道 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 是什么,那么你就知道该怎么做。这是我个人使用的命令。如果你不知道 conda 是什么,我建议你使用 venv

# 在项目目录中创建一个 conda 环境
conda create -p ./.conda python="3.10.4"
# 激活此环境
conda activate ./.conda

步骤 3:安装基本依赖项

在项目根目录中运行以下命令来安装依赖项。

pip install -r requirements.txt # 在项目目录中运行

步骤 4:设置大型语言模型(LLM)

你需要准备好 Ollama 或任何其他与 OpenAI API 兼容的后端,并使其运行。你可以使用 llama.cpp、vLLM、LM Studio、groq、OpenAI 等等。

MemGPT

如果你想使用带有 MemGPT 的长期记忆,你需要将 MemGPT 设置为你的 LLM 后端,而不是上面提到的那些。请查看 MemGPT 部分以获取更多信息(除非你已经知道如何运行 MemGPT,否则这并不容易,所以我建议你先从 ollama 或其他与 OpenAI 兼容的 LLM 后端开始)。

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_KEYORGANIZATION_IDPROJECT_ID,只需将它们保持原样即可。

如果你现在非常兴奋,想在没有语音交互的情况下尝试这个项目,你可以在 conf.yaml 中将 LIVE2DVOICE_INPUT_ONTTS_ON 设置为 False,以便通过打字与 LLM 对话,而无需语音或 Live2D。稍后记得将它们重新打开。 不要更改 LIVE2DVOICE_INPUT_ONTTS_ON 选项。这些选项是为 CLI 模式设计的,该模式将在下一个主要版本 v1.0.0 中移除。LIVE2D 选项已在 v0.2.0 版本中弃用并变得无用,并且在 v0.4.0 版本发布后,用户现在可以直接在浏览器中与文本进行交互,这使得 VOICE_INPUT_ON 选项变得无用。使用这些选项的 Web 前端可能会导致不可预测的结果。幸运的是,这些选项以及 CLI 模式将在下一个主要版本 v1.0.0 中移除,并且整个文档将被重写,所以,是的,未来应该会减少混乱。

步骤 5:设置自动语音识别(ASR)

此项目支持许多不同的语音识别模型和提供商。请查看 ASR 部分以获取安装说明。

通常,以下是设置语音识别的步骤:

  1. 安装依赖项
  2. conf.yaml 中编辑你使用的 ASR 的配置。如果支持,你通常可以在那里更改语言或模型。
  3. ASR_MODEL 设置为你选择的 ASR。

在撰写本文时,此项目支持以下 ASR:

一些建议:

如果你不介意它在启动时连接到互联网(将来会修复),我建议使用带有 SenseVoiceSmall 的 FunASR。它非常快,而且准确率相当不错。

如果你想要离线工作的工具,如果你有 Nvidia GPU,我建议使用 Faster-Whisper,如果你使用的是 macOS,则建议使用带有 coreML 加速的 Whisper-CPP。

如果你正好有 API 密钥,也可以使用 Azure 语音识别。

⚠️ 如果你想在容器内或远程机器上运行此应用程序(服务器),并使用本地设备访问 webui,你需要在 conf.yaml 中将 MIC_IN_BROWSER 设置为 True。还有更多需要考虑的事项,这在页面顶部已经提到。

步骤 6:设置文本转语音(TTS)

请查看 TTS 部分以获取有关设置你想要的 TTS 的说明。

通常,以下是设置文本转语音服务的步骤:

  1. 安装依赖项
  2. conf.yaml 中编辑你使用的 TTS 的配置。如果支持,你通常可以在那里更改语言或发言人。
  3. TTS_MODEL 设置为你选择的 TTS。

以下是一些在撰写本文时支持的 TTS:

  • py3-tts(本地,它使用你系统的默认 TTS 引擎)
  • bark(本地,非常消耗资源)
  • CosyVoice(本地,非常消耗资源)
  • MeloTTS(本地,快速)
  • Edge TTS(在线,无需 API 密钥)
  • Azure 文本转语音(在线,需要 API 密钥)

步骤 7:运行程序

现在,如果你正在使用 live2D 和我们上面提到的所有内容,以下是运行程序的步骤:

  1. 运行 server.py
  2. 使用你的浏览器打开 localhost:12393(默认,但你可以在 conf.yaml 中更改)
  3. 运行 main.py(不再需要)
  4. 在 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_CHOICEDEFAULT_PERSONA_PROMPT_IN_YAML 中更改/编辑角色提示
  • HOSTPORT 中更改服务器正在监听的主机和端口
  • 以及 VERBOSE

某些模型将在你第一次启动期间下载,这可能需要一段时间。