Vai al contenuto principale
Con l’applicazione dell’AI sempre più diffusa, vari programmi AI si sono gradualmente diffusi. L’AI è gradualmente entrata in ogni aspetto del lavoro e della vita delle persone. E i settori coinvolti dall’AI sono sempre più numerosi, dalla scrittura iniziale, alla medicina e all’istruzione, fino alla musica di oggi. Suno è una piattaforma professionale e di alta qualità per la creazione di canzoni e musica con AI, gli utenti devono solo inserire semplici prompt testuali per generare canzoni con voce in base allo stile del genere e ai testi. Questo generatore musicale AI è sviluppato da membri del team provenienti da note aziende tecnologiche come Meta, TikTok, Kensho ecc., con l’obiettivo di non richiedere alcuno strumento musicale, permettendo a tutti di creare musica meravigliosa. Di seguito è riportato l’avanzamento degli aggiornamenti del modello:
I limiti lyric e style nella tabella sopra sono i limiti massimi in modalità personalizzata (quando custom è true). La modalità di ispirazione non personalizzata (quando custom è false) compila solo prompt, il cui limite di lunghezza è di 500 caratteri (uguale per tutti i modelli).
Suno ora supporta chirp-v6, chirp-v6-wild e chirp-v6-mini. Si consiglia di utilizzare chirp-v6; i nomi dei vecchi modelli continuano a essere compatibili. Tuttavia, Suno ufficialmente non fornisce API, AceDataCloud fornisce un set di API di Suno, simulando l’integrazione ufficiale di Suno, per generare in modo comodo e rapido la musica desiderata.

Richiesta e utilizzo

Per utilizzare Suno Audios Generation API, innanzitutto vai alla console Ace Data Cloud per ottenere il tuo API Token, da conservare come riserva. Se non hai ancora effettuato l’accesso o la registrazione, verrai automaticamente reindirizzato alla pagina di accesso per invitarti a registrarti e ad accedere, al termine tornerai automaticamente alla pagina corrente. Un solo API Token può chiamare tutti i servizi della piattaforma, non è necessario richiederne uno separatamente per ogni servizio. Alla prima richiesta verrà assegnato un credito gratuito, che può essere utilizzato per una prova gratuita; quando il credito è insufficiente, puoi ricaricare il saldo universale nella console.
📘 Documentazione completa: Suno Audios Generation API →

Utilizzo di base

Che tipo di canzoni desideri, puoi inserire arbitrariamente un testo, per esempio se voglio generare una canzone sul Natale, posso inserire a song for Christmas, come mostrato nell’immagine:

Si può vedere che qui abbiamo impostato i Request Headers, inclusi:
  • accept: quale formato di risultato della risposta si desidera ricevere, qui viene compilato come application/json, ovvero il formato JSON.
  • authorization: la chiave per chiamare l’API, dopo la richiesta può essere selezionata direttamente dal menu a discesa.
Inoltre, è stato impostato il Request Body, incluso:
  • action: tipo di attività audio, il valore predefinito è generate. Supporta operazioni come generazione, continuazione, cover, concatenazione, separazione delle tracce, aggiunta di tracce audio, estrazione di tracce audio specificate, generazione di effetti sonori e regolazione della velocità, tutte richiamate in modo unificato tramite POST /suno/audios.
  • prompt: prompt della modalità ispirazione ufficiale di Suno (efficace quando custom è false), massimo 500 caratteri.
  • model: modello per questa attività di generazione musicale. La serie v6 include chirp-v6, chirp-v6-wild e chirp-v6-mini; i nomi dei vecchi modelli restano compatibili.
  • max_mode: modalità di generazione avanzata. generate viene abilitato solo quando sia custom sia max_mode sono true, al costo di 1.12 Credits; add_stem può essere abilitato direttamente, al costo di 1.344 Credits. Quando è disabilitato o omesso, i costi sono rispettivamente 0.56 e 0.672 Credits.
  • variety: intensità della varietà dei risultati generati, opzionale tra off, normal, high, extra, max. Utilizzato solo per generate e add_stem; se passato ad altre action restituisce 400.
  • lyric: contenuto dei testi della modalità personalizzata ufficiale di Suno. chirp-v3-5 e chirp-v4 hanno un massimo di 3000 caratteri; chirp-v4-5 e versioni successive (inclusi chirp-v5, chirp-v5-5) hanno un massimo di 5000 caratteri.
  • custom: se utilizzare la modalità personalizzata, il valore predefinito è: false.
  • instrumental: opzione di musica strumentale della modalità ispirazione ufficiale di Suno.
  • title: titolo musicale della modalità personalizzata ufficiale di Suno. chirp-v3-5, chirp-v4 hanno un massimo di 80 caratteri; chirp-v4-5 e versioni successive hanno un massimo di 100 caratteri.
  • style: stile musicale della modalità personalizzata ufficiale di Suno. chirp-v3-5 e chirp-v4 hanno un massimo di 200 caratteri; chirp-v4-5 e versioni successive (inclusi chirp-v5, chirp-v5-5) hanno un massimo di 1000 caratteri.
  • negative_tags: stili musicali o generi che si desidera escludere dai risultati generati nella modalità personalizzata (custom è true).
  • audio_weight: peso dell’influenza delle caratteristiche audio o vocali, intervallo 0-1, anche 0 è un valore valido. Può essere utilizzato per operazioni come generazione, continuazione, cover, aggiunta di tracce audio e coerenza vocale; in assenza di audio di riferimento o caratteristiche vocali, il modello potrebbe attenuare o ignorare questo valore.
  • audio_id: ID della musica di riferimento.
  • overpainting_start/overpainting_end: orari di inizio e fine per aggiungere voci a una musica strumentale esistente, in secondi.
  • underpainting_start/underpainting_end: orari di inizio e fine per aggiungere accompagnamento a un canto a cappella, in secondi.
  • persona_id: ID della canzone dell’artista.
  • continue_at: confine della continuazione, in secondi. Ad esempio, 213.5 indica che il frammento successivo viene generato a partire da 3 minuti e 33.5 secondi. lyric e style guidano solo il nuovo contenuto dopo il confine e non sostituiscono i testi o il canto precedenti al confine nell’audio sorgente.
  • style_influence: influenza dello stile nella modalità personalizzata, intervallo 0-1; maggiore è il valore, maggiore è solitamente l’aderenza allo stile selezionato; 0 viene trasmesso come valore valido.
  • replace_section_end: orario finale del frammento da sostituire.
  • replace_section_start: orario iniziale del frammento da sostituire.
  • vocal_gender: controlla la preferenza per voce femminile o maschile, voce femminile f, voce maschile m, valido per i modelli 4.5 e superiori; è un’impostazione di preferenza e non ne garantisce il rispetto rigoroso.
  • weirdness: grado di eccentricità nella modalità personalizzata, intervallo 0-1; maggiore è il valore, maggiore è solitamente la creatività e la sperimentazione; 0 viene trasmesso come valore valido.
  • duration: durata desiderata della canzone, in secondi, deve essere un numero intero, intervallo da 10 a 360. Questo parametro viene utilizzato per la generazione di canzoni in modalità personalizzata (custom è true). È un suggerimento di tendenza piuttosto che un vincolo rigido: il modello lo prenderà come riferimento, ma non ne garantisce il raggiungimento; la durata effettiva del prodotto finale è soggetta al campo duration nella risposta e di solito è inferiore al valore desiderato.

Ambito di applicazione dei parametri avanzati

La piattaforma convalida i tipi dei parametri e gli intervalli numerici, ma non rifiuta questi elementi di regolazione opzionali solo perché l’action è diversa; l’effetto specifico è determinato dall’operazione, dalla modalità e dal modello.
  • lyric_prompt: prompt per generare i testi, efficace se e solo se custom è true e lyric non viene passato.
  • callback_url: URL a cui restituire il risultato tramite callback.
  • async: opzionale, quando impostato su true l’interfaccia restituisce immediatamente task_id, senza necessità di fornire callback_url; successivamente il risultato viene ottenuto tramite polling attraverso la corrispondente interfaccia di query dell’attività.
Il codice generato è il seguente:

Puoi fare clic sul pulsante «Try» per testare direttamente l’API, attendere 1-2 minuti, e il risultato è il seguente:
Si può vedere che a questo punto abbiamo ottenuto il contenuto di due canzoni, inclusi titolo, immagine di anteprima, testo, audio, video e altri contenuti. La descrizione dei campi è la seguente:
  • success: indica se la generazione è riuscita; se riesce è true, altrimenti è false
  • data: è una lista che contiene le informazioni dettagliate delle canzoni generate.
    • state: stato di generazione della canzone, include principalmente quattro tipi, nello specifico:
      • succeeded: generazione riuscita
      • pending: in coda
      • running: in esecuzione
      • error: fallita
    • id: ID della canzone
    • title: titolo della canzone
    • image_url: immagine di copertina della canzone
    • lyric: testo della canzone
    • audio_url: indirizzo audio finale della canzone. La piattaforma restituirà prioritariamente l’indirizzo Ace Data Cloud CDN; se la persistenza fallisce, potrebbe restituire l’indirizzo del media originale, si prega di scaricarlo tempestivamente.
    • video_url: file video della canzone, aprendolo si tratta di un video mp4.
    • created_at: ora di creazione
    • model: modello utilizzato, generalmente l’ultimo modello v3
    • style: stile

Generazione personalizzata

Se si desidera generare un testo personalizzato, è possibile inserire il testo: A questo punto il campo lyric può ricevere contenuti simili ai seguenti:
Nota: nel testo qui \n è un carattere di nuova riga. Se non sai come generare il testo, puoi utilizzare l’API di generazione dei testi fornita da AceDataCloud per generare il testo tramite prompt; l’API è Suno Lyrics Generation API.
Successivamente, per generare una canzone personalizzata in base al testo, al titolo e allo stile, è possibile specificare i seguenti contenuti:
  • lyric: testo del brano
  • custom: impostare su true, rappresenta la generazione personalizzata; questo parametro è false per impostazione predefinita, rappresenta la generazione tramite prompt.
  • title: titolo della canzone.
  • style: stile della canzone, facoltativo.
L’esempio di compilazione è il seguente:

Dopo aver compilato, il codice viene generato automaticamente come segue:

Il codice corrispondente:
Il test è consentito e l’effetto generato è simile.

Funzionalità di generazione personalizzata dello stile del cantante

Se si desidera utilizzare lo stile di un cantante per generare una canzone, innanzitutto generare una canzone tramite l’utilizzo di base sopra descritto, infine è necessario impostare questa canzone come stile del cantante, quindi è necessario accedere a Suno Persona API per generare un parametro id dello stile del cantante persona_id in base all’ID della musica generata ufficialmente audio_id; i parametri specifici sono mostrati nella figura seguente:

Dopo aver completato la compilazione, il codice viene generato automaticamente come segue:

Il codice Python corrispondente:
Facendo clic su Esegui, si può vedere che si otterrà un risultato come segue:
Utilizziamo rispettivamente l’audio_id e il persona_id sopra indicati, ovvero 97efc9f4-0e8d-4b3e-88df-14568fa1b11f e e0d7319e-aa2a-44cb-b00a-916218d7cb0b, come dati di esempio per questa volta. Quindi è possibile impostare il parametro action su artist_consistency (se si utilizza il nuovo stile del cantante Persona-v2-vox, action deve essere impostato su artist_consistency_vox) e inserire l’ID della canzone da continuare a generare e l’ID dello stile del cantante; un esempio di compilazione è il seguente:

Dopo aver completato la compilazione, il codice viene generato automaticamente come segue:

Il codice Python corrispondente:
Facendo clic su Esegui, si può vedere che si otterrà un risultato come segue:
Si può vedere che il contenuto del risultato è coerente con quello sopra, realizzando così la funzionalità di generazione di canzoni utilizzando lo stile del cantante.

Funzionalità di continuazione della generazione

Se si desidera continuare a generare una canzone Suno già generata, è possibile impostare il parametro action su extend e inserire l’ID della canzone da continuare a generare. L’ottenimento dell’ID della canzone avviene tramite l’utilizzo di base; da quanto sopra si può sapere che in questo momento l’ID della canzone è:
Nota: qui l’id nel testo della canzone è l’ID della canzone dopo la generazione. Se non sai come generare una canzone, puoi fare riferimento all’utilizzo di base sopra descritto per generare una canzone.
Se si desidera continuare a generare una canzone caricata autonomamente, è possibile impostare il parametro action su upload_extend e inserire l’ID della canzone caricata personalizzata da continuare a generare. L’ottenimento dell’ID della canzone avviene tramite Suno Upload Generation API, come mostrato nella figura seguente:

Successivamente è necessario compilare il testo del segmento di continuazione, ed è possibile specificare lo stile:
  • lyric: utilizzato solo per guidare il testo del segmento appena generato dopo continue_at, non sostituirà il testo prima di questo punto temporale nell’audio sorgente.
  • custom: impostare su true rappresenta la generazione personalizzata; il valore predefinito di questo parametro è false, che rappresenta la generazione tramite prompt.
  • style: lo stile della canzone del segmento di continuazione, facoltativo.
  • continue_at: il confine della continuazione, in secondi. Ad esempio, 213.5 indica la generazione del segmento successivo a partire da 3 minuti e 33,5 secondi.
extend viene utilizzato per continuare a creare dopo una canzone esistente, non per cambiare il testo dell’intera canzone. Se si desidera utilizzare un nuovo testo dall’inizio per l’intera canzone, utilizzare generate per rigenerarla; se si desidera reinterpretare una canzone esistente come riferimento, è possibile utilizzare cover. Quando si passa un intero nuovo testo, il testo originale prima di continue_at non verrà comunque sostituito.
Un esempio di compilazione è il seguente:

Dopo aver completato la compilazione, il codice viene generato automaticamente come segue:

Quanto segue conserva uno snapshot di una chiamata storica reale, in cui continue_at è 2 secondi; pertanto, solo i primi 2 secondi appartengono al contenuto originale prima del confine di continuazione. Quando si continua effettivamente vicino alla fine del brano, questo valore deve essere impostato sui secondi in cui si desidera iniziare la continuazione e in lyric deve essere fornita solo la nuova sezione da cantare dopo il confine. Il codice Python corrispondente:
Facendo clic su esegui, si può notare che verrà ottenuto un risultato, come segue:
Si può osservare che lyric nel risultato restituisce il testo utilizzato per questa attività di continuazione. Questo campo non è una trascrizione parola per parola dell’audio finale completo; per extend, l’audio sorgente precedente a continue_at utilizza ancora il testo originale, mentre il nuovo testo viene usato solo per guidare il segmento di continuazione.

Ottenere il brano completo

Il risultato di extend del modello corrente di solito include già l’audio sorgente prima di continue_at e il nuovo contenuto dopo il confine; verificare prima, in base alla durata effettiva e al contenuto dell’audio restituito, se si tratta già del brano completo. Se viene restituito un segmento di continuazione indipendente, oppure se è necessario unire esplicitamente la cronologia di più continuazioni in un brano, utilizzare quindi la funzione di concatenazione:
  • action: il contenuto è concat.
  • audio_id: l’ID dell’ultimo segmento di continuazione.
Ad esempio, se l’ID del brano esteso è: 0a1e1b10-c36a-41c9-9bfb-b26d9d25db98, allora i parametri possono essere impostati come segue:
Gli altri parametri rimangono invariati; ciò che viene restituito è un brano completo, ovvero il risultato della concatenazione di tutti i segmenti del brano, ma il risultato contiene una sola canzone, come segue:

Cover musicale

Dopo aver continuato a generare una canzone sulla base della canzone originale, lo stile della canzone restituita potrebbe non essere molto adatto. Se si desidera eseguire un cover della canzone generata in precedenza (sono supportate anche le musiche caricate personalizzate), è necessario utilizzare il metodo di cover musicale, con cui è possibile specificare i seguenti contenuti:
  • action: il contenuto è cover; quando si esegue un’operazione di cover su musica caricata personalizzata, il contenuto deve essere specificato come: upload_cover.
  • audio_id: l’ID della canzone generata in precedenza.
Ad esempio, se l’ID della canzone generata in precedenza è: 0a1e1b10-c36a-41c9-9bfb-b26d9d25db98, allora è possibile impostare i parametri come segue:
Gli altri parametri rimangono invariati; ciò che viene restituito è una canzone dopo il cover, ovvero il risultato del cover della canzone generata in precedenza, con un esempio come segue:
Il risultato generato è simile a quello sopra, completando così il processo di generazione del cover della canzone generata in precedenza.

Sostituzione di segmenti

Quando, dopo aver generato una canzone, è necessaria una creazione secondaria con un’operazione separata di sostituzione di un segmento della canzone, è possibile eseguire un’operazione di sostituzione su un determinato segmento della canzone.
⚠️ Nota: replace_section_result_mode è impostato per impostazione predefinita su full_song: il sistema concatena rispettivamente 2 nuovi candidati generati e restituisce 2 canzoni complete. Se sono necessari solo i candidati dei segmenti sostituiti non ancora concatenati, impostarlo esplicitamente su candidates, quindi selezionare un candidato e chiamare Concatenazione musicale.
I parametri sono descritti come segue:
  • action: il contenuto è replace_section.
  • audio_id: l’ID della canzone originale (la canzone sorgente da sostituire).
  • model: modello di generazione della canzone.
  • lyric: il testo completo dopo la sostituzione (incluso il segmento sostituito e il suo contesto, coerente con il contenuto in prompt).
  • prompt: il nuovo testo di quella sezione da sostituire.
  • style: lo stile della canzone, facoltativo.
  • replace_section_start: il momento di inizio del segmento sostituito nella canzone originale (secondi).
  • replace_section_end: il momento di fine del segmento sostituito nella canzone originale (secondi).
  • replace_section_result_mode: modalità di restituzione, il valore predefinito è full_song. full_song concatena rispettivamente 2 candidati e restituisce 2 canzoni complete; candidates restituisce 2 segmenti candidati non ancora concatenati.

Passaggio uno: avviare l’attività di sostituzione del segmento

Ad esempio, se l’ID della canzone generata in precedenza è: 18db7ed0-2b8a-41db-91c1-b0781dcca0d4 (durata 94,12 secondi), e si desidera sostituire il ritornello dal secondo 30 al secondo 60 con un nuovo testo, allora è possibile impostare i parametri come segue:
Per impostazione predefinita, vengono restituite 2 canzoni complete ottenute unendo separatamente due candidati. Se replace_section_result_mode viene impostato su candidates, vengono restituiti 2 frammenti di sostituzione non ancora uniti, con una struttura coerente con l’esempio seguente:
Nella modalità candidates, le durate delle due tracce audio restituite (45,16 secondi e 33,8 secondi) sono molto più brevi della canzone originale (94,12 secondi); sono frammenti di sostituzione contenenti una piccola quantità di contesto e non sono la canzone completa. Puoi selezionare il candidato desiderato e continuare a unirlo manualmente. La modalità predefinita full_song, invece, completerà due unioni e restituirà direttamente 2 canzoni complete.

Restituire direttamente canzoni complete

Se desideri ottenere direttamente canzoni complete, nel primo passaggio puoi impostare replace_section_result_mode su full_song. L’interfaccia unirà separatamente i due candidati e restituirà 2 canzoni complete; in questo caso non è necessario chiamare nuovamente concat.

Passaggio due: unire il frammento di sostituzione alla canzone originale

Per il frammento selezionato sopra (ad esempio 364f9d8b-ca25-463b-9a5e-d0b7139e2d6a), avvia un’attività concat secondo il metodo descritto nella sezione Unione musicale:
Viene restituita l’intera canzone completa già unita, come nell’esempio seguente:
A questo punto, duration è tornato alla lunghezza completa della canzone (105,28 secondi, approssimativamente uguale alla lunghezza della canzone originale), e ciò a cui punta audio_url è l’intera canzone dopo il completamento della sostituzione. Questo completa il processo di creazione secondaria “generazione → sostituzione del frammento → unione dell’intera canzone”.

Separazione voce-musica

Quando, dopo aver generato una canzone, è necessario effettuare una creazione secondaria con operazioni separate su accompagnamento e voce, è possibile separare l’accompagnamento musicale puro e la voce a cappella. È quindi possibile specificare i seguenti contenuti:
  • action: il contenuto è stems.
  • audio_id: l’ID della canzone generata in precedenza.
Ad esempio, se l’ID della canzone generata in precedenza è: ec13e502-d043-4eb2-92ee-e900c6da69d1, allora è possibile impostare i parametri come segue:
Tramite i parametri sopra indicati è possibile ottenere il risultato della separazione voce-musica, come segue:
Il risultato generato è simile a quello sopra, completando così il processo di separazione voce-musica della canzone generata in precedenza.

Separazione voce-musica di tutte le tracce

Quando, dopo aver generato una canzone, è necessario eseguire l’operazione di separazione voce-musica di tutte le tracce, è possibile specificare i seguenti contenuti:
  • action: il contenuto è all_stems.
  • audio_id: l’ID della canzone generata in precedenza.
Ad esempio, se l’ID della canzone generata in precedenza è: bdf23a5a-59f5-4103-b452-054a824a7f9f, allora è possibile impostare i parametri come segue:
Tramite i parametri sopra indicati è possibile ottenere il risultato della separazione voce-musica di tutte le tracce, come segue:
Il risultato generato è simile a quello sopra, completando così il processo di separazione delle voci e della musica della canzone generata in precedenza.

Aggiungere una traccia audio

add_stem genera una traccia dello strumento o del suono di destinazione per l’audio specificato, tramite chiamata POST /suno/audios.
  • Obbligatori: action, audio_id, stem_type.
  • Facoltativi: model, prompt, title, style, negative_tags, weirdness, style_influence, audio_weight, max_mode, variety.
  • Fatturazione: modalità normale 0.672 Credits; 1.344 Credits quando max_mode è true.
Risposta dello stato finale:

Estrarre una traccia audio

extract_stem estrae la traccia audio di destinazione dall’audio specificato, restituendo contemporaneamente la versione complementare dopo la rimozione di tale traccia, tramite chiamata POST /suno/audios.
  • Obbligatori: action, audio_id, stem_type.
  • Facoltativo: audio_format, l’attuale contratto pubblico a doppio canale supporta solo mp3.
  • Fatturazione: 1.12 Credits.
Nella risposta dello stato finale, data mantiene un elenco audio piatto, mentre stem_sets indica la relazione tra la traccia audio di destinazione e la traccia audio complementare:

Generare effetti sonori

sounds genera effetti sonori una tantum o ripetibili in base a una descrizione testuale, tramite chiamata POST /suno/audios.
  • Obbligatori: action, sound, sound_type.
  • Facoltativi: model, bpm, key, audio_format; audio_format attualmente supporta solo mp3.
  • sound_type: one-shot oppure loop.
  • Fatturazione: 0.112 Credits.

Regolare la velocità dell’audio

adjust_speed regola la velocità di riproduzione dell’audio specificato, tramite la chiamata POST /suno/audios.
  • Obbligatori: action, audio_id, speed_multiplier, title.
  • Facoltativo: keep_pitch.
  • speed_multiplier: intervallo 0.25–4.
  • Costo: 0.28 Credits.
La durata dell’audio sorgente è di 9.8 secondi, il risultato a velocità 1.1x è di 8.909090909 secondi:
Il modello di generazione presenta casualità. L’interfaccia garantisce la coerenza della semantica dei parametri, dello stato dell’attività e della struttura della risposta, ma non garantisce che richieste diverse generino forme d’onda completamente identiche.

Parametri avanzati della generazione personalizzata

L’ufficiale consente di utilizzare nella modalità personalizzata i parametri avanzati weirdness==>Weirdness, style_influence==>Style Influence, audio_weight==>Audio Influence per la generazione, corrispondenti ai seguenti esempi ufficiali:

Gli intervalli dei parametri avanzati sono tutti compresi tra 0 e 1, i parametri specifici sono mostrati nella figura seguente:

Dopo aver completato la compilazione, il codice viene generato automaticamente come segue:

Il corrispondente codice Python:
Facendo clic su esegui, si può scoprire che si otterrà un risultato, come segue:
In questo modo vengono utilizzati i parametri avanzati per generare brani personalizzati, e il risultato è simile a quello sopra.

Controllare la durata del brano

Per impostazione predefinita, la durata dei brani generati è determinata dal modello stesso, solitamente tra 30 secondi e 4 minuti. Se è necessario un prodotto finito più lungo o più corto, è possibile specificare la durata desiderata tramite il parametro duration, l’unità è il secondo e il valore è un intero compreso tra 10 e 360. Questo parametro viene utilizzato per la generazione di brani in modalità personalizzata (custom è true). Va sottolineato che duration è un suggerimento di tendenza, non un vincolo rigido: il modello farà riferimento a questo valore durante la creazione, ma non ne garantisce il raggiungimento; nei test la durata effettiva è solitamente significativamente inferiore al valore previsto e anche le durate dei due brani restituiti dalla stessa richiesta possono differire di più volte. Anche per richieste completamente identiche, le durate ottenute da invii multipli possono presentare differenze notevoli. Pertanto, non utilizzarlo come controllo preciso della durata; se è necessaria una durata fissa a livello di business, ritagliare autonomamente il risultato finale o riprovare dopo averlo ottenuto. Il corrispondente codice Python:
È importante notare che duration nella richiesta è la durata prevista, mentre il campo duration di ciascuna canzone nella data della risposta è la durata effettiva di quella canzone. I due hanno lo stesso nome ma significati diversi; non è garantito che la durata effettiva sia uguale al valore previsto. La lunghezza del testo è uno dei principali fattori che influenzano la durata del prodotto finale; se è necessario un prodotto finale più lungo, si consiglia di fornire contemporaneamente un testo più completo. L’interfaccia verificherà che duration sia un numero intero compreso tra 10 e 360; rimane comunque solo un obiettivo di generazione e non una garanzia sulla durata del prodotto finale.

Funzionalità Add Insterumental

Nell’agosto 2025 Suno ha introdotto la funzionalità Add Insterumental. Innanzitutto è necessario caricare una canzone a cappella senza accompagnamento, affinché Suno possa aggiungere la musica. Per prima cosa è possibile caricare una canzone a cappella senza accompagnamento tramite Suno Upload API; l’operazione corrispondente è mostrata nella figura seguente:

Successivamente è necessario annotare l’audio_id dopo il caricamento; il risultato specifico è mostrato nella figura seguente:

Infine si ottiene un audio_id: 92254cab-3372-4d9e-bce9-cdcfdbc39070, quindi è necessario compilare anche i seguenti parametri:
  • action: il contenuto è underpainting.
  • underpainting_start: l’ora di inizio per aggiungere l’accompagnamento alla canzone caricata; il valore predefinito è 0.
  • underpainting_end: l’ora di fine per aggiungere l’accompagnamento alla canzone caricata; deve essere inferiore alla durata totale della canzone.
  • audio_id: l’ID della canzone a cappella senza accompagnamento caricata.
  • style: lo stile dell’accompagnamento; è meglio non usare testo, dato che si tratta di un accompagnamento.
Dopo aver completato la compilazione, il codice viene generato automaticamente come segue:

Il codice Python corrispondente:
Facendo clic su esegui, si può notare che si ottiene un risultato come segue:
In questo modo si completa l’operazione di aggiunta dell’accompagnamento musicale alla canzone a cappella senza accompagnamento caricata; il risultato è simile a quello sopra.

Funzionalità Add Vocals

Nell’agosto 2025 Suno ha introdotto la funzionalità Add Vocals. Innanzitutto è necessario caricare un brano puramente strumentale, affinché Suno possa scrivere il testo e generare il canto vocale. Per prima cosa è possibile caricare una canzone a cappella senza accompagnamento tramite Suno Upload API; l’operazione corrispondente è mostrata nella figura seguente:

Successivamente è necessario annotare l’audio_id dopo il caricamento; il risultato specifico è mostrato nella figura seguente:

Infine si ottiene un audio_id: 92254cab-3372-4d9e-bce9-cdcfdbc39070, quindi è necessario compilare anche i seguenti parametri:
  • action: il contenuto è overpainting.
  • overpainting_start: l’ora di inizio per aggiungere la voce alla canzone caricata; il valore predefinito è 0.
  • overpainting_end: l’ora di fine per aggiungere la voce alla canzone caricata; deve essere inferiore alla durata totale della canzone.
  • audio_id: l’ID della canzone a cappella senza accompagnamento caricata.
  • custom: in questa modalità è necessario usare la modalità personalizzata per inserire il testo.
  • lyric: il testo inserito in modalità personalizzata.
  • style: lo stile dell’accompagnamento.
Dopo aver completato la compilazione, il codice viene generato automaticamente come segue:

Il codice Python corrispondente:
Fai clic su esegui, puoi vedere che otterrai un risultato, come segue:
In questo modo è stata completata l’operazione di aggiunta della voce a una canzone a cappella caricata senza accompagnamento, e il risultato è simile a quello sopra.

Funzionalità Remaster

Nel dicembre 2025 suno ha introdotto una nuova funzionalità Remaster, questa funzione può rigenerare le canzoni e non può essere utilizzata tra account diversi, quindi dobbiamo anche compilare i seguenti parametri:
  • action:il contenuto è remaster。
  • audio_id:l’ID della canzone che deve essere rigenerata。
  • model:supporta solo v4.5+、v5。
  • variation_category:supportato solo nelle versioni v5 e successive, e ha solo 3 valori: high normal subtle。
Dopo aver compilato, il codice viene generato automaticamente come segue:

Il codice Python corrispondente:
Fai clic su esegui, puoi vedere che otterrai un risultato, come segue:
In questo modo è stata completata l’operazione di rigenerazione di una canzone già generata, e il risultato è simile a quello sopra.

Funzionalità di generazione mashup

Nel dicembre 2025 suno ha introdotto una nuova funzionalità Mashup, questa funzione può generare una canzone in base a due canzoni di riferimento, quindi dobbiamo anche compilare i seguenti parametri:
  • action:il contenuto è mashup。
  • mashup_audio_ids:gli ID delle due canzoni di riferimento。 Dopo aver completato la compilazione, il codice viene generato automaticamente come segue:

Il codice Python corrispondente:
Facendo clic su Esegui, si può notare che si otterrà un risultato, come segue:
In questo modo si completa l’operazione di generazione di un mix basato su canzoni di riferimento, e il risultato è simile a quello precedente.

Samples Generazione di canzoni tramite campionamento

Qui, samples indica il campionamento di un intervallo di un singolo audio: si selezionano l’ora di inizio e di fine da un audio esistente e si utilizza questo frammento come materiale di campionamento per la creazione. È diverso dalla funzione di creazione ispirata Inspo che utilizza da 1 a 4 segmenti audio di riferimento completi descritta di seguito. È necessario compilare i seguenti parametri:
  • action: il contenuto è samples.
  • samples_start: ora di inizio del campionamento.
  • samples_end: ora di fine del campionamento.
  • audio_id: l’ID della canzone di riferimento da campionare.
Dopo aver completato la compilazione, il codice viene generato automaticamente come segue:

Il codice Python corrispondente:
Facendo clic su Esegui, si può notare che si otterrà un risultato, come segue:
In questo modo viene completata l’operazione di generazione della canzone tramite campionamento e il risultato è simile a quello sopra.

Funzionalità di creazione ispirata Inspo

La funzionalità di creazione ispirata Inspo può generare nuova musica sulla base di 1-4 tracce audio di riferimento complete e supporta il trascinamento o il caricamento di audio come fonte d’ispirazione. L’API utilizza l’azione inspo esistente: il client fornisce URL audio pubblicamente accessibili e il servizio completa automaticamente la preparazione degli audio di riferimento e la creazione, senza che il client debba leggere separatamente testi, stile o durata per poi assemblare la richiesta. È diversa dal campionamento di intervalli descritto sopra, nonché dal Cover che riproduce lo stile del brano originale. Durante l’utilizzo, è necessario compilare i seguenti parametri:
  • action: il contenuto è inspo.
  • audio_urls: elenco di URL degli audio di riferimento; è necessario fornire da 1 a 4 indirizzi audio pubblicamente accessibili.
  • model: il modello utilizzato; è consigliato chirp-v6.
  • prompt: testo o prompt creativo (facoltativo).
Nota: gli audio di riferimento devono essere file audio pubblicamente accessibili. Se un audio di riferimento corrisponde esattamente a una registrazione nota nella libreria musicale della piattaforma, Suno potrebbe rifiutare la generazione a causa della verifica del copyright; si consiglia di utilizzare audio propri o generati da Suno come fonte d’ispirazione.
Il codice Python corrispondente:
Di seguito viene conservata una copia storica verificata della risposta; la copia utilizza il chirp-v5 dell’epoca, mentre l’esempio di richiesta attuale raccomanda chirp-v6; la struttura restituita è identica:
In questo modo si completa l’operazione di creazione dell’ispirazione, e il risultato restituito è coerente con la normale generazione di brani.

Callback asincrono

Poiché Suno impiega un tempo relativamente lungo per generare musica, circa 1-2 minuti, se l’API non risponde per molto tempo, la richiesta HTTP manterrà continuamente la connessione, causando un consumo aggiuntivo di risorse di sistema, quindi questa API fornisce anche il supporto per callback asincroni. Il flusso complessivo è: quando il client avvia una richiesta, specifica inoltre un campo callback_url; dopo che il client ha avviato una richiesta API, l’API restituirà immediatamente un risultato, contenente un campo task_id, che rappresenta l’ID dell’attività corrente. Quando l’attività è completata, il risultato della generazione musicale verrà inviato tramite POST JSON al callback_url specificato dal client, includendo anch’esso il campo task_id, in modo che il risultato dell’attività possa essere associato tramite l’ID. Di seguito, comprendiamo nello specifico come operare attraverso un esempio. Innanzitutto, il callback Webhook è un servizio in grado di ricevere richieste HTTP; gli sviluppatori dovrebbero sostituirlo con l’URL del server HTTP da loro configurato. Qui, per comodità di dimostrazione, viene utilizzato un sito di esempio Webhook pubblico https://webhook.site/; aprendo questo sito è possibile ottenere un URL Webhook, come mostrato nell’immagine: Copia questo URL, che potrà essere usato come Webhook; l’esempio qui è https://webhook.site/03e60575-3d96-4132-b681-b713d78116e2。 Successivamente, possiamo impostare il campo callback_url sull’URL Webhook sopra indicato e contemporaneamente inserire prompt, come mostrato nell’immagine: Facendo clic su Esegui, si può notare che si ottiene immediatamente un risultato, come segue:
Dopo aver atteso un momento, possiamo osservare il risultato della generazione del brano su https://webhook.site/03e60575-3d96-4132-b681-b713d78116e2, come mostrato nell’immagine: Il contenuto è il seguente:
Si può vedere che nel risultato è presente un campo task_id, mentre gli altri campi sono simili a quelli sopra riportati; tramite questo campo è possibile realizzare l’associazione dell’attività. Naturalmente, possiamo anche ottenere il risultato tramite chiamata in streaming; ci basta impostare il valore di accept nell’intestazione della richiesta su application/x-ndjson. Di seguito viene utilizzato un input di esempio come dimostrazione:

Durante l’attesa possiamo ottenere il seguente output:
La risposta in streaming invierà in sequenza lo stato di elaborazione e il risultato finale per lo stesso task_id; sopra vengono mantenute solo la prima e le due risposte reali dello stato finale, omettendo gli aggiornamenti intermedi ripetuti.

Gestione degli errori

Se si verifica un errore, riceverete un messaggio di errore simile al seguente:
Di seguito è riportato l’elenco di HTTP Status Code, error.code, error.message:
Nota: le quote e i messaggi di errore per diversi account upstream possono variare. In genere, chirp-v3-5/chirp-v4 hanno un limite style inferiore (200), mentre chirp-v4-5 e versioni successive supportano generalmente fino a 1000; quando viene utilizzato un upstream precedente, possono apparire messaggi di compatibilità come Tags too long. o style must be less than or equal 120. | Codice di stato | error.code | error.message | | --------------- | ------------- | --------------------------------------------------------------- | | 400 | bad_request | L'id della canzone non esiste o è stata rimossa. | | 400 | bad_request | Prompt troppo lungo. | | 400 | bad_request | Tag troppo lunghi. | | 400 | bad_request | L'audio caricato corrisponde a un'opera d'arte esistente. | | 400 | bad_request | instrumental deve essere un booleano | | 400 | bad_request | Titolo troppo lungo. | | 400 | bad_request | Argomento troppo lungo. | | 400 | bad_request | style deve essere minore o uguale a 120 | | 400 | bad_request | custom deve essere un booleano | | 400 | bad_request | audio_id è richiesto quando si estende l'audio | | 400 | bad_request | continue_at è richiesto quando si estende l'audio | | 400 | bad_request | continue_at deve essere un numero maggiore di 0 | | 400 | bad_request | lyric è richiesto quando si estende l'audio e instrumental è falso | | 400 | bad_request | prompt è richiesto quando si genera l'audio | | 400 | bad_request | lyric è richiesto quando si genera audio personalizzato | | 403 | forbidden | Prompt probabilmente malformato | | 403 | forbidden | Prompt probabilmente protetto da copyright | | 403 | forbidden | Il prompt conteneva materiale inappropriato | | 403 | forbidden | Descrizione della canzone segnalata per la moderazione | | 403 | forbidden | La descrizione della canzone conteneva il nome di un artista | | 403 | forbidden | I tag contenevano il nome di un artista | | 403 | forbidden | I testi contenevano materiale protetto da copyright | | 403 | forbidden | La descrizione della canzone conteneva un tag del produttore | | 403 | forbidden | Errore generico di openAI | | 403 | forbidden | Prompt segnalato per la moderazione | | 500 | api_error | Impossibile generare i testi dalla descrizione della canzone | | 500 | api_error | processo non riuscito con errore sconosciuto | | 500 | api_error | nessun worker disponibile nel sistema | | 500 | api_error | servizio in manutenzione, generazione in pausa | | 504 | timeout | timeout durante l'attesa della generazione dell'audio |