Dieses Tutorial ist ein Beitrag der Community und wird nicht vom Open-WebUI-Team unterstützt. Es dient lediglich als Demonstration, wie Sie Open WebUI für Ihren spezifischen Anwendungsfall anpassen können. Möchten Sie beitragen? Schauen Sie sich das Tutorial zum Mitwirken an.
Integration von openai-edge-tts
🗣️ mit Open WebUI
Was ist openai-edge-tts
?
OpenAI Edge TTS ist eine Text-zu-Sprache-API, die den OpenAI-API-Endpunkt nachahmt und als direkter Ersatz in Szenarien dient, in denen Sie die Endpunkt-URL festlegen können, wie bei Open WebUI.
Es verwendet das Paket edge-tts, das die kostenlose Funktion "Vorlesen" des Edge-Browsers nutzt, um eine Anforderung an Microsoft/Azure zu simulieren und damit qualitativ hochwertige Text-zu-Sprache kostenlos zu erhalten.
Hier können Sie die Stimmen ausprobieren
Wie unterscheidet es sich von 'openedai-speech'?
Ähnlich wie openedai-speech ist openai-edge-tts ein Text-zu-Sprache-API-Endpunkt, der den OpenAI-API-Endpunkt nachahmt und als direkter Ersatz in Szenarien dient, in denen der OpenAI-Speech-Endpunkt aufgerufen werden kann und die Server-Endpunkt-URL konfigurierbar ist.
openedai-speech
ist eine umfassendere Option, die die vollständig offline Erzeugung von Sprache mit vielen Modalitäten ermöglicht.
openai-edge-tts
ist eine einfachere Option, die ein Python-Paket namens edge-tts
verwendet, um den Ton zu erzeugen.
Anforderungen
- Docker auf Ihrem System installiert
- Open WebUI läuft
⚡️ Schnellstart
Der einfachste Weg, ohne Konfiguration zu starten, ist, den folgenden Befehl auszuführen
docker run -d -p 5050:5050 travisvn/openai-edge-tts:latest
Dies wird den Service auf Port 5050 mit allen Standardeinstellungen ausführen
Open WebUI einrichten, um openai-edge-tts
zu verwenden
- Öffnen Sie das Admin-Panel und gehen Sie zu
Einstellungen
->Audio
- Passen Sie Ihre TTS-Einstellungen an das unten stehende Screenshot an
- Hinweis: Sie können hier die TTS-Stimme angeben
Der standardmäßige API-Schlüssel ist die Zeichenkette your_api_key_here
. Sie müssen diesen Wert nicht ändern, wenn Sie keine zusätzliche Sicherheit benötigen.
Und das war's! Hier können Sie aufhören
Bitte ⭐️ geben Sie dem Repository auf GitHub einen Stern, wenn Sie OpenAI Edge TTS nützlich finden
Mit Python ausführen
🐍 Mit Python ausführen
Wenn Sie dieses Projekt lieber direkt mit Python ausführen möchten, folgen Sie diesen Schritten, um eine virtuelle Umgebung einzurichten, Abhängigkeiten zu installieren und den Server zu starten.
1. Repository klonen
git clone https://github.com/travisvn/openai-edge-tts.git
cd openai-edge-tts
2. Virtuelle Umgebung einrichten
Erstellen und aktivieren Sie eine virtuelle Umgebung, um Abhängigkeiten isoliert zu halten:
# Für macOS/Linux
python3 -m venv venv
source venv/bin/activate
# Für Windows
python -m venv venv
venv\Scripts\activate
3. Abhängigkeiten installieren
Verwenden Sie pip
, um die erforderlichen Pakete aus der Datei requirements.txt
zu installieren:
pip install -r requirements.txt
4. Umgebungsvariablen konfigurieren
Erstellen Sie eine .env
-Datei im Hauptverzeichnis und setzen Sie die folgenden Variablen:
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. Server ausführen
Sobald alles konfiguriert ist, starten Sie den Server mit:
python app/server.py
Der Server wird unter http://localhost:5050
ausgeführt.
6. API testen
Sie können nun mit der API unter http://localhost:5050/v1/audio/speech
und anderen verfügbaren Endpunkten interagieren. Weitere Beispiele finden Sie im Abschnitt zur Nutzung.
Details zur Nutzung
Endpunkt: /v1/audio/speech
(alias /audio/speech
)
Generiert Audio aus dem eingegebenen Text. Verfügbare Parameter:
Erforderlicher Parameter:
- input (string): Der Text, der in Audio umgewandelt werden soll (bis zu 4096 Zeichen).
Optionale Parameter:
- model (string): Setzen auf "tts-1" oder "tts-1-hd" (Standard:
"tts-1"
). - voice (string): Eine der OpenAI-kompatiblen Stimmen (alloy, echo, fable, onyx, nova, shimmer) oder eine gültige
edge-tts
-Stimme (Standard:"en-US-AvaNeural"
). - response_format (string): Audioformat. Optionen:
mp3
,opus
,aac
,flac
,wav
,pcm
(Standard:mp3
). - speed (number): Wiedergabegeschwindigkeit (0.25 bis 4.0). Standard ist
1.0
.
Sie können verfügbare Stimmen durchsuchen und Probevorschauen unter tts.travisvn.com anhören
Beispielanfrage mit curl
und Speichern der Ausgabe als MP3-Datei:
curl -X POST http://localhost:5050/v1/audio/speech \
-H "Content-Type: application/json" \
-H "Authorization: Bearer your_api_key_here" \
-d {
"input": "Hallo, ich bin dein KI-Assistent! Lass mich wissen, wie ich dir helfen kann, deine Ideen zum Leben zu erwecken.",
"voice": "echo",
"response_format": "mp3",
"speed": 1.0
} \
--output speech.mp3
Oder passend zu den OpenAI API Endpunktparametern:
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": "Hallo, ich bin dein KI-Assistent! Lass mich wissen, wie ich dir helfen kann, deine Ideen zum Leben zu erwecken.",
"voice": "alloy"
} \
--output speech.mp3
Und ein Beispiel in einer anderen Sprache als Englisch:
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
Zusätzliche Endpunkte
- POST/GET /v1/models: Listet verfügbare TTS-Modelle auf.
- POST/GET /v1/voices: Listet
edge-tts
Stimmen für eine gegebene Sprache / Lokalität auf. - POST/GET /v1/voices/all: Listet alle
edge-tts
Stimmen mit Informationen zur Sprachunterstützung auf.
Das /v1
ist jetzt optional.
Außerdem gibt es Endpunkte für Azure AI Speech und ElevenLabs für eine mögliche zukünftige Unterstützung, falls benutzerdefinierte API-Endpunkte für diese Optionen in Open WebUI erlaubt werden.
Diese können deaktiviert werden, indem die Umgebungsvariable EXPAND_API=False
gesetzt wird.
🐳 Schnellkonfiguration für Docker
Die Umgebungsvariablen können im Befehl zur Ausführung des Projekts konfiguriert werden
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
Der Markdown-Text wird jetzt durch einen Filter für bessere Lesbarkeit und Unterstützung geleitet.
Sie können dies deaktivieren, indem Sie die Umgebungsvariable REMOVE_FILTER=True
setzen.
Zusätzliche Ressourcen
Weitere Informationen zu openai-edge-tts
finden Sie im GitHub-Repo
Für direkte Unterstützung können Sie den Voice AI & TTS Discord besuchen
🎙️ Sprachproben
Hören Sie Sprachproben und sehen Sie alle verfügbaren Edge-TTS-Stimmen