Skip to main content
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 para obtener tu API Token, que debes guardar para uso futuro. 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.
📘 Documentación completa: Productor Audios Generation API →

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:

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:

Haz clic en el botón “Try” para realizar la prueba, como se muestra en la imagen anterior, y obtendremos el siguiente resultado:
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:

Generación Personalizada

Si deseas generar letras personalizadas, puedes ingresar la letra: En este momento, el campo lyric puede recibir contenido similar al siguiente:
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:

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

Código correspondiente:
Pruebas permitidas, el efecto generado es similar.

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 como se muestra en la siguiente imagen:

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:

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

Código correspondiente:
Pruebas permitidas, el efecto generado es similar.

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 como se muestra en la imagen a continuación:

Ejemplo de llenado a continuación:

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

El código correspondiente:
Pruebas permitidas, el efecto generado es similar.

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:

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

El código correspondiente:
测试允许,生成的效果是类似的。

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 como se muestra en la imagen a continuación:

El ejemplo de llenado es el siguiente:

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

El código correspondiente:
测试允许,生成的效果是类似的。

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:

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

Código correspondiente:
Pruebas permitidas, el efecto generado es similar.

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:

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

Código correspondiente:
Pruebas permitidas, el efecto generado es similar.

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:

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

El código correspondiente:
La prueba es permitida, el efecto generado es similar.

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/, al abrir este sitio se obtiene una URL de Webhook, como se muestra en la imagen: Copia esta URL y se puede usar como Webhook, el ejemplo aquí es 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:

Al hacer clic en ejecutar, se puede observar que se obtiene inmediatamente un resultado, como el siguiente:
Después de un momento, podemos observar el resultado de la tarea generada en https://webhook.site/#!/view/0d73431d-f833-4be4-9276-b6e1690d55c1, como se muestra en la imagen: El contenido es el siguiente:
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

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.