Zum Hauptinhalt springen
Dieser Artikel stellt eine Anleitung zur Anbindung der Producer Audios Generation API vor, mit der durch die Eingabe benutzerdefinierter Parameter offizielle Musik von Producer generiert werden kann.

Antragsprozess

Um die Producer Audios Generation API zu verwenden, rufen Sie zunächst die Ace Data Cloud-Konsole auf, um Ihren API-Token zu erhalten, und bewahren Sie ihn zur späteren Verwendung auf. Wenn Sie noch nicht angemeldet oder registriert sind, werden Sie automatisch zur Anmeldeseite weitergeleitet, um sich zu registrieren und anzumelden. Nach Abschluss kehren Sie automatisch zur aktuellen Seite zurück. Ein API-Token kann alle Dienste der Plattform aufrufen, ohne dass Sie jeden Dienst einzeln beantragen müssen. Beim ersten Antrag erhalten Sie ein kostenloses Guthaben, das Sie kostenlos ausprobieren können; wenn das Guthaben nicht ausreicht, können Sie in der Konsole ein allgemeines Guthaben aufladen.
📘 Vollständige Dokumentation: Producer Audios Generation API →

Grundlegende Verwendung

Welche Songs Sie sich auch wünschen, Sie können beliebig einen Text eingeben. Wenn ich zum Beispiel einen Song über Weihnachten generieren möchte, kann ich a song for Christmas eingeben, wie in der Abbildung gezeigt:

Hier können wir sehen, dass wir Request Headers festgelegt haben, darunter:
  • accept: In welchem Format das Antwortergebnis empfangen werden soll; hier wird application/json eingetragen, also das JSON-Format.
  • authorization: Der Schlüssel zum Aufrufen der API, der nach dem Antrag direkt über das Dropdown ausgewählt werden kann.
Zusätzlich umfassen die Parameter des Request Body:
  • action: Das Verhalten dieser Musikgenerierungsaufgabe; zum Generieren eines Songs ist es generate.
  • model: Das zum Erstellen des Songs verwendete Modell, derzeit hauptsächlich: 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: Der Liedtext des Songs.
  • custom: Ob der Song auf benutzerdefinierte Weise generiert wird.
  • prompt: Der Prompt im Inspirationsmodus.
  • title: Informationen zum Songtitel.
  • audio_id: Referenz-Song-ID, für Vorgänge wie Fortsetzung/Neuinterpretation.
  • continue_at: Den Song ab der angegebenen Sekunde fortsetzen.
  • replace_section_start/replace_section_end: Start- und Endzeit des zu ersetzenden Abschnitts, in Sekunden.
  • lyrics_strength: Liedtextstärke, die den Einfluss des Liedtexts auf die Audiogenerierung angibt, optional zwischen 0 und 1, Standardwert 0,7.
  • sound_strength: Stärke des Audio-Prompts, optional zwischen 0,2 und 1, Standardwert 0,7.
  • cover_strength: Stärke der Coverversion zwischen 0,2 und 1, Standardwert 1.
  • weirdness: Grad der stilistischen Eigenart, optional zwischen 0 und 1, Standardwert 0,5.
  • callback_url: Die URL, an die das Ergebnis zurückgerufen werden soll.
  • async: Optional; wenn auf true gesetzt, gibt die Schnittstelle sofort task_id zurück, ohne dass callback_url angegeben werden muss. Anschließend wird das Ergebnis durch Abfragen der entsprechenden Task-Abfrageschnittstelle per Polling abgerufen.
  • instrumental: Ob es sich um einen Modus ohne Liedtext handelt.
Nach der Auswahl können Sie feststellen, dass auf der rechten Seite ebenfalls der entsprechende Code generiert wurde, wie in der Abbildung gezeigt:

Klicken Sie auf die Schaltfläche „Try“, um einen Test durchzuführen. Wie in der obigen Abbildung gezeigt, erhalten wir hier das folgende Ergebnis:
Das zurückgegebene Ergebnis enthält mehrere Felder, die wie folgt vorgestellt werden:
  • success, der Status der aktuellen Musikgenerierungsaufgabe.
    • data, das Ergebnis dieser Musikaufgabe.
      • id, die ID der aktuellen Musikgenerierungsaufgabe.
      • sound, der Prompt der aktuellen Musikgenerierungsaufgabe.
      • seed, der Seed-Wert der aktuellen Musikgenerierungsaufgabe.
      • audio_url, der Audio-Link der aktuellen Musikgenerierungsaufgabe.
      • image_url, der Cover-Link der aktuellen Musikgenerierungsaufgabe.
      • image_id, die Cover-ID der aktuellen Musikgenerierungsaufgabe.
      • state, der Status der aktuellen Musikgenerierungsaufgabe.
      • duration, die Längeninformationen der aktuellen Musik.
      • progress, der Fortschrittswert der aktuellen Musikaufgabe.
      • model, die Modellinformationen, die von der aktuellen Musikgenerierungsaufgabe verwendet werden.
      • lyric, die Liedtextinformationen der aktuellen Musikgenerierungsaufgabe.
Wir können sehen, dass wir die Informationen zur gewünschten generierten Musik erhalten haben. Wir müssen nur die Producer-Musik über die Musik-Link-Adresse in data des Ergebnisses abrufen. Wenn Sie außerdem den entsprechenden Anbindungscode generieren möchten, können Sie ihn direkt kopieren und generieren, zum Beispiel lautet der CURL-Code wie folgt:

Benutzerdefinierte Generierung

Wenn Sie Liedtexte benutzerdefiniert generieren möchten, können Sie Liedtexte eingeben: Zu diesem Zeitpunkt kann das Feld lyric ähnliche Inhalte wie die folgenden übergeben:
Als Nächstes möchten wir den Song anhand von Liedtext, Titel und Stil benutzerdefiniert generieren und können die folgenden Inhalte angeben:
  • lyric: Liedtext
  • custom: Auf true setzen, steht für benutzerdefinierte Generierung; dieser Parameter ist standardmäßig false, was für die Generierung mit prompt steht.
  • title: Der Titel des Liedes.
Das Ausfüllbeispiel lautet wie folgt:

Nach dem Ausfüllen wird der folgende Code automatisch generiert:

Der entsprechende Code:
Der Test ist erlaubt, und der generierte Effekt ist ähnlich.

Songs covern

Wenn Sie einen bereits generierten Song covern möchten, können Sie den oben generierten Song für das Cover verwenden; als Nächstes werden wir basierend auf Liedtext und Titel einen Song benutzerdefiniert generieren. Wenn Sie einen selbst hochgeladenen Song weiter covern möchten, können Sie den Parameter action auf upload_cover setzen und die ID des selbst hochgeladenen Songs eingeben, der weiter gecovert werden soll. Die Song-ID wird über die Producer Upload API abgerufen, wie in der folgenden Abbildung gezeigt:

Dann können Sie folgende Inhalte angeben:
  • action: Das Verhalten dieser Song-Aufgabe, derzeit unterstützt: generate, cover, extend, upload_cover, upload_extend, replace_section, swap_vocals, swap_instrumentals, variation; für dieses Cover wird der Parameter cover verwendet.
  • lyric: Liedtext
  • title: Der Titel des Liedes.
  • custom: Ob die Generierung im benutzerdefinierten Modus erfolgt, standardmäßig ist false.
  • audio_id: Die Song-ID des zu covernden Songs.
Das Ausfüllbeispiel lautet wie folgt:

Nach dem Ausfüllen wird der folgende Code automatisch generiert:

Der entsprechende Code:
Der Test ist erlaubt, und der generierte Effekt ist ähnlich.

Lied fortsetzen

Wenn Sie ein Lied fortsetzen möchten, müssen wir den Wert des Parameters action auf extend setzen. Anschließend können wir basierend auf Liedtext, Titel und Stil ein Lied individuell generieren. Wenn Sie ein selbst hochgeladenes Lied weiter fortsetzen möchten, können Sie den Parameter action auf upload_extend setzen und die ID des selbst hochgeladenen Liedes eingeben, das weiter fortgesetzt werden soll. Die Lied-ID erhalten Sie über die Producer Upload API, wie in der folgenden Abbildung dargestellt:

Das Ausfüllbeispiel lautet wie folgt:

Nach dem Ausfüllen wird der folgende Code automatisch generiert:

Der entsprechende Code:
Der Test ist zulässig, und der generierte Effekt ist ähnlich.

Musikvariation

Wenn Sie anhand des Seed-Werts der vorherigen Musik eine neue Musik mit einem ähnlichen Effekt generieren möchten, müssen wir den Wert des Parameters action auf variation setzen. Anschließend können Sie eine neue Musik mit einem ähnlichen Effekt individuell generieren. Das Ausfüllbeispiel lautet wie folgt:

Nach dem Ausfüllen wird der folgende Code automatisch generiert:

Der entsprechende Code:
Der Test ist zulässig, der generierte Effekt ist ähnlich.

Abschnitt ersetzen

Wenn Sie einen Abschnitt eines Liedes ersetzen möchten, müssen wir den Wert des Parameters action auf replace_section setzen. Anschließend passen wir die Generierung des Liedes anhand von Liedtext und Titel an. Wenn Sie einen Abschnitt eines selbst hochgeladenen Liedes weiter ersetzen möchten, können Sie den Parameter action auf upload_replace_section setzen und die ID des selbst hochgeladenen Liedes eingeben, das weiter fortgesetzt werden soll. Die Lied-ID wird über die Producer Upload API abgerufen, wie in der folgenden Abbildung gezeigt:

Das Ausfüllbeispiel lautet wie folgt:

Nach dem Ausfüllen wird der folgende Code automatisch generiert:

Der entsprechende Code:
Der Test ist zulässig, der generierte Effekt ist ähnlich.

Instrumental-Remake

Wenn Sie die offizielle Instrumental-Remake-Funktion verwenden möchten, können Sie den Wert des Parameters action auf swap_instrumentals setzen. Anschließend können wir basierend auf Liedtext und Titel einen Song individuell generieren. Das Ausfüllbeispiel lautet wie folgt:

Nach dem Ausfüllen wird der folgende Code automatisch generiert:

Der entsprechende Code:
Der Test ist zulässig, und das generierte Ergebnis ist ähnlich.

Gesangs-Remake

Wenn Sie die offizielle Gesangs-Remake-Funktion verwenden möchten, können Sie den Wert des Parameters action auf swap_vocals setzen. Anschließend können wir basierend auf Liedtext, Titel und Stil einen Song individuell generieren. Das Ausfüllbeispiel lautet wie folgt:

Nach dem Ausfüllen wird der folgende Code automatisch generiert:

Der entsprechende Code:
Der Test ist zulässig, und das generierte Ergebnis ist ähnlich.

Trennung von Liedtext und Musik

Wenn Sie die offizielle Trennung von Liedtext und Musik verwenden möchten, können Sie den Parameterwert von action auf stems setzen. Als Nächstes führen wir die Trennung von Liedtext und Musik anhand der Song-ID durch. Das Ausfüllbeispiel lautet wie folgt:

Nach dem Ausfüllen wird automatisch folgender Code generiert:

Der entsprechende Code:
Der Test ist zulässig, und der generierte Effekt ist ähnlich.

Asynchroner Rückruf

Da die Generierungszeit der Producer Audios Generation API manchmal relativ lang sein kann, bleibt die HTTP-Anfrage bei längerer Nichtreaktion der API dauerhaft verbunden, was zu zusätzlichem Verbrauch von Systemressourcen führt. Daher bietet diese API auch Unterstützung für asynchrone Rückrufe. Der gesamte Ablauf ist: Wenn der Client eine Anfrage startet, gibt er zusätzlich ein Feld callback_url an. Nachdem der Client eine API-Anfrage gestartet hat, gibt die API sofort ein Ergebnis zurück, das ein Feld task_id enthält, welches die aktuelle Aufgaben-ID darstellt. Nachdem die Aufgabe abgeschlossen ist, wird das Ergebnis der Generierungsaufgabe in Form von POST JSON an die vom Client angegebene callback_url gesendet, wobei es ebenfalls das Feld task_id enthält, sodass die Aufgabenergebnisse über die ID zugeordnet werden können. Im Folgenden erfahren wir anhand eines Beispiels, wie genau vorzugehen ist. Zunächst ist der Webhook-Rückruf ein Dienst, der HTTP-Anfragen empfangen kann. Entwickler sollten ihn durch die URL ihres selbst eingerichteten HTTP-Servers ersetzen. Zur einfachen Demonstration wird hier eine öffentliche Webhook-Beispielwebsite https://webhook.site/ verwendet. Durch Öffnen dieser Website erhalten Sie eine Webhook-URL, wie in der Abbildung gezeigt: Kopieren Sie diese URL, dann kann sie als Webhook verwendet werden. Das Beispiel hier ist https://webhook.site/#!/view/0d73431d-f833-4be4-9276-b6e1690d55c1. Als Nächstes können wir das Feld callback_url auf die oben genannte Webhook-URL setzen und gleichzeitig die entsprechenden Parameter eingeben. Der konkrete Inhalt ist in der Abbildung dargestellt:

Klicken Sie auf Ausführen. Sie werden feststellen, dass sofort ein Ergebnis wie folgt erhalten wird:
Nach einem kurzen Moment können wir unter https://webhook.site/#!/view/0d73431d-f833-4be4-9276-b6e1690d55c1 das Ergebnis der Generierungsaufgabe beobachten, wie in der Abbildung gezeigt: Der Inhalt lautet wie folgt:
Wie zu sehen ist, enthält das Ergebnis ein Feld task_id, die anderen Felder sind alle ähnlich wie oben. Über dieses Feld kann die Zuordnung der Aufgabe realisiert werden.

Fehlerbehandlung

Wenn bei der API-Aufruf ein Fehler auftritt, gibt die API den entsprechenden Fehlercode und die entsprechenden Informationen zurück. Zum Beispiel:
  • 400 token_mismatched: Ungültige Anfrage, möglicherweise aufgrund fehlender oder ungültiger Parameter.
  • 400 api_not_implemented: Ungültige Anfrage, möglicherweise aufgrund fehlender oder ungültiger Parameter.
  • 401 invalid_token: Nicht autorisiert, ungültiges oder fehlendes Autorisierungstoken.
  • 429 too_many_requests: Zu viele Anfragen, Sie haben das Ratenlimit überschritten.
  • 500 api_error: Interner Serverfehler, auf dem Server ist etwas schiefgelaufen.

Beispiel für eine Fehlerantwort

Fazit

Durch dieses Dokument haben Sie bereits erfahren, wie Sie die Producer Audios Generation API verwenden können, um durch die Eingabe von Prompts Musik zu generieren. Wir hoffen, dass dieses Dokument Ihnen helfen kann, diese API besser anzubinden und zu verwenden. Falls Sie Fragen haben, kontaktieren Sie jederzeit unser technisches Support-Team.