Zum Hauptinhalt springen
Mit Voice Cloning kannst du Sprache in einer Stimme erzeugen, die durch ein kurzes Referenz-Audio-Sample vorgegeben wird. Mit tts-chatterbox-hd lädst du ein Sample an /audio/voices hoch, speicherst das zurückgegebene vv_...-Voice-Handle und übergibst dieses Handle dann an /audio/speech.
Voice-Handles sind modellspezifisch. Ein mit tts-chatterbox-hd erstelltes Handle muss mit tts-chatterbox-hd verwendet werden.

Wie es funktioniert

  1. Upload – Sende eine saubere Referenz-Audiodatei an POST /audio/voices
  2. Save – Speichere das zurückgegebene id-Voice-Handle
  3. Generate – Sende das Handle als voice an POST /audio/speech

Voraussetzungen

  • Ein Venice-API-Schlüssel
  • Ein sauberes Referenz-Sample im Format MP3, WAV, FLAC oder M4A
  • Mindestens 5 bis 10 Sekunden klar verständliche Sprache von einer einzigen Person
Setze deinen API-Schlüssel:
export VENICE_API_KEY="your-api-key"

Schritt 1: Ein Stimmensample hochladen

Erstelle ein Voice-Handle, indem du die Referenz-Audiodatei als Multipart-Form-Data hochlädst:
curl https://api.venice.ai/api/v1/audio/voices \
  -H "Authorization: Bearer $VENICE_API_KEY" \
  -F "model=tts-chatterbox-hd" \
  -F "file=@./reference-voice.wav"
Antwort (200):
{
  "id": "vv_voice_abc123xyz",
  "model": "tts-chatterbox-hd"
}
Speichere die id für die Sprachgenerierung:
export VENICE_VOICE_ID="vv_voice_abc123xyz"

Schritt 2: Sprache generieren

Übergib das geklonte Voice-Handle als voice im Speech-Request:
curl https://api.venice.ai/api/v1/audio/speech \
  -H "Authorization: Bearer $VENICE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "tts-chatterbox-hd",
    "voice": "'"$VENICE_VOICE_ID"'",
    "input": "Hello from Venice. This audio is generated with a cloned Chatterbox HD voice.",
    "response_format": "mp3"
  }' \
  --output chatterbox-clone.mp3
Der Response-Body ist Binär-Audio im angeforderten Format.

Vollständiges Beispiel

Dieses Beispiel lädt ein Referenz-Sample hoch, extrahiert das Voice-Handle mit jq und schreibt das generierte Audio in chatterbox-clone.mp3:
VOICE_ID=$(
  curl -s https://api.venice.ai/api/v1/audio/voices \
    -H "Authorization: Bearer $VENICE_API_KEY" \
    -F "model=tts-chatterbox-hd" \
    -F "file=@./reference-voice.wav" | jq -r '.id'
)

curl https://api.venice.ai/api/v1/audio/speech \
  -H "Authorization: Bearer $VENICE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "tts-chatterbox-hd",
    "voice": "'"$VOICE_ID"'",
    "input": "This is a complete Chatterbox HD voice cloning example.",
    "response_format": "mp3",
    "speed": 1
  }' \
  --output chatterbox-clone.mp3

Tipps für Stimmensamples

Verwende ein Sample mit einer einzigen Sprecherin oder einem einzigen Sprecher, minimalen Hintergrundgeräuschen und ohne Musik. Natürliche Sprache funktioniert besser als geflüsterte, gesungene oder stark bearbeitete Audioaufnahmen. Längere Samples können helfen, wenn die Stimme ein markantes Sprechtempo, einen Akzent oder einen besonderen Tonfall hat – halte das Sample aber auf die Zielperson fokussiert.

Ablauf von Handles

Chatterbox-HD-Cloning ist Zero-Shot: Venice speichert das hochgeladene Referenz-Audio nur temporär, und das Modell liest es ein, wenn du Sprache synthetisierst. Es wird kein dauerhaftes Voice-Template erstellt. Voice-Handles laufen automatisch nach 7 Tagen ab. Nach Ablauf eines Handles lädst du das Referenz-Sample erneut hoch, um ein neues vv_...-Handle zu erzeugen.

Cloning-Support erkennen

Modelle, die Cloning unterstützen, enthalten ein voice_cloning-Objekt in der Model-Spec. Frage die TTS-Modelle ab, um unterstützte Formate, Mindest-Sample-Länge und Aufbewahrung zu prüfen:
curl "https://api.venice.ai/api/v1/models?type=tts" \
  -H "Authorization: Bearer $VENICE_API_KEY"
tts-chatterbox-hd weist Folgendes aus:
{
  "voice_cloning": {
    "mode": "zero_shot",
    "accepted_formats": ["mp3", "wav", "flac", "m4a"],
    "min_sample_seconds": 5,
    "retention_days": 7
  }
}

API-Parameter

Voice erstellen

FeldTypPflichtBeschreibung
modelstringJaMuss tts-chatterbox-hd sein
filefileJaReferenz-Audio-Sample. Unterstützte Formate sind MP3, WAV, FLAC und M4A.

Sprache generieren

FeldTypPflichtDefaultBeschreibung
modelstringJa-Muss mit dem Modell übereinstimmen, das zum Erstellen des Voice-Handles verwendet wurde
voicestringJa-Das von POST /audio/voices zurückgegebene vv_...-Handle
inputstringJa-Zu synthetisierender Text, bis zu 4096 Zeichen
response_formatstringNeinmp3mp3, opus, aac, flac, wav oder pcm
speednumberNein1Sprechgeschwindigkeit von 0.25 bis 4.0
temperaturenumberNein-Sampling-Temperatur von 0 bis 2. Höhere Werte können zu mehr Variation führen.
streamingbooleanNeinfalseAudio Satz für Satz streamen

Häufige Fehler

StatusUrsacheLösung
400Nicht unterstützter Audio-Container oder inkompatibles Voice-HandleNutze MP3, WAV, FLAC oder M4A und kombiniere das Handle mit demselben Modell, mit dem es erstellt wurde.
401Fehlender oder ungültiger API-SchlüsselSende Authorization: Bearer $VENICE_API_KEY.
402Unzureichendes GuthabenLade dein Venice-Guthaben auf.
413Hochgeladene Datei ist zu großVerwende ein kürzeres oder stärker komprimiertes Referenz-Sample.
429Rate Limit überschrittenVersuche es erneut, nachdem das Rate-Limit-Fenster zurückgesetzt wurde.