Instrumente muzică
Generează piese muzicale complete. Toate joburile de muzică sunt asincrone: apelezi generate_music, apoi interoghezi get_status până când status este completed (sau failed).
Pentru efecte sonore, un fundal instrumental de lungime exactă sau o coloană sonoră scrisă pe un video pe care îl ai deja, folosește generate_sound de mai jos.
#Cum alegi: simplu vs avansat
Instrumentul generate_music are două moduri exclusive. Agentul trebuie să aleagă unul în funcție de ce cere utilizatorul.
| Mod | Când îl folosești | Cum decide API-ul |
|---|---|---|
| Simplu | Idee rapidă într-un singur text: gen, atmosferă, instrumente. Fără titlu fix, tag-uri de stil, versuri sau gen vocal. | Nu seta title sau style (lasă-le goale). Oferă un prompt nevid (max 400 caractere). |
| Avansat (custom) | Utilizatorul vrea titlu, stil (gen/tag-uri), gen vocal (sau random), și fie descrierea cântecului fie versuri (nu ambele), opțional negative_tags (ce să evite). | Setează ambele title și style ca șiruri nevide. vocal_gender este obligatoriu (m, f sau random). Oferă exact unul dintre song_description sau lyrics când nu e instrumental (vezi mai jos). |
Reguli:
- Dacă ambele
titleșistylesunt nevide → mod avansat (custom).prompteste ignorat pentru conținut; foloseștesong_description/lyrics. - Dacă este setat doar
titlesau doarstyle→ invalid; fie ambele, fie niciunul. - Dacă nici titlu, nici stil nu sunt setate → mod simplu;
prompteste obligatoriu.
Mod avansat — descriere vs versuri (cu voce):
- Alege unul: setează
song_descriptionsaulyrics, niciodată ambele. Trimiterea ambelor este respinsă (nu se concatenează). - Varianta descriere: temă/atmosferă/instrucțiuni pentru model; lasă
lyricsgol. - Varianta versuri: versuri complete de la utilizator; lasă
song_descriptiongol.
Mod avansat — instrumental: setează instrumental: true și oferă doar song_description; nu trimite lyrics.
Folosește get_models cu model_type=music pentru ID-uri de modele și costuri în credite.
#Modele
Generarea de muzică este realizată cu Suno. Valori model acceptate (simplu și avansat): V6, V6_WILD, V6_MINI (afișate în aplicație ca V6, V6 Wild și V6 Mini). Toate trei costă la fel, deci alegerea privește caracterul, nu prețul: V6 are cele mai multe detalii și vocile cele mai naturale, V6_WILD merge mai departe pentru un rezultat mai curajos, V6_MINI este varianta rapidă și ușoară.
Dacă model lipsește, se aplică valoarea implicită V6. Toate versiunile anterioare (V4, V4_5, V4_5PLUS, V4_5ALL, V5, V5_5) au fost retrase de furnizor. O cerere care numește una dintre ele este servită de V6 la același preț, nu respinsă, deci o integrare existentă continuă să funcționeze, dar acele valori nu mai fac parte din setul acceptat.
#generate_music
#Parametri mod simplu
| Parametru | Tip | Obligatoriu | Descriere |
|---|---|---|---|
prompt | string | Da | O singură descriere a muzicii; max 400 caractere. |
instrumental | boolean | Nu | Dacă true, doar instrumental (fără voci). Implicit: false. |
model | string | Nu | V6 (implicit), V6_WILD sau V6_MINI. |
Nu trimite title, style sau vocal_gender în modul simplu (lasă-le goale).
Exemplu — simplu, cu voci:
{
"prompt": "Melodie pop veselă despre vară",
"instrumental": false,
"model": "V6"
}
Exemplu — simplu, instrumental:
{
"prompt": "Muzică orchestrală epică de fundal",
"instrumental": true
}
#Parametri mod avansat
| Parametru | Tip | Obligatoriu | Descriere |
|---|---|---|---|
title | string | Da | Titlul cântecului; max 80 caractere. |
style | string | Da | Stil / gen / tag-uri; max 1000 caractere. |
vocal_gender | string | Da | m, f sau random (aliasuri: male/female; random = provider alege). Pentru instrumental, tot obligatoriu în API dar nu se aplică vocii. |
song_description | string | XOR cu lyrics | Despre ce este cântecul (temă, atmosferă). Max 5000 caractere. Omite dacă folosești lyrics. |
lyrics | string | XOR cu song_description | Versuri complete dacă utilizatorul le-a dat. Max 5000 caractere. Omite dacă folosești song_description. |
instrumental | boolean | Nu | Implicit false. Dacă true, cere doar song_description. |
negative_tags | string | Nu | Stiluri sau elemente de evitat; max 200 caractere. |
style_weight | number | Nu | Implicit 0.65 (ca în aplicația web). |
weirdness_constraint | number | Nu | Implicit 0.65. |
audio_weight | number | Nu | Implicit 0.65. |
model | string | Nu | Același set ca la modul simplu. |
Cerință de conținut (avansat, cu voce): exact unul dintre song_description sau lyrics trebuie să fie nevid (celălalt omis sau gol).
Exemplu — avansat doar cu descriere:
{
"title": "Neon Midnight",
"style": "synthwave, anii 80, bas de condus, nostalgic",
"vocal_gender": "random",
"song_description": "Un cântec despre condus prin oraș noaptea cu reflexii neon",
"model": "V6"
}
Exemplu — avansat doar cu versuri:
{
"title": "Morning Light",
"style": "folk acustic, chitară blândă, cald",
"vocal_gender": "f",
"lyrics": "[Strofa 1] ... [Refren] ..."
}
Răspuns: Include generation_id, status (ex. pending), adesea estimated_time_seconds. Interoghează cu get_status.
<a id="generate_sound"></a>
#generate_sound
Efecte sonore și muzică, fie pornind de la o frază, fie scrise pe un clip pe care îl ai deja. Nu e pentru cântece cu voce: pentru asta există generate_music. Toate modelele de aici se facturează pe secundă, iar generările nu pot fi rambursate, așa că cere o cotație cu estimate înainte de a rula.
Alege modelul după ce ai la dispoziție:
| Model | Intrare | Rezultat |
|---|---|---|
sonilo-text-to-sfx | O frază | Un efect sonor descris. Între 1 și 180 de secunde, implicit 5. |
sonilo-text-to-music | O frază | O piesă instrumentală de lungimea aleasă, niciodată cu voce. Între 5 și 360 de secunde, implicit 60. Preferă-l în locul Suno când piesa trebuie să încapă într-un interval deja stabilit. |
sonilo-video-to-sfx | Un video | Efecte potrivite cu imaginea, ca pistă audio separată. |
sonilo-video-to-music | Un video | O coloană sonoră scrisă pe montaj, ca pistă audio separată. |
sonilo-video-to-sound | Un video | Efecte și muzică mixate împreună, ca pistă audio separată. |
sonilo-video-to-video-sfx | Un video | La fel ca sonilo-video-to-sfx, dar întoarce clipul cu sunetul inclus. |
sonilo-video-to-video-music | Un video | La fel ca sonilo-video-to-music, întors ca clip. |
sonilo-video-to-video-sound | Un video | La fel ca sonilo-video-to-sound, întors ca clip. |
Alege un id -video-to-video-* când utilizatorul vrea înapoi un clip finit și id-urile doar audio când va mixa singur sunetul într-un editor.
Parametri:
| Parametru | Tip | Obligatoriu | Descriere |
|---|---|---|---|
model | string | Da | Unul dintre id-urile de mai sus. |
prompt | string | Nu | Este mutat în câmpul pe care îl citește modelul. Cele două modele *-sound refuză un prompt singur; acolo folosește music_prompt și sfx_prompt. Max 2000 de caractere. |
music_prompt | string | Nu | Atmosfera și instrumentația pentru partea muzicală. |
sfx_prompt | string | Nu | Pe ce să se concentreze efectele. |
video_url | string | Modelele video | URL HTTPS al clipului, cel mult 360 de secunde. Pentru un fișier local, apelează get_upload_url(model_id="<id-ul modelului>"), lasă utilizatorul să încarce fișierul, apoi get_upload_session(token). |
duration_seconds | number | Nu | Modelele text: lungimea rezultatului. Modelele video: lungimea clipului, necesară doar dacă nu e deja cunoscută dintr-o încărcare sau dintr-o generare proprie. |
preserve_speech | boolean | Nu | Modelele video. Păstrează în rezultat vorbirea care există deja în clip. Implicit false. |
ducking | boolean | Nu | Modelele video, cu preserve_speech pornit. Coboară sunetul nou cât timp vorbește cineva. Implicit true. |
O rulare video fără niciun prompt este validă și adesea dă rezultate mai bune: modelul scrie pe ce vede.
Facturare: pe secundă de clip la modelele video (nu de rezultat) și pe secundă de rezultat la modelele text. Fiecare produs are o durată minimă facturabilă: 10 secunde la tot ce scrie muzică (inclusiv ambele id-uri *-sound) și 3 secunde la id-urile doar cu efecte, deci o coloană sonoră de 6 secunde se facturează ca 10. estimate(model=..., reference_video_seconds=<secundele clipului>) aplică minimul pentru tine.
Răspuns: {generation_id, status: "pending"}. Interoghează get_status până la completed sau failed. Furnizorul nu trimite callback, așa că interogarea este cea care încheie rularea; dacă te oprești mai devreme, creditele rămân rezervate.
#get_status
Verifică starea unei generări muzicale și obține URL-urile când este gata.
Parametri:
| Parametru | Tip | Obligatoriu | Descriere |
|---|---|---|---|
generation_id | string | Da | ID returnat de generate_music. |
Răspuns: Include status, progress, iar la final un tablou songs. Fiecare piesă are de obicei id, title, audio_url, stream_url, cover_image_url, duration, lyrics, style.
Vezi Limitări pentru rate limits și credite.

