callback_url), la structure du corps de la requête étant identique à celle de l’upstream. L’adresse est POST https://api.acedata.cloud/fish/tts.
Processus de demande
Pour utiliser l’API Fish TTS, commencez par obtenir votre API Token sur Ace Data Cloud Console pour le garder en réserve.
Si vous n’êtes pas encore connecté ou inscrit, vous serez automatiquement redirigé vers la page de connexion pour vous inviter à vous inscrire et à vous connecter, après quoi vous serez automatiquement renvoyé à la page actuelle.
Un seul API Token suffit pour appeler tous les services de la plateforme, il n’est pas nécessaire de demander un pour chaque service. La première demande vous donnera un quota gratuit pour une expérience sans frais ; en cas de quota insuffisant, vous pouvez recharger le solde général dans la console.
📘 Documentation complète : Fish TTS API →
En-têtes de requête
Champs du corps de la requête
La nomenclature des champs est identique à celle de l’upstream. À l’exception de callback_url, les autres champs ont la même signification et les mêmes valeurs que celles indiquées dans Fish Official TTS Documentation.
Exemple 1 : Requête minimale (text + format=mp3)
audio_url pointe vers le CDN de cette plateforme, pouvant être téléchargé directement par GET ou joué dans <audio>. Le lien est valable à long terme, mais il est toujours conseillé de conserver une copie dans votre propre stockage.
Exemple 2 : Utilisation de la voix clonée reference_id
Voici un exemple avec une voix espagnole publique sur la plateforme Fish (_id pouvant être récupéré via Fish Model Query) :
Exemple 3 : Ajustement de la vitesse / volume (prosody)
speed supérieur à 1 accélère, inférieur à 1 ralentit ; volume en dB, 0 signifie inchangé, les nombres positifs augmentent, les négatifs diminuent.
Exemple 4 : Changement de modèle + contrôle du débit binaire
En utilisant l’en-tête HTTPmodel: s1 pour passer au modèle stable, ajoutez mp3_bitrate: 128 dans le corps de la requête pour contrôler le débit binaire MP3 :
Exemple 5 : Onde PCM brute
Pour les scénarios nécessitant un assemblage en temps réel dans le navigateur, ou un traitement ultérieur côté client (mixage, changement de vitesse), il est recommandé d’utiliserpcm :
L’extension du lien suit leformatdans la requête :mp3donne.mp3,wavetpcmdonnent.wav(conteneur WAV, PCM 16 bits).
Rappel asynchrone (callback_url)
La synthèse d’un long texte peut prendre de quelques secondes à plusieurs dizaines de secondes, si la connexion est interrompue, il faut réessayer. En passant callback_url dans le corps de la requête, l’API renverra immédiatement {task_id, started_at}, et lorsque le traitement est réellement terminé, le résultat complet sera rappelé à cette URL sous forme de POST JSON, avec le même task_id dans le corps de la requête.
callback_url recevra un message de la forme :
task_id, voir ce document pour plus de détails.
Gestion des erreurs
400 token_mismatched: Paramètres de requête manquants ou non valides (le plus courant est quetextest vide, ou queformata une valeur autre quemp3/wav/pcm).401 invalid_token: Le token d’authentification n’existe pas ou est invalide.429 too_many_requests: Limite de taux déclenchée pour le compte.500 api_error: Erreur interne du serveur.
message, facilitant l’identification du champ non valide, par exemple :
Conclusion
Le coût minimal pour intégrer Fish TTS est : dans le code déjà appelantapi.fish.audio/v1/tts, remplacer l’authentification par le token de la plateforme, et dans le corps de la requête inclure explicitement format: "mp3". Pour les scénarios de long texte, il est conseillé d’utiliser le rappel asynchrone callback_url ; pour la découverte de l’id de référence de la voix clonée, veuillez utiliser Fish Model Query et Fish Model Get.
