Skip to main content

Chatterbox TTS — 声音克隆

警告

本教程为社区贡献,不属于 Open WebUI 官方支持。它仅作为如何针对特定用例自定义 Open WebUI 的演示。想要贡献?请查看贡献教程

什么是 Chatterbox TTS API

Chatterbox TTS API 是一个 API 包装器,支持声音克隆和文本转语音 (TTS),可作为 OpenAI 语音 API 端点的直接替代方案。

Link to Resemble AI voice samples

核心特性

  • 零样本声音克隆: 仅需约 10 秒的任何声音样本。
  • 性能卓越: 超越 ElevenLabs
  • 数字水印: 输出包含水印,确保负责任的声音克隆。
  • 强大架构: 基于 0.5B Llama 骨干网络。
  • 自定义声音库: 集成声音库管理。
  • 流式传输支持: 实现快速生成。
  • 高级内存管理: 具备自动清理功能。
  • 可选前端: 提供易于管理和使用的前端界面。

硬件建议

  • 内存: 最少 4GB,推荐 8GB+。
  • GPU: 支持 CUDA (Nvidia) 或 Apple M 系列 (MPS)。
  • CPU: 可以运行但速度较慢,生产环境推荐使用 GPU。
提示

Chatterbox 可能会消耗大量内存,其硬件要求可能高于您习惯的其他本地 TTS 解决方案。如果您的硬件难以满足要求,您可能会发现 OpenAI Edge TTSKokoro-FastAPI 是合适的替代方案。

⚡️ 快速开始

🐍 使用 Python

选项 A:使用 uv(推荐 - 速度更快且依赖管理更好)

# 克隆仓库
git clone https://github.com/travisvn/chatterbox-tts-api
cd chatterbox-tts-api

# 如果尚未安装 uv,请先安装
curl -LsSf https://astral.sh/uv/install.sh | sh

# 使用 uv 安装依赖(自动创建虚拟环境)
uv sync

# 复制并自定义环境变量
cp .env.example .env

# 使用 FastAPI 启动 API
uv run uvicorn app.main:app --host 0.0.0.0 --port 4123

# 或者使用主脚本
uv run main.py

💡 为什么选择 uv? 用户反馈其与 chatterbox-tts 的兼容性更好,安装速度快 25-40%,且依赖解析更优。查看迁移指南 →

选项 B:使用 pip(传统方式)

# 克隆仓库
git clone https://github.com/travisvn/chatterbox-tts-api
cd chatterbox-tts-api

# 设置环境 — 使用 Python 3.11
python -m venv .venv
source .venv/bin/activate

# 安装依赖
pip install -r requirements.txt

# 复制并自定义环境变量
cp .env.example .env

# 添加您的声音样本(或使用提供的样本)
# cp your-voice.mp3 voice-sample.mp3

# 使用 FastAPI 启动 API
uvicorn app.main:app --host 0.0.0.0 --port 4123

# 或者使用主脚本
python main.py

遇到问题?请查看 故障排除部分

🐳 Docker(推荐)

# 克隆并使用 Docker Compose 启动
git clone https://github.com/travisvn/chatterbox-tts-api
cd chatterbox-tts-api

# 使用 Docker 优化的环境变量
cp .env.example.docker .env # Docker 专用路径,开箱即用

# 或者:cp .env.example .env # 本地开发路径,需要自定义

# 选择您的部署方式:

# 仅 API (默认)
docker compose -f docker/docker-compose.yml up -d # 标准版 (基于 pip)
docker compose -f docker/docker-compose.uv.yml up -d # uv 优化版 (构建更快)
docker compose -f docker/docker-compose.gpu.yml up -d # 标准 + GPU
docker compose -f docker/docker-compose.uv.gpu.yml up -d # uv + GPU (推荐 GPU 用户)
docker compose -f docker/docker-compose.cpu.yml up -d # 仅 CPU

# API + 前端 (在上述任何命令后添加 --profile frontend)
docker compose -f docker/docker-compose.yml --profile frontend up -d # 标准 + 前端
docker compose -f docker/docker-compose.gpu.yml --profile frontend up -d # GPU + 前端
docker compose -f docker/docker-compose.uv.gpu.yml --profile frontend up -d # uv + GPU + 前端

# 查看初始化日志(首次使用 TTS 耗时最长)
docker logs chatterbox-tts-api -f

# 测试 API
curl -X POST http://localhost:4123/v1/audio/speech \
-H "Content-Type: application/json" \
-d '{"input": "Hello from Chatterbox TTS!"}' \
--output test.wav
🚀 运行前端界面

本项目包含一个可选的基于 React 的 Web UI。使用 Docker Compose profiles 可以轻松开启或关闭前端:

使用 Docker Compose Profiles

# 仅 API (默认行为)
docker compose -f docker/docker-compose.yml up -d

# API + 前端 + Web UI (使用 --profile frontend)
docker compose -f docker/docker-compose.yml --profile frontend up -d

# 或者使用便捷的 fullstack 辅助脚本:
python start.py fullstack

# 同样模式适用于所有部署变体:
docker compose -f docker/docker-compose.gpu.yml --profile frontend up -d # GPU + 前端
docker compose -f docker/docker-compose.uv.yml --profile frontend up -d # uv + 前端
docker compose -f docker/docker-compose.cpu.yml --profile frontend up -d # CPU + 前端

本地开发

对于本地开发,您可以分别运行 API 和前端:

# 首先启动 API(遵循前面的说明)

# 然后运行前端:
cd frontend && npm install && npm run dev

注意: 如果遇到依赖问题,请尝试运行 npm install --force 而不是简单的 npm install

点击 Vite 提供的链接访问 Web UI。

生产环境构建

构建前端用于生产部署:

cd frontend && npm install && npm run build

注意: 如果构建因依赖冲突失败,请尝试使用 npm install --force

然后您可以直接从本地文件系统的 /dist/index.html 访问它。

端口配置

  • 仅 API: 可在 http://localhost:4123 访问(直接 API 访问)
  • 带前端: Web UI 在 http://localhost:4321,API 请求通过代理路由

前端使用反向代理路由请求,因此在使用 --profile frontend 运行时,Web 界面将在 http://localhost:4321 可用,而 API 在代理后运行。

设置 Open WebUI 使用 Chatterbox TTS API

我们建议运行前端界面,以便在配置 Open WebUI 设置之前上传您想要使用的声音音频文件。如果启动正确(见上文指南),您可以访问 http://localhost:4321 进入前端。

要将 Chatterbox TTS API 与 Open WebUI 配合使用,请按照以下步骤操作:

  • 打开 管理员面板 并转到 设置 -> 音频
  • 将您的 TTS 设置 配置如下:
    • 文本转语音引擎: OpenAI
    • API 基础 URL: http://localhost:4123/v1 # 或者尝试 http://host.docker.internal:4123/v1
    • API 密钥: none
    • TTS 模型: tts-1tts-1-hd
    • TTS 声音: 您克隆的声音名称(也可以包含在前端定义的别名)
    • 响应拆分: Paragraphs (段落)
提示

默认 API 密钥是字符串 none(无需 API 密钥)。

Open WebUI 音频设置截图,展示了本项目的正确端点配置

请在 GitHub 上关注该项目 以支持开发 ⭐️

需要帮助?

Chatterbox 的首次运行可能具有挑战性,如果遇到特定安装选项的问题,您可能需要尝试不同的安装方式。

有关 chatterbox-tts-api 的更多信息,您可以访问 GitHub 仓库