Transcription audio
Transcrivez des fichiers audio avec le point de terminaison OpenAI-compatible POST /v1/audio/transcriptions. Modèles pris en charge, limites de fichiers, exemples curl et Python, ainsi que l’API facultative de tâches asynchrones par URL.
Audio compatible avec OpenAI
Utilisez le format JSON OpenAI pour la synthèse vocale. La réponse contient des octets audio et utilise MP3 par défaut.
curl https://getvibeapi.com/v1/audio/speech \
-H "Authorization: Bearer $GETVIBE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "chatterbox-turbo",
"input": "Hello from GetVibe",
"voice": "default",
"response_format": "mp3",
"speed": 1
}' \
--output speech.mp3Les modèles disponibles sont tts, gemini-tts, gemini-3.8-flash-tts, gemini-3.8-flash-lite-tts, gemini-3.8-flash-tts-lite, chatterbox-tts, kokoro-tts, chatterbox-turbo et gpt-4o-mini-tts. response_format (mp3, opus, aac, flac, wav, pcm) et speed utilisent le format OpenAI ; les pages des modèles indiquent les éventuelles limites natives plus restrictives. gpt-4o-mini-tts accepte les 13 voix OpenAI (alloy, ash, ballad, coral, echo, fable, nova, onyx, sage, shimmer, verse, marin, cedar) ainsi que le champ facultatif instructions, qui oriente le rendu en termes simples, par exemple « speak calmly and warmly ».
Clonage de voix
Le modèle voice-clone-tts prononce n’importe quel texte avec votre propre voix, y compris en russe. Commencez par créer la voix une seule fois à partir d’un enregistrement de 3–60 secondes (wav ou mp3, jusqu’à 10 MB) — cette opération est gratuite. consent: true est obligatoire : vous confirmez qu’il s’agit de votre propre voix ou que vous avez le consentement de son propriétaire. Jusqu’à 20 nouvelles voix par période de 24 heures.
curl https://getvibeapi.com/api/media/voices \
-H "Authorization: Bearer $GETVIBE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "My voice",
"consent": true,
"audio_url": "https://example.com/my-voice.wav"
}'La réponse contient voice.id (voice_…). Transmettez-le comme opts.voice_id dans une requête média ordinaire ; moteur qwen3 (par défaut, meilleure qualité) ou chatterbox (économique). Facturé par tranche de 1000 caractères de texte, jusqu’à 4000 caractères par requête.
Voix Premium — la ressemblance la plus fidèle. Ajoutez "engine": "premium" lors de sa création ; l’enregistrement doit durer 10–60 secondes. La création coûte $2.00 une seule fois et n’est facturée que si la voix est créée : aucune facturation en cas d’erreur, et un solde inférieur au prix renvoie 402 avant l’envoi de l’enregistrement. Synthétisez avec un moteur MiniMax : minimax-speech-2.8-hd, minimax-speech-2.6-hd ou minimax-speech-02-hd ($0.125 pour 1000 caractères), ainsi que leurs versions Turbo ($0.075) ; les anciens noms premium / premium-turbo désignent speech-02. Juste après la création, nous prononçons un mot court avec la voix — MiniMax supprime toute voix restée inutilisée pendant 7 jours. Une voix Premium supprimée cesse immédiatement de fonctionner, mais le service de synthèse ne propose aucune suppression et les frais de création ne sont pas remboursés.
curl https://getvibeapi.com/api/media/generate \
-H "Authorization: Bearer $GETVIBE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "voice-clone-tts",
"prompt": "Hello! This is my cloned voice.",
"opts": { "voice_id": "voice_Ab12Cd34Ef56Gh78Ij90", "language": "auto" }
}'Une voix est utilisable uniquement par votre compte. Répertoriez-les avec GET /api/media/voices ; supprimez-en une avec DELETE /api/media/voices/{voice_id} : l’enregistrement est également supprimé du service de synthèse. Nous ne conservons pas nous-mêmes l’enregistrement.
Voix ElevenLabs. Lorsqu’elle est activée, GET /api/media/voices répertorie ses prix sous pricing.elevenlabs_*. Créez la voix avec engine: "elevenlabs" à partir d’un enregistrement de 10–60 secondes (les emplacements de voix sont limités : lorsqu’ils sont tous occupés, la réponse est 409 voice_slots_full), puis synthétisez avec elevenlabs-v4 ou elevenlabs-v4-turbo — stabilité, similarity_boost, speed, seed, language et balises audio telles que [laughs] directement dans le texte. Le second fichier de résultat est un fichier JSON de sous-titres contenant les minutages des mots. Prix pour 1000 caractères : v4 $0.044, v4 Turbo $0.022 — tarif promotionnel jusqu’au 12 octobre 2026, puis $0.16 et $0.08. Le stockage coûte $0.70 par voix et par mois (le premier mois est inclus ; les mois suivants sont facturés le jour de création de la voix). Si votre solde est insuffisant, la voix est conservée pendant un mois supplémentaire et supprimée uniquement si les frais restent impayés lors de la facturation suivante — nous vous envoyons d’abord un e-mail. Consultez toutes vos voix et leur statut sous My voices.
Plusieurs enregistrements. Une voix ElevenLabs accepte jusqu’à 25 enregistrements : lors de sa création, sous forme de tableau samples (chaque élément étant {"audio_url"} ou {"audio_base64"}, wav/mp3 jusqu’à 10 MB, 50 MB au total et 10–300 secondes), puis ultérieurement avec POST /api/media/voices/{voice_id}/samples {"samples": […]}. L’ajout est gratuit ; les frais de stockage restent uniques par voix. Avec "remove_background_noise": true, ElevenLabs supprime gratuitement le bruit de fond des enregistrements (désactivé par défaut : cela peut détériorer un enregistrement propre).
Transcription compatible avec OpenAI
Envoyez une requête multipart avec file et model. Les fichiers sont limités à 50 MB. La réponse est { text: "..." }.
curl https://getvibeapi.com/v1/audio/transcriptions \
-H "Authorization: Bearer $GETVIBE_API_KEY" \
-F [email protected] \
-F model=whisper-large-v3 \
-F language=en
# → {"text":"..."}Les modèles disponibles sont speech-to-text, whisper-large-v3-turbo, nemotron-asr-multilingual et whisper-large-v3. Les tarifs actuels par minute figurent dans le catalogue des modèles audio. La taille des fichiers doit être comprise entre 1 octet et 50 MB.
Horodatages et sous-titres
response_format suit le format OpenAI : json (par défaut, { text }), text (texte brut), verbose_json (JSON avec language, duration et segments[] — id, start, end, text en secondes), srt et vtt (sous-titres prêts à l’emploi). Pour obtenir les horodatages des mots, envoyez timestamp_granularities[]=word avec verbose_json (champ words[] : word, start, end) ; segment et word peuvent être combinés. Le prix ne dépend pas du format.
# SRT subtitles (or vtt); verbose_json returns JSON with segments[] and words[]
curl https://getvibeapi.com/v1/audio/transcriptions \
-H "Authorization: Bearer $GETVIBE_API_KEY" \
-F [email protected] \
-F model=whisper-large-v3 \
-F response_format=srt
curl https://getvibeapi.com/v1/audio/transcriptions \
-H "Authorization: Bearer $GETVIBE_API_KEY" \
-F [email protected] \
-F model=whisper-large-v3 \
-F response_format=verbose_json \
-F "timestamp_granularities[]=segment" \
-F "timestamp_granularities[]=word"
# → {"task":"transcribe","language":"en","duration":5.9,"text":"...",
# "segments":[{"id":0,"start":0.03,"end":0.71,"text":"Hello!"}, ...],
# "words":[{"word":"Hello!","start":0.03,"end":0.51}, ...]}Les horodatages proviennent de whisper-large-v3, whisper-large-v3-turbo, nemotron-asr-multilingual, qwen3-asr-1.7b et speech-to-text (ses segments sont construits à partir des repères temporels des mots). universal-2, voxtral-small-24b-2507 et nemotron-3-diarization ne renvoient aucun horodatage ; verbose_json / srt / vtt sont donc refusés avec le code 400 pour ces modèles avant toute facturation.
universal-2 n’est pas disponible sur ces routes. L’ancien /api/transcribe accepte un audio_url public, s’exécute de manière asynchrone et est activé par l’opérateur avec TRANSCRIBE_ENABLED ; sinon, il renvoie 503.Transcription d’URL héritée
Transcription audio asynchrone à partir d’une URL publique. Vous créez une tâche et interrogez le résultat à l’aide de notre id.
Paramètres de création
| Paramètre | Type | Description |
|---|---|---|
audio_urlreq. | chaîne (URL) | Un lien public vers le fichier audio. |
language | string | Code de langue, par exemple ru, en (2-10 caractères). Facultatif — détection automatique. |
redact_pii | boolean | Caviardage des données personnelles. Activé par défaut (conformité à la 152-FZ) ; désactivé uniquement avec redact_pii: false explicite. |
Créer et interroger
La création renvoie 202 avec { id, status: "processing" }. Interrogez GET /api/transcribe/{id} jusqu’à ce que le statut soit success (ou fail) ; la réponse contient alors text, durationSec, priceRub.
# 1. create a transcription job (audio by public URL)
curl https://getvibeapi.com/api/transcribe \
-H "Authorization: Bearer $GETVIBE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"audio_url": "https://example.com/audio.mp3",
"language": "en",
"redact_pii": true
}'
# → {"id":"...","status":"processing"}