https://a.storyblok.com/f/270183/1368x665/61d01d621c/25oct_dev-blog_vertex-ai-rcs.jpg

Generar y enviar música con Vertex AI y RCS

Publicado el November 4, 2025

Tiempo de lectura: 4 minutos

Introducción

En esta entrada de blog, tomaremos una descripción de los gustos musicales de un usuario enviada a través de un mensaje RCS, la pasaremos al modelo Vertex AI Lyria de Google para generar una pista y enviaremos el resultado directamente a su teléfono como una Rich Card RCS reproducible utilizando la Mensajes API de Vonage.

El código completo de código completo de este proyecto está disponible en GitHub. conversation between Vonage Test Demo Agent and a user that firstly sends a rich card track with a playable song, followed by a user requesting a musical taste “power metal”, followed by a response of the requested style with a generated song.RCS Example

Requisitos previos

Contexto

Lyria es un modelo generativo de audio alojado en Vertex AI. Para esta entrada de blog, dado un texto como "warm lofi piano, vinyl crackle, 85 BPMcrea un Video MP4 con una imagen de portada estática que se reproduce en línea en el teléfono. Una vez que tenemos el MP4 listo, lo enviamos dentro de una Tarjeta enriquecida utilizando el tipo de mensaje personalizado de Messages API de Vonage. Puedes consultar todos los tipos de mensajes RCS admitidos.

Configurar la aplicación

Comienza creando una nueva aplicación de Vonage en el panel del desarrollador.

  • Para crear una aplicación, vaya a la sección Crear una aplicación en el panel de Vonage y define un nombre para tu aplicación.

  • Si tiene intención de utilizar una API que utilice Webhooks, necesitará una clave privada. Haga clic en "Generar clave pública y privada"; la descarga debería iniciarse automáticamente. Guárdela de forma segura; esta clave no puede volver a descargarse si se pierde. Seguirá la convención de nomenclatura private_<id de su aplicación>.key. Esta clave puede utilizarse ahora para autenticar llamadas a la API. Nota: La clave no funcionará hasta que se guarde la aplicación.

  • Elija las funciones que necesite (por ejemplo, Voice, Messages, RTC, etc.) y proporcione los webhooks necesarios (por ejemplo, URL de eventos, URL de respuestas o URL de mensajes entrantes). Estos se describirán en el tutorial.

  • Para guardar e implementar, haz clic en "Generar nueva aplicación" para finalizar la configuración. Tu aplicación ahora está lista para usar con las API de Vonage.

Al configurar la aplicación, asegúrese de habilitar la función Mensajes y seleccionar RCS como canal. Más tarde configurará las URL de los webhooks que gestionan los eventos entrantes y de estado.

Para dar RCS una manera de obtener los medios de comunicación de su máquina local, instalar y ejecutar ngrok para exponer su servidor públicamente.

En otro terminal, ejecute ngrok http 3000 y copie la URL de reenvío HTTPS que aparece.

De vuelta en el panel de control de Vonage, establece tu webhook de entrada en https://<ngrok>/webhooks/inbound y tu webhook de estado en https://<ngrok>/webhooks/status.

Instalar dependencias

Tenemos que ejecutar npm install desde su terminal o comando prompt para instalar las siguientes dependencias:

dotenv, @vonage/server-sdk, @vonage/messages, google-auth-library, node-fetchy ffmpeg-static que aparecen en su archivo package.json.

Nota: Puede obtener más información sobre cada dependencia haciendo clic en ella y leyendo su descripción en NPM.

Crear un archivo .env

Necesitará algunas variables de entorno para este proyecto. Añade las siguientes variables a un archivo .env que tendrás que crear y rellenar.

GOOGLE_CLOUD_PROJECT_ID=yourProjectId  

GOOGLE_CLOUD_LOCATION=us-central1  

GOOGLE_APPLICATION_CREDENTIALS=./service-account.json  

VONAGE_APPLICATION_ID=your-vonage-app-id  

VONAGE_PRIVATE_KEY=./private.key  

RCS_SENDER_ID=your-rbm-agent-id  

PHONE_NUMBER=447XXXXXXXXX  

PORT=3000  

PUBLIC_BASE_URL=https://your-ngrok-url  

Cómo funciona

Usted inicia la conversación porque los usuarios no pueden iniciar un nuevo chat RCS por su cuenta. Visitando una URL como https://<ngrok>/test?q=dark%20synthwavesu servidor genera música con Lyria, la convierte a formato MP4, la aloja en el endpoint /output endpoint, y luego envía una Rich Card inicial a su dispositivo telefónico habilitado para RCS.

Después, el usuario puede responder con nuevas indicaciones. El webhook de entrada capta cada respuesta, la pasa a Lyria, la convierte en un archivo MP4 y la devuelve como una nueva Rich Card con el título y la descripción de la pista.

La implementación completa de JavaScript en está disponible en index.js.

Ejecutar el servidor

Asegúrese de que ngrok se está ejecutando, sus webhooks están configurados, y sus variables de entorno se establecen. Inicie el servidor con node index.js.

Abre la URL de prueba en tu navegador, por ejemplo, en la que pasas la consulta "dark synthwave with pulsing bass" https://<ngrok>/test?q=dark%20synthwave%20with%20pulsing%20bass.

El servidor enviará la primera Rich Card a tu dispositivo habilitado para RCS. A continuación, puedes responder directamente en el chat con algo como "lofi piano with rain", y recibirás otra Rich Card con una pista recién generada.

Enviar audio como archivo

Hemos utilizado RCS Rich Cards en esta entrada de blog; tiene mucho sentido, ya que puedes reproducir el archivo desde ella en tu teléfono. Si prefiere omitir las Rich Cards y enviar el audio generado como un archivo adjunto, puede hacerlo. Cubrí que en un entrada de blog sobre el envío de archivos con RCS.

Conclusión

¡Lo lograste! En esta publicación del blog, viste cómo solicitar la generación de música a través de conversaciones RCS usando Lyria y la API de Messages de Vonage.

¿Tienes alguna pregunta o algo que compartir? Únete a la conversación en Slack de la comunidad de Vonagey mantente actualizado con el Boletín para desarrolladoressíguenos en X (antes Twitter)suscríbete a nuestro canal de YouTube para ver tutoriales en video, y sigue la página de página para desarrolladores de Vonage en LinkedInun espacio para que los desarrolladores aprendan y se conecten con la comunidad. Mantente conectado, comparte tu progreso y entérate de las últimas noticias, consejos y eventos para desarrolladores.

Compartir:

https://a.storyblok.com/f/270183/400x400/3f6b0c045f/amanda-cavallaro.png
Amanda CavallaroDefensor del Desarrollador