Documentation API
ClonyVoice fournit une API REST locale qui vous permet d'integrer la synthese vocale, le clonage de voix et le traitement audio dans vos propres applications. L'API fonctionne sur votre machine lorsque ClonyVoice est ouvert.
URL de base
L'API est disponible localement a :
http://127.0.0.1:8765
Authentification
Toutes les requetes API necessitent une cle API transmise via le header HTTP X-API-Key. Creez des cles dans l'application ClonyVoice, onglet API.
X-API-Key: cvk_your_api_key_here
Endpoints
Voices
| Method | Path | Description | Scope |
|---|---|---|---|
| GET | /api/voices | List all voices | voices:read |
| GET | /api/voices/{id} | Get voice details | voices:read |
| PUT | /api/voices/{id} | Update voice | voices:write |
| DELETE | /api/voices/{id} | Delete voice | voices:write |
| GET | /api/favorites | Get favorites | voices:read |
| POST | /api/favorites/{id} | Toggle favorite | voices:write |
Text-to-Speech (TTS)
| Method | Path | Description | Scope |
|---|---|---|---|
| POST | /api/generate/clone | Generate speech (clone) | tts:generate |
| POST | /api/generate/preset | Generate speech (preset) | tts:generate |
| POST | /api/generate/design | Generate speech (design) | tts:generate |
| POST | /api/text/split | Split text into sentences | audio:process |
| POST | /api/generation/cancel | Cancel generation | tts:generate |
Voice Cloning & Design
| Method | Path | Description | Scope |
|---|---|---|---|
| POST | /api/clone/create | Create voice clone | clone:create |
| POST | /api/clone/create-multi | Multi-sample clone | clone:create |
| POST | /api/design/create | Create voice from description | clone:create |
Audio Processing
| Method | Path | Description | Scope |
|---|---|---|---|
| POST | /api/transcribe | Transcribe audio (Whisper) | audio:process |
| POST | /api/audio-duration | Get audio duration | audio:process |
System
| Method | Path | Description | Scope |
|---|---|---|---|
| GET | /api/system/stats | CPU, RAM, GPU stats | system:read |
| GET | /api/system/info | Hardware info | system:read |
| GET | /api/api-keys | List API keys | system:read |
| POST | /api/api-keys | Create API key | system:read |
WebSocket
| Method | Path | Description | Scope |
|---|---|---|---|
| WS | /ws | Real-time progress updates | ws:connect |
Exemples de code
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);
Rate Limiting
Chaque cle API a des limites par scope (requetes par minute). En cas de depassement, l'API retourne HTTP 429. Les limites par defaut sont configurables par cle.
Scopes
Chaque endpoint necessite un scope specifique. Les cles recoivent tous les scopes par defaut.
| Scope | Description | Default limit/min |
|---|---|---|
tts:generate | Generate speech (TTS) | 10 |
tts:timeline | Timeline editor access | 30 |
voices:read | Read voices & categories | 60 |
voices:write | Modify / delete voices | 20 |
clone:create | Create voice clones | 2 |
audio:process | Process audio files | 5 |
projects:read | Read compositions | 60 |
projects:write | Modify compositions | 20 |
system:read | Read system info | 60 |
ws:connect | WebSocket connection | 5 |