---
title: "Gradium | Micdrop"
description: "Run speech to text and text to speech through Gradium's WebSocket API in a TypeScript voice pipeline, on the EU endpoint by default or on the US one."
url: "https://micdrop.dev/docs/ai-integration/provided-integrations/gradium"
---

*   [Getting Started](/docs/getting-started)
*   [Client (Browser)](/docs/client)
    
    *   [Installation](/docs/client/installation)
    *   [React Hooks](/docs/client/react-hooks)
    *   [Start/Stop Call](/docs/client/start-stop-call)
    *   [Pause/Resume Call](/docs/client/pause-resume-call)
    *   [Mute/Unmute Call](/docs/client/mute-unmute-call)
    *   [Call State](/docs/client/call-state)
    *   [Display Conversation Messages](/docs/client/display-conversation-messages)
    *   [Handling Tool Calls](/docs/client/handling-tool-calls)
    *   [Device Management](/docs/client/devices-management)
    *   [Voice Activity Detection (VAD)](/docs/client/vad)
    *   [Error Handling](/docs/client/error-handling)
    *   Utility Classes
        
        *   [Mic](/docs/client/utility-classes/mic)
        *   [MicdropClient](/docs/client/utility-classes/micdrop-client)
        *   [MicRecorder](/docs/client/utility-classes/mic-recorder)
        *   [Speaker](/docs/client/utility-classes/speaker)
        
    
*   [Server (Node.js)](/docs/server)
    
    *   [Installation](/docs/server/installation)
    *   [With Fastify](/docs/server/with-fastify)
    *   [With NestJS](/docs/server/with-nestjs)
    *   [Auth and Parameters](/docs/server/auth-and-parameters)
    *   [First Message](/docs/server/first-message)
    *   [Save Messages](/docs/server/save-messages)
    *   [Resume a Conversation](/docs/server/resume-conversation)
    *   [Recording Audio](/docs/server/recording-audio)
    *   [Error Handling](/docs/server/error-handling)
    *   [Tools](/docs/server/tools)
    *   [Extract Value from Answer](/docs/server/extract)
    *   [Auto End Call](/docs/server/auto-end-call)
    *   [Semantic Turn Detection](/docs/server/semantic-turn-detection)
    *   [Noise Filtering](/docs/server/noise-filtering)
    *   [Micdrop Protocol](/docs/server/protocol)
    
*   [AI Integrations](/docs/ai-integration)
    
    *   Provided Integrations
        
        *   [AI SDK](/docs/ai-integration/provided-integrations/ai-sdk)
        *   [Cartesia](/docs/ai-integration/provided-integrations/cartesia)
        *   [ElevenLabs](/docs/ai-integration/provided-integrations/elevenlabs)
        *   [Gladia](/docs/ai-integration/provided-integrations/gladia)
        *   [Gradium](/docs/ai-integration/provided-integrations/gradium)
        *   [Kokoro](/docs/ai-integration/provided-integrations/kokoro)
        *   [Mistral](/docs/ai-integration/provided-integrations/mistral)
        *   [OpenAI](/docs/ai-integration/provided-integrations/openai)
        *   [Piper](/docs/ai-integration/provided-integrations/piper)
        *   [Pocket TTS](/docs/ai-integration/provided-integrations/pocket-tts)
        *   [Whisper](/docs/ai-integration/provided-integrations/whisper)
        
    *   Custom Integrations
        
        *   [Agent (LLM)](/docs/ai-integration/custom-integrations/custom-agent)
        *   [Speech-to-Text (STT)](/docs/ai-integration/custom-integrations/custom-stt)
        *   [Text-to-Speech (TTS)](/docs/ai-integration/custom-integrations/custom-tts)
        
    *   Fallback Strategies
        
        *   [FallbackAgent](/docs/ai-integration/fallback-strategies/agent-fallback)
        *   [FallbackSTT](/docs/ai-integration/fallback-strategies/stt-fallback)
        *   [FallbackTTS](/docs/ai-integration/fallback-strategies/tts-fallback)
        
    *   [Local Models](/docs/ai-integration/local-models)
        
        *   [Choosing the Models](/docs/ai-integration/local-models/choosing-models)
        *   [Latency and Memory](/docs/ai-integration/local-models/performance)
        *   [Explorations](/docs/ai-integration/local-models/explorations)
        
    *   [IA Vocale Souveraine 🇫🇷🇪🇺](/docs/ai-integration/sovereign-voice-ai)
    

[Micdrop](/) › [Documentation](/docs/getting-started)

# Gradium

Gradium STT and TTS implementation for [@micdrop/server](/docs/server).

This package provides high-quality real-time speech-to-text and text-to-speech implementations using Gradium’s WebSocket streaming API.

## Installation

Terminal window

```
npm install @micdrop/gradium
```

## Gradium STT (Speech-to-Text)

### Usage

```
import { GradiumSTT } from '@micdrop/gradium'import { MicdropServer } from '@micdrop/server'
const stt = new GradiumSTT({  apiKey: process.env.GRADIUM_API_KEY || '',  modelName: 'default', // Optional: model name  inputFormat: 'pcm_16000', // Optional: audio format  language: 'en', // Optional: language hint  region: 'eu', // Optional: 'eu' or 'us'})
// Use with MicdropServernew MicdropServer(socket, {  stt,  // ... other options})
```

### Options

Option

Type

Default

Description

`apiKey`

`string`

Required

Your Gradium API key

`modelName`

`string`

`'default'`

Model name to use for transcription

`inputFormat`

`GradiumInputFormat`

`'pcm_16000'`

Audio input format of the incoming stream

`language`

`string`

Optional

Language hint (shortcut for `jsonConfig.language`)

`region`

`'eu' | 'us'`

`'eu'`

API region (EU or US endpoint)

`jsonConfig`

`GradiumASRJsonConfig`

Optional

Advanced transcription configuration

`connectionTimeout`

`number`

`5000`

Timeout in milliseconds for WebSocket connection

`transcriptionTimeout`

`number`

`4000`

Timeout in milliseconds to wait for transcription

`retryDelay`

`number`

`1000`

Delay in milliseconds between reconnection attempts

`maxRetry`

`number`

`3`

Maximum number of reconnection attempts before failing

### Advanced Transcription Configuration

The `jsonConfig` option allows you to fine-tune the transcription:

```
const stt = new GradiumSTT({  apiKey: 'your-api-key',  jsonConfig: {    language: 'en', // Language hint    target_language: 'fr', // Optional: translation target language    delay_in_frames: 16, // 0 to 80, each frame = 80ms  },})
```

## Gradium TTS (Text-to-Speech)

### Usage

```
import { GradiumTTS } from '@micdrop/gradium'import { MicdropServer } from '@micdrop/server'
const tts = new GradiumTTS({  apiKey: process.env.GRADIUM_API_KEY || '',  voiceId: 'YTpq7expH9539ERJ', // Gradium voice ID  modelName: 'default', // Optional: model name  outputFormat: 'pcm_16000', // Optional: audio format  region: 'eu', // Optional: 'eu' or 'us'})
// Use with MicdropServernew MicdropServer(socket, {  tts,  // ... other options})
```

### Options

Option

Type

Default

Description

`apiKey`

`string`

Required

Your Gradium API key

`voiceId`

`string`

Required

Gradium voice ID

`modelName`

`string`

`'default'`

Model name to use for speech synthesis

`outputFormat`

`GradiumOutputFormat`

`'pcm_16000'`

Audio output format

`region`

`'eu' | 'us'`

`'eu'`

API region (EU or US endpoint)

`jsonConfig`

`GradiumJsonConfig`

Optional

Advanced voice configuration

`connectionTimeout`

`number`

`5000`

Timeout in milliseconds for WebSocket connection

`retryDelay`

`number`

`1000`

Delay in milliseconds between reconnection attempts

`maxRetry`

`number`

`3`

Maximum number of reconnection attempts before failing

### Output Formats

Format

Description

`pcm`

PCM 48kHz, 16-bit signed integer mono

`pcm_16000`

PCM 16kHz, 16-bit signed integer mono

`pcm_24000`

PCM 24kHz, 16-bit signed integer mono

`pcm_8000`

PCM 8kHz, 16-bit signed integer mono

`wav`

WAV format

`opus`

Opus codec wrapped in an Ogg container

`ulaw_8000`

u-law 8kHz

`alaw_8000`

A-law 8kHz

### Advanced Voice Configuration

The `jsonConfig` option allows you to fine-tune voice characteristics:

```
const tts = new GradiumTTS({  apiKey: 'your-api-key',  voiceId: 'your-voice-id',  jsonConfig: {    temp: 0.7, // Temperature: 0 to 1.4 (default: 0.7)    cfg_coef: 2.0, // Voice similarity: 1.0 to 4.0 (default: 2.0)    padding_bonus: 0, // Speed control: -4.0 to 4.0  },})
```

Parameter

Type

Range

Default

Description

`temp`

`number`

0 - 1.4

0.7

Controls randomness in speech generation

`cfg_coef`

`number`

1.0 - 4.0

2.0

Controls similarity to the original voice

`padding_bonus`

`number`

\-4.0 - 4.0

0

Controls speech speed

## Getting Started

1.  Sign up for a [Gradium account](https://gradium.ai) and get your API key
2.  Choose a voice ID from the Gradium voice library
3.  Install the package and configure with your credentials

```
import { GradiumTTS } from '@micdrop/gradium'
const tts = new GradiumTTS({  apiKey: 'your-gradium-api-key',  voiceId: 'your-voice-id',  region: 'eu', // Use 'us' for US endpoint  outputFormat: 'pcm_16000',})
// Use with MicdropServernew MicdropServer(socket, {  tts,  // ... other options})
```

[Previous← Gladia](/docs/ai-integration/provided-integrations/gladia)[NextKokoro →](/docs/ai-integration/provided-integrations/kokoro)

On this page

*   [Installation](#installation)
*   [Gradium STT (Speech-to-Text)](#gradium-stt-speech-to-text)
*   [Usage](#usage)
*   [Options](#options)
*   [Advanced Transcription Configuration](#advanced-transcription-configuration)
*   [Gradium TTS (Text-to-Speech)](#gradium-tts-text-to-speech)
*   [Usage](#usage-1)
*   [Options](#options-1)
*   [Output Formats](#output-formats)
*   [Advanced Voice Configuration](#advanced-voice-configuration)
*   [Getting Started](#getting-started)
