Ce projet fournit une API locale et compatible ouverte-compatible (TTS) utilisant edge-tts . Il émule le point de terminaison OpenAI TTS ( /v1/audio/speech ), permettant aux utilisateurs de générer un discours à partir de texte avec diverses options vocales et des vitesses de lecture, tout comme l'API OpenAI.
edge-tts utilise le service de texte vocale en ligne de Microsoft Edge, il est donc entièrement gratuit.
Voir ce projet sur Docker Hub
/v1/audio/speech avec une structure et un comportement de demande similaires.edge-tts .requirements.txt .git clone https://github.com/travisvn/openai-edge-tts.git
cd openai-edge-tts.env dans le répertoire racine avec les variables suivantes: API_KEY=your_api_key_here
PORT=5050
DEFAULT_VOICE=en-US-AndrewNeural
DEFAULT_RESPONSE_FORMAT=mp3
DEFAULT_SPEED=1.2
DEFAULT_LANGUAGE=en-US
REQUIRE_API_KEY=True
Ou, copiez le par défaut .env.example avec les suivants:
cp .env.example .envdocker compose up --build(Remarque: Docker-Compose n'est pas le même que Docker Compose)
Exécutez avec -d pour exécuter docker compose en "mode détaché", ce qui signifie qu'il fonctionnera en arrière-plan et libérera votre terminal.
docker compose up -dAlternativement, exécutez directement avec Docker :
docker build -t openai-edge-tts .
docker run -p 5050:5050 --env-file .env openai-edge-tts Pour exécuter le conteneur en arrière-plan, ajoutez -d après la commande docker run :
docker run -d -p 5050:5050 --env-file .env openai-edge-ttshttp://localhost:5050 . Si vous préférez exécuter ce projet directement avec Python, suivez ces étapes pour configurer un environnement virtuel, installer des dépendances et démarrer le serveur.
git clone https://github.com/travisvn/openai-edge-tts.git
cd openai-edge-ttsCréer et activer un environnement virtuel pour isoler les dépendances:
# For macOS/Linux
python3 -m venv venv
source venv/bin/activate
# For Windows
python -m venv venv
venv S cripts a ctivate Utilisez pip pour installer les packages requis répertoriés dans requirements.txt :
pip install -r requirements.txt 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-AndrewNeural
DEFAULT_RESPONSE_FORMAT=mp3
DEFAULT_SPEED=1.2
DEFAULT_LANGUAGE=en-US
REQUIRE_API_KEY=True
Une fois configuré, démarrez le serveur avec:
python app/server.py Le serveur commencera à s'exécuter sur http://localhost:5050 .
Vous pouvez désormais interagir avec l'API à http://localhost:5050/v1/audio/speech et autres points de terminaison disponibles. Voir la section d'utilisation pour les exemples de demande.
/v1/audio/speechGénère l'audio à partir du texte d'entrée. Paramètres disponibles:
Paramètre requis:
Paramètres facultatifs:
"tts-1" ).edge-tts valide (par défaut: "en-US-AndrewNeural" ).mp3 , opus , aac , flac , wav , pcm (par défaut: mp3 ).1.2 . Exemple de demande avec curl et enregistrer la sortie dans un fichier 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.2
} '
--output speech.mp3Ou, pour être conforme aux paramètres de point de terminaison de l'API OpenAI:
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.mp3Et un exemple de langue autre que l'anglais:
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.mp3edge-tts pour une langue / lieu donnée.edge-tts , avec des informations de support linguistique.Les contributions sont les bienvenues! Veuillez débarquer le référentiel et créer une demande de traction pour toute amélioration.
Ce projet est concédé sous licence GNU General Public License v3.0 (GPL-3.0), et le cas d'utilisation acceptable est destiné à être utile. Pour l'entreprise ou l'utilisation non personnelle d' openai-edge-tts , contactez-moi à [email protected]
Conseil
Échangez localhost vers votre IP local (Ex. 192.168.0.1 ) si vous avez des problèmes
Il se peut que, lorsque vous accédez à ce point de terminaison sur un autre serveur / ordinateur ou lorsque l'appel est passé à partir d'une autre source (comme Open WebUI), vous devez changer l'URL de localhost en votre IP local (quelque chose comme 192.168.0.1 ou similaire)
Ouvrez le panneau d'administration et accédez à Paramètres -> Audio
Ci-dessous, vous pouvez voir une capture d'écran de la configuration correcte pour utiliser ce projet pour remplacer le point de terminaison OpenAI
Note
Consultez les documents officiels pour l'intégration Open WebUI avec Openai Edge TTS
Dans la version 1.6.8, tout a ajouté une prise en charge des "fournisseurs de TTS génériques" - ce qui signifie que nous pouvons utiliser ce projet comme fournisseur TTS dans n'importe quoi
Ouvrez les paramètres et allez chez Voice & Speech (sous les fournisseurs d'IA)
Ci-dessous, vous pouvez voir une capture d'écran de la configuration correcte pour utiliser ce projet pour remplacer le point de terminaison OpenAI
your_api_key_here n'a jamais besoin d'être remplacé - aucune clé API "réelle" n'est requise. Utilisez la chaîne que vous souhaitez.docker run -d -p 5050:5050 -e API_KEY=your_api_key_here -e PORT=5050 travisvn/openai-edge-tts:latestJouer des échantillons de voix et voir toutes les voix TTS disponibles disponibles