Documentazione API

ClonyVoice fornisce un'API REST locale che consente di integrare text-to-speech, clonazione vocale ed elaborazione audio nelle tue applicazioni. L'API è attiva sulla tua macchina quando ClonyVoice è aperto.

URL Base

L'API è disponibile localmente su:

http://127.0.0.1:8765

Autenticazione

Tutte le richieste API richiedono una chiave API passata tramite l'header HTTP X-API-Key. Crea le chiavi nell'app desktop ClonyVoice nella scheda API.

X-API-Key: cvk_your_api_key_here

Endpoint

Voices

MethodPathDescriptionScope
GET/api/voicesList all voicesvoices:read
GET/api/voices/{id}Get voice detailsvoices:read
PUT/api/voices/{id}Update voicevoices:write
DELETE/api/voices/{id}Delete voicevoices:write
GET/api/favoritesGet favoritesvoices:read
POST/api/favorites/{id}Toggle favoritevoices:write

Text-to-Speech (TTS)

MethodPathDescriptionScope
POST/api/generate/cloneGenerate speech (clone)tts:generate
POST/api/generate/presetGenerate speech (preset)tts:generate
POST/api/generate/designGenerate speech (design)tts:generate
POST/api/text/splitSplit text into sentencesaudio:process
POST/api/generation/cancelCancel generationtts:generate

Voice Cloning & Design

MethodPathDescriptionScope
POST/api/clone/createCreate voice cloneclone:create
POST/api/clone/create-multiMulti-sample cloneclone:create
POST/api/design/createCreate voice from descriptionclone:create

Audio Processing

MethodPathDescriptionScope
POST/api/transcribeTranscribe audio (Whisper)audio:process
POST/api/audio-durationGet audio durationaudio:process

System

MethodPathDescriptionScope
GET/api/system/statsCPU, RAM, GPU statssystem:read
GET/api/system/infoHardware infosystem:read
GET/api/api-keysList API keyssystem:read
POST/api/api-keysCreate API keysystem:read

WebSocket

MethodPathDescriptionScope
WS/wsReal-time progress updatesws:connect

Esempi di Codice

curl -X POST "http://127.0.0.1:8765/api/generate/clone" \ -H "X-API-Key: cvk_your_key" \ -H "Content-Type: application/json" \ -d '{ "voice_id": "voice_abc123", "text": "Hello, world!", "language": "en" }'
import requests response = requests.post( "http://127.0.0.1:8765/api/generate/clone", headers={"X-API-Key": "cvk_your_key"}, json={ "voice_id": "voice_abc123", "text": "Hello, world!", "language": "en" } ) print(response.json())
const response = await fetch( "http://127.0.0.1:8765/api/generate/clone", { method: "POST", headers: { "X-API-Key": "cvk_your_key", "Content-Type": "application/json" }, body: JSON.stringify({ voice_id: "voice_abc123", text: "Hello, world!", language: "en" }) } ); const data = await response.json(); console.log(data);

Limiti di Frequenza

Ogni chiave API ha limiti di frequenza per ambito (richieste al minuto). Se superati, l'API restituisce HTTP 429. I limiti predefiniti sono configurabili per chiave.

Ambiti

Ogni endpoint richiede un ambito specifico. Le chiavi hanno tutti gli ambiti per impostazione predefinita.

ScopeDescriptionDefault limit/min
tts:generateGenerate speech (TTS)10
tts:timelineTimeline editor access30
voices:readRead voices & categories60
voices:writeModify / delete voices20
clone:createCreate voice clones2
audio:processProcess audio files5
projects:readRead compositions60
projects:writeModify compositions20
system:readRead system info60
ws:connectWebSocket connection5