> ## Documentation Index
> Fetch the complete documentation index at: https://docs.gradium.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Migrer depuis Deepgram

> Remplacez vos intégrations vocales Deepgram par les endpoints STT et TTS de Gradium.

Conservez la forme actuelle de votre adaptateur : l'audio en entrée
produit toujours des événements de transcription, et le texte en entrée
produit toujours des octets ou des fragments audio. Basculez
l'implémentation vers les endpoints Gradium, l'authentification
`x-api-key`, les valeurs `voice_id` de Gradium et les types de messages
Gradium. Pour la transcription en temps réel, Gradium ajoute la VAD
sémantique, un délai adaptatif et une gestion explicite du flush pour la
gestion des tours de parole.

## Correspondance des endpoints

| Flux | Intégration existante | Gradium |
| - | - | - |
| Transcription (STT) préenregistrée | `POST https://api.deepgram.com/v1/listen` | `POST https://api.gradium.ai/api/post/speech/asr` |
| Transcription (STT) en streaming | `wss://api.deepgram.com/v1/listen` | `wss://api.gradium.ai/api/speech/asr` |
| Synthèse vocale (TTS) en un appel | `POST https://api.deepgram.com/v1/speak` | `POST https://api.gradium.ai/api/post/speech/tts` |
| Synthèse vocale (TTS) en streaming | `wss://api.deepgram.com/v1/speak` | `wss://api.gradium.ai/api/speech/tts` |

## Correspondance de l'authentification

| Authentification existante | Gradium |
| - | - |
| `Authorization: Token $DEEPGRAM_API_KEY` | `x-api-key: $GRADIUM_API_KEY` |
| `Authorization: Bearer <token>` | Les clients navigateur et mobiles doivent utiliser les tokens WebSocket temporaires de Gradium. Voir [WebSockets dans le navigateur](/fr/guides/browser-websockets). |
| Clé API dans les en-têtes WebSocket | En-tête `x-api-key`, ou `?token=...` pour les tokens navigateur de courte durée. |

## Transcription Gradium en POST

Pour l'audio préenregistré, continuez d'envoyer les octets audio dans le
corps de la requête et changez simplement l'URL. Gradium renvoie en flux
des messages JSON délimités par des sauts de ligne.

```bash Gradium theme={null}
curl -L -X POST https://api.gradium.ai/api/post/speech/asr \
  --url-query 'json_config={"language":"en"}' \
  -H "x-api-key: $GRADIUM_API_KEY" \
  -H "Content-Type: audio/wav" \
  --data-binary @input.wav
```

La réponse de Gradium est au format NDJSON. Reconstituez la
transcription en collectant les messages `text`, et associez-les aux
messages `end_text` lorsque vous avez besoin des horodatages de fin de
segment.

## Transcription via WebSocket

Le protocole WebSocket direct de Gradium envoie l'audio dans des
messages JSON avec des payloads en base64 :

```json Gradium messages theme={null}
{"type":"setup","model_name":"default","input_format":"pcm","json_config":{"language":"en"}}
{"type":"audio","audio":"base64_encoded_audio"}
{"type":"end_of_stream"}
```

| Concept STT existant | Message STT Gradium |
| - | - |
| Connexion WebSocket | Connexion à `wss://api.gradium.ai/api/speech/asr` |
| Paramètres de modèle et de langue | `setup.model_name`, `setup.json_config.language` |
| Trame audio | `{"type":"audio","audio":"base64_encoded_audio"}` |
| Résultat de transcription | `{"type":"text","text":"...","start_s":...}` |
| Horodatage de fin de segment | `{"type":"end_text","stop_s":...}` |
| Endpointing / signal de fin de tour | `step.vad[*].inactivity_prob` |
| Fermer / finaliser le flux | `{"type":"end_of_stream"}` |
| Forcer la sortie en attente | `{"type":"flush","flush_id":1}` |

Définissez `input_format` en fonction de l'audio que vous envoyez :
`pcm`, `wav`, `opus`, `ulaw_8000`, `alaw_8000` ou un autre format pris
en charge par Gradium.

## Correspondance des fonctionnalités STT

| Fonctionnalité existante | Équivalent Gradium | Remarque de migration |
| - | - | - |
| `model=nova-*` | `model_name: "default"`, sauf si un autre alias de modèle Gradium vous a été fourni | Les noms de modèles sont propres à chaque fournisseur. |
| `language=en-US` | `json_config: {"language": "en"}` | Gradium utilise des codes de langue courts : `en`, `fr`, `de`, `es`, `pt`. Définissez-le toujours ; passez `"any"` pour la détection automatique. |
| Événements de transcription intermédiaire | `text` en streaming, plus finalisation des segments via `end_text` | Gradium émet des segments de texte et des horodatages de fin séparés. |
| `speech_final` / `endpointing` | Messages `step` de la VAD sémantique | Utilisez les probabilités d'inactivité sur les différents horizons ; voir [Gestion des tours de parole](/fr/guides/recipes/turn-taking). |
| `utterance_end_ms` | Seuil de VAD plus `send_flush()` | Implémentez la politique de fin de tour dans votre application. |
| `encoding`, `sample_rate` | `input_format`, par exemple `pcm_16000`, `ulaw_8000` | Choisissez le format Gradium exact correspondant à vos octets audio. |
| `punctuate`, `smart_format` | Intégrés au comportement du modèle lorsque c'est disponible | Il n'existe pas d'option de requête équivalente. |
| `diarize`, canaux, alternatives | Pas d'équivalent public direct chez Gradium dans cette documentation | Conservez le code propre au fournisseur derrière un adaptateur si vous en dépendez. |
| Horodatages au niveau du mot | Horodatages au niveau du segment | Gradium documente actuellement des horodatages au niveau du segment. |

## Synthèse vocale Gradium en POST

Gradium utilise `voice_id` dans le corps JSON et renvoie des octets
audio bruts lorsque `only_audio` vaut `true` : votre code existant
d'écriture de fichier ou de lecture audio peut donc généralement rester
inchangé.

```bash Gradium theme={null}
curl -L -X POST https://api.gradium.ai/api/post/speech/tts \
  -H "x-api-key: $GRADIUM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Hello from Gradium.",
    "voice_id": "YTpq7expH9539ERJ",
    "output_format": "wav",
    "only_audio": true
  }' \
  > output.wav
```

## Synthèse vocale via WebSocket

Pour la synthèse vocale en streaming, utilisez les messages Gradium
`setup`, `text` et `end_of_stream` :

| Comportement TTS existant | Message TTS Gradium |
| - | - |
| Envoyer du texte | `{"type":"text","text":"..."}` après `setup` |
| Forcer la génération à une frontière | Incluez `<flush>` dans un message `text` à une frontière naturelle |
| Terminer la génération | `{"type":"end_of_stream"}` pour une fin propre, ou fermez le socket pour interrompre |
| Trames de réponse binaires / audio | `{"type":"audio","audio":"base64..."}` |
| Réponse de métadonnées | Message `ready` plus `request_id` |
| Réponse d'avertissement | Message `error` pour les erreurs terminales ; validez le découpage et les limites dans votre application |

```json Gradium messages theme={null}
{"type":"setup","voice_id":"YTpq7expH9539ERJ","model_name":"default","output_format":"pcm"}
{"type":"text","text":"Hello from Gradium. <flush>"}
{"type":"end_of_stream"}
```

## Correspondance des fonctionnalités TTS

| Fonctionnalité existante | Équivalent Gradium | Remarque de migration |
| - | - | - |
| Speak REST `/v1/speak` | `POST /api/post/speech/tts` | Utilisez `only_audio: true` pour obtenir de l'audio brut en réponse. |
| Speak WebSocket `/v1/speak` | `wss://api.gradium.ai/api/speech/tts` | Envoyez `setup` avant le texte. |
| `model=aura-*` | `voice_id` plus `model_name` facultatif | Choisissez une voix Gradium dans la bibliothèque de voix ou l'une de vos voix personnalisées. |
| `encoding` / `sample_rate` de sortie | `output_format` | Utilisez `pcm`, `pcm_16000`, `ulaw_8000`, `wav`, `opus`, etc. |
| Commande `Flush` | Balise de texte `<flush>` | Utilisez le flush avec parcimonie, généralement à la fin d'une phrase ou d'une réponse du LLM. |
| Commande `Close` | `end_of_stream` ou fermeture du socket | Utilisez `end_of_stream` pour une fin propre. |
| Métadonnées TTS | `ready.request_id`, `ready.sample_rate`, `ready.frame_size` | Journalisez `request_id` pour le débogage. |

## Checklist de l'adaptateur

* Remplacez les URL du fournisseur par les endpoints Gradium correspondants.
* Passez l'authentification à `x-api-key`, ou utilisez des tokens adaptés au navigateur pour les applications clientes.
* Pour la transcription, reportez les paramètres de requête dans `setup` et `json_config`.
* Pour la transcription via WebSocket, encapsulez les octets audio dans des messages JSON en base64.
* Pour la synthèse vocale, remplacez les noms de voix ou de modèles du fournisseur par un `voice_id` Gradium.
* Pour la synthèse vocale via WebSocket, envoyez un message `setup` Gradium avant le texte.
* Remplacez les champs de finalité du fournisseur par une gestion des
  messages Gradium `end_text`, `step` et `flushed`.
* Conservez les fonctionnalités propres au fournisseur, comme la
  diarisation, derrière des vérifications de capacités dans l'adaptateur.

## Étapes suivantes

<CardGroup cols={2}>
  <Card title="Guide WebSocket STT de Gradium" icon="microphone" href="/fr/guides/speech-to-text">
    Streaming audio en temps réel, VAD sémantique et flush.
  </Card>

  <Card title="Recette de gestion des tours de parole" icon="comments" href="/fr/guides/recipes/turn-taking">
    Remplacez la logique d'endpointing et de speech-final par la VAD de Gradium.
  </Card>

  <Card title="Guide WebSocket TTS de Gradium" icon="waveform-lines" href="/fr/guides/text-to-speech">
    Synthèse vocale en streaming via WebSocket.
  </Card>

  <Card title="Cycle de vie WebSocket" icon="diagram-project" href="/fr/guides/websocket-lifecycle">
    Setup, ready, entrée, flush, fin, multiplexage et erreurs.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.