Ce tutoriel est une contribution de la communauté et n'est pas soutenu par l'équipe Open WebUI. Il sert uniquement de démonstration pour personnaliser Open WebUI selon votre cas d'utilisation spécifique. Vous souhaitez contribuer ? Consultez le tutoriel de contribution.
Intégrer openai-edge-tts
🗣️ avec Open WebUI
Qu'est-ce que openai-edge-tts
?
OpenAI Edge TTS est une API de synthèse vocale qui imite le point de terminaison de l'API d'OpenAI, permettant un remplacement direct dans les scénarios où vous pouvez définir l'URL du point de terminaison, comme avec Open WebUI.
Il utilise le package edge-tts, qui exploite la fonctionnalité gratuite "Lecture à haute voix" du navigateur Edge pour simuler une requête auprès de Microsoft / Azure afin d'obtenir gratuitement une synthèse vocale de très haute qualité.
Écoutez des exemples de voix ici
Quelle est la différence avec 'openedai-speech' ?
Similaire à openedai-speech, openai-edge-tts est un point de terminaison d'API de synthèse vocale qui imite le point de terminaison de l'API d'OpenAI, permettant un remplacement direct dans les scénarios où le point de terminaison d'OpenAI Speech est accessible et où l'URL du point de terminaison serveur peut être configurée.
openedai-speech
est une option plus complète qui permet une génération complètement hors ligne des voix avec de nombreux choix de modalités.
openai-edge-tts
est une option plus simple qui utilise un package Python appelé edge-tts
pour générer l'audio.
Prérequis
- Docker installé sur votre système
- Open WebUI en cours d'exécution
⚡️ Démarrage rapide
La manière la plus simple de commencer sans avoir à configurer quoi que ce soit est de lancer la commande ci-dessous
docker run -d -p 5050:5050 travisvn/openai-edge-tts:latest
Cela exécutera le service au port 5050 avec toutes les configurations par défaut
Configuration d'Open WebUI pour utiliser openai-edge-tts
- Ouvrez le panneau d'administration et allez dans
Paramètres
->Audio
- Configurez vos paramètres TTS pour correspondre à la capture d'écran ci-dessous
- Remarque : vous pouvez spécifier la voix TTS ici
La clé API par défaut est la chaîne your_api_key_here
. Vous n'avez pas besoin de changer cette valeur si vous n'avez pas besoin de sécurité supplémentaire.
Et c'est tout ! Vous pouvez vous arrêter ici
Veuillez ⭐️ étoiler le dépôt sur GitHub si vous trouvez OpenAI Edge TTS utile
Exécution avec Python
🐍 Exécution avec Python
Si vous préférez exécuter ce projet directement avec Python, suivez ces étapes pour configurer un environnement virtuel, installer les dépendances et démarrer le serveur.
1. Clonez le dépôt
git clone https://github.com/travisvn/openai-edge-tts.git
cd openai-edge-tts
2. Configurez un environnement virtuel
Créez et activez un environnement virtuel pour isoler les dépendances :
# Pour macOS/Linux
python3 -m venv venv
source venv/bin/activate
# Pour Windows
python -m venv venv
venv\Scripts\activate
3. Installez les dépendances
Utilisez pip
pour installer les packages requis listés dans requirements.txt
:
pip install -r requirements.txt
4. Configurez les variables d'environnement
Créez un fichier .env
dans le répertoire racine et définissez les variables suivantes :
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. Exécutez le serveur
Une fois configuré, démarrez le serveur avec :
python app/server.py
Le serveur commencera à fonctionner à l'adresse http://localhost:5050
.
6. Testez l'API
Vous pouvez maintenant interagir avec l'API à l'adresse http://localhost:5050/v1/audio/speech
et à d'autres points de terminaison disponibles. Consultez la section Utilisation pour des exemples de requêtes.
Détails d'utilisation
Point de terminaison : /v1/audio/speech
(alias : /audio/speech
)
Génère de l'audio à partir du texte d'entrée. Paramètres disponibles :
Paramètre requis :
- input (string) : Le texte à convertir en audio (jusqu'à 4096 caractères).
Paramètres optionnels :
- model (string) : Définit sur "tts-1" ou "tts-1-hd" (par défaut :
"tts-1"
). - voice (string) : Une des voix compatibles avec OpenAI (alloy, echo, fable, onyx, nova, shimmer) ou toute voix valide
edge-tts
(par défaut :"en-US-AvaNeural"
). - response_format (string) : Format audio. Options :
mp3
,opus
,aac
,flac
,wav
,pcm
(par défaut :mp3
). - speed (number) : Vitesse de lecture (0.25 à 4.0). Par défaut :
1.0
.
Vous pouvez parcourir les voix disponibles et écouter des aperçus sur tts.travisvn.com
Exemple de requête avec curl
et enregistrement de la sortie dans un fichier mp3 :
curl -X POST http://localhost:5050/v1/audio/speech \
-H "Content-Type: application/json" \
-H "Authorization: Bearer votre_clé_api_ici" \
-d {
"input": "Bonjour, je suis votre assistant IA ! Dites-moi simplement comment je peux aider à donner vie à vos idées.",
"voice": "echo",
"response_format": "mp3",
"speed": 1.0
} \
--output speech.mp3
Ou, pour être conforme aux paramètres des points de terminaison de l'API OpenAI:
curl -X POST http://localhost:5050/v1/audio/speech \
-H "Content-Type: application/json" \
-H "Authorization: Bearer votre_clé_api_ici" \
-d {
"model": "tts-1",
"input": "Bonjour, je suis votre assistant IA ! Dites-moi simplement comment je peux aider à donner vie à vos idées.",
"voice": "alloy"
} \
--output speech.mp3
Et un exemple dans une langue autre que l'anglais :
curl -X POST http://localhost:5050/v1/audio/speech \
-H "Content-Type: application/json" \
-H "Authorization: Bearer votre_clé_api_ici" \
-d {
"model": "tts-1",
"input": "じゃあ、行く。電車の時間、調べておくよ。",
"voice": "ja-JP-KeitaNeural"
} \
--output speech.mp3
Points de terminaison supplémentaires
- POST/GET /v1/models: Liste des modèles TTS disponibles.
- POST/GET /v1/voices: Liste des voix
edge-tts
pour une langue / région donnée. - POST/GET /v1/voices/all: Liste toutes les voix
edge-tts
, avec des informations sur la prise en charge des langues.
Le /v1
est maintenant facultatif.
De plus, il existe des points de terminaison pour Azure AI Speech et ElevenLabs pour un support futur possible si des points de terminaison API personnalisés sont autorisés pour ces options dans Open WebUI.
Ces derniers peuvent être désactivés en définissant la variable d'environnement EXPAND_API=False
.
🐳 Configuration rapide pour Docker
Vous pouvez configurer les variables d'environnement dans la commande utilisée pour exécuter le projet
docker run -d -p 5050:5050 \
-e API_KEY=votre_clé_api_ici \
-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
Le texte markdown est désormais passé à travers un filtre pour une meilleure lisibilité et prise en charge.
Vous pouvez désactiver cela en définissant la variable d'environnement REMOVE_FILTER=True
.
Ressources supplémentaires
Pour plus d'informations sur openai-edge-tts
, vous pouvez visiter le repository GitHub
Pour un support direct, vous pouvez visiter le Discord Voice AI & TTS
🎙️ Échantillons de voix
Écouter des échantillons de voix et voir toutes les voix Edge TTS disponibles