本教程為社群貢獻,並未獲得 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
現在可以與 API 進行互動,訪問 http://localhost:5050/v1/audio/speech
和其他可用的端點。 請參閱使用部分以獲取請求示例。
使用說明細節
端點: /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
以下是英語以外語言的示例:
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: 顯示可用的語音合成模型。
- POST/GET /v1/voices: 列出給定語言/地區的
edge-tts
聲音。 - POST/GET /v1/voices/all: 列出所有
edge-tts
聲音,包含語言支持信息。
/v1
現在是可選的。
此外,還有 Azure AI Speech 和 ElevenLabs 的端點,這些端點可供未來支持,如果在開放的 WebUI 中允許自定義API端點。