跳到主要内容

使用 Docker 集成 Openedai-speech

注意

本教程是社区贡献内容,不属于 OPL 数据空间官方支持范围,主要用于演示如何按你的环境接入 openedai-speech

在 OPL 数据空间中通过 Docker 集成 openedai-speech

什么是 openedai-speech

信息

openedai-speech 是一个兼容 OpenAI audio/speech API 的文本转语音服务。它提供 /v1/audio/speech 端点,可在不依赖 OpenAI 官方 API Key 的情况下,提供私有、可定制的 TTS 体验。

前提

  • 系统已安装 Docker
  • OPL 数据空间正在 Docker 容器中运行
  • 对 Docker / Docker Compose 有基本了解

方式 1:使用 Docker Compose

第 1 步:创建服务目录

例如创建 openedai-speech-service 目录,用于存放 docker-compose.ymlspeech.env

第 2 步:克隆仓库

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

第 3 步:准备 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 步:选择 Compose 文件

常见选择包括:

  • docker-compose.yml
  • docker-compose.min.yml
  • docker-compose.rocm.yml

第 5 步:构建镜像

  • Nvidia GPU
docker build -t ghcr.io/matatonic/openedai-speech .
  • AMD GPU(ROCm)
docker build -f Dockerfile --build-arg USE_ROCM=1 -t ghcr.io/matatonic/openedai-speech-rocm .
  • 纯 CPU / Piper only
docker build -f Dockerfile.min -t ghcr.io/matatonic/openedai-speech-min .

第 6 步:启动服务

  • Nvidia:
docker compose up -d
  • AMD ROCm:
docker compose -f docker-compose.rocm.yml up -d
  • ARM64 或 CPU-only:
docker compose -f docker-compose.min.yml up -d

方式 2:使用 docker run

也可以直接运行:

  • Nvidia GPU
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
  • AMD GPU
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 only
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

在 OPL 数据空间中配置

进入 管理员面板 > 设置 > 语音,填入:

  • API Base URLhttp://host.docker.internal:8000/v1
  • API Key:可随意填写一个占位值,例如 sk-111111111

选择声音

在同一设置页中设置 TTS ModelTTS Voice。常见模型与声音:

  • tts-1tts-1-hd
  • alloyechoecho-altfableonyxnovashimmer

保存后刷新页面即可开始使用。

模型说明

openedai-speech 支持多种 TTS 后端:

  • Piper TTS:速度快,CPU 可跑
  • Coqui XTTS v2:质量高,但需要较强 GPU
  • Parler-TTS:实验性支持

故障排查

  • 确认 openedai-speech 容器已运行,端口已正确暴露
  • 确认 host.docker.internal 对 OPL 数据空间容器可达
  • API Key 可使用任意占位值
  • 确认选中的声音实际存在
  • 查看 openedai-speech 容器日志

XTTS 显存问题

  • XTTS 大约需要 4GB GPU 显存
  • 若显存不足,优先改用 Piper-only 镜像

ARM64 / Apple Silicon

  • XTTS 在 ARM64 上通常只能 CPU 跑,会很慢
  • 推荐直接使用 docker-compose.min.yml