Introduction
Envoyez une URL audio et, si vous le souhaitez, la langue parlée, une liste de termes clés et trois interrupteurs : nombres en chiffres, mots de remplissage et transcription par canal. La tâche renvoie la transcription sous forme de texte, plus une transcription structurée avec l’horodatage de chaque mot, la langue détectée et la durée de l’audio ; aucun fichier n’est produit. SpicyAPI n'applique aucun filtre de contenu : la parole sans filtre est transcrite telle qu'elle a été prononcée. La facturation se fait à la seconde d’audio.
| Champ | Valeur |
|---|---|
| Entrée | Audio |
| Sortie | Texte |
| Champ obligatoire |
|
| Champs facultatifs | language (25 codes), |
| Résultat | Transcription en texte, plus output.transcript avec horodatage des mots, langue et durée ; par canal avec multichannel |
| Quantité facturée | Secondes d’audio ; un fichier téléversé est réservé à sa durée, une URL au maximum de deux heures |
| Durée habituelle | Environ 3 secondes pour un extrait de 10 secondes, environ 15 secondes pour une heure |
| Conservation | L’audio téléversé est supprimé au bout d’un jour ; la transcription est effacée avec les données de prompt |
Paramètres de requête
| Paramètre | Obligatoire | Description |
|---|---|---|
audio_url | Oui | L’audio à transcrire : un MP3 ou WAV téléversé, ou une URL publique vers du MP3, WAV, M4A, FLAC, OGG, Opus, AAC, MP4 ou MKV. De 1 seconde à 2 heures. 1 caractères minimum |
language | Non | La langue parlée sous forme de code. Laissez vide pour détecter la langue automatiquement ; la parole dans toute langue prise en charge est transcrite dans les deux cas. |
text_normalization | Non | Activé, les nombres, prix, dates et unités prononcés sont écrits en chiffres — « $1,250 » et « March 14 » au lieu des mots. Nécessite language. Valeur par défaut: |
keyterms | Non | Jusqu’à 100 mots ou courtes expressions (50 caractères chacun) à privilégier dans la transcription — noms, marques, jargon. Ne change pas le prix. Valeur par défaut: |
filler_words | Non | Activé, les mots de remplissage comme um et uh restent dans la transcription ; désactivé (par défaut), ils sont supprimés. Ne change pas le prix. Valeur par défaut: |
multichannel | Non | Activé, chaque canal d’un fichier multicanal (jusqu’à 8) est transcrit séparément et renvoyé sur sa propre ligne, dans l’ordre des canaux. Valeur par défaut: |
Tarification
$0.00003 / seconde d’audio
Facturé à la seconde d’audio. À la création de la tâche, le montant réservé correspond à la durée réelle d’un audio téléversé, ou au prix du maximum de deux heures pour une URL audio ; vous payez la durée réelle et le reste est libéré. Une requête en échec n’est pas facturée.
Cas d’utilisation
Notes vocales et récits audio
La parole sans filtre est transcrite telle qu'elle est prononcée, donc les messages vocaux, enregistrements de jeux de rôle et récits audio peuvent être recherchés, sous-titrés ou modifiés en texte.
Enregistrements d’appels
Les enregistrements où chaque interlocuteur a son propre canal reviennent avec une ligne par interlocuteur quand multichannel est activé. Sans lui, nos tests n’ont renvoyé qu’un des deux côtés : activez-le pour les appels à canaux séparés.
Vérifier une voix générée
Repassez un résultat de synthèse vocale dans le modèle et comparez la transcription au script : mots sautés, fin tronquée ou balise lue à voix haute apparaissent tout de suite.
Noms, marques et nombres
Listez les noms inhabituels comme termes clés et activez la normalisation du texte : la transcription écrit les noms à votre façon, et les prix et dates sous la forme $1,250 ou March 14.
Guide de prompt et conseils pratiques
Faire pointer
audio_urlvers l’audioTéléversez un MP3 ou un WAV, ou passez une URL publique qui renvoie l’audio lui-même — une page de lecteur ou un lien de partage qui renvoie du HTML échoue. De 1 seconde à 2 heures.
Ajouter ce que vous savez
Réglez language si vous connaissez la langue, listez les noms et les marques dans keyterms, et activez
text_normalizationsi vous voulez les nombres en chiffres.text_normalizationnécessite language.Lire le texte dans la tâche
La transcription arrive sous forme de texte dans le résultat de la tâche, et output.transcript liste chaque mot avec son heure de début et de fin. Avec multichannel, il y a une ligne par canal, dans l’ordre des canaux. Copiez-la dans votre propre stockage si vous en avez besoin plus tard.
Ce qui est renvoyé
La transcription sous forme de texte dans le résultat de la tâche, plus output.transcript : la langue détectée et son code, la durée de l’audio en secondes et chaque mot avec son heure de début et de fin en secondes. Avec multichannel, output.transcript.channels contient la même chose pour chaque canal. Aucun fichier n’est produit et rien n’entre dans le stockage des médias. Les étiquettes de locuteur ne sont pas incluses.
Envoyer l’audio
audio_url accepte un MP3 ou WAV téléversé, ou une URL publique vers du MP3, WAV, M4A, FLAC, OGG, Opus, AAC, MP4 ou MKV, de 1 seconde à 2 heures. L’URL doit renvoyer l’audio lui-même. L’audio brut sans en-tête de fichier (PCM, μ-law, A-law) n’est pas accepté.
Langue et nombres
Si language reste vide, la langue est détectée ; la parole dans l’une des 25 langues prises en charge est transcrite dans les deux cas. Réglez-la et activez text_normalization pour obtenir nombres, prix, dates et unités sous forme écrite — lors de notre test, « one thousand two hundred fifty dollars on March fourteenth » est devenu « $1,250 on March 14 ». text_normalization nécessite language.
Termes clés et mots de remplissage
keyterms accepte jusqu’à 100 termes de 50 caractères au plus, un par ligne. Lors de notre test, « Xandrelle » et « Qorvessa » sont revenus en « Xandrel » et « Corvessa » sans eux, et exactement justes avec eux. filler_words garde um et uh, supprimés par défaut.
Plusieurs canaux
Activez multichannel pour les enregistrements où chaque locuteur a son propre canal. Chaque canal est transcrit séparément et renvoyé sur sa propre ligne, dans l’ordre des canaux. Ne le laissez désactivé que si tous les canaux portent le même son : lors de nos tests, un fichier stéréo avec un locuteur différent de chaque côté est revenu avec l’un des deux locuteurs manquant.
Facturation
Facturé à la seconde d’audio. À la création de la tâche, le montant réservé correspond à la durée réelle d’un audio téléversé, ou au prix du maximum de deux heures pour une URL audio ; vous payez la durée réelle et le reste est libéré. Aucune option ne change le prix. Les requêtes en échec ne sont pas facturées.
Contenu
SpicyAPI n’ajoute aucun filtre de contenu. Dans nos tests, la parole sans filtre est revenue mot pour mot, sans astérisques, bips ni trous.
SpicyAPI n'ajoute aucun filtre de contenu : la parole est transcrite telle qu'elle a été prononcée, plutôt que masquée ou refusée. Vous êtes responsable des droits sur l’audio envoyé et du consentement des personnes enregistrées.
Démarrage rapide de l’API
# Generate the idempotency key once; reuse it when retrying after a lost response.
export SPICY_IDEMPOTENCY_KEY="${SPICY_IDEMPOTENCY_KEY:-$(uuidgen)}"
curl -X POST https://api.spicyapi.ai/api/v1/jobs/createTask \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $SPICY_IDEMPOTENCY_KEY" \
-d '{
"model": "xai/grok-stt/speech-to-text",
"input": {
"audio_url": "https://example.com/reference.mp3"
}
}'
# Copy data.taskId from the response into TASK_ID, then poll the status.
TASK_ID="TASK_ID_FROM_RESPONSE"
curl "https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=$TASK_ID" \
-H "Authorization: Bearer $SPICY_API_KEY"
La référence API détaille l’authentification, le schéma complet, le polling et la gestion des erreurs.





