Skip to content

安装指南 ‐ 中文

Yi-Ting Chiu edited this page Nov 6, 2024 · 3 revisions

本文由 claude 3.5 sonnet 翻译成中文,因为我懒得写了...

欢迎

这是 Open-LLM-VTuber,一个允许您通过语音(免提)在本地与任何 LLM 对话(并打断)的应用程序,具有 Live2D 人物面部表情。

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

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

⚠️ 目前这个项目的设置并不是很容易。模块化以及这是一个需要在本地执行大量 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 解释器、第三方库和其他脚本的文件夹。虚拟环境与其他虚拟环境是隔离的,所以依赖项的更改不会影响其他虚拟环境或系统范围的库。

-- 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 并让 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"
  # 系统提示在此文件的最后
  VERBOSE: False

如果您不使用 LLM_API_KEYORGANIZATION_IDPROJECT_ID,就保持原样即可。

如果您现在非常兴奋,想要在没有语音交互的情况下尝试这个项目,您可以在 conf.yaml 中将 LIVE2DVOICE_INPUT_ONTTS_ON 设置为 False,这样就可以通过输入而不是语音与 LLM 对话,也没有 Live2D。记得稍后再把它们打开。

第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 Speech Recognition。

⚠️ 如果您想在容器内或远程机器上运行此应用程序(服务器),并使用本地设备访问 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 Text-to-Speech(在线,需要 API 密钥)

第7步:运行程序

目前,如果您使用 live2D 和上面提到的所有内容,以下是运行程序的步骤:

  1. 运行 server.py
  2. 用浏览器打开 localhost:12393(默认设置,但您可以在 conf.yaml 中更改)
  3. 运行 main.py(不再需要)
  4. 一旦 Live2D 模型加载完成,就可以与 LLM 对话。

如果您只想对话而不想要 Live2D 和浏览器之类的东西,您可以直接运行 main.py 进入命令行模式。

conf.yaml 中一些您可能感兴趣的相关设置:

  • LIVE2D 关闭 live2D(和 webui,这样您就不需要 server.py)
  • VOICE_INPUT_ON 关闭语音识别并开始在终端中输入
  • MIC_IN_BROWSER 让麦克风在浏览器而不是终端中监听
  • TTS_ON 关闭 TTS
  • SAY_SENTENCE_SEPARATELY 让 TTS 一次说出所有内容
  • PERSONA_CHOICEDEFAULT_PERSONA_PROMPT_IN_YAML 更改/编辑人设提示
  • HOSTPORT 更改服务器监听的主机和端口
  • 以及 VERBOSE

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