Skip to main content
resemble-ai avatar

Chatterbox Voice Conversion API

resemble-ai/chatterbox/speech-to-speech

Convert a spoken recording into a different target voice while keeping the original words, timing, and delivery — a speech-to-speech voice changer.

0.00025 per second of output video

Model Input

Input

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

Optional reference clip of the voice to convert the source into. Provide a clean, single-speaker sample of the target voice; leave it unset to use the built-in default conversion voice.

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

Model Output

Output

Loading
Generated in 2.822 seconds
Logs (1 lines)

Model Example Requests

Examples

Chatterbox Voice Conversion API

Chatterbox 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.00025 per second of audio.

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

cURL

# Submit a request to the queue. Input fields go at the top level of the
# body. The optional reserved "metadata" object holds your own flat string
# tags — stored on the request, never sent to the model; filter later with
# GET https://queue.modelrunner.run/requests?metadata=<url-encoded JSON>.
curl -X POST https://queue.modelrunner.run/resemble-ai/chatterbox/speech-to-speech \
  -H "Authorization: Key $MRUN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "source_audio_url": "https://media.modelrunner.ai/yKl0Lb3SJCG9UDYwpUObH.mp3",
    "target_voice_audio_url": "https://media.modelrunner.ai/rR5rwAibwYgo9y3BCPYXp.mp3",
    "metadata": {
      "project": "my-project"
    }
  }'
# → { "request_id": "...", "status_url": "...", "response_url": "..." }

# Poll status_url until "COMPLETED", then fetch the result
curl "https://queue.modelrunner.run/resemble-ai/chatterbox/speech-to-speech/requests/$REQUEST_ID/status" \
  -H "Authorization: Key $MRUN_API_KEY"
curl "https://queue.modelrunner.run/resemble-ai/chatterbox/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/chatterbox/speech-to-speech", {
  input: {
    "source_audio_url": "https://media.modelrunner.ai/yKl0Lb3SJCG9UDYwpUObH.mp3",
    "target_voice_audio_url": "https://media.modelrunner.ai/rR5rwAibwYgo9y3BCPYXp.mp3"
  },
});
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/chatterbox/speech-to-speech",
    headers=headers,
    json={
      "source_audio_url": "https://media.modelrunner.ai/yKl0Lb3SJCG9UDYwpUObH.mp3",
      "target_voice_audio_url": "https://media.modelrunner.ai/rR5rwAibwYgo9y3BCPYXp.mp3"
    },
).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 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_voice_audio_urlstringnoOptional reference clip of the voice to convert the source into. Provide a clean, single-speaker sample of the target voice; leave it unset to use the built-in default conversion voice.

Machine-readable: OpenAPI schema · llms.txt

Use Chatterbox Voice Conversion from Claude & Cursor (MCP)

Point Claude Code, Claude Desktop, Cursor, or any MCP client at the ModelRunner MCP server and Chatterbox 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/chatterbox/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/chatterbox/speech-to-speech on ModelRunner to generate sound”. MCP setup guide.

Model Details

Model Details

Chatterbox 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 you want to convert as `source_audio_url`, and an optional `target_voice_audio_url` — a short, clean sample of the voice you want the result to sound like. Leave the target unset and it applies a built-in default conversion voice. The output is a hosted WAV. Because it works on audio directly (no text), it re-voices existing narration, dialogue, or voice-overs without you re-recording anything.

## Best for - Re-voicing or dubbing an existing recording into a different target voice - Anonymizing a speaker by replacing their voice while keeping the words intact - Changing the voice of a finished voice-over without re-recording the script - Unifying narration across clips 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/chatterbox/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. - `target_voice_audio_url` is the voice to convert INTO; supply a clean, single-speaker sample of that voice. Omit it to use the built-in default conversion voice. - Both inputs accept common audio formats (WAV, MP3); the result is returned as a hosted WAV.

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

const result = await modelrunner.subscribe("resemble-ai/chatterbox/speech-to-speech", { input: { source_audio_url: "https://media.modelrunner.ai/RThSDFY174fUmaVkxBj6X.mp3", target_voice_audio_url: "https://media.modelrunner.ai/DeW8piXP0W8Oa6hEmSGrQ.mp3", }, }); ```