POST https://api.acedata.cloud/fish/tts.
Processus de demande
Pour utiliser l’API Fish TTS, commencez par obtenir votre API Token sur le tableau de bord Ace Data Cloud 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, sans avoir à en demander un pour chaque service. La première demande vous donnera un quota gratuit pour une expérience sans frais ; si le quota est insuffisant, vous pouvez recharger le solde général dans le tableau de bord.
📘 Documentation complète : Fish TTS API →
En-têtes de requête
Champs du corps de la requête
Le clonage instantané n’accepte que les URL audio HTTPS, n’accepte pas MessagePack, Base64, data URI ou URL avec des identifiants. L’audio de référence est recommandé pour 10 à 270 secondes ; Studio utilise une plage plus conservatrice de 10 à 60 secondes.
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>. La réponse réussie finale renverra également le cost de niveau supérieur, où amount est le montant de crédits réellement déduits ; en cas de remise sur le compte, list_amount indique le montant avant remise. Le lien est utilisable à long terme, mais il est 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 : Clonage instantané de voix (references)
Placez l’audio de référence à une adresse HTTPS publique et fournissez le texte exact prononcé. Cette voix est uniquement utilisée pour cette synthèse et ne créera pas de modèle à long terme :
Exemple 3 : Régler la vitesse / le volume (prosody)
speed supérieur à 1 accélère, inférieur à 1 ralentit ; volume en dB, 0 signifie inchangé, nombre positif pour un gain, nombre négatif pour une atténuation.
Exemple 5 : Changer de modèle + Contrôler le débit binaire
Pour passer au modèle stable via l’en-tête HTTPmodel: s1, ajoutez mp3_bitrate: 128 dans le corps de la requête pour contrôler le débit binaire MP3 :
Exemple 6 : Onde PCM brute
Pour des scénarios nécessitant un assemblage en temps réel dans le navigateur ou un traitement ultérieur (mixage, changement de vitesse) côté client, 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’interface 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 et le cost final de cette demande. La tâche initiale confirmée n’ayant pas encore terminé la synthèse, elle ne contient donc pas de cost.
callback_url recevra un message de la forme :
task_id ; le response.cost de l’état final est identique au cost dans le rappel, 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: Déclenchement de la limite de débit du compte.500 api_error: Erreur interne du serveur.
message, par exemple :
Conclusion
Le coût minimal pour intégrer Fish TTS est : dans le code déjà appelantapi.fish.audio/v1/tts, remplacez l’authentification par le token de cette plateforme et incluez explicitement dans le corps de la requête format: "mp3". Pour les scénarios de texte long, il est conseillé d’utiliser le rappel asynchrone callback_url ; pour découvrir le reference_id des voix clonées, veuillez utiliser Fish Model Query et Fish Model Get.
