Text to Speech – Documentation API

Convertissez un texte en audio par simple requête POST. Aucune authentification n'est requise .
Paramètres fixes
URL de basehttp://letmechatgpt.com
FournisseurElevenLabs
Modèleeleven_v4
VoixnecQJzI1X0vLpdnJteap
Longueur max du texte5000 caractères
Formatsmp3 (44.1 kHz, 128 kbps) ou wav (PCM 16 bits, 44.1 kHz)
SauvegardeChaque MP3 (et WAV si demandé) est stocké dans Firebase Storage ; son URL publique est renvoyée.
Authentification Aucune.
Endpoints
MéthodeRouteDescriptionRéponse
POST /api/tts Génère l'audio, le sauvegarde dans Firebase et renvoie ses URLs. application/json
POST /api/tts/audio Génère l'audio, le sauvegarde dans Firebase et renvoie directement le fichier. audio/mpeg ou audio/wav
GET /api/tts Informations sur l'API (modèle, voix, limites, formats). application/json
Corps de la requête (POST)

Au choix : JSON (Content-Type: application/json) ou formulaire (application/x-www-form-urlencoded / multipart/form-data).

ChampTypeRequisDescription
textstringouiTexte à convertir (max 5000 caractères).
formatstringnonmp3 (défaut) ou wav.
Réponse JSON de POST /api/tts
{
  "id": "20261017-143012-a1b2c3d4",
  "format": "mp3",
  "model": "eleven_v4",
  "voiceId": "necQJzI1X0vLpdnJteap",
  "textLength": 42,
  "sizeBytes": 68211,
  "mp3Url": "https://firebasestorage.googleapis.com/v0/b/.../o/text-to-speech%2F20261017-143012-a1b2c3d4.mp3?alt=media&token=...",
  "wavUrl": "… présent uniquement si format = wav …",
  "url": "… URL du fichier au format demandé …",
  "warning": "… présent uniquement si la sauvegarde Firebase a échoué …"
}
En-têtes de POST /api/tts/audio

Le corps est le fichier audio. Les métadonnées sont dans les en-têtes X-Tts-Id, X-Tts-Model, X-Tts-Mp3-Url, X-Tts-Wav-Url et, en cas de problème de sauvegarde, X-Tts-Firebase-Error.

Exemples
curl – JSON, réponse JSON (URL Firebase)
curl -X POST "http://letmechatgpt.com/api/tts" \
  -H "Content-Type: application/json" \
  -d '{"text": "Bonjour, ceci est un test.", "format": "mp3"}'
curl – formulaire, réponse JSON
curl -X POST "http://letmechatgpt.com/api/tts" \
  --data-urlencode "text=Bonjour, ceci est un test." \
  -d "format=wav"
curl – fichier audio direct
curl -X POST "http://letmechatgpt.com/api/tts/audio" \
  -H "Content-Type: application/json" \
  -d '{"text": "Bonjour, ceci est un test.", "format": "mp3"}' \
  -o sortie.mp3
JavaScript (fetch)
const res = await fetch("http://letmechatgpt.com/api/tts", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({ text: "Bonjour, ceci est un test.", format: "mp3" })
});
const data = await res.json();
console.log(data.url); // URL Firebase du MP3
Python (requests)
import requests

r = requests.post("http://letmechatgpt.com/api/tts/audio",
                  json={"text": "Bonjour, ceci est un test.", "format": "wav"})
r.raise_for_status()
open("sortie.wav", "wb").write(r.content)
print(r.headers.get("X-Tts-Mp3-Url"))
Codes d'erreur

Les erreurs sont renvoyées en JSON : {"status": 400, "error": "message"}.

CodeCas
400Texte vide, texte trop long, format inconnu, corps de requête illisible.
401Clé API absente ou invalide (uniquement si l'API est protégée).
500Erreur interne (ex. conversion WAV impossible).
502ElevenLabs a refusé ou n'a pas répondu (quota, clé, voix).