
Gerar e enviar músicas usando o Vertex AI e o RCS
Introdução
Nesta postagem do blog, vamos pegar a descrição do gosto musical de um usuário enviada por meio de uma mensagem RCS, processá-la no modelo Vertex AI Lyria do Google para gerar uma faixa e enviar o resultado diretamente para o celular dele como um RCS Rich Card reproduzível usando a Messages API da Vonage.
O código completo deste projeto está disponível no GitHub.
RCS Example
Pré-requisitos
Um celular com recursos de RCS para testes
Node.js 14 ou superior
Contexto
O Lyria é um modelo de áudio generativo hospedado no Vertex AI. Para esta postagem do blog, a partir de um prompt de texto como “warm lofi piano, vinyl crackle, 85 BPM”, ele cria um vídeo MP4 com uma imagem de capa estática que é reproduzido diretamente no celular. Assim que o MP4 estiver pronto, nós o enviamos de volta dentro de um Rich Card usando o tipo de mensagem personalizada da Messages API. Você pode conferir todos os tipos de mensagens RCS suportados.
Configurar o aplicativo
Comece criando uma nova aplicação da Vonage no painel do desenvolvedor.
Para criar um aplicativo, acesse a página “Criar um aplicativo” no Painel da Vonage e defina um Nome para a sua Application.
Se você pretende usar uma API que utilize Webhooks, precisará de uma chave privada. Clique em “Gerar chave pública e privada”; o download deve iniciar automaticamente. Guarde-a em local seguro; essa chave não poderá ser baixada novamente em caso de perda. Ela seguirá a convenção de nomenclatura private_<seu ID de aplicativo>.key. Agora, essa chave pode ser usada para autenticar chamadas de API. Observação: sua chave não funcionará até que seu aplicativo seja salvo.
Escolha os recursos de que você precisa (por exemplo, Voice, Mensagens, RTC etc.) e forneça os webhooks necessários (por exemplo, URLs de eventos, URLs de resposta ou URLs de mensagens recebidas). Esses itens serão descritos no tutorial.
Para salvar e implantar, clique em “Gerar novo aplicativo” para finalizar a configuração. Seu aplicativo já está pronto para ser usado com as APIs da Vonage.
Ao configurar o aplicativo, certifique-se de habilitar o recurso “Mensagens” e selecionar RCS como canal. Posteriormente, você configurará as URLs dos webhooks que lidam com eventos de entrada e de status.
Para permitir que o RCS busque arquivos de mídia do seu computador local, instale e execute o ngrok para tornar seu servidor acessível publicamente.
Em um terminal separado, execute ngrok http 3000 e copie a URL de redirecionamento HTTPS que aparecer.
De volta ao painel da Vonage, configure seu webhook de entrada para https://<ngrok>/webhooks/inbound e seu webhook de status para https://<ngrok>/webhooks/status.
Instalar dependências
Precisamos executar npm install no seu terminal ou linha de comando para instalar as seguintes dependências:
dotenv, @vonage/server-sdk, @vonage/messages, google-auth-library, node-fetche ffmpeg-static que estão listados no seu arquivo package.json.
Observação: você pode saber mais sobre cada dependência clicando nela e lendo sua descrição no NPM.
Criar um arquivo .env
Você precisará de algumas variáveis de ambiente para este projeto. Adicione as variáveis a seguir a um arquivo .env que você deve criar e preencher.
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 Como funciona
Você inicia a conversa porque os usuários não podem iniciar um novo bate-papo RCS por conta própria. Ao acessar uma URL como https://<ngrok>/test?q=dark%20synthwave, seu servidor gera música com o Lyria, converte-a para o formato MP4, hospeda-a no /output ponto de extremidade e, em seguida, envia um Rich Card inicial para o seu aparelho com suporte a RCS.
Depois disso, o usuário pode responder com novas sugestões. O webhook de entrada captura cada resposta, a encaminha para o Lyria, a converte em um arquivo MP4 e a retorna como um novo Rich Card com o título e a descrição da faixa.
A implementação completa em JavaScript está disponível no arquivo index.js.
Executar o servidor
Verifique se o ngrok está em execução, se seus webhooks estão configurados e se suas variáveis de ambiente estão definidas. Inicie o servidor com node index.js.
Abra a URL de teste no seu navegador, por exemplo, na qual você está passando a consulta "dark synthwave with pulsing bass" https://<ngrok>/test?q=dark%20synthwave%20with%20pulsing%20bass.
O servidor enviará o primeiro Rich Card para o seu dispositivo compatível com RCS. Você poderá então responder diretamente no chat com algo como “piano lo-fi com chuva” e receberá outro Rich Card com uma faixa recém-gerada.
Enviar áudio como arquivo
Utilizamos os Rich Cards do RCS nesta postagem do blog; isso faz muito sentido, já que você pode reproduzir o arquivo diretamente no seu celular. Se preferir não usar os Rich Cards e enviar o áudio gerado como anexo, você pode fazer isso. Abordei esse assunto em uma post separado sobre o envio de arquivos com RCS.
Conclusão
Você conseguiu! Nesta postagem do blog, você viu como solicitar a geração de músicas por meio de conversas RCS usando o Lyria e a Messages API do Vonage.
Tem alguma dúvida ou quer compartilhar o que está criando?
Inscreva-se no Boletim Informativo para Desenvolvedores
Siga-nos no X (antigo Twitter) para ficar por dentro das novidades
Assista aos tutoriais no nosso canal do YouTube
Conecte-se conosco na página de desenvolvedores da Vonage no LinkedIn
Fique conectado e acompanhe as últimas notícias, dicas e eventos para desenvolvedores.