Introduction
Envoyez le texte à lire, une voix système, une émotion et, facultativement, une indication de langue. La tâche renvoie un fichier audio avec le script lu dans cette voix et cette émotion : un MP3 mono 32 kHz, sauf si vous définissez output_format, sample_rate, bitrate ou audio_channels. speed, pitch et volume ajustent la diction, et pronunciation_dict fixe la prononciation de certains mots. Les effets sonores entre parenthèses, comme (sighs) ou (laughs), placés dans le texte sont joués comme des sons, et non lus à voix haute. SpicyAPI n’applique aucun filtre de contenu ; le script est lu exactement tel qu’envoyé. Vous êtes facturé par tranche de 1 000 caractères du texte envoyé.
| Champ | Valeur |
|---|---|
| Entrée | Texte |
| Sortie | Audio |
| Champ obligatoire | text — de 1 à 5 000 caractères |
| Champs facultatifs |
|
| Résultat | Un fichier audio : MP3 (32 kHz, mono) par défaut, ou WAV, FLAC, PCM |
| Quantité facturée | Caractères de text envoyés, par 1 000 |
| Durée typique | Environ 8 secondes pour 300 caractères |
| Conservation | L'audio généré est conservé 14 jours |
Paramètres de requête
| Paramètre | Obligatoire | Description |
|---|---|---|
text | Oui | Les mots à prononcer, exactement tels qu’écrits. Les balises sonores entre parenthèses telles que (sighs) ou (laughs) sont interprétées comme des sons, pas lues à voix haute. 1 caractères minimum · 5000 caractères maximum |
voice_id | Non | L’une des 472 voix système. Valeur par défaut : Calm_Woman. |
emotion | Non | L’une des sept émotions fixes — neutral, happy, sad, angry, fearful, disgusted ou surprised — appliquée à l’ensemble de la lecture. Valeur par défaut : neutral. |
speed | Non | Débit de parole de 0,5 (plus lent) à 2 (plus rapide) ; 1 correspond au rythme normal de la voix. Ne modifie pas le prix. |
pitch | Non | Décalage de hauteur en demi-tons, de -12 à 12 ; 0 conserve la hauteur propre de la voix. Ne modifie pas le prix. |
volume | Non | Multiplicateur de volume de 0,1 à 10 ; 1 correspond au niveau normal. Ne modifie pas le prix. |
language | Non | Une indication qui améliore la prononciation pour l’une de 40 langues. Valeur par défaut : auto, qui détecte la langue à partir du script. |
output_format | Non | Format de fichier : mp3 (par défaut), wav, flac ou pcm, c’est-à-dire des échantillons bruts 16 bits little-endian sans en-tête, au |
sample_rate | Non | Fréquence d’échantillonnage de l’audio en Hz : 8000, 16000, 22050, 24000, 32000, 44100. Par défaut : 32000. |
bitrate | Non | Débit binaire du MP3 en bits par seconde : 32000, 64000, 128000 ou 256000. Par défaut : 128000 ; ne s’applique que si |
audio_channels | Non | Canaux de sortie : mono (par défaut) ou stereo. Ne modifie pas le prix. |
english_normalization | Non | Activé, les nombres, dates et abréviations d’un texte anglais sont lus comme une personne les dirait, par exemple 1990 comme « nineteen ninety ». Désactivé par défaut. Valeur par défaut: |
pronunciation_dict | Non | Jusqu’à 100 paires {alias, pronunciation}. 100 éléments maximum |
Tarification
$0.072 / 1 000 caractères
Facturé par 1 000 caractères du texte envoyé, espaces et ponctuation comprises. Le devis affiché avant l’exécution est le prix final.
Cas d’utilisation
Voix off pour vidéos courtes
Narration pour vidéos explicatives, clips produit et publications sociales. Le prix est fixé par la longueur du script, si bien que vous connaissez le coût d’un lot avant de commencer.
Contenu multilingue
Lisez le même script en indiquant l’une des 40 langues prises en charge, ou laissez language sur auto et laissez le script décider.
Histoires audio sans censure
Aucun filtre de contenu ne s’applique au script. Dans nos tests, le modèle a prononcé chaque mot des monologues les plus audacieux et des scènes narrées que nous avons testés, en jouant les signaux de respiration et les effets sonores au lieu de les lire à voix haute.
Lectures de personnages avec émotion
Définissez l’une des sept émotions par requête — happy, sad, angry, fearful, disgusted ou surprised — et laissez les balises (sighs), (laughs) ou (breath) du script façonner l’interprétation.
Guide de prompt et conseils pratiques
Envoyer le script dans text
Rédigez-le exactement comme il doit être prononcé, avec de la ponctuation pour les pauses et des balises sonores telles que (sighs) entre parenthèses là où vous voulez qu’elles soient interprétées. Jusqu’à 5 000 caractères.
Choisir une voix et une émotion
voice_idvaut Calm_Woman par défaut ; emotion vaut neutral par défaut et prend l’une de sept valeurs fixes.Ajouter une langue si nécessaire
Laissez language sur auto pour la détecter à partir du script, ou définissez l’une des 40 langues lorsqu’un script court ou mixte a besoin d’aide pour la prononciation.
Ce qui est renvoyé
Un fichier audio par tâche, un MP3 mono 32 kHz sauf si vous modifiez output_format, sample_rate, bitrate ou audio_channels. Le fichier est copié dans le stockage SpicyAPI et conservé 14 jours.
Choisir une voix
voice_id prend l’une des 472 voix système, telles que Calm_Woman, Deep_Voice_Man, Lively_Girl ou Elegant_Man, et vaut Calm_Woman par défaut. Il n’y a ni clonage ni envoi d’une voix de référence.
Définir une émotion
emotion prend l’une de sept valeurs fixes — neutral, happy, sad, angry, fearful, disgusted ou surprised — et s’applique à l’ensemble de la lecture. Elle vaut neutral par défaut.
Balises sonores
Les balises placées entre parenthèses dans text, comme (sighs), (laughs), (breath) ou (gasps), sont jouées comme des sons et non lues à voix haute. Dans nos tests, c’est resté vrai pour les scripts les plus audacieux comme pour les scripts ordinaires.
Langue
La langue est détectée à partir du script. language permet d’indiquer l’une de 40 langues, notamment le mandarin, le cantonais, l’anglais, l’arabe, le russe, l’espagnol, le français, le portugais, l’allemand, le japonais, l’italien, le coréen, le polonais et d’autres, pour améliorer la prononciation d’un script court ou mixte.
Régler l’interprétation
speed (0,5 à 2), pitch (-12 à 12 demi-tons) et volume (0,1 à 10) ajustent la lecture sans modifier le prix. pronunciation_dict accepte jusqu’à 100 paires {alias, pronunciation}, pour qu’un nom, un sigle ou un mot d’emprunt soit toujours lu comme vous le souhaitez, en mots ordinaires ou en API entre parenthèses. english_normalization lit les nombres, dates et abréviations d’un texte anglais comme une personne les dirait.
Format de sortie
output_format choisit mp3 (par défaut), wav, flac ou pcm ; sample_rate va de 8000 à 44100 Hz, bitrate fixe le débit du MP3 et audio_channels passe en stéréo. pcm correspond à des échantillons bruts 16 bits little-endian sans en-tête, qu’on ne peut donc pas écouter dans un navigateur. Choisissez wav si vous voulez les mêmes échantillons dans un fichier lisible.
Facturation
Facturé par 1 000 caractères de text, espaces, ponctuation et sauts de ligne compris. Le nombre de caractères est connu avant le début de la tâche, si bien que le devis correspond à la facture finale. Les requêtes échouées ne sont pas facturées.
Contenu
SpicyAPI n’ajoute aucun filtre de contenu. Dans nos tests, chaque script, quelle que soit sa force, a été lu mot pour mot, les effets sonores étant joués tels qu’écrits et rien n’ayant été sauté.
SpicyAPI n’ajoute aucun filtre de contenu : les scripts NSFW sont lus tels quels. Vous êtes responsable des scripts que vous envoyez et de l’usage que vous faites de l’audio obtenu, y compris de ne pas le faire passer pour les propos d’une personne réelle.
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": "minimax/speech-2.8-turbo/text-to-speech",
"input": {
"text": "Welcome back. Your files finished rendering a minute ago and are ready to download.",
"emotion": "neutral",
"language": "auto",
"voice_id": "Calm_Woman",
"output_format": "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.










