本教程是社区贡献的内容,并未得到 Open WebUI 团队的支持。它仅作为如何为特定使用场景自定义 Open WebUI 的示范。如果您想贡献,请查阅贡献教程。
与 Open WebUI 集成 openai-edge-tts
🗣️
什么是 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
- 打开管理面板并进入
Settings
->Audio
- 将 TTS 设置调整为以下截图所示的配置
- 注意:您可以在此指定 TTS 语音
默认的 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(字符串):音频格式。选项有:
mp3
,opus
,aac
,flac
,wav
,pcm
(默认:mp3
)。 - speed(数字):播放速度(0.25 到 4.0)。默认值为
1.0
。
您可以在 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": "你好,我是你的AI助手!告诉我,我可以如何帮助实现你的想法。",
"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": "你好,我是你的AI助手!告诉我,我可以如何帮助实现你的想法。",
"voice": "alloy"
}' \
--output speech.mp3