> ## 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.

# Productor Audios Generation API Integración

> Producer Music Generation API guide - Ace Data Cloud

Este documento presentará una guía de integración para el Productor Audios Generation API, que permite generar música oficial del Productor mediante la entrada de parámetros personalizados.

## Proceso de Solicitud

Para utilizar el Productor Audios Generation API, primero dirígete a [Ace Data Cloud Console](https://platform.acedata.cloud/console/applications) para obtener tu API Token, que debes guardar para uso futuro.

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

Si aún no has iniciado sesión o registrado, serás redirigido automáticamente a la página de inicio de sesión que te invitará a registrarte e iniciar sesión; una vez completado, regresarás automáticamente a la página actual.

**Un API Token es suficiente para acceder a todos los servicios de la plataforma, no es necesario solicitar uno para cada servicio.** La primera solicitud incluirá un crédito gratuito para que puedas probarlo; si el crédito se agota, puedes recargar el saldo general en [la consola](https://platform.acedata.cloud/console/coin).

> 📘 Documentación completa: [Productor Audios Generation API →](https://platform.acedata.cloud/documents/producer-audios)

## Uso Básico

Si tienes alguna canción en mente, puedes ingresar cualquier texto, por ejemplo, si quiero generar una canción sobre la Navidad, puedo ingresar `a song for Christmas`, como se muestra en la imagen:

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

Aquí podemos ver que hemos configurado los Request Headers, que incluyen:

* `accept`: el formato de respuesta que deseas recibir, aquí se establece como `application/json`, es decir, formato JSON.
* `authorization`: la clave para llamar a la API, que puedes seleccionar directamente después de solicitarla.

Además, los parámetros del Request Body incluyen:

* `action`: la acción de esta tarea de generación musical, para generar una canción es `generate`.
* `model`: el modelo utilizado para crear la canción, actualmente hay: **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`: el contenido de la letra de la canción.
* `custom`: si se generará la canción de manera personalizada.
* `prompt`: la palabra clave en modo de inspiración.
* `title`: información del título de la canción.
* `audio_id`: ID de la canción de referencia, utilizado para continuar o replicar.
* `continue_at`: continuar la canción desde un número de segundos específico.
* `replace_section_start`/`replace_section_end`: tiempo de inicio y fin del fragmento a reemplazar, en segundos.
* `lyrics_strength`: fuerza de la letra, que indica el grado de influencia de la letra en la generación de audio, seleccionable entre 0-1, por defecto 0.7.
* `sound_strength`: fuerza de la palabra clave de audio, seleccionable entre 0.2-1, por defecto 0.7.
* `cover_strength`: fuerza de la versión, entre 0.2-1, por defecto 1.
* `weirdness`: grado de peculiaridad del estilo, seleccionable entre 0-1, por defecto 0.5.
* `callback_url`: URL donde se necesita el resultado de la llamada.
* `async`: opcional, si se establece en `true`, la interfaz devuelve inmediatamente `task_id`, sin necesidad de proporcionar `callback_url`, y luego se puede consultar el resultado mediante la interfaz de consulta de tareas correspondiente.
* `instrumental`: si es un modo sin letra.

Después de seleccionar, puedes ver que a la derecha también se ha generado el código correspondiente, como se muestra en la imagen:

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

Haz clic en el botón "Try" para realizar la prueba, como se muestra en la imagen anterior, y obtendremos el siguiente resultado:

```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"
    }
  ]
}
```

El resultado devuelto contiene varios campos, que se describen a continuación:

* `success`, el estado de la tarea de generación musical en este momento.
  * `data`, el resultado de esta tarea musical.
    * `id`, el ID de la tarea de generación musical en este momento.
    * `sound`, la palabra clave de la tarea de generación musical en este momento.
    * `seed`, el valor de semilla de la tarea de generación musical en este momento.
    * `audio_url`, el enlace de audio de la tarea de generación musical en este momento.
    * `image_url`, el enlace de la portada de la tarea de generación musical en este momento.
    * `image_id`, el ID de la portada de la tarea de generación musical en este momento.
    * `state`, el estado de la tarea de generación musical en este momento.
    * `duration`, la duración de la música en este momento.
    * `progress`, el valor de progreso de la tarea musical en este momento.
    * `model`, la información del modelo utilizado en la tarea de generación musical en este momento.
    * `lyric`, la información de la letra de la tarea de generación musical en este momento.

Podemos ver que hemos obtenido la información de la música que deseamos generar, solo necesitamos obtener la música del Productor a través de la dirección del enlace de audio en `data`.

Además, si deseas generar el código de integración correspondiente, puedes copiarlo directamente, por ejemplo, el código de CURL es el siguiente:

```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"
}'
```

## Generación Personalizada

Si deseas generar letras personalizadas, puedes ingresar la letra:

En este momento, el campo `lyric` puede recibir contenido similar al siguiente:

```
[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
```

A continuación, debemos personalizar la generación de la canción según la letra, el título y el estilo, especificando el siguiente contenido:

* lyric：texto de la letra
* custom：rellenar como `true`, representa generación personalizada, este parámetro por defecto es false, representa usar `prompt` para generar.
* title：título de la canción.

Ejemplo de llenado a continuación:

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

Una vez completado, se generó automáticamente el siguiente código:

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

Código correspondiente:

```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
}'
```

Pruebas permitidas, el efecto generado es similar.

```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"
    }
  ]
}
```

## Cantar una canción

Si deseas realizar una operación de canto sobre una canción ya generada, puedes ingresar la canción generada anteriormente para cantar, a continuación, vamos a personalizar la generación de la canción según la letra y el título.

Si deseas continuar cantando una canción que has subido, puedes establecer el parámetro `action` como `upload_cover` y también ingresar el ID de la canción que deseas continuar cantando, el ID de la canción se obtiene utilizando [Producer Upload API](https://platform.acedata.cloud/documents/producer-upload) como se muestra en la siguiente imagen:

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

Puedes especificar el siguiente contenido:

* action：la acción de la tarea de la canción, actualmente soporta: generate, cover, extend, upload\_cover, upload\_extend, replace\_section, swap\_vocals, swap\_instrumentals, variation, esta vez se usa el parámetro `cover`.
* lyric：texto de la letra
* title：título de la canción.
* custom：si se utiliza el modo personalizado para generar, por defecto es false.
* audio\_id：ID de la canción que se va a cantar.

Ejemplo de llenado a continuación:

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

Una vez completado, se generó automáticamente el siguiente código:

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

Código correspondiente:

```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"
}'
```

Pruebas permitidas, el efecto generado es similar.

```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": "Portada",
      "image_url": "https://cdn.acedata.cloud/e724d7f13d.png",
      "lyric": "[Verso]\nDesperté con el sol en mis ojos\nSin nubes arriba, solo azul en el cielo\nZapatos en mis pies, estoy listo para correr\nCada paso se siente como un arma cargada\n[Estribillo]\nDías felices están llegando\nDeja que la alegría esté debajo de mi piel\nSin más sombras, sin más mentiras\nSolo la verdad que me eleva\n[Verso 2]\nBailando por las calles de la ciudad\nUn ritmo golpeando en mi latido\nLos extraños sonríen, se está contagiando\nEste mundo es un escenario, todos somos una canción\n[Estribillo]\nDías felices están llegando\nDeja que la alegría esté debajo de mi piel\nSin más sombras, sin más mentiras\nSolo la verdad que me eleva\n[Puento]\nLanza tus preocupaciones por la puerta\nDéjalas hundirse en el fondo del océano\nEstamos vivos y es suficiente\nLa vida es desordenada, pero es amor\n[Estribillo]\nDías felices están llegando\nDeja que la alegría esté debajo de mi piel\nSin más sombras, sin más mentiras\nSolo la verdad que me eleva",
      "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"
    }
  ]
}
```

## Continuar escribiendo la canción

Si deseas continuar escribiendo la canción, necesitamos pasar el valor del parámetro `action` como: `extend`, a continuación, debemos personalizar la generación de la canción según la letra, el título y el estilo.

Si deseas continuar escribiendo una canción que has subido, puedes establecer el parámetro `action` como `upload_extend` y también ingresar el ID de la canción que deseas continuar escribiendo. El ID de la canción se obtiene utilizando la [API de carga de productores](https://platform.acedata.cloud/documents/producer-upload) como se muestra en la imagen a continuación:

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

Ejemplo de llenado a continuación:

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

Una vez completado, se generó automáticamente el siguiente código:

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

El código correspondiente:

```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": "[Verso]\nDesperté con el sol en mis ojos\nSin nubes arriba, solo azul en el cielo\nZapatos en mis pies, estoy listo para correr\nCada paso se siente como un arma cargada\n[Estribillo]\nDías felices están llegando\nDeja que la alegría esté debajo de mi piel\nSin más sombras, sin más mentiras\nSolo la verdad que me eleva\n[Verso 2]\nBailando por las calles de la ciudad\nUn ritmo golpeando en mi latido\nLos extraños sonríen, se está contagiando\nEste mundo es un escenario, todos somos una canción\n[Estribillo]\nDías felices están llegando\nDeja que la alegría esté debajo de mi piel\nSin más sombras, sin más mentiras\nSolo la verdad que me eleva\n[Puento]\nLanza tus preocupaciones por la puerta\nDéjalas hundirse en el fondo del océano\nEstamos vivos y es suficiente\nLa vida es desordenada, pero es amor\n[Estribillo]\nDías felices están llegando\nDeja que la alegría esté debajo de mi piel\nSin más sombras, sin más mentiras\nSolo la verdad que me eleva",
  "continue_at": 3,
  "audio_id": "38d3b9e2-0dfb-4338-b2a7-15e45656ed32",
  "custom": true,
  "title": "Extender",
  "weirdness": 0.3,
  "sound_strength": 0.3,
  "lyrics_strength": 0.6
}'
```

Pruebas permitidas, el efecto generado es similar.

```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": "Extender",
      "image_url": "https://cdn.acedata.cloud/e724d7f13d.png",
      "lyric": "[Verso]\n[Verso]\nDesperté con el sol en mis ojos\nSin nubes arriba, solo azul en el cielo\nZapatos en mis pies, estoy listo para correr\nCada paso se siente como un arma cargada\n[Estribillo]\nDías felices están llegando\nDeja que la alegría esté debajo de mi piel\nSin más sombras, sin más mentiras\nSolo la verdad que me eleva\n[Verso 2]\nBailando por las calles de la ciudad\nUn ritmo golpeando en mi latido\nLos extraños sonríen, se está contagiando\nEste mundo es un escenario, todos somos una canción\n[Estribillo]\nDías felices están llegando\nDeja que la alegría esté debajo de mi piel\nSin más sombras, sin más mentiras\nSolo la verdad que me eleva\n[Puento]\nLanza tus preocupaciones por la puerta\nDéjalas hundirse en el fondo del océano\nEstamos vivos y es suficiente\nLa vida es desordenada, pero es amor\n[Estribillo]\nDías felices están llegando\nDeja que la alegría esté debajo de mi piel\nSin más sombras, sin más mentiras\nSolo la verdad que me eleva",
      "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"
    }
  ]
}
```

## Variación musical

Si deseas generar una nueva música con un efecto similar basado en el valor de seed de la música anterior, necesitamos pasar el valor del parámetro `action` como: `variation`, a continuación, puedes personalizar la generación de una nueva música con un efecto similar.

Ejemplo de llenado a continuación:

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

Una vez completado, se generó automáticamente el siguiente código:

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

El código correspondiente:

```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": "variación",
  "audio_id": "d9ebc609-fb65-4a23-b914-c074747af6a4",
  "model": "FUZZ-2.0 Pro",
  "instrumental": false,
  "lyric": "[Verso]\nMe desperté con el sol en mis ojos\nSin nubes arriba, solo azul en el cielo\nZapatos en mis pies, estoy listo para correr\nCada paso se siente como un arma cargada\n[Estribillo]\nDías felices están llegando\nDeja que la alegría esté debajo de mi piel\nSin más sombras, sin más mentiras\nSolo la verdad que me eleva\n[Verso 2]\nBailando por las calles de la ciudad\nUn ritmo golpeando en mi latido\nLos extraños sonríen, se está contagiando\nEste mundo es un escenario, todos somos una canción\n[Estribillo]\nDías felices están llegando\nDeja que la alegría esté debajo de mi piel\nSin más sombras, sin más mentiras\nSolo la verdad que me eleva\n[Puento]\nTira tus preocupaciones por la puerta\nDéjalas hundirse en el fondo del océano\nEstamos vivos y es suficiente\nLa vida es desordenada, pero es amor\n[Estribillo]\nDías felices están llegando\nDeja que la alegría esté debajo de mi piel\nSin más sombras, sin más mentiras\nSolo la verdad que me eleva",
  "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": "Me desperté con el sol en mis ojos",
            "image_url": "https://cdn.acedata.cloud/e724d7f13d.png",
            "lyric": "[Verso]\nMe desperté con el sol en mis ojos\nSin nubes arriba, solo azul en el cielo\nZapatos en mis pies, estoy listo para correr\nCada paso se siente como un arma cargada\n[Estribillo]\nDías felices están llegando\nDeja que la alegría esté debajo de mi piel\nSin más sombras, sin más mentiras\nSolo la verdad que me eleva\n[Verso 2]\nBailando por las calles de la ciudad\nUn ritmo golpeando en mi latido\nLos extraños sonríen, se está contagiando\nEste mundo es un escenario, todos somos una canción\n[Estribillo]\nDías felices están llegando\nDeja que la alegría esté debajo de mi piel\nSin más sombras, sin más mentiras\nSolo la verdad que me eleva\n[Puento]\nTira tus preocupaciones por la puerta\nDéjalas hundirse en el fondo del océano\nEstamos vivos y es suficiente\nLa vida es desordenada, pero es amor\n[Estribillo]\nDías felices están llegando\nDeja que la alegría esté debajo de mi piel\nSin más sombras, sin más mentiras\nSolo la verdad que me eleva",
            "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"
        }
    ]
}
```

## Reemplazar sección

Si deseas reemplazar una sección de la canción, necesitamos pasar el valor del parámetro `action` como: `replace_section`, a continuación, debemos personalizar la generación de la canción según la letra y el título.

Si deseas continuar reemplazando una sección de la canción que subiste, puedes establecer el parámetro `action` como `upload_replace_section` y también ingresar el ID de la canción que deseas continuar escribiendo. El ID de la canción se obtiene utilizando la [API de carga de productor](https://platform.acedata.cloud/documents/producer-upload) como se muestra en la imagen a continuación:

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

El ejemplo de llenado es el siguiente:

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

Una vez completado, se generó automáticamente el siguiente código:

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

El código correspondiente:

```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": "[Verso]\\nMe desperté con el sol en mis ojos\\nSin nubes arriba, solo azul en el cielo\\nZapatos en mis pies, estoy listo para correr\\nCada paso se siente como un arma cargada\\n[Estribillo]\\nDías felices están llegando\\nDeja que la alegría esté debajo de mi piel\\nSin más sombras, sin más mentiras\\nSolo la verdad que me eleva\\n[Verso 2]\\nBailando por las calles de la ciudad\\nUn ritmo golpeando en mi latido\\nLos extraños sonríen, se está contagiando\\nEste mundo es un escenario, todos somos una canción\\n[Estribillo]\\nDías felices están llegando\\nDeja que la alegría esté debajo de mi piel\\nSin más sombras, sin más mentiras\\nSolo la verdad que me eleva\\n[Puento]\\nTira tus preocupaciones por la puerta\\nDéjalas hundirse en el fondo del océano\\nEstamos vivos y es suficiente\\nLa vida es desordenada, pero es amor\\n[Estribillo]\\nDías felices están llegando\\nDeja que la alegría esté debajo de mi piel\\nSin más sombras, sin más mentiras\\nSolo la verdad que me eleva",
  "audio_id": "d9ebc609-fb65-4a23-b914-c074747af6a4",
  "replace_section_start": 3,
  "replace_section_end": 70,
  "custom": true
}'
```

测试允许，生成的效果是类似的。

```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": "Desperté con el sol en mis ojos",
            "image_url": "https://cdn.acedata.cloud/e724d7f13d.png",
            "lyric": "[Verso]\\nDesperté con el sol en mis ojos\\nSin nubes arriba, solo azul en el cielo\\nZapatos en mis pies, estoy listo para correr\\nCada paso se siente como un arma cargada\\n[Estribillo]\\nDías felices están llegando\\nDeja que la alegría esté debajo de mi piel\\nSin más sombras, sin más mentiras\\nSolo la verdad que me eleva\\n[Verso 2]\\nBailando por las calles de la ciudad\\nUn ritmo golpeando en mi latido\\nLos extraños sonríen, se está contagiando\\nEste mundo es un escenario, todos somos una canción\\n[Estribillo]\\nDías felices están llegando\\nDeja que la alegría esté debajo de mi piel\\nSin más sombras, sin más mentiras\\nSolo la verdad que me eleva\\n[Puente]\\nLanza tus preocupaciones por la puerta\\nDéjalas hundirse en el fondo del océano\\nEstamos vivos y es suficiente\\nLa vida es desordenada, pero es amor\\n[Estribillo]\\nDías felices están llegando\\nDeja que la alegría esté debajo de mi piel\\nSin más sombras, sin más mentiras\\nSolo la verdad que me eleva",
            "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"
        }
    ]
}
```

## Versión de acompañamiento

Si deseas utilizar la operación de versión de acompañamiento oficial, puedes establecer el valor del parámetro `action` en: `swap_instrumentals`, a continuación, debemos personalizar la generación de la canción según la letra y el título.

Ejemplo de llenado a continuación:

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

Una vez completado, se generó automáticamente el siguiente código:

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

Código correspondiente:

```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": "Feliz",
  "audio_id": "d9ebc609-fb65-4a23-b914-c074747af6a4"
}'
```

Pruebas permitidas, el efecto generado es similar.

```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": "Extender (Intercambio de sonido)",
      "image_url": "https://cdn.acedata.cloud/e724d7f13d.png",
      "lyric": "[Verso]\nDesperté con el sol en mis ojos\nSin nubes arriba, solo azul en el cielo\nZapatos en mis pies, estoy listo para correr\nCada paso se siente como un arma cargada\n[Estribillo]\nDías felices están llegando\nDeja que la alegría esté debajo de mi piel\nSin más sombras, sin más mentiras\nSolo la verdad que me eleva\n[Verso 2]\nBailando por las calles de la ciudad\nUn ritmo golpeando en mi latido\nLos extraños sonríen, se está contagiando\nEste mundo es un escenario, todos somos una canción\n[Estribillo]\nDías felices están llegando\nDeja que la alegría esté debajo de mi piel\nSin más sombras, sin más mentiras\nSolo la verdad que me eleva\n[Puente]\nLanza tus preocupaciones por la puerta\nDéjalas hundirse en el fondo del océano\nEstamos vivos y es suficiente\nLa vida es desordenada, pero es amor\n[Estribillo]\nDías felices están llegando\nDeja que la alegría esté debajo de mi piel\nSin más sombras, sin más mentiras\nSolo la verdad que me eleva",
      "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": "Feliz",
      "created_at": "2025-12-30T18:09:49.594800Z",
      "model": "FUZZ-2.0 Pro",
      "progress": "100%",
      "state": "succeeded",
      "duration": "172.3849433106576"
    }
  ]
}
```

## Versión de voz

Si deseas utilizar la operación de versión de voz oficial, puedes establecer el valor del parámetro `action` en: `swap_vocals`, a continuación, debemos personalizar la generación de la canción según la letra, el título y el estilo.

Ejemplo de llenado a continuación:

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

Una vez completado, se generó automáticamente el siguiente código:

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

Código correspondiente:

```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": "[Verso]\nDesperté con el sol en mis ojos\nSin nubes arriba, solo azul en el cielo\nZapatos en mis pies, estoy listo para correr\nCada paso se siente como un arma cargada\n[Estribillo]\nDías felices están llegando\nDeja que la alegría esté debajo de mi piel\nSin más sombras, sin más mentiras\nSolo la verdad que me eleva\n[Verso 2]\nBailando por las calles de la ciudad\nUn ritmo golpeando en mi latido\nLos extraños sonríen, se está contagiando\nEste mundo es un escenario, todos somos una canción\n[Estribillo]\nDías felices están llegando\nDeja que la alegría esté debajo de mi piel\nSin más sombras, sin más mentiras\nSolo la verdad que me eleva\n[Puente]\nLanza tus preocupaciones por la puerta\nDéjalas hundirse en el fondo del océano\nEstamos vivos y es suficiente\nLa vida es desordenada, pero es amor\n[Estribillo]\nDías felices están llegando\nDeja que la alegría esté debajo de mi piel\nSin más sombras, sin más mentiras\nSolo la verdad que me eleva",
  "weirdness": 0.6,
  "lyrics_strength": 0.8,
  "audio_id": "d9ebc609-fb65-4a23-b914-c074747af6a4",
  "custom": true
}'
```

Pruebas permitidas, el efecto generado es similar.

```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": "Desperté con el sol en mis ojos",
      "image_url": "https://cdn.acedata.cloud/e724d7f13d.png",
      "lyric": "[Verso]\nDesperté con el sol en mis ojos\nSin nubes arriba, solo azul en el cielo\nZapatos en mis pies, estoy listo para correr\nCada paso se siente como un arma cargada\n[Estribillo]\nDías felices están llegando\nDeja que la alegría esté debajo de mi piel\nSin más sombras, sin más mentiras\nSolo la verdad que me eleva\n[Verso 2]\nBailando por las calles de la ciudad\nUn ritmo golpeando en mi latido\nExtraños sonríen, se contagia\nEste mundo es un escenario, todos somos una canción\n[Estribillo]\nDías felices están llegando\nDeja que la alegría esté debajo de mi piel\nSin más sombras, sin más mentiras\nSolo la verdad que me eleva\n[Puente]\nLanza tus preocupaciones por la puerta\nDeja que se hundan en el fondo del océano\nEstamos vivos y es suficiente\nLa vida es desordenada, pero es amor\n[Estribillo]\nDías felices están llegando\nDeja que la alegría esté debajo de mi piel\nSin más sombras, sin más mentiras\nSolo la verdad que me eleva",
      "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"
    }
  ]
}
```

## Separación de letras y música

Si deseas utilizar la operación oficial de separación de letras y música, puedes establecer el valor del parámetro `action` como: `stems`, a continuación, debemos realizar la separación de letras y música según el ID de la canción.

Ejemplo de llenado a continuación:

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

Una vez completado, se generó automáticamente el siguiente código:

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

El código correspondiente:

```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"
}'
```

La prueba es permitida, el efecto generado es similar.

```json theme={null}
{
    "success": true,
    "task_id": "561ac695-b4aa-47cf-978d-fb7be2b9ebfc",
    "trace_id": "66d0d397-2987-4bde-84fb-a60d0023b217",
    "data": [
        {
            "title": "Desperté con el sol en mis ojos",
            "lyric": "",
            "stems_url": "https://platform.cdn.acedata.cloud/producer/561ac695-b4aa-47cf-978d-fb7be2b9ebfc.zip",
            "model": "",
            "progress": "100%",
            "state": "succeeded"
        }
    ]
}
```

## Callback asíncrono

Debido a que el tiempo de generación de la API de Producción de Audios a veces puede ser relativamente largo, si la API no responde durante mucho tiempo, la solicitud HTTP mantendrá la conexión, lo que provocará un consumo adicional de recursos del sistema, por lo que esta API también ofrece soporte para callbacks asíncronos.

El flujo general es: cuando el cliente inicia la solicitud, se especifica un campo adicional `callback_url`, después de que el cliente inicia la solicitud de la API, la API devolverá inmediatamente un resultado que contiene un campo de información `task_id`, que representa el ID de la tarea actual. Cuando la tarea se completa, el resultado de la tarea generada se enviará a la `callback_url` especificada por el cliente en formato JSON POST, que también incluye el campo `task_id`, de esta manera, el resultado de la tarea se puede asociar mediante el ID.

A continuación, entenderemos cómo operar específicamente a través de un ejemplo.

Primero, el callback de Webhook es un servicio que puede recibir solicitudes HTTP, el desarrollador debe reemplazarlo con la URL de su propio servidor HTTP. Aquí, para facilitar la demostración, se utiliza un sitio web de muestra de Webhook público [https://webhook.site/](https://webhook.site/), al abrir este sitio se obtiene una URL de Webhook, como se muestra en la imagen:

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

Copia esta URL y se puede usar como Webhook, el ejemplo aquí es [https://webhook.site/#!/view/0d73431d-f833-4be4-9276-b6e1690d55c1](https://webhook.site/#!/view/0d73431d-f833-4be4-9276-b6e1690d55c1).

A continuación, podemos establecer el campo `callback_url` como la URL de Webhook anterior, al mismo tiempo que llenamos los parámetros correspondientes, el contenido específico como se muestra en la imagen:

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

Al hacer clic en ejecutar, se puede observar que se obtiene inmediatamente un resultado, como el siguiente:

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

Después de un momento, podemos observar el resultado de la tarea generada en [https://webhook.site/#!/view/0d73431d-f833-4be4-9276-b6e1690d55c1](https://webhook.site/#!/view/0d73431d-f833-4be4-9276-b6e1690d55c1), como se muestra en la imagen:

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

El contenido es el siguiente:

```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": "Me desperté con el sol en mis ojos",
            "image_url": "https://cdn.acedata.cloud/e724d7f13d.png",
            "lyric": "[Verso]\nMe desperté con el sol en mis ojos\nSin nubes arriba, solo azul en el cielo\nZapatos en mis pies, estoy listo para correr\nCada paso se siente como un arma cargada\n[Estribillo]\nDías felices están llegando\nDeja que la alegría esté debajo de mi piel\nSin más sombras, sin más mentiras\nSolo la verdad que me eleva\n[Verso 2]\nBailando por las calles de la ciudad\nUn ritmo golpeando en mi latido\nDesconocidos sonríen, se contagia\nEste mundo es un escenario, todos somos una canción\n[Estribillo]\nDías felices están llegando\nDeja que la alegría esté debajo de mi piel\nSin más sombras, sin más mentiras\nSolo la verdad que me eleva\n[Puente]\nLanza tus preocupaciones por la puerta\nDéjalas hundirse en el fondo del océano\nEstamos vivos y es suficiente\nLa vida es desordenada, pero es amor\n[Estribillo]\nDías felices están llegando\nDeja que la alegría esté debajo de mi piel\nSin más sombras, sin más mentiras\nSolo la verdad que me eleva",
            "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"
        }
    ]
}
```

Se puede ver que en el resultado hay un campo `task_id`, los otros campos son similares a los anteriores, y a través de este campo se puede realizar la asociación de tareas.

## Manejo de errores

Al llamar a la API, si se encuentra con un error, la API devolverá el código de error correspondiente y la información. Por ejemplo:

* `400 token_mismatched`: Solicitud incorrecta, posiblemente debido a parámetros faltantes o inválidos.
* `400 api_not_implemented`: Solicitud incorrecta, posiblemente debido a parámetros faltantes o inválidos.
* `401 invalid_token`: No autorizado, token de autorización inválido o faltante.
* `429 too_many_requests`: Demasiadas solicitudes, ha superado el límite de tasa.
* `500 api_error`: Error interno del servidor, algo salió mal en el servidor.

### Ejemplo de respuesta de error

```json theme={null}
{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "la recuperación falló"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}
```

## Conclusión

A través de este documento, ha comprendido cómo utilizar la API de Generación de Audios de Productores para generar música a través de palabras clave de entrada. Esperamos que este documento le ayude a integrar y utilizar mejor esta API. Si tiene alguna pregunta, no dude en ponerse en contacto con nuestro equipo de soporte técnico.
