Przejdź do głównej treści
W tym artykule zostanie przedstawiona instrukcja integracji z Producer Audios Generation API, które umożliwia generowanie oficjalnej muzyki Producer poprzez wprowadzenie niestandardowych parametrów.

Proces składania wniosku

Aby korzystać z Producer Audios Generation API, najpierw przejdź do konsoli Ace Data Cloud, aby uzyskać swój API Token i zachować go na później. Jeśli nie jesteś jeszcze zalogowany ani zarejestrowany, zostaniesz automatycznie przekierowany na stronę logowania, która zaprosi Cię do rejestracji i logowania; po zakończeniu automatycznie powrócisz na bieżącą stronę. Jeden API Token umożliwia wywoływanie wszystkich usług platformy, bez konieczności składania osobnego wniosku dla każdej usługi. Przy pierwszym wniosku otrzymasz bezpłatny limit, aby móc korzystać z bezpłatnego okresu próbnego; gdy limit będzie niewystarczający, możesz doładować wspólne saldo w konsoli.
📘 Pełna dokumentacja: Producer Audios Generation API →

Podstawowe użycie

O jakich piosenkach myślisz, możesz dowolnie wpisać fragment tekstu, na przykład jeśli chcę wygenerować piosenkę o Bożym Narodzeniu, mogę wpisać a song for Christmas, jak pokazano na rysunku:

Można zobaczyć, że tutaj ustawiliśmy Request Headers, w tym:
  • accept: format odpowiedzi, który chcesz otrzymać, tutaj wpisz application/json, czyli format JSON.
  • authorization: klucz do wywoływania API, po złożeniu wniosku można go bezpośrednio wybrać z listy rozwijanej.
Ponadto parametry Request Body obejmują:
  • action: działanie tego zadania generowania muzyki, generowanie piosenki to generate.
  • model: model używany do tworzenia piosenki, obecnie 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 jest generowana w trybie niestandardowym.
  • prompt: podpowiedź w trybie inspiracji.
  • title: informacje o tytule piosenki.
  • audio_id: ID piosenki referencyjnej, używane do operacji takich jak kontynuacja/tworzenie coveru.
  • continue_at: kontynuowanie piosenki od określonej liczby sekund.
  • replace_section_start/replace_section_end: czas rozpoczęcia i zakończenia zastępowanego fragmentu, w sekundach.
  • lyrics_strength: siła tekstu piosenki, określa stopień wpływu tekstu na generowanie audio, opcjonalnie od 0 do 1, domyślnie 0.7.
  • sound_strength: siła podpowiedzi 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ń nietypowości stylu, opcjonalnie od 0 do 1, domyślnie 0.5
  • callback_url: URL, pod który należy zwrócić wynik wywołania zwrotnego.
  • async: opcjonalnie, gdy ustawione na true, interfejs natychmiast zwraca task_id, bez potrzeby podawania callback_url, a następnie wynik jest uzyskiwany przez odpytywanie odpowiedniego interfejsu zapytań o zadania.
  • instrumental: czy jest to tryb bez tekstu piosenki.
Po wybraniu można zauważyć, że po prawej stronie wygenerowano również odpowiedni kod, jak pokazano na rysunku:

Kliknij przycisk „Try”, aby przeprowadzić test; jak pokazano na powyższym rysunku, otrzymujemy tutaj następujący wynik:
Wynik zwrotny zawiera wiele pól, opisanych poniżej:
  • success, status zadania generowania muzyki w tym momencie.
    • data, wynik tego zadania muzycznego
      • id, ID zadania generowania muzyki w tym momencie.
      • sound, podpowiedź zadania generowania muzyki w tym momencie.
      • seed, wartość ziarna zadania generowania muzyki w tym momencie.
      • audio_url, link audio zadania generowania muzyki w tym momencie.
      • image_url, link do okładki zadania generowania muzyki w tym momencie.
      • image_id, ID okładki zadania generowania muzyki w tym momencie.
      • state, status zadania generowania muzyki w tym momencie.
      • duration, informacje o długości tej muzyki.
      • progress, wartość postępu tego zadania muzycznego.
      • model, informacje o modelu użytym w zadaniu generowania muzyki w tym momencie.
      • lyric, informacje o tekście piosenki w zadaniu generowania muzyki w tym momencie.
Można zobaczyć, że otrzymaliśmy informacje o muzyce, którą chcemy wygenerować; wystarczy uzyskać wygenerowaną muzykę Producer na podstawie adresu linku do muzyki w data w wyniku. Ponadto, jeśli chcesz wygenerować odpowiedni kod integracji, możesz go bezpośrednio skopiować, na przykład kod CURL wygląda następująco:

Niestandardowe generowanie

Jeśli chcesz niestandardowo wygenerować tekst piosenki, możesz wprowadzić tekst: W tym momencie do pola lyric można przekazać treść podobną do poniższej:
Następnie, aby niestandardowo wygenerować piosenkę na podstawie tekstu, tytułu i stylu, można określić następującą treść:
  • lyric:tekst słów piosenki
  • custom:ustaw na true, oznacza niestandardowe generowanie; domyślna wartość tego parametru to false, co oznacza generowanie przy użyciu prompt.
  • title:tytuł piosenki.
Przykład wypełnienia jest następujący:

Po wypełnieniu kod został automatycznie wygenerowany w następujący sposób:

Odpowiedni kod:
Test jest dozwolony, a wygenerowany efekt jest podobny.

Cover piosenki

Jeśli chcesz wykonać operację coveru na już wygenerowanej piosence, możesz wprowadzić wygenerowaną powyżej piosenkę do wykonania coveru; następnie będziemy niestandardowo generować piosenkę na podstawie słów i tytułu. Jeśli chcesz kontynuować wykonywanie coveru piosenki przesłanej przez siebie, możesz ustawić parametr action na upload_cover oraz wprowadzić ID piosenki przesłanej niestandardowo, dla której chcesz kontynuować wykonywanie coveru. ID piosenki można uzyskać za pomocą Producer Upload API, jak pokazano na poniższym obrazku:

Można wtedy określić następującą zawartość:
  • action:działanie dla tego zadania piosenki, obecnie obsługiwane są: generate、cover、extend、upload_cover、upload_extend、replace_section、swap_vocals、swap_instrumentals、variation; dla tego coveru używany jest parametr cover.
  • lyric:tekst słów piosenki
  • title:tytuł piosenki.
  • custom:czy generować w trybie niestandardowym, domyślnie jest false.
  • audio_id:ID piosenki, dla której ma zostać wykonany cover.
Przykład wypełnienia jest następujący:

Po wypełnieniu kod został automatycznie wygenerowany w następujący sposób:

Odpowiedni kod:
Test jest dozwolony, a wygenerowany efekt jest podobny.

Kontynuacja utworu

Jeśli chcesz kontynuować utwór, musimy przekazać wartość parametru action jako: extend, następnie możemy niestandardowo wygenerować utwór na podstawie tekstu piosenki, tytułu i stylu. Jeśli chcesz dalej kontynuować własnoręcznie przesłany utwór, możesz ustawić parametr action na upload_extend oraz wprowadzić ID własnoręcznie przesłanego utworu, który chcesz dalej kontynuować. ID utworu można uzyskać za pomocą Producer Upload API, jak pokazano poniżej:

Przykład wypełnienia jest następujący:

Po wypełnieniu automatycznie generowany jest następujący kod:

Odpowiedni kod:
Test jest dozwolony, a wygenerowany efekt jest podobny.

Wariacja muzyczna

Jeśli chcesz wygenerować nową muzykę o podobnym efekcie na podstawie wartości seed poprzedniego utworu, musimy przekazać wartość parametru action jako: variation, następnie możemy niestandardowo wygenerować nową muzykę o podobnym efekcie. Przykład wypełnienia jest następujący:

Po wypełnieniu automatycznie generowany jest następujący kod:

Odpowiedni kod:
Test jest dozwolony, wygenerowany efekt jest podobny.

Zastępowanie fragmentu

Jeśli chcesz zastąpić fragment utworu, musimy przekazać wartość parametru action jako: replace_section, następnie musimy niestandardowo wygenerować utwór na podstawie tekstu, tytułu. Jeśli chcesz dalej zastępować fragmenty w samodzielnie przesłanym utworze, możesz ustawić parametr action na upload_replace_section oraz wprowadzić ID samodzielnie przesłanego utworu, który wymaga dalszej kontynuacji; ID utworu uzyskuje się za pomocą Producer Upload API, jak pokazano poniżej:

Przykład wypełnienia jest następujący:

Po wypełnieniu kod jest generowany automatycznie w następujący sposób:

Odpowiedni kod:
Test jest dozwolony, wygenerowany efekt jest podobny.

Wersja z zamianą akompaniamentu

Jeśli chcesz użyć oficjalnej operacji wersji z zamianą akompaniamentu, możesz ustawić wartość parametru action na: swap_instrumentals, następnie możemy niestandardowo wygenerować utwór na podstawie tekstu i tytułu. Przykład wypełnienia jest następujący:

Po wypełnieniu kod jest automatycznie generowany w następujący sposób:

Odpowiedni kod:
Test jest dozwolony, a wygenerowany efekt jest podobny.

Wersja z zamianą wokali

Jeśli chcesz użyć oficjalnej operacji wersji z zamianą wokali, możesz ustawić wartość parametru action na: swap_vocals, następnie możemy niestandardowo wygenerować utwór na podstawie tekstu, tytułu i stylu. Przykład wypełnienia jest następujący:

Po wypełnieniu kod jest automatycznie generowany w następujący sposób:

Odpowiedni kod:
Test jest dozwolony, a wygenerowany efekt jest podobny.

Separacja tekstu i muzyki

Jeśli chcesz użyć oficjalnej operacji separacji tekstu i muzyki, możesz ustawić wartość parametru action na: stems, następnie wykonamy separację tekstu i muzyki na podstawie ID utworu. Przykład wypełnienia jest następujący:

Po wypełnieniu kod jest automatycznie generowany w następujący sposób:

Odpowiadający kod:
Test jest dozwolony, a wygenerowany efekt jest podobny.

Asynchroniczne wywołanie zwrotne

Ponieważ czas generowania przez Producer Audios Generation API może czasami być stosunkowo długi, jeśli API nie odpowiada przez długi czas, żądanie HTTP będzie stale utrzymywać połączenie, co prowadzi do dodatkowego zużycia zasobów systemowych, dlatego to API zapewnia również obsługę asynchronicznego wywołania zwrotnego. Ogólny proces jest następujący: gdy klient inicjuje żądanie, dodatkowo określa pole callback_url, po zainicjowaniu przez klienta żądania API, API natychmiast zwróci wynik zawierający informację o polu task_id, które reprezentuje bieżące ID zadania. Po ukończeniu zadania wynik zadania generowania zostanie wysłany w formie POST JSON na callback_url określony przez klienta, który również zawiera pole task_id, dzięki czemu wyniki zadań mogą zostać powiązane za pomocą ID. Poniżej na przykładzie poznamy szczegółowo, jak to zrobić. Najpierw wywołanie zwrotne Webhook jest usługą, która może odbierać żądania HTTP, a programista powinien zastąpić ją adresem URL własnego serwera HTTP. Aby ułatwić demonstrację, użyto tutaj publicznej przykładowej strony Webhook https://webhook.site/, po otwarciu tej strony można uzyskać URL Webhook, jak pokazano na rysunku: Skopiuj ten URL, aby użyć go jako Webhooka, przykładem tutaj jest https://webhook.site/#!/view/0d73431d-f833-4be4-9276-b6e1690d55c1。 Następnie możemy ustawić pole callback_url na powyższy URL Webhook, jednocześnie wypełniając odpowiednie parametry, konkretna zawartość jest pokazana na rysunku:

Kliknij uruchom, można zauważyć, że wynik zostanie uzyskany natychmiast, jak poniżej:
Po krótkiej chwili możemy zaobserwować wynik zadania generowania na https://webhook.site/#!/view/0d73431d-f833-4be4-9276-b6e1690d55c1, jak pokazano na rysunku: Treść jest następująca:
Można zauważyć, że w wyniku znajduje się pole task_id, a pozostałe pola są podobne do tych opisanych powyżej; za pomocą tego pola można realizować powiązanie zadań.

Obsługa błędów

Podczas wywoływania API, jeśli wystąpi błąd, API zwróci odpowiedni kod błędu i informację. Na przykład:
  • 400 token_mismatched:Nieprawidłowe żądanie, prawdopodobnie z powodu brakujących lub nieprawidłowych parametrów.
  • 400 api_not_implemented:Nieprawidłowe żądanie, prawdopodobnie z powodu brakujących lub nieprawidłowych parametrów.
  • 401 invalid_token:Brak autoryzacji, nieprawidłowy lub brakujący token autoryzacyjny.
  • 429 too_many_requests:Zbyt wiele żądań, przekroczono limit częstotliwości.
  • 500 api_error:Wewnętrzny błąd serwera, coś poszło nie tak na serwerze.

Przykład odpowiedzi z błędem

Wnioski

Dzięki temu dokumentowi dowiedziałeś się już, jak korzystać z Producer Audios Generation API, aby generować muzykę poprzez wprowadzanie słów kluczowych. Mamy nadzieję, że ten dokument pomoże Ci lepiej zintegrować i używać tego API. W razie jakichkolwiek pytań skontaktuj się w dowolnym momencie z naszym zespołem wsparcia technicznego.