Passer au contenu principal
Cette interface fournit la synthèse vocale à partir de texte, l’appel de voix enregistrées et le clonage vocal instantané à usage unique, à l’adresse 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)

Retour (testé) :
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) :
Retour (testé) :

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 :
Réponse réussie testée :

Exemple 3 : ajuster la vitesse / le volume (prosody)

Retour (testé) :
Une valeur 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 HTTP model: s1, et ajoutez mp3_bitrate: 128 dans le corps de la requête pour contrôler le débit binaire MP3 :
Retour (testé) :

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’utiliser pcm :
Retour (testé) :
L’extension du lien suit le format de la requête : mp3 donne .mp3, tandis que wav et pcm donnent .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.
Retour immédiat (testé) :
Plus tard, callback_url recevra une structure telle que :
Vous pouvez également utiliser l’API Fish Tasks pour récupérer activement le résultat selon 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 un text vide, ou une valeur autre que mp3/wav/pcm passé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.
Exemple de réponse d’erreur :
Les erreurs de validation des paramètres indiquent le champ non valide dans le champ 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 appelant api.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.