Skip to Content
Référence APIProtocole compatible OpenAIAudio Speech

Audio Speech API

Convertit du texte en parole. Compatible avec POST /v1/audio/speech d’OpenAI ; le corps de la réponse est directement le fichier audio (binaire), et non du JSON.

FamilleModèleRemarques
ElevenLabselevenlabs/eleven_v4Voir ElevenLabs
Gemini TTSgoogle/gemini-3.8-flash-tts, etc.Voir Gemini TTS

Les valeurs possibles de voice, response_format et d’autres paramètres varient selon le modèle ; référez-vous à la page de chaque famille.

Démarrage rapide

base_urlhttps://api.ofox.ai/v1
Adresse de l'endpointhttps://api.ofox.ai/v1/audio/speech
ID du modèlegoogle/gemini-3.8-flash-tts
speech.py
import os from openai import OpenAI client = OpenAI(base_url="https://api.ofox.ai/v1", api_key=os.environ["OFOX_API_KEY"]) with client.audio.speech.with_streaming_response.create( model="google/gemini-3.8-flash-tts", voice="Kore", input="Bonjour, bienvenue dans la synthèse vocale OfoxAI.", response_format="wav", ) as resp: resp.stream_to_file("speech.wav")

Paramètres de la requête

modelobligatoirestring

ID du modèle ; voir le tableau ci-dessus.

inputobligatoirestring

Texte à synthétiser. Vide, il renvoie 400.

voicestring

Voix. Obligatoire pour Gemini TTS, avec un nom de voix Google (p. ex. Kore) ; pour ElevenLabs, la valeur est un ID de voix (p. ex. 21m00Tcm4TlvDq8ikWAM). Les noms de voix d’OpenAI (p. ex. alloy) ne fonctionnent avec aucune de ces deux familles.

Format audio. Les valeurs possibles varient selon le modèle : Gemini TTS prend en charge wav et pcm ; ElevenLabs prend en charge mp3, opus, wav et pcm. Un format non pris en charge renvoie 400.

Indications de ton et de style, par exemple « Lis ce texte sur un ton enjoué ». S’applique à Gemini TTS.

Code de langue, par exemple cmn-CN (Gemini TTS) ou zh (ElevenLabs). S’il est omis, le modèle déduit la langue du texte.

stream_formatstring· valeurssse

Avec sse, l’audio est renvoyé par fragments en streaming via Server-Sent Events. S’applique à Gemini TTS.

Paramètres propres au fournisseur, transmis tels quels à celui-ci, par exemple {"elevenlabs": {"voice_settings": {...}}} pour ElevenLabs. Voir la page de chaque famille.

Réponse

En cas de succès, HTTP 200 ; le corps de la réponse est le fichier audio, avec un Content-Type correspondant au format :

response_formatContent-Type
mp3audio/mpeg
wavaudio/wav
opusaudio/ogg
pcmaudio/L16;rate=<fréquence d'échantillonnage>;channels=1, PCM 16 bits sans en-tête de fichier

Écrivez directement le corps de la réponse dans un fichier. En cas d’erreur, la réponse est du JSON avec un Content-Type application/json : vérifiez d’abord le code de statut pour éviter d’enregistrer le message d’erreur comme fichier audio.

Erreurs courantes

HTTPMessage d’erreurCauseSolution
400model and input are required.model manquant, ou input videComplétez les paramètres
400voice is required for speech completionvoice non fourni pour Gemini TTSIndiquez un nom de voix, p. ex. Kore
400unsupported Gemini response_format: mp3Le modèle ne prend pas en charge le format choisiUtilisez un format listé sur la page de la famille
400Request contains an invalid argument.Le nom de voix Gemini TTS n’existe pasUtilisez un nom de voix valide
404A voice with voice_id 'alloy' was not found.L’ID de voix ElevenLabs n’existe pasUtilisez un ID de voix valide
400 endpoint_not_supportedModel 'openai/gpt-5.4' does not support the /v1/audio/speech endpoint on this platform.Le modèle choisi n’est pas un modèle de synthèse vocaleUtilisez un modèle du tableau ci-dessus

Description complète des codes d’erreur : Gestion des erreurs.

Dernière mise à jour le