04 — 环境与安装

为什么需要多个虚拟环境

GPT-SoVITS 依赖一组较旧/固定版本的 ML 包(torchtransformerslibrosa 等),与 faster-whisperllama-cpp-python 所需的新栈存在冲突。强行合并到一个环境会很脆弱,因此项目使用两个必需 venv,并可选第三个给 Qwen3-TTS:

VenvPython用途创建方式
venvs/venv_main3.11Vocal10n 主程序:UI、STT、LLM、pipelinesetup_env.ps1
venvs/venv_tts3.11GPT-SoVITS HTTP 服务(api_v2.pysetup_env.ps1
venvs/venv_qwen3tts3.11Qwen3-TTS HTTP 服务手动

启动脚本 start.ps1 会从 venv_tts 启 GPT-SoVITS、从 venv_main 启主应用。二者通过 127.0.0.1:9880(TTS)和 127.0.0.1:5124(OBS)通信。

一次性安装

前置条件:

  • Windows 10/11。
  • 可通过 py -3.11 调用 Python 3.11。
  • NVIDIA 驱动 + CUDA 12.x 运行库。
  • Visual C++ Build Tools(llama-cpp-python 回退源码编译时需要)。

步骤:

git clone https://github.com/itsLittleKevin/Vocal10n.git
cd Vocal10n

# 创建 venv_main 和 venv_tts,并安装依赖
.\setup_env.ps1

# 放置模型:
#   models/llm/Qwen3-4B-Instruct-2507.Q4_K_M.gguf
#   vendor/GPT-SoVITS/GPT_SoVITS/pretrained_models/...
#   reference_audio/<your_clone_sample>.wav (+ 对应 .txt)

如果 llama-cpp-python 未安装到 CUDA 版本,可显式安装匹配 wheel:

venvs\venv_main\Scripts\pip install llama-cpp-python `
  --extra-index-url https://abetlen.github.io/llama-cpp-python/whl/cu121

setup_env.ps1 支持参数:

  • -SkipMain / -SkipTTS:仅更新一个 venv。
  • -Force:删除并重建。

所需模型

文件路径说明
Whisper large-v3-turbo首次使用下载到 ~/.cache/huggingfacestt.model_size 控制
Qwen3-4B GGUFmodels/llm/Qwen3-4B-Instruct-2507.Q4_K_M.gguf路径在 translation.model_path
GPT-SoVITS 预训练权重vendor/GPT-SoVITS/GPT_SoVITS/pretrained_models/按上游 README 放置
参考 WAV + 文本reference_audio/vendor/GPT-SoVITS/reference_audio/路径由 tts.ref_audio_path 指定

启动

.\start.ps1

脚本会:

  1. 检查 venv_main 是否存在。
  2. 如果 9880 空闲且存在 vendor/GPT-SoVITS/api_v2.py,后台隐藏启动 SoVITS 并记录 PID。
  3. 设置 PYTHONPATH(包含 vendor/GPT-SoVITS/vendor/GPT-SoVITS/GPT_SoVITS/)以保证 API 相对导入可解析。
  4. venv_main 中运行 python -m vocal10n.app
  5. 主程序退出后,如果 SoVITS 仍在运行则自动终止。

start.bat 是对该 PowerShell 脚本的薄封装。