Skip to main content

使用 Docker 部署 Openedai-speech

警告

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

使用 Docker 将 openedai-speech 集成到 Open WebUI

什么是 openedai-speech

提示

openedai-speech 是一个兼容 OpenAI 音频/语音 API 的文本转语音 (TTS) 服务器。

它提供 /v1/audio/speech 端点,并支持自定义声音克隆功能,为您提供免费且私密的文本转语音体验。此服务与 OpenAI 没有任何关联,也不需要 OpenAI API 密钥。

环境要求

  • 系统已安装 Docker
  • Open WebUI 运行在 Docker 容器中
  • 对 Docker 和 Docker Compose 有基本了解

选项 1:使用 Docker Compose

第 1 步:为 openedai-speech 服务创建新文件夹

创建一个新文件夹(例如 openedai-speech-service),用于存放 docker-compose.ymlspeech.env 文件。

第 2 步:从 GitHub 克隆 openedai-speech 仓库

git clone https://github.com/matatonic/openedai-speech.git

这将下载仓库到本地,其中包括 Docker Compose 文件(docker-compose.ymldocker-compose.min.ymldocker-compose.rocm.yml)及其他必要文件。

第 3 步:将 sample.env 重命名为 speech.env(根据需要自定义)

在仓库文件夹中,创建一个名为 speech.env 的文件,内容如下:

TTS_HOME=voices
HF_HOME=voices

#PRELOAD_MODEL=xtts

#PRELOAD_MODEL=xtts_v2.0.2

#PRELOAD_MODEL=parler-tts/parler_tts_mini_v0.1

#EXTRA_ARGS=--log-level DEBUG --unload-timer 300

#USE_ROCM=1

第 4 步:选择 Docker Compose 文件

您可以使用以下任何一个文件:

第 5 步:构建并运行

在运行 Docker Compose 之前,您需要构建镜像:

  • Nvidia GPU (CUDA 支持)
docker build -t ghcr.io/matatonic/openedai-speech .
docker compose up -d
  • AMD GPU (ROCm 支持)
docker build -f Dockerfile --build-arg USE_ROCM=1 -t ghcr.io/matatonic/openedai-speech-rocm .
docker compose -f docker-compose.rocm.yml up -d
  • ARM64 (Apple M 系列, Raspberry Pi)仅 CPU:推荐使用 Piper 精简版:
docker build -f Dockerfile.min -t ghcr.io/matatonic/openedai-speech-min .
docker compose -f docker-compose.min.yml up -d

选项 2:使用 Docker Run 命令

您也可以直接使用 docker run 启动服务:

  • Nvidia GPU (CUDA)
docker build -t ghcr.io/matatonic/openedai-speech .
docker run -d --gpus=all -p 8000:8000 -v voices:/app/voices -v config:/app/config --name openedai-speech ghcr.io/matatonic/openedai-speech
  • ROCm (AMD GPU)

要启用 ROCm 支持,请取消 speech.env#USE_ROCM=1 的注释。

docker build -f Dockerfile --build-arg USE_ROCM=1 -t ghcr.io/matatonic/openedai-speech-rocm .
docker run -d --privileged --init --name openedai-speech -p 8000:8000 -v voices:/app/voices -v config:/app/config ghcr.io/matatonic/openedai-speech-rocm
  • 仅 CPU (仅 Piper)
docker build -f Dockerfile.min -t ghcr.io/matatonic/openedai-speech-min .
docker run -d -p 8000:8000 -v voices:/app/voices -v config:/app/config --name openedai-speech ghcr.io/matatonic/openedai-speech-min

第 6 步:配置 Open WebUI 使用 openedai-speech

openedai-tts

进入 Open WebUI 的 管理员面板 > 设置 > 音频,添加以下配置:

  • API 基础 URLhttp://host.docker.internal:8000/v1
  • API 密钥sk-111111111(这是一个虚拟密钥,因为该服务不需要密钥,但必须填写。)

第 7 步:选择声音

在同一设置菜单下,您可以从 openedai-speech 支持的模型中选择 TTS 声音。这些模型的声音针对英语进行了优化。

  • tts-1tts-1-hdalloy, echo, echo-alt, fable, onyx, nova, 和 shimmer

第 8 步:保存并享用

点击 保存 按钮应用设置。刷新页面后,您就可以在 Open WebUI 中使用自然的 AI 语音朗读回复了。

模型详情

openedai-speech 支持多种 TTS 模型:

  • Piper TTS(极速,运行于 CPU):通过 voice_to_speaker.yaml 配置文件使用 Piper 声音。适用于低延迟需求,支持多语言
  • Coqui AI/TTS XTTS v2(快速,需要约 4GB 显存):采用 XTTS v2 声音克隆技术,音质极佳,支持多语言
  • Beta Parler-TTS 支持(实验性,较慢):允许通过文本描述声音特征。

故障排除

如果遇到集成问题,请尝试:

  • 验证服务状态:确保服务正在运行且端口已暴露。
  • 检查 host.docker.internal:确保容器内可以解析此主机名。
  • 检查 API 密钥:确保已填写虚拟密钥。
  • 验证声音配置:确保 voice_to_speaker.yaml 中定义的声音及其文件路径正确。

常见问题

如何控制语音的情感范围? 目前没有直接机制。大写字母或语法可能会产生影响,但结果不一。

声音文件和配置文件存储在哪里? 存储在 config 卷中。默认声音在 voice_to_speaker.default.yaml 中定义。

其他资源

注意

您可以更改 docker-compose.yml 中的端口号,但请务必相应更新 Open WebUI 中的 API 基础 URL