codai docs
Gateway

Efecte sonore

Biblioteca de efecte sonore codai Studio — cauți sunete CC0 selectate, le imporți gratuit ca asset-uri și le folosești în randări.

codai Studio vine cu o bibliotecă de efecte sonore: lovituri, whoosh-uri, click-uri, notificări, bipuri sci-fi, foley, jingle-uri și altele, gata de pus într-o randare. Id-ul public al modelului este codai-sfx. Căutarea și importul sunt gratuite; căutarea se socotește în limita obișnuită de cereri a cheii tale.

MetodăCaleRezultat
GET/v1/studio/sfx?q=&category=&tags=&max_duration=&limit={ object: "list", data: [sunet…], source }, cel mai relevant primul
POST/v1/studio/sfx/{sfx_id}/importSunetul copiat în asset-urile tale (kind: "sfx")

Ce conține biblioteca

Biblioteca este un set selectat de sunete CC0 stocate de codai în europe-west1 — azi pachetele Kenney Impact Sounds, Interface Sounds, UI Audio, Digital Audio, Sci-fi Sounds, RPG Audio (foley), Casino Audio și Music Jingles.

Când biblioteca întoarce mai puțin de jumătate din limit și gateway-ul are o cheie Freesound, restul paginii se completează cu sunete Creative Commons 0 de pe Freesound (source: "library+freesound", id-uri care încep cu fs-). Se întorc și se importă doar sunete Freesound CC0. Cheile cu rezidența datelor în UE nu folosesc niciodată completarea din Freesound. Dacă Freesound e lent sau indisponibil primești totuși rezultatele din bibliotecă, cu antetul de răspuns x-codai-sfx-fallback: unavailable.

Categorii

categorySunete tipice
impactLovituri, pumni, impacturi de metal și lemn
whooshFâșâituri, mișcări rapide
uiClick-uri, comutatoare, apăsări de butoane
notificationAlerte, ping-uri, confirmări, erori
transitionRiser-e, sweep-uri, schimbări de scenă
ambienceBucle și ton de cameră
foleyPași, uși, haine, obiecte manevrate
scifiLasere, motoare, bipuri de calculator
cartoonBoing-uri, pocnituri, efecte comice
natureApă, vânt, animale
crowdAplauze, ovații, voci
otherJingle-uri, sunete de cazino și orice altceva

Licență

Fiecare sunet are licența CC0-1.0 (dedicare în domeniul public): îl poți folosi în video-uri comerciale, îl poți modifica și redistribui și nu e nevoie de atribuire. Fiecare rezultat are license: "CC0-1.0"; sunetele Freesound sunt reverificate la import și refuzate cu 400 license_not_allowed dacă licența nu e exact CC0.

Căutare

ParametruSemnificație
qText liber căutat în nume, etichete, categorie și pachet (sintaxă de căutare web: metal hit, "coin pickup", laser -gun).
categoryUna dintre categoriile de mai sus.
tagsEtichete separate prin virgulă; un sunet se potrivește dacă are cel puțin una.
max_durationDoar sunetele de cel mult atâtea secunde.
limitÎntre 1 și 50, implicit 20.
curl "https://ai.codai.ro/v1/studio/sfx?q=metal%20hit&category=impact&max_duration=2&limit=5" \
  -H "Authorization: Bearer $CODAI_API_KEY"
{
  "object": "list",
  "source": "library",
  "data": [
    {
      "sfx_id": "kenney-impact-metal-heavy-001",
      "name": "Metal heavy 1",
      "category": "impact",
      "tags": ["metal", "heavy", "impact"],
      "duration_seconds": 0.62,
      "mime_type": "audio/ogg",
      "license": "CC0-1.0",
      "source": "kenney",
      "preview_url": "https://storage.googleapis.com/…&X-Goog-Signature=…"
    }
  ]
}

preview_url îți permite să asculți înainte de import: un URL semnat valabil o oră pentru sunetele din bibliotecă, previzualizarea MP3 HQ de pe Freesound pentru sunetele fs-.

Importul și folosirea unui sunet într-o randare

POST /v1/studio/sfx/{sfx_id}/import copiază sunetul în asset-urile tale și întoarce obiectul asset cu kind: "sfx" și model: "codai-sfx". Se păstrează 90 de zile, ca orice asset, și apare și în GET /v1/assets?kind=sfx. Folosește-l în HTML-ul unei randări ca asset:<asset_id>:

ASSET_ID=$(curl -s -X POST "https://ai.codai.ro/v1/studio/sfx/kenney-impact-metal-heavy-001/import" \
  -H "Authorization: Bearer $CODAI_API_KEY" | jq -r .asset_id)
<audio class="clip" src="asset:7d0f2c1e-4b8a-4c1e-9a51-0f3c2e8d9b10"
       data-start="1.2" data-duration="0.62" data-track-index="3"></audio>

Erori

HTTPcodeCând
400bad_requestcategory, max_duration sau limit invalid.
400license_not_allowedUn sunet Freesound a cărui licență nu e CC0.
404not_foundsfx_id necunoscut.
503assets_unavailableStocarea asset-urilor nu e configurată pe acest gateway.

SDK-uri

import { Codai } from 'codai-sdk';
const client = new Codai({ apiKey: process.env.CODAI_API_KEY! });

const { data, source } = await client.sfx.search({ q: 'whoosh', category: 'whoosh', max_duration: 1.5, limit: 5 });
const asset = await client.sfx.import(data[0]!.sfx_id); // asset.kind === 'sfx'
const render = await client.renders.render({
  html: `<div data-composition-id="hit" data-width="1920" data-height="1080">
  <h1 class="clip" data-start="0" data-duration="3" data-track-index="0">Boom</h1>
  <audio class="clip" src="asset:${asset.asset_id}" data-start="0.5" data-duration="1.5" data-track-index="1"></audio>
</div>`,
});
from codai import Codai
client = Codai(api_key=os.environ["CODAI_API_KEY"])

r = client.sfx.search(q="whoosh", category="whoosh", max_duration=1.5, limit=5)
asset = client.sfx.import_(r.data[0]["sfx_id"])  # `import` e cuvânt rezervat în Python, de aici import_
html = f'''<div data-composition-id="hit" data-width="1920" data-height="1080">
  <h1 class="clip" data-start="0" data-duration="3" data-track-index="0">Boom</h1>
  <audio class="clip" src="asset:{asset["asset_id"]}" data-start="0.5" data-duration="1.5" data-track-index="1"></audio>
</div>'''
video = client.renders.render({"html": html})

Rezultatul TypeScript are și fallbackUnavailable, iar cel Python fallback_unavailable, ambele true când răspunsul a avut x-codai-sfx-fallback: unavailable.

Pe această pagină