API di clonazione vocale e generazione con voce indicata (non consigliato)
⛔ Catena precedente, non consigliata per le nuove integrazioni. Questa pagina descrive la catena
personainiziale (voice_task_id/generate-with-voice). Funziona ancora, ma non è più consigliata ai clienti; il menu di sinistra la segnala come «non consigliato».Per le nuove integrazioni usa l'【Consigliato】 API profilo vocale: crea un profilo vocale da un campione di voce (
POST /api/music/voice-profile/create) e usalo per fare una cover di un brano scelto o per cantarne uno nuovo. Il profilo vocale è una risorsa di prima classe: si può elencare, leggere ed eliminare, e il suo audio di origine viene conservato in modo permanente.Se il tuo prodotto richiede il ciclo completo «creare una voce → riutilizzarla a lungo → fare cover», dai priorità alla catena nuova.
Avviso importante: una voce clonata può scadere.
Il
voice_id/voice_task_idprodotto dalla clonazione vocale non è una risorsa utilizzabile per sempre: può smettere di funzionare per la durata di validità, lo stato dell'account o i cambiamenti dello stato della voce. Chi integra non deve clonare una volta e poi riutilizzare per sempre un ID voce salvato in cache locale.Prassi consigliata:
- Salva
voice_task_id,voice_id,is_available,updated_ate l'ora dell'ultima generazione riuscita.- Prima di ogni generazione con una voce clonata, chiama
GET /api/voice/clone/tasks/{voice_task_id}oPOST /api/voice/clone/tasks/{voice_task_id}/checke verificais_available=true.- Se l'endpoint restituisce voce non disponibile, attività inesistente o
selected voice is not ready, invita l'utente a clonare di nuovo o a scegliere un'altra voce disponibile.- Non promettere all'utente finale che una voce clonata sia un «asset permanente»; mostra nell'interfaccia del prodotto che «la voce può scadere e richiedere una nuova verifica o una nuova clonazione».
Descrizione dell'endpoint
Questo gruppo di endpoint crea una voce riutilizzabile e genera brani con essa. Chi chiama ha bisogno solo della chiave API emessa dalla piattaforma; il server gestisce invio delle attività, sincronizzazione dello stato, fatturazione e download.
Autenticazione: Authorization: Bearer YOUR_API_KEY
Fatturazione:
- Verifica della voce, clonazione vocale, consultazione dello stato, eliminazione e download: gratuiti.
- L'ingresso di clonazione in un passo dell'area di lavoro: 5 ¥ fissi per chiamata; completa automaticamente la verifica della voce di origine e il secondo audio di verifica, e rimborsa in caso di errore.
- Proseguire automaticamente con l'audio di verifica dopo una clonazione normale: 5 ¥ fissi per chiamata; in caso di errore il rimborso segue il flusso esistente.
- Generare un brano con una voce clonata: a pagamento, 1,2 ¥ fissi per chiamata; ogni chiamata restituisce di norma 2 attività segnaposto.
- Con il Max Mode attivo (
max_mode: truesuPOST /api/music/generate-with-voice) gli 1,2 ¥ per chiamata vengono fatturati al doppio, cioè 2,4 ¥ per chiamata; la generazione con voce supporta anchevariety(0-4, senza costi aggiuntivi); le regole sui valori sono nella sezione «Parametri avanzati» della panoramica della nuova API.
Sequenza di chiamate
- Chiama
POST /api/voice/clone/validateper caricare la voce di origine e ottenere unvoice_task_id. - Attendi o interroga
GET /api/voice/clone/tasks/{voice_task_id}fino a ottenerevalidate_info. - L'utente legge quel testo ad alta voce e registra l'audio di verifica.
- Chiama
POST /api/voice/clone/tasks/{voice_task_id}/generateper inviare l'audio di verifica. - Chiama
POST /api/voice/clone/tasks/{voice_task_id}/checko continua a interrogare l'attività finchéis_available=true. - Chiama
POST /api/music/generate-with-voiceper generare un brano con quella voce. - L'endpoint di generazione restituisce prima attività segnaposto; quando la generazione è finita e hai il
song_idreale, puoi usare gli endpoint di download per ottenere un singolo file o un pacchetto. - (Facoltativo) Quando la voce non serve più, chiama
DELETE /api/voice/clone/voices/{voice_task_id}per eliminarla; la semantica è nella sezione 6.
Esiste anche la clonazione in un passo: nella prima pagina di registrazione/caricamento della voce dell'area di lavoro puoi scegliere di completare tutto in una volta; il sistema esegue insieme verifica e creazione della voce, così non devi registrare un secondo audio di verifica; costa 5 ¥ per chiamata e in caso di errore viene rimborsato.
Campi dell'attività voce
| Campo | Tipo | Note |
|---|---|---|
voice_task_id |
number | ID dell'attività voce nella piattaforma; tutti gli endpoint successivi usano questo ID |
voice_id |
string | ID voce utilizzabile per generare brani; viene restituito quando l'attività è disponibile |
voice_name |
string | Nome della voce |
description |
string | Descrizione della voce |
style |
string | Stile della voce |
singer_skill_level |
string | Livello di canto; valori comuni: beginner, intermediate, professional |
language |
string | Lingua della voce di origine, ad esempio zh, en |
validate_info |
string | Testo di verifica da leggere ad alta voce |
validate_status |
string | Stato dell'attività di verifica |
voice_status |
string | Stato di creazione della voce |
is_available |
boolean | Se è già utilizzabile per generare brani |
status |
string | Stato dell'attività sulla piattaforma |
stage |
string | Fase corrente |
error_code |
string | Codice di errore in caso di fallimento |
error_message |
string | Motivo del fallimento |
source_duration_seconds |
number | Durata dell'audio di origine in secondi |
created_at |
number | Timestamp di creazione |
updated_at |
number | Timestamp di aggiornamento |
completed_at |
number | Timestamp di completamento |
1. Inviare la voce di origine alla verifica
Endpoint: POST /api/voice/clone/validate
Parametri del corpo
| Parametro | Tipo | Obbligatorio | Predefinito | Note |
|---|---|---|---|---|
voice_url |
string | No | - | URL dell'audio della voce di origine. Questo oppure file_base64 |
file_base64 |
string | No | - | Audio in base64. Questo oppure voice_url |
file_name |
string | No | - | Nome file; consigliato con file_base64 |
voice_name |
string | No | generato automaticamente | Nome della voce |
description |
string | No | - | Descrizione della voce |
style |
string | No | - | Stile della voce |
singer_skill_level |
string | No | beginner |
Livello di canto |
language |
string | No | zh |
Lingua della voce di origine |
vocal_start_s |
number | Sì | - | Secondo di inizio della voce utile |
vocal_end_s |
number | Sì | - | Secondo di fine della voce utile |
source_duration_seconds |
number | No | - | Durata totale dell'audio di origine in secondi |
vocal_end_s - vocal_start_sdeve rispettare il minimo del frammento vocale. Carica una registrazione vocale pulita, senza accompagnamento o rumore evidenti.
Esempio di richiesta
curl -X POST https://www.suno-api.io/api/voice/clone/validate \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"voice_url": "https://example.com/source-voice.wav",
"voice_name": "La mia voce femminile in cinese",
"description": "Voce femminile in cinese, chiara e naturale",
"style": "Mandopop",
"singer_skill_level": "intermediate",
"language": "zh",
"vocal_start_s": 1.2,
"vocal_end_s": 18.5,
"source_duration_seconds": 20
}'
Esempio di risposta
{
"success": true,
"message": "",
"data": {
"voice": {
"voice_task_id": 123,
"voice_name": "La mia voce femminile in cinese",
"language": "zh",
"validate_status": "submitted",
"is_available": false,
"status": "validate_submitted",
"stage": "validate_submitted",
"created_at": 1780480000,
"updated_at": 1780480000
}
}
}
2. Interrogare un'attività voce
Endpoint: GET /api/voice/clone/tasks/{voice_task_id}
Esempio di richiesta
curl https://www.suno-api.io/api/voice/clone/tasks/123 \
-H "Authorization: Bearer YOUR_API_KEY"
Esempio di risposta
{
"success": true,
"message": "",
"data": {
"voice": {
"voice_task_id": 123,
"voice_name": "La mia voce femminile in cinese",
"validate_info": "Leggi ad alta voce il testo di verifica restituito qui",
"validate_status": "success",
"is_available": false,
"status": "validate_ready",
"stage": "validate_callback"
}
}
}
3. Rigenerare il testo di verifica
Endpoint: POST /api/voice/clone/tasks/{voice_task_id}/regenerate
Da chiamare quando il testo di verifica non è adatto alla lettura ad alta voce o quando serve rifare la verifica.
curl -X POST https://www.suno-api.io/api/voice/clone/tasks/123/regenerate \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
4. Inviare l'audio di verifica e creare la voce
Endpoint: POST /api/voice/clone/tasks/{voice_task_id}/generate
Parametri del corpo
| Parametro | Tipo | Obbligatorio | Predefinito | Note |
|---|---|---|---|---|
verify_url |
string | No | - | URL dell'audio letto dal testo di verifica. Questo oppure file_base64 |
file_base64 |
string | No | - | Audio di verifica in base64. Questo oppure verify_url |
file_name |
string | No | - | Nome file; consigliato con file_base64 |
voice_name |
string | No | nome dell'attività | Nome della voce |
description |
string | No | descrizione dell'attività | Descrizione della voce |
style |
string | No | stile dell'attività | Stile della voce |
singer_skill_level |
string | No | impostazione dell'attività | Livello di canto |
Esempio di richiesta
curl -X POST https://www.suno-api.io/api/voice/clone/tasks/123/generate \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"verify_url": "https://example.com/verify-voice.wav",
"voice_name": "La mia voce femminile in cinese"
}'
5. Verificare se la voce è utilizzabile
Endpoint: POST /api/voice/clone/tasks/{voice_task_id}/check
curl -X POST https://www.suno-api.io/api/voice/clone/tasks/123/check \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Quando l'attività è utilizzabile, is_available nella risposta è true e viene restituito un voice_id.
6. Eliminare una voce
Endpoint: DELETE /api/voice/clone/voices/{voice_task_id}
Fatturazione: gratuita.
curl -X DELETE https://www.suno-api.io/api/voice/clone/voices/123 \
-H "Authorization: Bearer YOUR_API_KEY"
Esempio di risposta
{
"success": true,
"message": "",
"data": {
"voice_task_id": 123,
"deleted": true
}
}
| Campo | Tipo | Note |
|---|---|---|
| voice_task_id | number | ID dell'attività voce eliminata |
| deleted | boolean | Sempre true: la richiesta di eliminazione è stata accettata |
Cosa succede dopo l'eliminazione
- La voce non può più generare nuovi brani: chiamare
POST /api/music/generate-with-voicecon questovoice_task_id(o con il suovoice_id) viene rifiutato con il messaggioselected voice is not ready, senza alcun addebito. - I brani già generati con essa non sono per nulla influenzati: riproduzione, download, proseguimento, sostituzione e separazione funzionano come prima.
- Questa attività voce scompare dalle interrogazioni:
GET /api/voice/clone/tasks/{voice_task_id}restituiscerecord not found. - L'audio di origine viene conservato secondo la politica di conservazione permanente della piattaforma (dal 2026-09-23 l'eliminazione non cancella più il campione vocale caricato), ma questo non significa che sia ripristinabile: quella vecchia attività è conclusa e, per continuare con la stessa voce, bisogna rifare tutto il flusso di clonazione, ottenendo un nuovo
voice_task_id. - Eliminazione ripetuta: eliminare di nuovo la stessa attività restituisce
record not found(è già in stato eliminato e non è più consultabile).
7. Generare un brano con una voce clonata
Endpoint: POST /api/music/generate-with-voice
Fatturazione: 1,2 ¥ per chiamata.
Parametri del corpo
| Parametro | Tipo | Obbligatorio | Predefinito | Note |
|---|---|---|---|---|
voice_task_id |
number | Sì | - | ID di un'attività voce già disponibile |
voice_id |
string | No | - | Campo di verifica facoltativo; se lo invii deve coincidere con il voice_id dell'attività |
customMode |
boolean | No | false |
false è la modalità ispirazione, true quella avanzata |
prompt |
string | Sì | - | In modalità ispirazione la descrizione del brano, in modalità avanzata il testo. Nessuno dei due può essere vuoto |
style |
string | Sì in modalità avanzata | - | Tag di stile; non può essere vuoto quando customMode=true |
title |
string | Sì in modalità avanzata | - | Titolo del brano; non può essere vuoto quando customMode=true |
negativeTags |
string | No | - | Stile da escludere |
instrumental |
boolean | No | false |
Campo di compatibilità; la generazione con voce clonata è sempre trattata come brano cantato |
waitAudio |
boolean | No | false |
Campo di compatibilità; questo endpoint restituisce sempre le attività segnaposto in modo asincrono e non attende l'audio |
model |
string | No | suno-v6 |
Modello di generazione normale; puoi usare suno-v6, suno-v6-wild o suno-v6-mini |
vocalGender |
string | No | - | Preferenza sul genere vocale |
lyricsMode |
string | No | - | Campo di compatibilità; l'attuale catena di invio con voce clonata non cambia da sé la modalità del testo |
weirdnessConstraint |
number | No | - | Forza creativa |
styleWeight |
number | No | - | Peso dello stile |
audioWeight |
number | No | valore predefinito della piattaforma | Audio Influence (quanto conta l'audio di riferimento), intervallo 0.0-1.0. Se non viene inviato, si applica il valore predefinito della piattaforma (equivalente al 25% nell'interfaccia ufficiale); 0 è un valore valido e significa non avvicinarsi affatto al riferimento. È strettamente legato al sourceClipId della riga successiva: con una sorgente punta all'audio di riferimento, senza sorgente punta alla voce clonata; la piattaforma ha solo questo cursore per entrambi i casi, quindi non dividerlo in due parametri per caso d'uso |
sourceClipId |
string | No | - | ID reale del clip nell'area di lavoro del brano di origine. Se lo invii si entra nella cover con voce clonata; altrimenti è generazione normale con voce clonata |
sourceAudioUrl |
string | No | - | Campo di presentazione della sorgente; non partecipa alla proprietà né alla decisione sull'account, il server si basa sul proprio record nel database |
sourceTitle |
string | No | - | Campo di presentazione della sorgente; non partecipa alla proprietà né alla decisione sull'account |
clientSubmissionId |
string | No | - | Campo di compatibilità Create UI; per una deduplicazione affidabile nell'API client va usato l'header Idempotency-Key |
Sono supportati suno-v6, suno-v6-wild e suno-v6-mini; un modello vuoto viene trattato come suno-v6. I vecchi modelli V5/V5.5 sono ritirati, ma le attività storiche possono ancora mostrare i nomi vecchi.
La struttura di richiesta condivisa interpreta anche campi di compatibilità Create UI come task, soundType, soundLoop, soundBpm, soundKey, voiceTaskId e voiceId, ma non sono parametri client validi per questo endpoint: l'attività voce va inviata come voice_task_id, la verifica facoltativa della voce come voice_id, e la generazione musicale con voce non legge mai i campi sound.
Come compilare i parametri di generazione
- Con
customMode=falsepromptcontiene la descrizione del brano; concustomMode=truepromptcontiene il testo completo e vanno compilati anchestyleetitle. Non inviare il testo nel campo descrizione della modalità ispirazione e non trattare una descrizione del brano come testo della modalità avanzata. weirdnessConstraintestyleWeightsono proporzioni decimali da0.0a1.0; non si possono inviare50o50%.0.5è un valore equilibrato; ometterli significa «non specificato» e0è un valore esplicito valido.vocalGenderaccetta solom,male,fofemale.instrumentalqui è solo un campo di compatibilità: la generazione con voce clonata è sempre trattata come brano cantato.waitAudioqui non cambia il comportamento; l'endpoint restituisce sempre le attività segnaposto in modo asincrono. Unaudio_urlvuoto nel risultato iniziale è normale: interroga conclient_request_ide leggi l'indirizzo audio solo a risultato completato.
Parametri header
| Header | Obbligatorio | Note |
|---|---|---|
Authorization: Bearer ... |
Sì | Token dell'API client |
Content-Type: application/json |
Sì | Corpo JSON |
Idempotency-Key |
No, fortemente consigliato | Fino a 128 caratteri. Con stesso utente, token, endpoint, chiave e corpo si fattura e si crea l'attività una sola volta |
Comportamento di Idempotency-Key:
- La prima richiesta scrive un record di idempotenza persistente prima della fatturazione;
- Se la stessa chiave con la stessa richiesta è già completata, viene riprodotta la prima risposta di accettazione, senza secondo addebito né seconda attività;
- La stessa chiave con un corpo diverso viene rifiutata;
- La stessa chiave ancora in elaborazione restituisce un errore stabile «in elaborazione» ed espone un
client_request_idsicuro solo quando è già stato generato; - Se la prima richiesta con quella chiave fallisce, resta in stato di errore; per riprovare serve una chiave nuova.
Condizioni per la cover con sourceClipId
La cover da una sorgente nell'API client è gestita interamente dal server: l'accesso al brano di origine viene risolto lato server e il cliente non invia alcun dato di account. Se sia possibile lo decide la risposta reale dell'endpoint.
La sorgente deve appartenere all'utente API corrente, essere un brano dell'area di lavoro completato e non pending:, e avere audio utilizzabile. Sono supportate la generazione normale, le sorgenti da caricamento normale e il brano finale del caricamento potenziato; i record intermedi del caricamento potenziato vengono rifiutati prima della fatturazione. Il server accetta solo l'ID del brano di origine inviato dal cliente e mai un ID account; una sorgente non disponibile o non completata restituisce errore prima della fatturazione.
Esempio di richiesta
curl -X POST https://www.suno-api.io/api/music/generate-with-voice \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"voice_task_id": 123,
"customMode": true,
"prompt": "Scrivi una canzone pop cinese su un litorale in una notte d'estate",
"style": "Mandopop, warm piano, emotional",
"title": "Brezza di mare in una notte d'estate",
"negativeTags": "noise, low quality",
"instrumental": false,
"model": "suno-v6"
}'
Esempio di risposta
{
"success": true,
"message": "",
"data": {
"client_request_id": "cu_1780480000_abcd1234",
"items": [
{
"placeholder_id": "pending:cu_1780480000_abcd1234:0",
"client_request_id": "cu_1780480000_abcd1234",
"client_request_index": 0,
"status": "submitted",
"type": "voice_generate",
"title": "Brezza di mare in una notte d'estate",
"prompt": "Scrivi una canzone pop cinese su un litorale in una notte d'estate"
},
{
"placeholder_id": "pending:cu_1780480000_abcd1234:1",
"client_request_id": "cu_1780480000_abcd1234",
"client_request_index": 1,
"status": "submitted",
"type": "voice_generate",
"title": "Brezza di mare in una notte d'estate",
"prompt": "Scrivi una canzone pop cinese su un litorale in una notte d'estate"
}
],
"pre_consumed_quota": 600000,
"billing_source": "wallet"
}
}
Attività segnaposto e song_id finale
generate-with-voice è un endpoint di generazione asincrona. Una risposta riuscita significa solo che l'attività di generazione è stata inviata, non che il brano sia pronto.
Significato dei campi chiave della risposta:
| Campo | Note |
|---|---|
client_request_id |
ID di tracciamento di questa richiesta di generazione. Una richiesta genera di norma 2 brani e i due risultati condividono lo stesso client_request_id. |
items[].placeholder_id |
ID segnaposto locale della piattaforma, di norma nella forma pending:{client_request_id}:{index}. Non è l'ID finale del brano. |
items[].client_request_index |
Indice del risultato nella stessa richiesta, di norma 0 e 1. |
items[].status |
Stato iniziale dopo l'invio, ad esempio submitted. Il successivo esito dipende dal record finale dell'attività. |
Attenzione: un placeholder_id che inizia con pending: non può essere usato come song_id finale né passato a /api/music/query o agli endpoint di download. Chiamare /api/music/query solo con valori pending:* può restituire un array vuoto [], perché il brano reale non è ancora pronto o l'attività segnaposto non è ancora stata sostituita dall'ID finale.
Esempio errato:
{
"song_ids": "pending:cu_1780480000_abcd1234:0"
}
Sequenza corretta:
- Chiama
POST /api/music/generate-with-voiceper inviare l'attività di generazione con voce. - Salva
client_request_id,items[].placeholder_ideitems[].client_request_indexdalla risposta. - Interroga in ciclo
GET /api/music/generate-with-voice/results?client_request_id=cu_xxx. - Quando
items[].song_idha un valore che non inizia conpending:, chiama/api/music/query,/api/music/download-fileo/api/music/download-all.
La versione attuale aggiunge un endpoint pubblico di consultazione:
GET /api/music/generate-with-voice/results?client_request_id=cu_xxx
Restituisce i risultati delle attività con lo stesso client_request_id per l'utente corrente, così il cliente può recuperare da sé il song_id finale. Nell'elenco restituito:
song_idè l'ID reale del brano;placeholder_idcompare solo finché l'attività è in stato di segnaposto;- un valore che inizia con
pending:non può essere usato con/api/music/queryné con gli endpoint di download.
Se hai salvato solo il client_request_id o un ID segnaposto pending:*, chiama prima questo endpoint dei risultati; se il song_id reale continua a non comparire, invia il client_request_id al supporto tecnico per la localizzazione.
Consultare i risultati della generazione con voce
Endpoint: GET /api/music/generate-with-voice/results
Fatturazione: gratuita.
Parametri query
| Parametro | Tipo | Obbligatorio | Note |
|---|---|---|---|
client_request_id |
string | Sì | ID di tracciamento restituito da generate-with-voice |
Esempio di richiesta
curl -X GET "https://www.suno-api.io/api/music/generate-with-voice/results?client_request_id=cu_1780480000_abcd1234" \
-H "Authorization: Bearer YOUR_API_KEY"
Esempio di risposta in elaborazione
{
"success": true,
"message": "",
"data": {
"client_request_id": "cu_1780480000_abcd1234",
"status": "processing",
"items": [
{
"song_id": "",
"placeholder_id": "pending:cu_1780480000_abcd1234:0",
"client_request_id": "cu_1780480000_abcd1234",
"client_request_index": 0,
"status": "processing",
"type": "voice_generate",
"title": "Brezza di mare in una notte d'estate"
}
]
}
}
Esempio di risposta completata
{
"success": true,
"message": "",
"data": {
"client_request_id": "cu_1780480000_abcd1234",
"status": "completed",
"items": [
{
"song_id": "song_abc123",
"client_request_id": "cu_1780480000_abcd1234",
"client_request_index": 0,
"status": "completed",
"type": "voice_generate",
"title": "Brezza di mare in una notte d'estate",
"audio_url": "https://...",
"image_url": "https://...",
"duration": 180.5
}
]
}
}
Significato dello status di primo livello
| Stato | Note |
|---|---|
not_found |
Per l'utente corrente non esiste ancora alcun record di attività con quel client_request_id |
processing |
Almeno un risultato non è completato; continua a interrogare |
completed |
Tutti i risultati sono completati; puoi consultare o scaricare con il song_id |
partial |
Alcuni completati e altri falliti; gestisci prima i song_id completati |
failed |
Tutti i risultati sono falliti; controlla items[].error_message |
8. Scaricare un singolo file
Endpoint: POST /api/music/download-file
Parametri del corpo
| Parametro | Tipo | Obbligatorio | Note |
|---|---|---|---|
song_id |
string | Sì | ID del brano |
kind |
string | Sì | Tipo di download: audio, cover, wav, video |
Esempio di richiesta
curl -X POST https://www.suno-api.io/api/music/download-file \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"song_id": "song_abc123",
"kind": "audio"
}' \
--output song.mp3
La risposta è un flusso di file; Content-Type e nome del file seguono ciò che restituisce il backend.
9. Scaricare le risorse del brano in un pacchetto
Endpoint: POST /api/music/download-all
Parametri del corpo
| Parametro | Tipo | Obbligatorio | Note |
|---|---|---|---|
song_id |
string | Sì | ID del brano |
Esempio di richiesta
curl -X POST https://www.suno-api.io/api/music/download-all \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"song_id": "song_abc123"
}' \
--output song.zip
Il pacchetto contiene di norma l'audio, la copertina e metadata.json; se un tipo di risorsa non è ancora stato generato, non entra nell'archivio.
Errori comuni
| message | Note |
|---|---|
voice audio is required |
All'invio della voce di origine non è stato fornito né voice_url né file_base64 |
invalid voice task id |
L'ID attività voce nel percorso non è valido |
voice validation is not ready |
Il testo di verifica non è ancora disponibile, quindi non si può inviare l'audio di verifica |
selected voice is not ready |
La voce scelta non può ancora generare brani (non pronta, eliminata o non appartenente all'account corrente) |
selected voice does not match voice task |
Il voice_id nella richiesta non coincide con l'attività |
voice task is required |
Manca voice_task_id durante la generazione di un brano con voce |
record not found |
L'attività / il brano non esiste, non appartiene all'account della chiave API corrente, oppure è già stato eliminato (interrogando questa attività dopo aver eliminato la voce si vede lo stesso) |
Gli errori di questo gruppo restituiscono sempre HTTP 200: giudica l'esito dal campo
successnel corpo (falseindica fallimento, con il motivo inmessage) e non basarti solo sul codice di stato HTTP. La semantica completa dell'eliminazione di una voce (se resta utilizzabile, se è recuperabile) è nella sezione 6.
Ottenere una chiave API
Dopo la registrazione puoi creare una chiave API nella console. Ogni generazione costa 0,6 ¥ e restituisce 2 brani, i download sono illimitati e non serve un numero di telefono.
Ottieni chiave API Torna alla panoramica