Zum Hauptinhalt springen
Dieser Artikel beschreibt eine Integrationsanleitung für die Fish Audios Generation API, die es ermöglicht, durch Eingabe von Stichwörtern die eigene Stimme zu klonen.

Antragsprozess

Um die API zu nutzen, müssen Sie zunächst auf die entsprechende Seite der Fish Audios Generation API gehen und den entsprechenden Dienst beantragen. Nach dem Betreten der Seite klicken Sie auf die Schaltfläche „Acquire“, wie im Bild gezeigt: Wenn Sie noch nicht angemeldet oder registriert sind, werden Sie automatisch zur Anmeldeseite weitergeleitet, um sich zu registrieren und anzumelden. Nach der Anmeldung werden Sie automatisch zur aktuellen Seite zurückgeleitet. Bei der ersten Antragstellung gibt es ein kostenloses Kontingent, mit dem Sie die API kostenlos nutzen können.

Grundlegende Nutzung

Zunächst sollten Sie die grundlegende Nutzung verstehen, indem Sie die Stichwörter prompt, die Klonaktion action, die Stimmen-ID voice_id und das Modell model eingeben, um das verarbeitete Ergebnis zu erhalten. Zuerst müssen Sie ein einfaches action-Feld übergeben, dessen Wert generate ist. Dann müssen wir auch das Modell model eingeben, derzeit gibt es hauptsächlich das Modell fish-tts, die genauen Inhalte sind wie folgt:

Hier sehen wir, dass wir die Request-Header festgelegt haben, einschließlich:
  • accept: In welchem Format Sie die Antwort erhalten möchten, hier eingetragen als application/json, also im JSON-Format.
  • authorization: Der Schlüssel zur Nutzung der API, nach der Beantragung können Sie ihn direkt aus der Dropdown-Liste auswählen.
Außerdem haben wir den Request-Body festgelegt, einschließlich:
  • model: Das Modell zum Klonen der Stimme, hauptsächlich das Modell fish-tts.
  • action: Die Aktion dieser Sprachklonaufgabe.
  • prompt: Das Stichwort, das geklont werden soll.
  • voice_id: Die Stimmen-ID, die zum Klonen verwendet wird.
  • callback_url: Die URL, an die das Ergebnis zurückgegeben werden soll.
Nach der Auswahl können Sie feststellen, dass auf der rechten Seite auch der entsprechende Code generiert wurde, wie im Bild gezeigt:

Klicken Sie auf die Schaltfläche „Try“, um einen Test durchzuführen, wie im obigen Bild gezeigt, und wir erhalten folgendes Ergebnis:
{
  "success": true,
  "task_id": "5872ab00-3cf4-4040-a798-8510aaa16756",
  "trace_id": "5eda3694-448a-4b72-af33-2acb3851ffe1",
  "data": [
    {
      "audio_url": "https://platform.r2.fish.audio/task/8a72ff9840234006a9f74cb2fa04f978.mp3"
    }
  ]
}
Die Rückgabe hat mehrere Felder, die wie folgt beschrieben werden:
  • success, der Status der Klonstimme-Aufgabe.
    • data, das Ergebnis der Klonstimme-Aufgabe
      • audio_url, der Audio-Link des geklonten Stimmauftrags.
Wir sehen, dass wir zufriedenstellende Stimminformationen erhalten haben, und wir müssen nur die Musiklinkadresse aus dem data-Ergebnis abrufen, um die geklonte Stimme zu erhalten. Wenn Sie außerdem den entsprechenden Integrationscode generieren möchten, können Sie ihn direkt kopieren, zum Beispiel ist der CURL-Code wie folgt:
curl -X POST 'https://api.acedata.cloud/fish/audios' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "action": "speech",
  "prompt": "a white siamese cat",
  "model": "fish-tts",
  "voice_id": "d7900c21663f485ab63ebdb7e5905036"
}'

Asynchrone Rückrufe

Da die Generierungszeit der Fish Audios Generation API relativ lang ist, etwa 1-2 Minuten, bleibt die HTTP-Anfrage bei längerer Nichtreaktion verbunden, was zu einem zusätzlichen Verbrauch von Systemressourcen führt. Daher bietet diese API auch Unterstützung für asynchrone Rückrufe. Der gesamte Prozess ist: Wenn der Client die Anfrage stellt, gibt er zusätzlich ein callback_url-Feld an. Nach der API-Anfrage gibt die API sofort ein Ergebnis zurück, das ein task_id-Feld enthält, das die aktuelle Aufgaben-ID darstellt. Wenn die Aufgabe abgeschlossen ist, wird das Ergebnis der Generierungsaufgabe in Form von POST JSON an die vom Client angegebene callback_url gesendet, wobei auch das task_id-Feld enthalten ist, sodass das Aufgabenergebnis über die ID verknüpft werden kann. Lassen Sie uns anhand eines Beispiels verstehen, wie dies konkret funktioniert. Zunächst ist der Webhook-Rückruf ein Dienst, der HTTP-Anfragen empfangen kann. Entwickler sollten ihn durch die URL ihres eigenen HTTP-Servers ersetzen. Zur Vereinfachung der Demonstration verwenden wir eine öffentliche Webhook-Beispielseite https://webhook.site/, auf dieser Seite können Sie eine Webhook-URL erhalten, wie im Bild gezeigt: Kopieren Sie diese URL, um sie als Webhook zu verwenden. Das Beispiel hier ist https://webhook.site/4815f79f-a40f-4078-ac85-1cc126b6bb34. Als nächstes können wir das Feld callback_url auf die oben genannte Webhook-URL setzen und die entsprechenden Parameter eingeben, die genauen Inhalte sind wie im Bild gezeigt:

Klicken Sie auf Ausführen, und Sie werden sofort ein Ergebnis erhalten, wie folgt:
{
  "task_id": "2725a2d3-f87e-4905-9c53-9988d5a7b2f5"
}
Nach kurzer Wartezeit können wir auf https://webhook.site/4815f79f-a40f-4078-ac85-1cc126b6bb34 das Ergebnis der Generierungsaufgabe beobachten, wie im Bild gezeigt: Der Inhalt ist wie folgt:
{
    "success": true,
    "task_id": "2725a2d3-f87e-4905-9c53-9988d5a7b2f5",
    "trace_id": "e2d308bc-4df8-4c69-9369-a60f3c54f2b3",
    "data": [
        {
            "audio_url": "https://platform.r2.fish.audio/task/b627c2f7d38a4083a837570ba6d0962f.mp3"
        }
    ]
}
Wir sehen, dass im Ergebnis ein task_id-Feld vorhanden ist, und die anderen Felder sind ähnlich wie oben beschrieben. Über dieses Feld kann die Aufgabe verknüpft werden.

Fehlerbehandlung

Wenn beim Aufruf der API ein Fehler auftritt, gibt die API den entsprechenden Fehlercode und die 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: Unbefugt, ungültiger oder fehlender Autorisierungstoken.
  • 429 too_many_requests: Zu viele Anfragen, Sie haben das Kontingent überschritten.
  • 500 api_error: Interner Serverfehler, etwas ist auf dem Server schiefgelaufen.

Beispiel für eine Fehlerantwort

{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "fetch failed"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}

Fazit

Durch dieses Dokument haben Sie erfahren, wie Sie die Fish Audios Generation API verwenden können, um durch Eingabe von Stichwörtern Stimmen zu klonen. Wir hoffen, dass dieses Dokument Ihnen hilft, die API besser zu integrieren und zu nutzen. Bei Fragen können Sie sich jederzeit an unser technisches Support-Team wenden.