> ## Documentation Index
> Fetch the complete documentation index at: https://docs.acedata.cloud/llms.txt
> Use this file to discover all available pages before exploring further.

# Producent Audios Generation API - instrukcja integracji

> Producer Music Generation API guide - Ace Data Cloud

W tym dokumencie przedstawimy instrukcję integracji z Producent Audios Generation API, która umożliwia generowanie oficjalnej muzyki Producenta za pomocą wprowadzonych parametrów.

## Proces aplikacji

Aby skorzystać z Producent Audios Generation API, najpierw przejdź do [Ace Data Cloud Console](https://platform.acedata.cloud/console/applications), aby uzyskać swój token API, który należy zachować na przyszłość.

![](https://cdn.acedata.cloud/dvc3cg.jpg)

Jeśli nie jesteś zalogowany lub zarejestrowany, automatycznie zostaniesz przekierowany na stronę logowania, aby zarejestrować się i zalogować, a po zakończeniu zostaniesz automatycznie przekierowany z powrotem na bieżącą stronę.

**Jeden token API wystarczy do korzystania ze wszystkich usług platformy, nie ma potrzeby składania osobnych wniosków dla każdej usługi.** Przy pierwszym wniosku otrzymasz darmowy limit, aby móc go przetestować; w przypadku niewystarczającego limitu możesz doładować saldo ogólne w [konsoli](https://platform.acedata.cloud/console/coin).

> 📘 Pełna dokumentacja: [Producent Audios Generation API →](https://platform.acedata.cloud/documents/producer-audios)

## Podstawowe użycie

Chcąc stworzyć piosenkę, możesz wprowadzić dowolny tekst, na przykład, jeśli chcesz wygenerować piosenkę o tematyce świątecznej, możesz wpisać `a song for Christmas`, jak pokazano na obrazku:

<p>
  <img src="https://cdn.acedata.cloud/lg9bb0.png" width="600" className="m-auto" />
</p>

Można zauważyć, że ustawiliśmy nagłówki żądania, w tym:

* `accept`: w jakim formacie chcesz otrzymać odpowiedź, tutaj wpisujemy `application/json`, czyli format JSON.
* `authorization`: klucz do wywołania API, po złożeniu wniosku można go bezpośrednio wybrać z rozwijanej listy.

Dodatkowo parametry ciała żądania obejmują:

* `action`: działanie związane z generowaniem muzyki, w przypadku generowania piosenki to `generate`.
* `model`: model używany do tworzenia piosenki, obecnie dostępne są głównie: **FUZZ-2.0 Pro**, **FUZZ-2.0**, **FUZZ-2.0 Raw**, **FUZZ-1.1 Pro**, **FUZZ-1.0 Pro**, **FUZZ-1.0**, **FUZZ-1.1**, **FUZZ-0.8**.
* `lyric`: treść tekstu piosenki.
* `custom`: czy piosenka ma być generowana w sposób niestandardowy.
* `prompt`: słowo kluczowe w trybie inspiracji.
* `title`: informacja o tytule piosenki.
* `audio_id`: ID referencyjnej piosenki, używane do kontynuacji/odtworzenia itp.
* `continue_at`: kontynuacja od określonej sekundy.
* `replace_section_start`/`replace_section_end`: czas rozpoczęcia i zakończenia wymiany fragmentu, w sekundach.
* `lyrics_strength`: siła tekstu, wskazująca na wpływ tekstu na generowanie audio, opcjonalnie od 0 do 1, domyślnie 0.7.
* `sound_strength`: siła słowa kluczowego audio, opcjonalnie od 0.2 do 1, domyślnie 0.7.
* `cover_strength`: siła coveru od 0.2 do 1, domyślnie 1.
* `weirdness`: stopień dziwności stylu, opcjonalnie od 0 do 1, domyślnie 0.5.
* `callback_url`: URL, na który mają być zwracane wyniki.
* `async`: opcjonalnie, ustawione na `true`, interfejs natychmiast zwraca `task_id`, nie ma potrzeby podawania `callback_url`, a następnie można uzyskać wyniki, wykonując zapytania do odpowiedniego interfejsu zadań.
* `instrumental`: czy ma to być tryb bez tekstu.

Po dokonaniu wyboru, można zauważyć, że po prawej stronie wygenerowano odpowiedni kod, jak pokazano na obrazku:

<p>
  <img src="https://cdn.acedata.cloud/0217zy.png" width="500" className="m-auto" />
</p>

Kliknij przycisk „Try”, aby przeprowadzić test, jak pokazano na powyższym obrazku, a otrzymasz następujący wynik:

```json theme={null}
{
  "success": true,
  "task_id": "82fd443a-903a-4f18-8028-12d2f8a0a4be",
  "trace_id": "d85839fa-0bb1-42da-a9fc-cd582c29027d",
  "data": [
    {
      "id": "6c947f13-a3c5-4b9c-8609-5639c37cdc2d",
      "title": "Untitled",
      "image_url": "https://cdn.acedata.cloud/e724d7f13d.png",
      "lyric": "[Instrumental]",
      "audio_url": "https://platform2.cdn.acedata.cloud/fish/5ade0339-5f11-487e-aacc-06a908271706.mp3",
      "video_url": null,
      "image_id": "6c947f13-a3c5-4b9c-8609-5639c37cdc2d",
      "topic": null,
      "seed": "2450882164",
      "sound": "A song for Christmas",
      "created_at": "2025-12-30T17:18:23.232911Z",
      "model": "FUZZ-2.0 Pro",
      "progress": "100%",
      "state": "succeeded",
      "duration": "181.3014058956916"
    }
  ]
}
```

W zwróconym wyniku znajduje się wiele pól, które są opisane poniżej:

* `success`, stan zadania generowania muzyki w danym momencie.
  * `data`, wynik zadania muzycznego
    * `id`, ID zadania generowania muzyki w danym momencie.
    * `sound`, słowo kluczowe zadania generowania muzyki w danym momencie.
    * `seed`, wartość nasionka zadania generowania muzyki w danym momencie.
    * `audio_url`, link do audio zadania generowania muzyki w danym momencie.
    * `image_url`, link do okładki zadania generowania muzyki w danym momencie.
    * `image_id`, ID okładki zadania generowania muzyki w danym momencie.
    * `state`, stan zadania generowania muzyki w danym momencie.
    * `duration`, informacja o czasie trwania muzyki w danym momencie.
    * `progress`, wartość postępu zadania muzycznego w danym momencie.
    * `model`, informacja o modelu używanym w zadaniu generowania muzyki w danym momencie.
    * `lyric`, informacja o tekście zadania generowania muzyki w danym momencie.

Można zauważyć, że otrzymaliśmy informacje o muzyce, którą chcieliśmy wygenerować, wystarczy, że na podstawie adresu linku audio w `data` uzyskamy wygenerowaną muzykę Producenta.

Jeśli chcesz wygenerować odpowiedni kod do integracji, możesz go bezpośrednio skopiować, na przykład kod CURL wygląda następująco:

```shell theme={null}
curl -X POST 'https://api.acedata.cloud/producer/audios' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "action": "generate",
  "model": "FUZZ-2.0 Pro",
  "prompt": "A song for Christmas"
}'
```

## Niestandardowe generowanie

Jeśli chcesz niestandardowo wygenerować tekst, możesz wprowadzić tekst piosenki:

W tym momencie pole `lyric` może przyjąć podobną treść jak poniżej:

```
[Verse]Woke up with the sun in my eyesNo clouds above just blue in the skiesShoes on my feet I’m ready to runEvery step feels like a loaded gun[Chorus]Happy days are rolling inLet the joy beneath my skinNo more shadows no more liesJust the truth that lifts me high[Verse 2]Dancing through the city streetsA rhythm pounding in my heartbeatStrangers smile it’s catching onThis world’s a stage we’re all a song[Chorus]Happy days are rolling inLet the joy beneath my skinNo more shadows no more liesJust the truth that lifts me high[Bridge]Throw your worries out the doorLet them sink to the ocean floorWe’re alive and it’s enoughLife is messy but it’s love[Chorus]Happy days are rolling inLet the joy beneath my skinNo more shadows no more liesJust the truth that lifts me high
```

Następnie, aby dostosować generowanie piosenki na podstawie tekstu, tytułu i stylu, można określić następujące treści:

* lyric：tekst piosenki
* custom：wypełnij jako `true`, co oznacza generację niestandardową, ten parametr domyślnie ma wartość false, co oznacza użycie `prompt` do generacji.
* title：tytuł piosenki.

Wypełniony przykład wygląda następująco:

<p>
  <img src="https://cdn.acedata.cloud/ruovz5.png" width="500" className="m-auto" />
</p>

Po wypełnieniu automatycznie wygenerowano kod jak poniżej:

<p>
  <img src="https://cdn.acedata.cloud/seyxxa.png" width="500" className="m-auto" />
</p>

Odpowiedni kod:

```shell theme={null}
curl -X POST 'https://api.acedata.cloud/producer/audios' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "action": "generate",
  "model": "FUZZ-2.0 Pro",
  "instrumental": false,
  "lyric": "[Verse]\nWoke up with the sun in my eyes\nNo clouds above just blue in the skies\nShoes on my feet I’m ready to run\nEvery step feels like a loaded gun\n[Chorus]\nHappy days are rolling in\nLet the joy beneath my skin\nNo more shadows no more lies\nJust the truth that lifts me high\n[Verse 2]\nDancing through the city streets\nA rhythm pounding in my heartbeat\nStrangers smile it’s catching on\nThis world’s a stage we’re all a song\n[Chorus]\nHappy days are rolling in\nLet the joy beneath my skin\nNo more shadows no more lies\nJust the truth that lifts me high\n[Bridge]\nThrow your worries out the door\nLet them sink to the ocean floor\nWe’re alive and it’s enough\nLife is messy but it’s love\n[Chorus]\nHappy days are rolling in\nLet the joy beneath my skin\nNo more shadows no more lies\nJust the truth that lifts me high",
  "custom": true
}'
```

Testowanie dozwolone, generowany efekt jest podobny.

```json theme={null}
{
  "success": true,
  "task_id": "9f58bbd4-855a-4233-ac45-b63bf9168e02",
  "trace_id": "145ad117-6ce7-42dd-af12-70751c5284fc",
  "data": [
    {
      "id": "38d3b9e2-0dfb-4338-b2a7-15e45656ed32",
      "title": "Woke up with the sun in my eyes",
      "image_url": "https://cdn.acedata.cloud/e724d7f13d.png",
      "lyric": "[Verse]\nWoke up with the sun in my eyes\nNo clouds above just blue in the skies\nShoes on my feet I’m ready to run\nEvery step feels like a loaded gun\n[Chorus]\nHappy days are rolling in\nLet the joy beneath my skin\nNo more shadows no more lies\nJust the truth that lifts me high\n[Verse 2]\nDancing through the city streets\nA rhythm pounding in my heartbeat\nStrangers smile it’s catching on\nThis world’s a stage we’re all a song\n[Chorus]\nHappy days are rolling in\nLet the joy beneath my skin\nNo more shadows no more lies\nJust the truth that lifts me high\n[Bridge]\nThrow your worries out the door\nLet them sink to the ocean floor\nWe’re alive and it’s enough\nLife is messy but it’s love\n[Chorus]\nHappy days are rolling in\nLet the joy beneath my skin\nNo more shadows no more lies\nJust the truth that lifts me high",
      "audio_url": "https://platform2.cdn.acedata.cloud/fish/5ade0339-5f11-487e-aacc-06a908271706.mp3",
      "video_url": null,
      "image_id": "38d3b9e2-0dfb-4338-b2a7-15e45656ed32",
      "topic": null,
      "seed": "3789209121",
      "sound": "",
      "created_at": "2025-12-30T17:26:46.357055Z",
      "model": "FUZZ-2.0 Pro",
      "progress": "100%",
      "state": "succeeded",
      "duration": "153.80897959183673"
    }
  ]
}
```

## Przykład coveru piosenki

Jeśli chcesz wykonać cover już wygenerowanej piosenki, możesz wprowadzić wcześniej wygenerowaną piosenkę do wykonania coveru, następnie musimy dostosować generację piosenki na podstawie tekstu, tytułu.

Jeśli chcesz kontynuować wykonywanie coveru swojej przesłanej piosenki, możesz ustawić parametr `action` na `upload_cover` i wprowadzić ID piosenki, którą chcesz kontynuować, ID piosenki można uzyskać za pomocą [Producer Upload API](https://platform.acedata.cloud/documents/producer-upload), jak pokazano na poniższym obrazku:

<p>
  <img src="https://cdn.acedata.cloud/z7r5fd.png" width="500" className="m-auto" />
</p>

Możesz określić następujące treści:

* action：działanie zadania piosenki, obecnie wspiera: generate, cover, extend, upload\_cover, upload\_extend, replace\_section, swap\_vocals, swap\_instrumentals, variation, w tym przypadku używamy parametru `cover`.
* lyric：tekst piosenki
* title：tytuł piosenki.
* custom：czy używać trybu niestandardowego do generacji, domyślnie jest false.
* audio\_id：ID piosenki, którą chcesz wykonać cover.

Wypełniony przykład wygląda następująco:

<p>
  <img src="https://cdn.acedata.cloud/6xl82z.png" width="500" className="m-auto" />
</p>

Po wypełnieniu automatycznie wygenerowano kod jak poniżej:

<p>
  <img src="https://cdn.acedata.cloud/bxzfrw.png" width="500" className="m-auto" />
</p>

Odpowiedni kod:

```shell theme={null}
curl -X POST 'https://api.acedata.cloud/producer/audios' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "action": "cover",
  "model": "FUZZ-2.0 Pro",
  "lyric": "[Verse]\nWoke up with the sun in my eyes\nNo clouds above just blue in the skies\nShoes on my feet I’m ready to run\nEvery step feels like a loaded gun\n[Chorus]\nHappy days are rolling in\nLet the joy beneath my skin\nNo more shadows no more lies\nJust the truth that lifts me high\n[Verse 2]\nDancing through the city streets\nA rhythm pounding in my heartbeat\nStrangers smile it’s catching on\nThis world’s a stage we’re all a song\n[Chorus]\nHappy days are rolling in\nLet the joy beneath my skin\nNo more shadows no more lies\nJust the truth that lifts me high\n[Bridge]\nThrow your worries out the door\nLet them sink to the ocean floor\nWe’re alive and it’s enough\nLife is messy but it’s love\n[Chorus]\nHappy days are rolling in\nLet the joy beneath my skin\nNo more shadows no more lies\nJust the truth that lifts me high",
  "audio_id": "38d3b9e2-0dfb-4338-b2a7-15e45656ed32",
  "instrumental": false,
  "custom": true,
  "title": "Cover"
}'
```

Testowanie dozwolone, generowany efekt jest podobny.

```json theme={null}
{
  "success": true,
  "task_id": "dbca350e-6fb9-46ca-9c7e-4c1a9080806f",
  "trace_id": "a39e0fff-ced8-4b31-ae23-aef3badd90fa",
  "data": [
    {
      "id": "e52dd729-38b4-4c2f-9031-59eb7953c593",
      "title": "Okładka",
      "image_url": "https://cdn.acedata.cloud/e724d7f13d.png",
      "lyric": "[Zwrotka]\nObudziłem się z słońcem w oczach\nNie ma chmur, tylko niebieskie niebo\nButy na nogach, jestem gotowy do biegu\nKażdy krok czuje się jak naładowany pistolet\n[Refren]\nSzczęśliwe dni nadchodzą\nNiech radość pod moją skórą\nNie ma więcej cieni, nie ma więcej kłamstw\nTylko prawda, która unosi mnie wysoko\n[Zwrotka 2]\nTańcząc przez ulice miasta\nRytm bije w moim sercu\nObcy się uśmiechają, to się rozprzestrzenia\nTen świat to scena, wszyscy jesteśmy piosenką\n[Refren]\nSzczęśliwe dni nadchodzą\nNiech radość pod moją skórą\nNie ma więcej cieni, nie ma więcej kłamstw\nTylko prawda, która unosi mnie wysoko\n[Most]\nWyrzuć swoje zmartwienia za drzwi\nNiech zatoną na dnie oceanu\nJesteśmy żywi i to wystarczy\nŻycie jest chaotyczne, ale to miłość\n[Refren]\nSzczęśliwe dni nadchodzą\nNiech radość pod moją skórą\nNie ma więcej cieni, nie ma więcej kłamstw\nTylko prawda, która unosi mnie wysoko",
      "audio_url": "https://platform2.cdn.acedata.cloud/fish/5ade0339-5f11-487e-aacc-06a908271706.mp3",
      "video_url": null,
      "image_id": "e52dd729-38b4-4c2f-9031-59eb7953c593",
      "topic": null,
      "seed": "358803418",
      "sound": "",
      "created_at": "2025-12-30T17:32:32.951948Z",
      "model": "FUZZ-2.0 Pro",
      "progress": "100%",
      "state": "succeeded",
      "duration": "153.0659410430839"
    }
  ]
}
```

## Kontynuacja piosenki

Jeśli chcesz kontynuować piosenkę, musimy przekazać parametr `action` z wartością: `extend`, następnie musimy dostosować generowanie piosenki na podstawie tekstu, tytułu i stylu.

Jeśli chcesz kontynuować piosenkę, którą sam przesłałeś, możesz ustawić parametr `action` na `upload_extend` i wprowadzić ID piosenki, którą chcesz kontynuować. ID piosenki można uzyskać za pomocą [Producer Upload API](https://platform.acedata.cloud/documents/producer-upload), jak pokazano na poniższym obrazku:

<p>
  <img src="https://cdn.acedata.cloud/z7r5fd.png" width="500" className="m-auto" />
</p>

Przykład wypełnienia wygląda następująco:

<p>
  <img src="https://cdn.acedata.cloud/r3ux6z.png" width="500" className="m-auto" />
</p>

Po wypełnieniu automatycznie wygenerowano kod jak poniżej:

<p>
  <img src="https://cdn.acedata.cloud/fsww0u.png" width="500" className="m-auto" />
</p>

Odpowiedni kod:

```shell theme={null}
curl -X POST 'https://api.acedata.cloud/producer/audios' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "action": "extend",
  "model": "FUZZ-2.0 Pro",
  "instrumental": false,
  "lyric": "[Zwrotka]\nObudziłem się z słońcem w oczach\nNie ma chmur, tylko niebieskie niebo\nButy na nogach, jestem gotowy do biegu\nKażdy krok czuje się jak naładowany pistolet\n[Refren]\nSzczęśliwe dni nadchodzą\nNiech radość pod moją skórą\nNie ma więcej cieni, nie ma więcej kłamstw\nTylko prawda, która unosi mnie wysoko\n[Zwrotka 2]\nTańcząc przez ulice miasta\nRytm bije w moim sercu\nObcy się uśmiechają, to się rozprzestrzenia\nTen świat to scena, wszyscy jesteśmy piosenką\n[Refren]\nSzczęśliwe dni nadchodzą\nNiech radość pod moją skórą\nNie ma więcej cieni, nie ma więcej kłamstw\nTylko prawda, która unosi mnie wysoko\n[Most]\nWyrzuć swoje zmartwienia za drzwi\nNiech zatoną na dnie oceanu\nJesteśmy żywi i to wystarczy\nŻycie jest chaotyczne, ale to miłość\n[Refren]\nSzczęśliwe dni nadchodzą\nNiech radość pod moją skórą\nNie ma więcej cieni, nie ma więcej kłamstw\nTylko prawda, która unosi mnie wysoko",
  "continue_at": 3,
  "audio_id": "38d3b9e2-0dfb-4338-b2a7-15e45656ed32",
  "custom": true,
  "title": "Rozszerzenie",
  "weirdness": 0.3,
  "sound_strength": 0.3,
  "lyrics_strength": 0.6
}'
```

Testowanie dozwolone, wygenerowany efekt jest podobny.

```json theme={null}
{
  "success": true,
  "task_id": "834983cb-d62d-4750-b1aa-461da137e51f",
  "trace_id": "6923eee2-7403-432c-8bd1-e471086385b0",
  "data": [
    {
      "id": "d9ebc609-fb65-4a23-b914-c074747af6a4",
      "title": "Rozszerzenie",
      "image_url": "https://cdn.acedata.cloud/e724d7f13d.png",
      "lyric": "[Zwrotka]\n[Zwrotka]\nObudziłem się z słońcem w oczach\nNie ma chmur, tylko niebieskie niebo\nButy na nogach, jestem gotowy do biegu\nKażdy krok czuje się jak naładowany pistolet\n[Refren]\nSzczęśliwe dni nadchodzą\nNiech radość pod moją skórą\nNie ma więcej cieni, nie ma więcej kłamstw\nTylko prawda, która unosi mnie wysoko\n[Zwrotka 2]\nTańcząc przez ulice miasta\nRytm bije w moim sercu\nObcy się uśmiechają, to się rozprzestrzenia\nTen świat to scena, wszyscy jesteśmy piosenką\n[Refren]\nSzczęśliwe dni nadchodzą\nNiech radość pod moją skórą\nNie ma więcej cieni, nie ma więcej kłamstw\nTylko prawda, która unosi mnie wysoko\n[Most]\nWyrzuć swoje zmartwienia za drzwi\nNiech zatoną na dnie oceanu\nJesteśmy żywi i to wystarczy\nŻycie jest chaotyczne, ale to miłość\n[Refren]\nSzczęśliwe dni nadchodzą\nNiech radość pod moją skórą\nNie ma więcej cieni, nie ma więcej kłamstw\nTylko prawda, która unosi mnie wysoko",
      "audio_url": "https://platform2.cdn.acedata.cloud/fish/5ade0339-5f11-487e-aacc-06a908271706.mp3",
      "video_url": null,
      "image_id": "d9ebc609-fb65-4a23-b914-c074747af6a4",
      "topic": null,
      "seed": "4294469624",
      "sound": "",
      "created_at": "2025-12-30T17:36:14.520928Z",
      "model": "FUZZ-2.0 Pro",
      "progress": "100%",
      "state": "succeeded",
      "duration": "173.87102040816328"
    }
  ]
}
```

## Muzyczna transformacja

Jeśli chcesz wygenerować nową muzykę o podobnym efekcie na podstawie wartości seed poprzedniej piosenki, musimy przekazać parametr `action` z wartością: `variation`, następnie możemy dostosować generowanie nowej muzyki o podobnym efekcie.

Przykład wypełnienia wygląda następująco:

<p>
  <img src="https://cdn.acedata.cloud/bxslxt.png" width="500" className="m-auto" />
</p>

Po wypełnieniu automatycznie wygenerowano kod jak poniżej:

<p>
  <img src="https://cdn.acedata.cloud/nojowk.png" width="500" className="m-auto" />
</p>

Odpowiedni kod:

```shell theme={null}
```

```shell theme={null}
curl -X POST 'https://api.acedata.cloud/producer/audios' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "action": "variation",
  "audio_id": "d9ebc609-fb65-4a23-b914-c074747af6a4",
  "model": "FUZZ-2.0 Pro",
  "instrumental": false,
  "lyric": "[Zwrotka]\nObudziłem się z słońcem w oczach\nBrak chmur, tylko niebieskie niebo\nButy na nogach, jestem gotowy do biegu\nKażdy krok czuje się jak naładowany pistolet\n[Refren]\nSzczęśliwe dni nadchodzą\nNiech radość pod moją skórą\nKoniec cieni, koniec kłamstw\nTylko prawda, która unosi mnie wysoko\n[Zwrotka 2]\nTańcząc przez ulice miasta\nRytm bije w moim sercu\nObcy się uśmiechają, to się rozprzestrzenia\nTen świat to scena, wszyscy jesteśmy piosenką\n[Refren]\nSzczęśliwe dni nadchodzą\nNiech radość pod moją skórą\nKoniec cieni, koniec kłamstw\nTylko prawda, która unosi mnie wysoko\n[Most]\nWyrzuć swoje zmartwienia za drzwi\nNiech zatoną na dnie oceanu\nJesteśmy żywi i to wystarczy\nŻycie jest chaotyczne, ale to miłość\n[Refren]\nSzczęśliwe dni nadchodzą\nNiech radość pod moją skórą\nKoniec cieni, koniec kłamstw\nTylko prawda, która unosi mnie wysoko",
  "custom": true
}'
```

```json theme={null}
{
    "success": true,
    "task_id": "3a74da6d-a37d-4b5d-b116-821f455bce39",
    "trace_id": "8e28cce0-0400-4bfd-83db-6d27f97422c7",
    "data": [
        {
            "id": "c14ca458-cd5a-4700-83d4-5249e15f2707",
            "title": "Obudziłem się z słońcem w oczach",
            "image_url": "https://cdn.acedata.cloud/e724d7f13d.png",
            "lyric": "[Zwrotka]\nObudziłem się z słońcem w oczach\nBrak chmur, tylko niebieskie niebo\nButy na nogach, jestem gotowy do biegu\nKażdy krok czuje się jak naładowany pistolet\n[Refren]\nSzczęśliwe dni nadchodzą\nNiech radość pod moją skórą\nKoniec cieni, koniec kłamstw\nTylko prawda, która unosi mnie wysoko\n[Zwrotka 2]\nTańcząc przez ulice miasta\nRytm bije w moim sercu\nObcy się uśmiechają, to się rozprzestrzenia\nTen świat to scena, wszyscy jesteśmy piosenką\n[Refren]\nSzczęśliwe dni nadchodzą\nNiech radość pod moją skórą\nKoniec cieni, koniec kłamstw\nTylko prawda, która unosi mnie wysoko\n[Most]\nWyrzuć swoje zmartwienia za drzwi\nNiech zatoną na dnie oceanu\nJesteśmy żywi i to wystarczy\nŻycie jest chaotyczne, ale to miłość\n[Refren]\nSzczęśliwe dni nadchodzą\nNiech radość pod moją skórą\nKoniec cieni, koniec kłamstw\nTylko prawda, która unosi mnie wysoko",
            "audio_url": "https://platform2.cdn.acedata.cloud/fish/5ade0339-5f11-487e-aacc-06a908271706.mp3",
            "video_url": null,
            "image_id": "c14ca458-cd5a-4700-83d4-5249e15f2707",
            "topic": null,
            "seed": "2082104582",
            "sound": "",
            "created_at": "2025-12-30T17:48:40.135187Z",
            "model": "FUZZ-2.0",
            "progress": "100%",
            "state": "succeeded",
            "duration": "173.12798185941043"
        }
    ]
}
```

## Zastąpienie fragmentu

Jeśli chcesz zastąpić fragment piosenki, musimy przekazać wartość parametru `action` jako: `replace_section`, następnie musimy dostosować tekst piosenki na podstawie tekstu, tytułu.

Jeśli chcesz kontynuować zastępowanie fragmentu w przesłanej przez siebie piosence, możesz ustawić parametr `action` na `upload_replace_section` i wprowadzić ID przesłanej piosenki, które można uzyskać za pomocą [Producer Upload API](https://platform.acedata.cloud/documents/producer-upload), jak pokazano na poniższym obrazku:

<p>
  <img src="https://cdn.acedata.cloud/z7r5fd.png" width="500" className="m-auto" />
</p>

Przykład wypełnienia wygląda następująco:

<p>
  <img src="https://cdn.acedata.cloud/mzo9iw.png" width="500" className="m-auto" />
</p>

Po wypełnieniu automatycznie wygenerowano kod jak poniżej:

<p>
  <img src="https://cdn.acedata.cloud/877x6c.png" width="500" className="m-auto" />
</p>

Odpowiedni kod:

```shell theme={null}
curl -X POST 'https://api.acedata.cloud/producer/audios' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "action": "replace_section",
  "model": "FUZZ-2.0 Pro",
  "instrumental": false,
  "lyric": "[Zwrotka]\\nObudziłem się z słońcem w oczach\\nBrak chmur, tylko niebieskie niebo\\nButy na nogach, jestem gotowy do biegu\\nKażdy krok czuje się jak naładowany pistolet\\n[Refren]\\nSzczęśliwe dni nadchodzą\\nNiech radość pod moją skórą\\nKoniec cieni, koniec kłamstw\\nTylko prawda, która unosi mnie wysoko\\n[Zwrotka 2]\\nTańcząc przez ulice miasta\\nRytm bije w moim sercu\\nObcy się uśmiechają, to się rozprzestrzenia\\nTen świat to scena, wszyscy jesteśmy piosenką\\n[Refren]\\nSzczęśliwe dni nadchodzą\\nNiech radość pod moją skórą\\nKoniec cieni, koniec kłamstw\\nTylko prawda, która unosi mnie wysoko\\n[Most]\\nWyrzuć swoje zmartwienia za drzwi\\nNiech zatoną na dnie oceanu\\nJesteśmy żywi i to wystarczy\\nŻycie jest chaotyczne, ale to miłość\\n[Refren]\\nSzczęśliwe dni nadchodzą\\nNiech radość pod moją skórą\\nKoniec cieni, koniec kłamstw\\nTylko prawda, która unosi mnie wysoko",
  "audio_id": "d9ebc609-fb65-4a23-b914-c074747af6a4",
  "replace_section_start": 3,
  "replace_section_end": 70,
  "custom": true
}'
```

Testy są dozwolone, generowany efekt jest podobny.

```json theme={null}
{
    "success": true,
    "task_id": "3cb5ae96-01b0-4a37-afb0-e582608af56f",
    "trace_id": "3ebc6f63-5093-4499-bf9b-95c239e0da4f",
    "data": [
        {
            "id": "a54609c6-13e2-4176-be0f-4d7eebc68e1f",
            "title": "Obudziłem się z słońcem w oczach",
            "image_url": "https://cdn.acedata.cloud/e724d7f13d.png",
            "lyric": "[Zwrotka]\\nObudziłem się z słońcem w oczach\\nBrak chmur nad głową, tylko niebieskie niebo\\nButy na nogach, jestem gotowy do biegu\\nKażdy krok czuje się jak naładowany pistolet\\n[Refren]\\nSzczęśliwe dni nadchodzą\\nNiech radość pod moją skórą\\nKoniec cieni, koniec kłamstw\\nTylko prawda, która mnie unosi\\n[Zwrotka 2]\\nTańcząc przez ulice miasta\\nRytm bije w moim sercu\\nObcy się uśmiechają, to się zaraża\\nTen świat to scena, wszyscy jesteśmy piosenką\\n[Refren]\\nSzczęśliwe dni nadchodzą\\nNiech radość pod moją skórą\\nKoniec cieni, koniec kłamstw\\nTylko prawda, która mnie unosi\\n[Mostek]\\nWyrzuć swoje zmartwienia za drzwi\\nNiech zatoną na dnie oceanu\\nJesteśmy żywi i to wystarczy\\nŻycie jest chaotyczne, ale to miłość\\n[Refren]\\nSzczęśliwe dni nadchodzą\\nNiech radość pod moją skórą\\nKoniec cieni, koniec kłamstw\\nTylko prawda, która mnie unosi",
            "audio_url": "https://platform2.cdn.acedata.cloud/fish/5ade0339-5f11-487e-aacc-06a908271706.mp3",
            "video_url": null,
            "image_id": "a54609c6-13e2-4176-be0f-4d7eebc68e1f",
            "topic": null,
            "seed": "14887454",
            "sound": "",
            "created_at": "2025-12-30T18:01:19.907443Z",
            "model": "FUZZ-2.0 Pro",
            "progress": "100%",
            "state": "succeeded",
            "duration": "174.6140589569161"
        }
    ]
}
```

## Przeróbka podkładu

Jeśli chcesz użyć oficjalnej przeróbki podkładu, możesz ustawić wartość parametru `action` na: `swap_instrumentals`, następnie musimy dostosować generowanie piosenki na podstawie tekstu, tytułu.

Przykład wypełnienia wygląda następująco:

<p>
  <img src="https://cdn.acedata.cloud/7l6976.png" width="500" className="m-auto" />
</p>

Po wypełnieniu automatycznie wygenerowano kod jak poniżej:

<p>
  <img src="https://cdn.acedata.cloud/pvi2n3.png" width="500" className="m-auto" />
</p>

Odpowiedni kod:

```shell theme={null}
curl -X POST 'https://api.acedata.cloud/producer/audios' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "action": "swap_instrumentals",
  "model": "FUZZ-2.0 Pro",
  "weirdness": 0.6,
  "prompt": "Szczęśliwy",
  "audio_id": "d9ebc609-fb65-4a23-b914-c074747af6a4"
}'
```

Testowanie dozwolone, wygenerowany efekt jest podobny.

```json theme={null}
{
  "success": true,
  "task_id": "d17d8376-3a58-451d-a976-404719bac11d",
  "trace_id": "ab596807-910a-4e30-bae2-4647895f7d0b",
  "data": [
    {
      "id": "22d7d75c-9e0a-47a8-b22b-eea55eaa0c4b",
      "title": "Rozszerz (Zamiana dźwięku)",
      "image_url": "https://cdn.acedata.cloud/e724d7f13d.png",
      "lyric": "[Zwrotka]\nObudziłem się z słońcem w oczach\nBrak chmur nad głową, tylko niebieskie niebo\nButy na nogach, jestem gotowy do biegu\nKażdy krok czuje się jak naładowany pistolet\n[Refren]\nSzczęśliwe dni nadchodzą\nNiech radość pod moją skórą\nKoniec cieni, koniec kłamstw\nTylko prawda, która mnie unosi\n[Zwrotka 2]\nTańcząc przez ulice miasta\nRytm bije w moim sercu\nObcy się uśmiechają, to się zaraża\nTen świat to scena, wszyscy jesteśmy piosenką\n[Refren]\nSzczęśliwe dni nadchodzą\nNiech radość pod moją skórą\nKoniec cieni, koniec kłamstw\nTylko prawda, która mnie unosi\n[Mostek]\nWyrzuć swoje zmartwienia za drzwi\nNiech zatoną na dnie oceanu\nJesteśmy żywi i to wystarczy\nŻycie jest chaotyczne, ale to miłość\n[Refren]\nSzczęśliwe dni nadchodzą\nNiech radość pod moją skórą\nKoniec cieni, koniec kłamstw\nTylko prawda, która mnie unosi",
      "audio_url": "https://platform2.cdn.acedata.cloud/fish/5ade0339-5f11-487e-aacc-06a908271706.mp3",
      "video_url": null,
      "image_id": "22d7d75c-9e0a-47a8-b22b-eea55eaa0c4b",
      "topic": null,
      "seed": "2157878068",
      "sound": "Szczęśliwy",
      "created_at": "2025-12-30T18:09:49.594800Z",
      "model": "FUZZ-2.0 Pro",
      "progress": "100%",
      "state": "succeeded",
      "duration": "172.3849433106576"
    }
  ]
}
```

## Przeróbka wokalu

Jeśli chcesz użyć oficjalnej przeróbki wokalu, możesz ustawić wartość parametru `action` na: `swap_vocals`, następnie musimy dostosować generowanie piosenki na podstawie tekstu, tytułu, stylu.

Przykład wypełnienia wygląda następująco:

<p>
  <img src="https://cdn.acedata.cloud/bk9ino.png" width="500" className="m-auto" />
</p>

Po wypełnieniu automatycznie wygenerowano kod jak poniżej:

<p>
  <img src="https://cdn.acedata.cloud/p5b1vg.png" width="500" className="m-auto" />
</p>

Odpowiedni kod:

```shell theme={null}
curl -X POST 'https://api.acedata.cloud/producer/audios' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "action": "swap_vocals",
  "model": "FUZZ-2.0 Pro",
  "instrumental": false,
  "lyric": "[Zwrotka]\nObudziłem się z słońcem w oczach\nBrak chmur nad głową, tylko niebieskie niebo\nButy na nogach, jestem gotowy do biegu\nKażdy krok czuje się jak naładowany pistolet\n[Refren]\nSzczęśliwe dni nadchodzą\nNiech radość pod moją skórą\nKoniec cieni, koniec kłamstw\nTylko prawda, która mnie unosi\n[Zwrotka 2]\nTańcząc przez ulice miasta\nRytm bije w moim sercu\nObcy się uśmiechają, to się zaraża\nTen świat to scena, wszyscy jesteśmy piosenką\n[Refren]\nSzczęśliwe dni nadchodzą\nNiech radość pod moją skórą\nKoniec cieni, koniec kłamstw\nTylko prawda, która mnie unosi\n[Mostek]\nWyrzuć swoje zmartwienia za drzwi\nNiech zatoną na dnie oceanu\nJesteśmy żywi i to wystarczy\nŻycie jest chaotyczne, ale to miłość\n[Refren]\nSzczęśliwe dni nadchodzą\nNiech radość pod moją skórą\nKoniec cieni, koniec kłamstw\nTylko prawda, która mnie unosi",
  "weirdness": 0.6,
  "lyrics_strength": 0.8,
  "audio_id": "d9ebc609-fb65-4a23-b914-c074747af6a4",
  "custom": true
}'
```

Testowanie dozwolone, wygenerowany efekt jest podobny.

```json theme={null}
{
  "success": true,
  "task_id": "a903ac38-f129-4f85-9181-b1dc5579bd32",
  "trace_id": "9953af52-45e0-4808-bf13-88f0b21262c1",
  "data": [
    {
      "id": "7b2d653b-aaaa-41b0-b737-aee4c4c5693b",
      "title": "Obudziłem się z słońcem w oczach",
      "image_url": "https://cdn.acedata.cloud/e724d7f13d.png",
      "lyric": "[Zwrotka]\nObudziłem się z słońcem w oczach\nNie ma chmur, tylko niebieskie niebo\nButy na nogach, jestem gotowy do biegu\nKażdy krok czuje się jak naładowany pistolet\n[Refren]\nSzczęśliwe dni nadchodzą\nNiech radość pod moją skórą\nNie ma więcej cieni, nie ma więcej kłamstw\nTylko prawda, która unosi mnie wysoko\n[Zwrotka 2]\nTańcząc przez ulice miasta\nRytm bije w moim sercu\nObcy się uśmiechają, to się zaraża\nTen świat to scena, wszyscy jesteśmy piosenką\n[Refren]\nSzczęśliwe dni nadchodzą\nNiech radość pod moją skórą\nNie ma więcej cieni, nie ma więcej kłamstw\nTylko prawda, która unosi mnie wysoko\n[Mostek]\nWyrzuć swoje zmartwienia za drzwi\nNiech zatoną na dnie oceanu\nJesteśmy żywi i to wystarczy\nŻycie jest chaotyczne, ale to miłość\n[Refren]\nSzczęśliwe dni nadchodzą\nNiech radość pod moją skórą\nNie ma więcej cieni, nie ma więcej kłamstw\nTylko prawda, która unosi mnie wysoko",
      "audio_url": "https://platform2.cdn.acedata.cloud/fish/5ade0339-5f11-487e-aacc-06a908271706.mp3",
      "video_url": null,
      "image_id": "7b2d653b-aaaa-41b0-b737-aee4c4c5693b",
      "topic": null,
      "seed": "2484735707",
      "sound": "",
      "created_at": "2025-12-30T18:13:01.349875Z",
      "model": "FUZZ-2.0 Pro",
      "progress": "100%",
      "state": "succeeded",
      "duration": "173.12798185941043"
    }
  ]
}
```

## Oddzielanie tekstu od muzyki

Jeśli chcesz użyć oficjalnej operacji oddzielania tekstu od muzyki, możesz ustawić wartość parametru `action` na: `stems`, następnie musimy przeprowadzić oddzielanie tekstu od muzyki na podstawie ID utworu.

Przykład wypełnienia wygląda następująco:

<p>
  <img src="https://cdn.acedata.cloud/fnpgvc.png" width="500" className="m-auto" />
</p>

Po wypełnieniu automatycznie wygenerowano kod jak poniżej:

<p>
  <img src="https://cdn.acedata.cloud/oq5iv5.png" width="500" className="m-auto" />
</p>

Odpowiedni kod:

```shell theme={null}
curl -X POST 'https://api.acedata.cloud/producer/audios' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "action": "stems",
  "audio_id": "a54609c6-13e2-4176-be0f-4d7eebc68e1f"
}'
```

Testowanie dozwolone, wygenerowany efekt jest podobny.

```json theme={null}
{
    "success": true,
    "task_id": "561ac695-b4aa-47cf-978d-fb7be2b9ebfc",
    "trace_id": "66d0d397-2987-4bde-84fb-a60d0023b217",
    "data": [
        {
            "title": "Obudziłem się z słońcem w oczach",
            "lyric": "",
            "stems_url": "https://platform.cdn.acedata.cloud/producer/561ac695-b4aa-47cf-978d-fb7be2b9ebfc.zip",
            "model": "",
            "progress": "100%",
            "state": "succeeded"
        }
    ]
}
```

## Asynchroniczne wywołanie zwrotne

Ponieważ czas generacji API Producer Audios może być czasami stosunkowo długi, jeśli API nie odpowiada przez dłuższy czas, żądanie HTTP będzie utrzymywać połączenie, co prowadzi do dodatkowego zużycia zasobów systemowych, dlatego to API oferuje również wsparcie dla asynchronicznych wywołań zwrotnych.

Cały proces polega na tym, że klient inicjuje żądanie, dodatkowo określając pole `callback_url`, po zainicjowaniu żądania API, API natychmiast zwraca wynik, zawierający pole `task_id`, które reprezentuje aktualne ID zadania. Gdy zadanie zostanie zakończone, wynik generacji zadania zostanie wysłany do określonego przez klienta `callback_url` w formie POST JSON, w tym również zawierając pole `task_id`, dzięki czemu wynik zadania można powiązać za pomocą ID.

Poniżej przyjrzymy się, jak dokładnie to działa na przykładzie.

Po pierwsze, wywołanie zwrotne Webhook to usługa, która może odbierać żądania HTTP, deweloperzy powinni zastąpić to URL swojego własnego serwera HTTP. W tym celu, dla wygody demonstracji, użyjemy publicznej strony przykładowej Webhook [https://webhook.site/](https://webhook.site/), otwierając tę stronę, można uzyskać URL Webhook, jak pokazano na obrazku:

![](https://cdn.acedata.cloud/tbcnai.png)

Skopiuj ten URL, aby użyć go jako Webhook, przykładowy URL to [https://webhook.site/#!/view/0d73431d-f833-4be4-9276-b6e1690d55c1](https://webhook.site/#!/view/0d73431d-f833-4be4-9276-b6e1690d55c1).

Następnie możemy ustawić pole `callback_url` na powyższy URL Webhook, a także wypełnić odpowiednie parametry, szczegóły jak na obrazku:

<p>
  <img src="https://cdn.acedata.cloud/wuzd4y.png" width="500" className="m-auto" />
</p>

Klikając uruchom, można zauważyć, że natychmiast otrzymujemy wynik, jak poniżej:

```
{
  "task_id": "1a6ac2ad-10f2-4e2b-b500-66ec27fe82ad"
}
```

Po chwili możemy na [https://webhook.site/#!/view/0d73431d-f833-4be4-9276-b6e1690d55c1](https://webhook.site/#!/view/0d73431d-f833-4be4-9276-b6e1690d55c1) zobaczyć wynik generacji zadania, jak pokazano na obrazku:

![](https://cdn.acedata.cloud/k0kf0y.png)

Treść wygląda następująco:

```json theme={null}
{
    "success": true,
    "task_id": "1a6ac2ad-10f2-4e2b-b500-66ec27fe82ad",
    "trace_id": "1da03537-4eb8-410d-b849-43f03085a3bb",
    "data": [
        {
            "id": "1dd08826-478e-43a6-868f-aff5ababac2c",
            "title": "Obudziłem się z słońcem w oczach",
            "image_url": "https://cdn.acedata.cloud/e724d7f13d.png",
            "lyric": "[Zwrotka]\nObudziłem się z słońcem w oczach\nBrak chmur, tylko niebieskie niebo\nButy na nogach, jestem gotowy do biegu\nKażdy krok czuje się jak załadowany pistolet\n[Refren]\nSzczęśliwe dni nadchodzą\nNiech radość pod moją skórą\nBrak cieni, brak kłamstw\nTylko prawda, która mnie unosi\n[Zwrotka 2]\nTańcząc przez ulice miasta\nRytm bije w moim sercu\nObcy się uśmiechają, to się zaraża\nTen świat to scena, wszyscy jesteśmy piosenką\n[Refren]\nSzczęśliwe dni nadchodzą\nNiech radość pod moją skórą\nBrak cieni, brak kłamstw\nTylko prawda, która mnie unosi\n[Most]\nWyrzuć swoje zmartwienia za drzwi\nNiech zatoną na dnie oceanu\nJesteśmy żywi i to wystarczy\nŻycie jest chaotyczne, ale to miłość\n[Refren]\nSzczęśliwe dni nadchodzą\nNiech radość pod moją skórą\nBrak cieni, brak kłamstw\nTylko prawda, która mnie unosi",
            "audio_url": "https://platform2.cdn.acedata.cloud/fish/5ade0339-5f11-487e-aacc-06a908271706.mp3",
            "video_url": null,
            "image_id": "1dd08826-478e-43a6-868f-aff5ababac2c",
            "topic": null,
            "seed": "1490770667",
            "sound": "",
            "created_at": "2025-12-30T18:36:00.994141Z",
            "model": "FUZZ-2.0 Pro",
            "progress": "100%",
            "state": "succeeded",
            "duration": "135.2330158730159"
        }
    ]
}
```

Można zobaczyć, że w wyniku znajduje się pole `task_id`, a inne pola są podobne do powyższych, dzięki czemu można powiązać zadania.

## Obsługa błędów

Podczas wywoływania API, jeśli wystąpi błąd, API zwróci odpowiedni kod błędu i informacje. Na przykład:

* `400 token_mismatched`: Złe żądanie, prawdopodobnie z powodu brakujących lub nieprawidłowych parametrów.
* `400 api_not_implemented`: Złe żądanie, prawdopodobnie z powodu brakujących lub nieprawidłowych parametrów.
* `401 invalid_token`: Nieautoryzowany, nieprawidłowy lub brakujący token autoryzacyjny.
* `429 too_many_requests`: Zbyt wiele żądań, przekroczyłeś limit szybkości.
* `500 api_error`: Błąd wewnętrzny serwera, coś poszło nie tak na serwerze.

### Przykład odpowiedzi błędu

```json theme={null}
{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "pobieranie nie powiodło się"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}
```

## Wnioski

Dzięki temu dokumentowi zrozumiałeś, jak korzystać z API Generacji Dźwięków Producenta, aby generować muzykę na podstawie wprowadzonych słów kluczowych. Mamy nadzieję, że ten dokument pomoże Ci lepiej zintegrować i korzystać z tego API. W razie jakichkolwiek pytań, skontaktuj się z naszym zespołem wsparcia technicznego.
