Ana içeriğe geç
resemble-ai avatarı

Chatterbox TTS API

resemble-ai/chatterbox/text-to-speech

Metni ifadeli bir konuşmaya dönüştürün, kısa bir referans kayıttan herhangi bir sesi klonlayın ve duygu yoğunluğunu ince ayarla yönetin.

üretilen ses için saniye başına 0.000375

Model girdisi

Input

The text to synthesize into speech. Up to 5000 characters. Supports inline emotive tags such as <laugh>, <sigh>, <gasp>, and <cough> to shape delivery.

Optional reference recording whose voice and style are cloned. Provide a clean, single-speaker clip to clone that voice; leave it unset to use the built-in default voice.

Min: 0 - Max: 1

Emotion and intensity exaggeration. Higher values produce more dramatic, expressive delivery; lower values are calmer and more measured.

Min: 0.05 - Max: 2

Sampling temperature. Lower is steadier and more predictable; higher adds variation to prosody and delivery.

Min: 0.1 - Max: 1

Classifier-free guidance weight. Higher values track the reference voice and prompt more closely; lower values give the model more freedom.

Random seed for reproducibility. Set a fixed integer to repeat a generation; 0 or unset uses a random seed.

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

Model çıktısı

Output

Loading
Generated in 12.518 seconds
Logs (1 lines)

Örnek istekler

Örnekler

Chatterbox TTS API

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

POST https://queue.modelrunner.run/resemble-ai/chatterbox/text-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/text-to-speech \
  -H "Authorization: Key $MRUN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "cfg": 0.5,
    "text": "Step inside and make yourself comfortable. Every detail here was chosen with care, from the warm lighting to the soft…",
    "audio_url": "https://media.modelrunner.ai/LgBvbcVQn74cCGHEvWfzT.mp3",
    "temperature": 0.7,
    "exaggeration": 0.25,
    "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/text-to-speech/requests/$REQUEST_ID/status" \
  -H "Authorization: Key $MRUN_API_KEY"
curl "https://queue.modelrunner.run/resemble-ai/chatterbox/text-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/text-to-speech", {
  input: {
    "cfg": 0.5,
    "text": "Step inside and make yourself comfortable. Every detail here was chosen with care, from the warm lighting to the soft…",
    "audio_url": "https://media.modelrunner.ai/LgBvbcVQn74cCGHEvWfzT.mp3",
    "temperature": 0.7,
    "exaggeration": 0.25
  },
});
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/text-to-speech",
    headers=headers,
    json={
      "cfg": 0.5,
      "text": "Step inside and make yourself comfortable. Every detail here was chosen with care, from the warm lighting to the soft…",
      "audio_url": "https://media.modelrunner.ai/LgBvbcVQn74cCGHEvWfzT.mp3",
      "temperature": 0.7,
      "exaggeration": 0.25
    },
).json()

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

Input parameters

Input parameters of Chatterbox TTS
NameTypeRequiredDescription
textstringyesThe text to synthesize into speech. Up to 5000 characters. Supports inline emotive tags such as <laugh>, <sigh>, <gasp>, and <cough> to shape delivery.
audio_urlstringnoOptional reference recording whose voice and style are cloned. Provide a clean, single-speaker clip to clone that voice; leave it unset to use the built-in default voice.
exaggerationnumbernoEmotion and intensity exaggeration. Higher values produce more dramatic, expressive delivery; lower values are calmer and more measured. Default: 0.25.
temperaturenumbernoSampling temperature. Lower is steadier and more predictable; higher adds variation to prosody and delivery. Default: 0.7.
cfgnumbernoClassifier-free guidance weight. Higher values track the reference voice and prompt more closely; lower values give the model more freedom. Default: 0.5.
seedintegernoRandom seed for reproducibility. Set a fixed integer to repeat a generation; 0 or unset uses a random seed.

Machine-readable: OpenAPI schema · llms.txt

Use Chatterbox TTS from Claude & Cursor (MCP)

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

Model Detayları

Model Detayları

Chatterbox, yazılı metni doğal ve ifadeli bir konuşmaya dönüştürür ve barındırılan bir WAV dosyası döndürür. En güçlü yanı zero-shot ses klonlamadır: kısa bir referans kayıt verin, metninizi o sesle okusun — eğitim ya da ses profili oluşturma adımı gerekmez. Referansı vermezseniz yerleşik varsayılan bir sesle okur. `exaggeration` kontrolü duygu yoğunluğunu artırıp azaltır; girdi metni de okuyuşu yer yer renklendirmek için `<laugh>`, `<sigh>`, `<gasp>` ve `<cough>` gibi satır içi duygu etiketlerini kabul eder. Bu da onu karakter diyalogları, belirli bir kişinin sesiyle anlatım ve düz, nötr bir TTS’in yetersiz kalacağı ifadeli okumalar için güçlü bir varsayılan tercih yapar.

## En uygun olduğu işler - Anlatım ya da karakter diyalogları için kısa bir örnekten belirli bir sesi klonlamak - Okuyuşta gülme, iç çekme ya da şaşkınlıkla nefesin kesilmesi gibi anlar istediğiniz ifadeli, duygu yüklü okumalar - Düz bir okuma yerine karakter isteyen seslendirmeler ve dramatize içerikler - Eğitim ya da ses profili oluşturma adımı olmadan hızlıca özel bir ses prototiplemek

## Şu durumlarda başka bir model seçin - Kendi sesinizi klonlamak yerine adlandırılmış, hazır seslerden oluşan geniş bir kütüphane gerekiyorsa — hazır ses kataloğu sunan bir TTS modeli kullanın - Melodisi ve enstrümantasyonu olan bir müzik parçası istiyorsanız — bir müzik üretim modeli kullanın - Konuşma yerine genel ses efektleri ya da ortam sesi istiyorsanız — bir text-to-audio ses efekti modeli kullanın - Konuşma üretmek yerine konuşmayı metne dökmeniz gerekiyorsa — bir speech-to-text modeli kullanın

## İpuçları - Bir sesi klonlamak için `audio_url` alanına temiz, tek konuşmacılı bir referans klip verin; yerleşik varsayılan sesi kullanmak için boş bırakın. - Okuyuşu belirli noktalarda şekillendirmek için `<laugh>`, `<sigh>`, `<gasp>` ya da `<cough>` gibi etiketleri doğrudan `text` içine ekleyin. - Daha dramatik ve duygusal bir okuyuş için `exaggeration` değerini yükseltin (0.0–1.0, varsayılan 0.25); sakin ve ölçülü okumalar için düşük tutun. - Girdi metnini okunmasını istediğiniz gibi noktalayın — virgüller ve noktalar duraklamaları ve tonlamayı belirler.

## Gelişmiş Yapılandırma - `temperature` (0.05–2.0, varsayılan 0.7): sampling temperature. Düşük değerler daha istikrarlı ve öngörülebilir sonuç verir; yüksek değerler prozodiye ve okuyuşa çeşitlilik katar. - `cfg` (0.1–1.0, varsayılan 0.5): classifier-free guidance ağırlığı. Yüksek değerler referans sesi ve prompt’u daha yakından izler; düşük değerler modele daha fazla serbestlik tanır. - `seed` (varsayılan olarak boş, 0 = rastgele): bir üretimi tekrarlanabilir kılmak için sabit bir tam sayı verin.

ModelRunner JavaScript client ile çalıştırmak için: ```js import { modelrunner } from "@modelrunner/client";

const result = await modelrunner.subscribe("resemble-ai/chatterbox/text-to-speech", { input: { text: "Welcome to ModelRunner. This voice was cloned from a short reference clip. <laugh>", audio_url: "https://media.modelrunner.ai/LgBvbcVQn74cCGHEvWfzT.mp3", exaggeration: 0.25, }, }); ```