Skip to main content
resemble-ai avatar

Chatterbox HD Voice Conversion API

resemble-ai/chatterboxhd/speech-to-speech

Convert a spoken recording into a different target voice while keeping the original words and delivery, with nine named HD voices and an optional 48kHz upscale for higher-fidelity output.

0.000333 per second of output video

Model Input

Input

The speech recording to voice-convert. Its words, timing, and delivery are preserved while the speaker's voice is replaced. Provide a clean, single-speaker clip (WAV or MP3).

The named voice to convert the source recording into. If a reference clip is provided in target_voice_audio_url it overrides this setting; if both are left unset a random target voice is used.

Optional reference clip of the voice to convert the source into. Provide a clean, single-speaker sample of the target voice; it overrides the named target_voice. Leave unset to use the named voice.

Additional Settings

Customize your input with more control.

When true, the generated audio is upscaled to 48kHz for higher quality at the cost of longer generation time. When false, the audio is 24kHz.

You need to be logged in to run this model and view results.
Log in

Model Output

Output

Loading
Generated in 6.371 seconds
Logs (1 lines)

Model Example Requests

Examples

Chatterbox HD Voice Conversion API

Chatterbox HD Voice Conversion is a sound AI model by resemble-ai. On ModelRunner it runs through a REST API or via MCP from any AI assistant, at $0.000333 per second of video.

POST https://queue.modelrunner.run/resemble-ai/chatterboxhd/speech-to-speech

cURL

# Submit a request to the queue
curl -X POST https://queue.modelrunner.run/resemble-ai/chatterboxhd/speech-to-speech \
  -H "Authorization: Key $MRUN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "input": {
      "target_voice": "Richard",
      "source_audio_url": "https://media.modelrunner.ai/hOf3TpERDs83NWOZA4rN0.wav",
      "high_quality_audio": false
    }
  }'
# → { "request_id": "...", "status_url": "...", "response_url": "..." }

# Poll status_url until "COMPLETED", then fetch the result
curl "https://queue.modelrunner.run/resemble-ai/chatterboxhd/speech-to-speech/requests/$REQUEST_ID/status" \
  -H "Authorization: Key $MRUN_API_KEY"
curl "https://queue.modelrunner.run/resemble-ai/chatterboxhd/speech-to-speech/requests/$REQUEST_ID" \
  -H "Authorization: Key $MRUN_API_KEY"

JavaScript

import { modelrunner } from "@modelrunner/client";

const result = await modelrunner.subscribe("resemble-ai/chatterboxhd/speech-to-speech", {
  input: {
    "target_voice": "Richard",
    "source_audio_url": "https://media.modelrunner.ai/hOf3TpERDs83NWOZA4rN0.wav",
    "high_quality_audio": false
  },
});
console.log(result);

Python

import os
import requests

headers = {"Authorization": f"Key {os.environ['MRUN_API_KEY']}"}

submitted = requests.post(
    "https://queue.modelrunner.run/resemble-ai/chatterboxhd/speech-to-speech",
    headers=headers,
    json={"input": {
      "target_voice": "Richard",
      "source_audio_url": "https://media.modelrunner.ai/hOf3TpERDs83NWOZA4rN0.wav",
      "high_quality_audio": false
    }},
).json()

# Poll submitted["status_url"] until "COMPLETED", then:
result = requests.get(submitted["response_url"], headers=headers).json()

Input parameters

NameTypeRequiredDescription
source_audio_urlstring (uri)yesThe speech recording to voice-convert. Its words, timing, and delivery are preserved while the speaker's voice is replaced. Provide a clean, single-speaker clip (WAV or MP3).
target_voiceenumnoThe named voice to convert the source recording into. If a reference clip is provided in target_voice_audio_url it overrides this setting; if both are left unset a random target voice is used. Default: "Aurora".
target_voice_audio_urlstring (uri)noOptional reference clip of the voice to convert the source into. Provide a clean, single-speaker sample of the target voice; it overrides the named target_voice. Leave unset to use the named voice.
high_quality_audiobooleannoWhen true, the generated audio is upscaled to 48kHz for higher quality at the cost of longer generation time. When false, the audio is 24kHz. Default: false.

Machine-readable: OpenAPI schema · llms.txt

Use Chatterbox HD Voice Conversion from Claude & Cursor (MCP)

Point Claude Code, Claude Desktop, Cursor, or any MCP client at the ModelRunner MCP server and Chatterbox HD Voice Conversion becomes a tool your assistant can call directly — it authorizes via OAuth (no API key in config) and runs this model with the run_model tool using the endpoint resemble-ai/chatterboxhd/speech-to-speech.

MCP client config (Claude Desktop, Cursor)

{
  "mcpServers": {
    "modelrunner": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.modelrunner.run/mcp"]
    }
  }
}

Claude Code

claude mcp add --transport http modelrunner https://mcp.modelrunner.run/mcp

Then ask your assistant, for example: “Run resemble-ai/chatterboxhd/speech-to-speech on ModelRunner to generate sound”. MCP setup guide.

Model Details

Model Details

Chatterbox HD Voice Conversion takes a recording of someone speaking and re-voices it in a different target voice, preserving the original words, timing, and delivery while swapping the speaker's timbre. Pass the clip to convert as `source_audio_url`, then choose the target voice one of two ways: pick one of nine ready-made named voices (`Aurora`, `Blade`, `Britney`, `Carl`, `Cliff`, `Richard`, `Rico`, `Siobhan`, `Vicky`) via `target_voice`, or supply a short, clean sample of any voice via `target_voice_audio_url` to convert into that specific voice (it overrides `target_voice` when both are set). Leave both unset and a random target voice is used. The output is a hosted WAV.

Its distinguishing features over the standard Chatterbox voice-conversion tier are the nine curated named target voices and higher fidelity: set `high_quality_audio` to `true` and the result is upscaled to 48kHz (slower to generate, higher quality) instead of the default 24kHz. Because it works on audio directly (no text), it re-voices existing narration, dialogue, or voice-overs without re-recording anything. Output audio includes Resemble AI's perceptual watermarking.

## Best for - Re-voicing or dubbing an existing recording into one of nine ready-made HD voices - Converting a recording into a specific voice from a short reference sample - High-fidelity re-voicing where 48kHz output quality matters - Anonymizing a speaker by replacing their voice while keeping the words intact - Unifying narration recorded by different people into one consistent voice

## Choose another model when - You want to generate speech from written text rather than convert an existing recording — use a text-to-speech model such as `resemble-ai/chatterboxhd/text-to-speech` - You need to transcribe speech into text rather than change the voice — use a speech-to-text model - You want a music track with melody and instrumentation — use a music-generation model - You want generic sound effects or ambience rather than spoken words — use a text-to-audio sound-effects model

## Tips - `source_audio_url` is the recording whose words and delivery are kept — provide a clean, single-speaker clip (WAV or MP3). - Choose a `target_voice` from the nine named options for a consistent, repeatable result; it defaults to `Aurora`. - To convert into a specific custom voice, pass `target_voice_audio_url` with a clean, single-speaker sample — it overrides `target_voice`. - Set `high_quality_audio: true` for a 48kHz upscale when fidelity matters and the extra latency is acceptable; keep it `false` (24kHz) for faster, cheaper runs.

To run via the ModelRunner JavaScript client: ```js import { modelrunner } from "@modelrunner/client";

const result = await modelrunner.subscribe("resemble-ai/chatterboxhd/speech-to-speech", { input: { source_audio_url: "https://media.modelrunner.ai/RThSDFY174fUmaVkxBj6X.mp3", target_voice: "Aurora", high_quality_audio: true, }, }); ```