suno-api
Suno kuria muziką pagal trumpą raštu išdėstytą idėją. Dokumentuota automatinė kūrimo eiga sugeneruoja dvi dainas ir apima instrumentinės muzikos parinktį, o užbaigti garso įrašai bei kūrinių metaduomenys grąžinami kaip generavimo užduoties rezultatas.
Apie modelį
Šis aprašas apima modelio galimybes. Pasirinktam metodui Ailoot prieinamos įvestys, išvestys ir parinktys nurodytos toliau.
Suno yra muzikos generavimo paslauga, paverčianti raštu išdėstytą idėją dainomis. Dokumentuotoje automatinėje kūrimo eigoje pateikiamas trumpas numatytos muzikos aprašymas ir pasirenkama, ar ji bus instrumentinė, tada sugeneruojamos dvi dainos. Aprašu nustatykite temą, nuotaiką ir muzikinę kryptį, kurią norite girdėti baigtuose kūriniuose.
Pradėkite nuo vaidmens, kurį muzika turi atlikti. Ramus fonas paaiškinimui, energinga trumpo vaizdo įrašo pradžia ar apmąstymų kupina daina apie kelionę suteikia aprašui konkrečią paskirtį. Keliomis aiškiomis frazėmis nusakykite pageidaujamą nuotaiką ir tai paskirčiai svarbias muzikines savybes.
Dainai su vokalu kūrybiniame apraše aiškiai nurodykite temą ir kalbą. Aprašykite idėją, kurią kūrinys turi išreikšti, ir toną, kurį turi perteikti atlikimas. Klausydami baigto rezultato vertinkite, kaip kartu veikia vokalas, žodžiai ir aranžuotė. Sugeneruotą informaciją apie kūrinį laikykite kartu su garso įrašu, kad galėtumėte juos peržiūrėti.
Jei norite instrumentinio kūrinio, pasirinkite dokumentuotą instrumentinės muzikos parinktį, o tekste aprašykite muzikinę kryptį. Nurodykite pageidaujamą atmosferą ir pagrindinius instrumentus, kai jie svarbūs projektui. Baigtą kūrinį vertinkite pagal vietą, kurią jis užims montaže, įskaitant dalis, kurios turės skambėti kalbos fone ar padėti perteikti vaizdo perėjimą.
Automatinė kūrimo eiga pagal pateiktą idėją sukuria dvi dainas. Laikykite jas atskirais variantais ir išsaugokite abu baigtus garso failus. Išklausykite kiekvienos dainos pradžią, plėtotę ir pabaigą. Tikruosius kūrinius lyginkite pagal tą pačią paskirtį, įskaitant jų nuotaiką, aranžuotę ir tinkamumą suplanuotam naudojimui.
Generavimas organizuojamas kaip užduotis. Tikrindami jos rezultatą išsaugokite grąžintą užduoties ID ir atskirkite baigtus kūrinius nuo vis dar kuriamų. Dokumentuotame rezultate pateikiama atskirų kūrinių informacija, pavyzdžiui, pavadinimas, būsena, garso įrašo vieta ir trukmė. Išsaugokite patį baigtą garso įrašą kartu su prieinamais metaduomenimis ir pradiniu aprašu.
Vaizdo įrašui ar pristatymui pasirinktą muziką išbandykite su tikrąja medžiaga. Numatytu klausymo garsumu patikrinkite pradžią, perėjimus ir pabaigą. Pažymėkite montažui tinkamą dalį ir išsaugokite visą kūrinį vėlesniems pakeitimams. Tinkama muzikos ištrauka vertinama baigto kūrinio balso, vaizdų ir tempo kontekste.
Raštu išdėstytą idėją, instrumentinės muzikos parinkties reikšmę, modelio pasirinkimą ir visus baigtus kūrinius laikykite kartu. Jei variantą reikia taisyti, nustatykite muzikinį neatitikimą, pavyzdžiui, per daug sodrią aranžuotę kalbos fonui ar per lėtai besivystančią pradžią. Išlaikykite naudingą kryptį ir pakeiskite su ta problema susijusią aprašo dalį.
Ailoot Ultra · Music POST /v1/music/generations suno-api
suno-apiPradžia
Suno kuria muziką pagal trumpą raštu išdėstytą idėją. Dokumentuota automatinė kūrimo eiga sugeneruoja dvi dainas ir apima instrumentinės muzikos parinktį, o užbaigti garso įrašai bei kūrinių metaduomenys grąžinami kaip generavimo užduoties rezultatas.
- Leidžiamos įvestys
- Tekstas
- Rezultatai
- Garsas · Vaizdai · Vaizdo įrašai
Prieinama Ailoot · įvestys ir metodai
Ailoot Ultra · Music POST /v1/music/generations
- Įvestis
text- Išvestis
audio,image,video
| Laukas | Tipas | Reikalavimas | Reikšmės ir ribos | Numatyta |
|---|---|---|---|---|
Laukasmodel | Tipasstring | ReikalavimasPrivaloma | Reikšmės ir ribos suno-api Sąlygos: Naudokite būtent šį Ailoot maršrutizavimo parinkiklį. | Numatyta— |
Laukasgpt_description_prompt | Tipasstring | ReikalavimasPrivaloma | Reikšmės ir ribos Sąlygos: Aprašykite muzikinę idėją arba dainos temą. | Numatyta— |
Laukasmv | Tipasstring | ReikalavimasPrivaloma | Reikšmės ir ribos chirp-fenix, chirp-crow, chirp-bluejay, chirp-auk, chirp-v4, chirp-v3-5 Sąlygos: Aiškiai pasirinkite dokumentuotą Suno versiją; pavyzdyje naudojama chirp-crow (v5). | Numatyta— |
Laukasmake_instrumental | Tipasboolean | ReikalavimasPrivaloma | Reikšmės ir ribos Sąlygos: Instrumentinei muzikai nustatykite true, o dainai – false. | Numatyta— |
Metodo parametrai ir gyvavimo ciklas
| Parametras | Specifikacija |
|---|---|
Parametrascontent_type | Specifikacijaapplication/json |
Parametrasrequired | Specifikacijamodel, gpt_description_prompt, mv, make_instrumental |
Parametrasoptional | Specifikacija |
Parametrasmaterial_types | Specifikacijatext |
Parametrasconditions | SpecifikacijaNaudokite būtent šį Ailoot maršrutizavimo parinkiklį., Aprašykite muzikinę idėją arba dainos temą., Aiškiai pasirinkite dokumentuotą Suno versiją; pavyzdyje naudojama chirp-crow (v5)., Instrumentinei muzikai nustatykite true, o dainai – false. |
Gyvavimo ciklas: submit_once_poll_original
GET /v1/music/generations/{request_id}
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
Planai
Kaip apskaičiuojamas galutinis mokestis
Rodomi įkainiai leidžia įvertinti kainą prieš generavimą. Galutinė suma apskaičiuojama pagal užfiksuotą pradinio generavimo kainą. Išmatuota rezultato trukmė ir prognozuoti kiekiai nėra galutinis apmokestinamas kiekis.
Tarifų informacija neprideda užklausos parinkčių. Palaikomi parametrai nurodyti prie pasirinkto metodo.
- Spartusis režimas
- Nenurodyta Pasirinkus spartųjį režimą
- Flex režimas
- Nenurodyta Pasirinkus flex režimą
- Didžiausios samprotavimo pastangos
- Nenurodyta Kai didžiausioms samprotavimo pastangoms taikomas numatytasis koregavimas (default)
Numatomi įkainiai palyginimui
Kainos pagal konfigūraciją
Kiekvieną mokestį susiekite su nurodytomis sąlygomis. Kiekvienam alternatyvių konfigūracijų rinkiniui taikykite vieną įkainį.
| Konfigūracija | Įkainių lentelė | Numatomas kiekis | Apskaitos kiekis | Mokestis |
|---|---|---|---|---|
| KonfigūracijaBaziniai žetonų įkainiai | Įkainių lentelėBazinis įkainis | Numatomas kiekis— | Apskaitos kiekis— | Mokestis Įvestis · Įvesties tokenai · Įvertis tik palyginimui — / 1K tokenų Išvestis · Išvesties tokenai · Įvertis tik palyginimui — / 1K tokenų Įvestis · Talpyklos skaitymas · Įvertis tik palyginimui — / 1K tokenų Įvestis · Rašymas į talpyklą · Įvertis tik palyginimui — / 1K tokenų Įvestis · Rašymas į talpyklą, 1 val · Įvertis tik palyginimui — / 1K tokenų |
| KonfigūracijaUž užklausą | Įkainių lentelė— | Numatomas kiekis— | Apskaitos kiekisviena užklausa | Mokestis Įvestis · Įvertis tik palyginimui $0.2 už užklausą |
| KonfigūracijaNumatoma generavimo kaina | Įkainių lentelė— | Numatomas kiekisvieno generavimo įvertis | Apskaitos kiekis— | Mokestis Išvestis · Numatoma generavimo kaina · Įvertis tik palyginimui $0.2 įvertis prieš generavimą Šis įvertis nėra papildomas mokestis ar fiksuotas užbaigto generavimo įkainis. |
Ailoot prieš užklausą rezervuoja numatomą sumą. Gavus rezultatą, galutinis mokestis nuskaitomas pagal išmatuotą naudojimą. Srautinio atsakymo atsiskaitymui naudojamas galutinis naudojimo įrašas. Kaip veikia rezervavimas ir atsiskaitymas →
Užklausų pavyzdžiai
Ailoot Ultra · Music
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
cat > request.json <<'JSON'
{
"model": "suno-api",
"gpt_description_prompt": "古诗词",
"mv": "chirp-crow",
"make_instrumental": false
}
JSON
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/music/generations \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
# Create once; retain id, polling_url, original task identifiers and every header.
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_STATUS'
import json,os,subprocess
from pathlib import Path
from urllib.parse import urljoin,urlsplit
r=json.loads(Path("result.json").read_text())
u=urljoin("https://api.ailoot.ai",r["polling_url"])
p=urlsplit(u)
if p.scheme!="https" or p.netloc!="api.ailoot.ai" or p.username or p.password:
raise SystemExit("Unexpected returned polling URL; preserve the response")
subprocess.run(["curl","--fail-with-body","--silent","--show-error",u,"-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"],"-D","status-headers.txt","-o","status.json"],check=True)
# Read this same original polling_url again while pending.
# Preserve unknown/result_pending_check; do not repeat creation.
PY_STATUS
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_ASSETS'
import json,os,subprocess
from pathlib import Path
from urllib.parse import urljoin,urlsplit
r=json.loads(Path("status.json").read_text())
roles={}
def visit(v,path=""):
if isinstance(v,dict):
for k,x in v.items(): visit(x,path+"/"+k)
elif isinstance(v,list):
for i,x in enumerate(v): visit(x,path+"/"+str(i))
elif isinstance(v,str):
u=urljoin("https://api.ailoot.ai",v); p=urlsplit(u)
if p.scheme=="https" and p.netloc=="api.ailoot.ai" and not p.username and not p.password and p.path.startswith("/v1/media/assets/") and p.path.endswith("/content"):
roles.setdefault(u,[]).append(path)
visit(r)
if not roles: raise SystemExit("No completed owned assets; retain the original status")
manifest=[]
for i,(u,paths) in enumerate(roles.items()):
target=Path(f"asset-{i}.bin")
subprocess.run(["curl","--fail-with-body","--silent","--show-error",u,"-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"],"-o",str(target)],check=True)
raw=target.read_bytes()
if not raw: raise SystemExit("Empty asset; retain original status and metadata")
ext="glb" if raw[:4]==b"glTF" else "png" if raw[:8]==b"\x89PNG\r\n\x1a\n" else "jpg" if raw[:3]==b"\xff\xd8\xff" else "webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else "mp4" if raw[4:8]==b"ftyp" else "bin"
name=f"asset-{i}.{ext}"
if target.name!=name: target.rename(name)
manifest.append({"file":name,"response_paths":paths,"bytes":len(raw)})
Path("asset-manifest.json").write_text(json.dumps(manifest,indent=2))
print("Saved",len(manifest),"unique owned assets; every response role retained")
PY_ASSETS
Gauti ir išsaugoti rezultatus
Ailoot Ultra · Music
Atsisiųskite kiekvieną grąžintą vaizdą arba išsaugokite jo Base64 turinį
GET /v1/music/generations/{request_id}GET /v1/media/assetsGET /v1/media/assets/{asset_id}
Išsaugoti visus baigtus rezultatus
Išsaugokite kiekvieną visą grąžintą atsakymą, failą ir turinio dalį.
Išsaugokite visą atsakymą ir antraštes, pradinius identifikatorius, kiekvieną tikrą rezultatą ir visus naudojimo bei apskaitos laukus. Išsaugokite kiekvieną unikalų jums priklausantį išteklių ir visas į jį nukreiptas paskirtis.
Jei reikia patikrinti pradinį atsakymą
Išsaugokite grąžintą viešą užduoties ar operacijos id ir visas antraštes. Skaitykite tik pradinės užduoties duomenis; unknown arba result_pending_check nesuteikia leidimo kurti dar kartą.
Atsakymo laukai
| Laukas | Tipas |
|---|---|
Laukasid | Tipasstring |
Laukaspolling_url | Tipasstring |
Laukasprovider_task_id | Tipasstring |
Laukasdata.task_id | Tipasstring |
Laukasdata.status | Tipasstring |
Laukasdata.data[].audio_url | Tipasstring |
Laukasdata.data[].image_url | Tipasstring |
Laukasdata.data[].image_large_url | Tipasstring |
Laukasdata.data[].video_url | Tipasstring |
Pseudonimai
Modelių pseudonimai
Ailoot Ultra suno-api
Metodų kelių pseudonimai
Naudokite aukščiau nurodytus metodų kelius.
Susiję ID iškvietimui
FAQ · suno-api
- Kokios įvestys ir rezultatai prieinami?
POST /v1/music/generations·suno-api:text→audio,image,video- Kokius laukus naudoja užklausa?
POST /v1/music/generations·suno-api:model,gpt_description_prompt,mv,make_instrumental