Skip to main content
Pour passer de Fish Audio à Gradium, quelques modifications mécaniques suffisent : pointer les requêtes vers les URL Gradium, envoyer x-api-key au lieu d’un token Bearer, renommer quelques champs de requête et remplacer les événements WebSocket MessagePack par des messages JSON, ce qui supprime la dépendance à msgpack.

Pourquoi choisir Gradium plutôt que Fish Audio

  • Catalogue de voix officiel. Les voix phares de Gradium sont des voix maison, conçues avec des experts de la voix et des chercheurs pour chaque langue prise en charge. La bibliothèque de Fish Audio est constituée de modèles mis en ligne par la communauté et appartenant à des comptes individuels.
  • Transcription en streaming. Gradium transcrit l’audio en direct via WebSocket, avec VAD sémantique et délai adaptatif pour la gestion des tours de parole. Fish Audio ne propose que la transcription par lots.
  • Traduction Speech-to-Speech. L’endpoint S2S de Gradium traduit la parole en direct dans une autre langue sur un seul WebSocket : l’audio arrive en flux, l’audio traduit et la transcription repartent en flux. Fish Audio n’a pas d’équivalent.
  • Du JSON partout. Tous les messages WebSocket de Gradium sont en JSON : les clients se passent de la dépendance MessagePack et fonctionnent directement avec wscat, les navigateurs et les bibliothèques standard.
  • Authentification compatible navigateur. Des tokens de courte durée obtenus via GET /api/api-keys/token permettent aux clients navigateur et mobiles de se connecter sans embarquer de clé API ; voir WebSockets dans le navigateur.
  • Contrôles pour la production. Le multiplexage avec client_req_id, les dictionnaires de prononciation, la réécriture de texte et les formats téléphonie (ulaw_8000, alaw_8000) sont intégrés aux mêmes endpoints.

Correspondance des endpoints

Correspondance de l’authentification

model_name se place dans le corps de la requête ou dans le message setup ; default pointe toujours vers le modèle recommandé du moment, si bien que la plupart des intégrations n’ont jamais besoin de le définir.

Catalogue de voix

Le catalogue de voix phares de Gradium couvre toutes les langues prises en charge, dont le français, l’allemand, l’espagnol et le portugais, ainsi que des variantes régionales comme le portugais brésilien et l’espagnol mexicain. Choisissez un voice_id de remplacement pour chaque langue dans la bibliothèque de voix, ou clonez une voix qui vous appartient sous forme de voix personnalisée privée (voir Migration du clonage de voix).

TTS POST de Gradium

Avec only_audio: true, la réponse contient les octets audio bruts, comme le /v1/tts de Fish Audio.
Gradium

Correspondance des champs TTS

output_format est une chaîne unique, au lieu de champs séparés pour le format et la fréquence d’échantillonnage : wav, pcm, opus, ulaw_8000, alaw_8000, ou des fréquences PCM explicites comme pcm_16000 et pcm_44100.
Gradium ne renvoie pas de MP3. Remplacez format: "mp3" par wav pour une sortie fichier ou par opus pour un streaming compressé.

Migration du TTS WebSocket

Le socket /v1/tts/live de Fish Audio utilise des événements MessagePack. Le socket TTS de Gradium utilise des messages texte JSON.
Gradium messages
Gradium répond par ready après setup, envoie des messages audio en flux, puis termine par son propre end_of_stream. Pour plusieurs requêtes logiques sur un même socket, ajoutez client_req_id à chaque message et définissez close_ws_on_eos: false ; voir Multiplexage.

Migration du clonage de voix

Fish Audio clone une voix en créant un modèle à partir d’échantillons mis en ligne. Gradium utilise un seul appel POST /voices/ ; le uid renvoyé sert de voice_id dans n’importe quelle requête TTS.
Gradium
Gérez vos clones avec GET, PUT et DELETE sur /voices/{voice_uid} ; voir Voix personnalisées.

Migration de la transcription

Le /v1/asr de Fish Audio accepte des envois MessagePack ou multipart et renvoie un seul objet JSON. L’endpoint POST de transcription de Gradium prend les octets audio bruts comme corps de requête et renvoie en flux des messages JSON séparés par des sauts de ligne.
Gradium
Pour la transcription en direct, utilisez l’endpoint WebSocket ; il émet des messages step contenant inactivity_prob pour la gestion des tours de parole. Voir Transcription (STT).

Liste de contrôle de l’adaptateur

  • Remplacez les URL Fish Audio par les endpoints Gradium correspondants.
  • Passez de l’authentification Authorization: Bearer à x-api-key, ou à un ?token=... de courte durée pour les WebSockets dans le navigateur.
  • Supprimez l’en-tête model ; ne définissez model_name que pour cibler un modèle précis.
  • Renommez reference_id en voice_id, en choisissant des voix phares dans la bibliothèque de voix.
  • Regroupez format et sample_rate en une seule chaîne output_format ; remplacez MP3 par wav ou opus.
  • Remplacez les événements MessagePack (start, text, stop) par des messages JSON (setup, text, end_of_stream).
  • Recréez les voix clonées avec POST /voices/ et utilisez les valeurs uid renvoyées.
  • Déplacez les réglages de prosodie et d’échantillonnage dans json_config ; voir Réglages de la voix.
  • Pour la transcription par lots, envoyez les octets audio bruts et lisez les messages JSON reçus en flux.

Étapes suivantes

Guide TTS WebSocket de Gradium

Messages de setup en streaming, messages audio, flush et horodatages.

Voix personnalisées

Créez, modifiez et gérez des voix clonées à partir d’un audio de référence.

Réglages de la voix

Vitesse, température et règles de réécriture via json_config.

Transcription (STT)

Transcription en streaming avec VAD sémantique et flush.