Skip to main content
warning

本教程是社区贡献,不受Open WebUI团队支持。它仅作为如何为您的特定用例自定义Open WebUI的演示。想要贡献?请查看贡献教程。

openai-edge-tts 🗣️ 与Open WebUI集成

什么是openai-edge-tts

OpenAI Edge TTS是一个模仿OpenAI API端点的文本转语音API,允许在可以定义端点URL的场景中直接替代,如Open WebUI。

它使用edge-tts包,该包利用Edge浏览器的免费"朗读"功能来模拟对Microsoft / Azure的请求,以免费接收非常高质量的文本转语音。

在此处采样语音

它与'openedai-speech'有何不同?

openedai-speech类似,openai-edge-tts是一个模仿OpenAI API端点的文本转语音API端点,允许在可以调用OpenAI Speech端点并且可以配置服务器端点URL的场景中直接替代。

openedai-speech是一个更全面的选项,允许完全离线生成语音,有许多模式可供选择。

openai-edge-tts是一个更简单的选项,使用名为edge-tts的Python包来生成音频。

要求

  • 系统上安装的Docker
  • 正在运行的Open WebUI

⚡️ 快速开始

最简单的入门方法,无需配置任何内容,就是运行下面的命令

docker run -d -p 5050:5050 travisvn/openai-edge-tts:latest

这将在端口5050上运行服务,使用所有默认配置

设置Open WebUI使用openai-edge-tts

  • 打开管理面板并转到设置 -> 音频
  • 设置您的TTS设置以匹配下面的截图
  • 注意:您可以在此处指定TTS语音

Open WebUI音频管理设置截图,为此项目添加正确的端点

info

默认API密钥是字符串your_api_key_here。如果您不需要额外的安全性,则无需更改该值。

就是这样!您可以在这里结束

如果您觉得OpenAI Edge TTS有用,请在GitHub上⭐️为仓库加星

使用Python运行

🐍 使用Python运行

如果您更喜欢直接使用Python运行此项目,请按照以下步骤设置虚拟环境、安装依赖项并启动服务器。

1. 克隆仓库

git clone https://github.com/travisvn/openai-edge-tts.git
cd openai-edge-tts

2. 设置虚拟环境

创建并激活虚拟环境以隔离依赖项:

# 对于macOS/Linux
python3 -m venv venv
source venv/bin/activate

# 对于Windows
python -m venv venv
venv\Scripts\activate

3. 安装依赖项

使用pip安装requirements.txt中列出的所需包:

pip install -r requirements.txt

4. 配置环境变量

在根目录中创建一个.env文件并设置以下变量:

API_KEY=your_api_key_here
PORT=5050

DEFAULT_VOICE=en-US-AvaNeural
DEFAULT_RESPONSE_FORMAT=mp3
DEFAULT_SPEED=1.0

DEFAULT_LANGUAGE=en-US

REQUIRE_API_KEY=True
REMOVE_FILTER=False
EXPAND_API=True

5. 运行服务器

配置完成后,使用以下命令启动服务器:

python app/server.py

服务器将在http://localhost:5050开始运行。

6. 测试API

您现在可以在http://localhost:5050/v1/audio/speech和其他可用端点与API交互。请参阅使用部分获取请求示例。

使用详情
端点:/v1/audio/speech(别名为/audio/speech

从输入文本生成音频。可用参数:

必需参数:

  • input(字符串):要转换为音频的文本(最多4096个字符)。

可选参数:

  • model(字符串):设置为"tts-1"或"tts-1-hd"(默认:"tts-1")。
  • voice(字符串):OpenAI兼容语音之一(alloy、echo、fable、onyx、nova、shimmer)或任何有效的edge-tts语音(默认:"en-US-AvaNeural")。
  • response_format(字符串):音频格式。选项:mp3opusaacflacwavpcm(默认:mp3)。
  • speed(数字):播放速度(0.25到4.0)。默认是1.0
tip

您可以在tts.travisvn.com浏览可用语音并聆听样本预览

使用curl并将输出保存到mp3文件的示例请求:

curl -X POST http://localhost:5050/v1/audio/speech \
-H "Content-Type: application/json" \
-H "Authorization: Bearer your_api_key_here" \
-d '{
"input": "Hello, I am your AI assistant! Just let me know how I can help bring your ideas to life.",
"voice": "echo",
"response_format": "mp3",
"speed": 1.0
}' \
--output speech.mp3

或者,与OpenAI API端点参数保持一致:

curl -X POST http://localhost:5050/v1/audio/speech \
-H "Content-Type: application/json" \
-H "Authorization: Bearer your_api_key_here" \
-d '{
"model": "tts-1",
"input": "Hello, I am your AI assistant! Just let me know how I can help bring your ideas to life.",
"voice": "alloy"
}' \
--output speech.mp3

以及英语以外的语言示例:

curl -X POST http://localhost:5050/v1/audio/speech \
-H "Content-Type: application/json" \
-H "Authorization: Bearer your_api_key_here" \
-d '{
"model": "tts-1",
"input": "じゃあ、行く。電車の時間、調べておくよ。",
"voice": "ja-JP-KeitaNeural"
}' \
--output speech.mp3
其他端点
  • POST/GET /v1/models:列出可用的TTS模型。
  • POST/GET /v1/voices:列出给定语言/区域设置的edge-tts语音。
  • POST/GET /v1/voices/all:列出所有edge-tts语音,包含语言支持信息。
info

/v1现在是可选的。

此外,还有用于Azure AI SpeechElevenLabs的端点,用于在Open WebUI中允许这些选项的自定义API端点时的潜在未来支持。

可以通过设置环境变量EXPAND_API=False来禁用这些。

🐳 Docker快速配置

您可以在运行项目的命令中配置环境变量

docker run -d -p 5050:5050 \
-e API_KEY=your_api_key_here \
-e PORT=5050 \
-e DEFAULT_VOICE=en-US-AvaNeural \
-e DEFAULT_RESPONSE_FORMAT=mp3 \
-e DEFAULT_SPEED=1.0 \
-e DEFAULT_LANGUAGE=en-US \
-e REQUIRE_API_KEY=True \
-e REMOVE_FILTER=False \
-e EXPAND_API=True \
travisvn/openai-edge-tts:latest
note

为了增强可读性和支持,markdown文本现在会通过过滤器处理。

您可以通过设置环境变量REMOVE_FILTER=True来禁用此功能。

其他资源

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

如需直接支持,您可以访问Voice AI & TTS Discord

🎙️ 语音样本

播放语音样本并查看所有可用的Edge TTS语音