POST https://api.acedata.cloud/fish/tts.
Processus de demande
Pour utiliser l’API Fish TTS, obtenez d’abord votre API Token dans la console Ace Data Cloud et conservez-le pour une utilisation ultérieure.
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, puis vous reviendrez automatiquement à la page actuelle une fois terminé.
Un seul API Token permet d’appeler tous les services de la plateforme, sans avoir besoin d’en demander un séparément pour chaque service. Lors de votre première demande, un quota gratuit vous sera offert pour une expérience gratuite ; lorsque le quota est insuffisant, vous pouvez recharger votre solde universel dans la console.
📘 Documentation complète : Fish TTS API →
En-têtes de requête
Champs du corps de la requête
Le clonage à usage unique n’accepte que des URL audio HTTPS, et n’accepte pas MessagePack, Base64, les URI data ni les URL avec identifiants. Il est recommandé que l’audio de référence dure entre 10 et 270 secondes ; Studio utilise une plage plus prudente de 10 à 60 secondes.
Exemple 1 : requête minimale (text + format=mp3)
audio_url pointe vers le CDN de cette plateforme, et peut être téléchargé directement avec GET ou lu dans <audio>. La réponse finale en cas de succès renvoie également un cost de niveau supérieur, où amount correspond aux Credits effectivement déduits cette fois-ci ; en cas de remise sur le compte, list_amount indique le quota avant remise. Le lien est disponible à long terme, mais il reste recommandé d’en conserver une copie dans votre propre stockage.
Exemple 2 : utiliser la voix clonée reference_id
L’exemple ci-dessous utilise une voix espagnole publique sur la plateforme Fish (_id peut être obtenu via une recherche dans Fish Model Query) :
Exemple 3 : clonage vocal instantané à usage unique (references)
Placez l’audio de référence à une adresse HTTPS publique et fournissez le texte exact réellement prononcé. Cette voix est utilisée uniquement pour cette synthèse et ne crée pas de modèle à long terme :
Exemple 3 : ajuster la vitesse / le volume (prosody)
speed supérieure à 1 accélère, inférieure à 1 ralentit ; l’unité de volume est le dB, 0 indique aucune modification, une valeur positive augmente le gain, une valeur négative l’atténue.
Exemple 5 : changer de modèle + contrôler le débit binaire
Basculez vers le modèle stable via l’en-tête HTTPmodel: s1, et ajoutez mp3_bitrate: 128 dans le corps de la requête pour contrôler le débit binaire MP3 :
Exemple 6 : forme d’onde brute PCM
Pour les scénarios nécessitant un assemblage en temps réel dans le navigateur, ou un traitement ultérieur côté client (mixage, variation de vitesse), il est recommandé d’utiliserpcm :
L’extension du lien suit leformatde la requête :mp3donne.mp3, tandis quewavetpcmdonnent.wav(conteneur WAV, PCM 16 bits).
Rappel asynchrone (callback_url)
La synthèse d’un texte long en une fois peut prendre de dix à plusieurs dizaines de secondes ; si la connexion est interrompue, une nouvelle tentative est nécessaire. Après avoir transmis callback_url dans le corps de la requête, l’interface retourne immédiatement {task_id, started_at}. Une fois le traitement réellement terminé en amont, le résultat complet est rappelé à cette URL sous la forme d’un POST JSON, avec le même task_id ainsi que le cost de niveau supérieur correspondant à la facturation finale de cette requête. La confirmation initiale de la tâche n’inclut pas cost, car la synthèse n’est pas encore terminée.
callback_url recevra une structure telle que :
task_id ; le response.cost de l’enregistrement à l’état final est identique au cost du rappel, voir cette documentation pour plus de détails.
Gestion des erreurs
400 token_mismatched: paramètres de requête manquants ou non valides (le plus fréquent est untextvide, ou une valeur autre quemp3/wav/pcmpassée àformat).401 invalid_token: le token d’authentification n’existe pas ou n’est pas valide.429 too_many_requests: la limite de débit du compte a été déclenchée.500 api_error: erreur interne du serveur.
message, par exemple :
Conclusion
Le coût minimal pour intégrer Fish TTS est de remplacer l’authentification par le token de cette plateforme dans le code existant appelantapi.fish.audio/v1/tts, et d’inclure explicitement format: "mp3" dans le corps de la requête. Pour les textes longs, il est recommandé d’utiliser le rappel asynchrone callback_url ; pour découvrir les reference_id de voix clonées, utilisez Fish Model Query et Fish Model Get.
