
Compartilhar:
Adam é um desenvolvedor e consultor que gosta de corridas de ultramaratona, escrever em blogs e gravar vlogs, além de ajudar outras pessoas a dominar a tecnologia para realizar coisas incríveis, movido por um desejo insaciável de orientar e ajudar.
Fluxo de trabalho de transcrição de voz em PHP com a Vonage
Tempo de leitura: 6 minutos
Nesta postagem, você criará um fluxo de trabalho de transcrição de voz. O objetivo é usar o Amazon Transcribe para processar uma conversa inteira em canais e, em seguida, inserir os resultados em um instância instância de banco de dados MySQL. Para fazer isso, serão necessários dois funções do AWS Lambda : uma aplicativo HTTP para recuperar um arquivo MP3 e enviá-lo ao Amazon Transcribe, e uma função de retorno de chamada após a conclusão da transcrição para armazenar os resultados em um banco de dados MySQL.
Pré-requisitos
PHP 7.4 (atualização
serverless.ymlpara outras versões)O Composer está instalado globalmente
Node.js e npm
Instruções de configuração
Clone o nexmo-community/voice-channels-aws-transcribe-php do GitHub e acesse o diretório recém-criado para continuar.
Use o Composer para instalar dependências
Este exemplo requer o uso do Composer para instalar dependências e configurar o carregador automático.
Supondo que você tenha o Composer instalado globalmente, execute:
composer install Configuração da AWS
Você precisará criar credenciais da AWS conforme indicado por Serverless.
Além disso, crie um novo bucket do AWS S3 e anote a URL para uso posterior.
Vincule o aplicativo ao Vonage
Criar uma aplicação Vonage usando a interface de linha de comando
Instale a CLI seguindo estas instruções. Você usará isso para criar um novo aplicativo Vonage Voice que também configura um answer_url e event_url para o aplicativo em execução no AWS Lambda:
vonage apps:create aws-transcribe --voice_answer_url=https://<your_hostname>/webhooks/answer --voice_event_url=https://<your_hostname>/webhooks/event
NOTA: Você usará <your_hostname> como um espaço reservado neste comando. Mais tarde, depois de saber as URLs fornecidas pela implantação no AWS Lambda, você precisará atualizar essas partes das URLs por meio do Painel da API da Vonage para o seu aplicativo.
IMPORTANTE: Isso retornará um ID de aplicativo e uma chave privada. O ID de aplicativo será necessário para o vonage apps:link comando e também para o .env arquivo posteriormente. Um arquivo chamado private.key será criado no mesmo local/nível que server.js, por padrão.
Obter um novo número virtual
Se você ainda não tiver um número, solicite um à Vonage. Isso também pode ser feito por meio da CLI, executando este comando:
vonage numbers:search USE adquirir um dos números disponíveis, obtidos ao executar o comando:
vonage numbers:buy <number>
Vincule o número virtual ao aplicativo
Por fim, vincule o novo número ao aplicativo criado executando:
vonage apps:link YOUR_APPLICATION_ID --number=<number>
Atualizar o ambiente
Renomeie o .env.dist para .env e atualize os valores conforme necessário:
NOTA: Todos os espaços reservados marcados com <> devem ser atualizados.
Plug-in sem servidor
Instale o serverless-dotenv-plugin com o seguinte comando:
Implantar no Lambda
Com todas as atualizações acima concluídas com sucesso, agora você pode usar Serverless para implantar o aplicativo no AWS Lambda.
Observação: Não deixe de visitar o Painel da API da Vonage e atualize o answer e event URLs para suas aplicações com as informações fornecidas pela implantação.
Migrar a transcrição para um banco de dados
Se você precisar apenas da transcrição, está tudo pronto. No entanto, para automatizar a migração dos resultados da transcrição para o banco de dados, será necessário implantar outra função. Clone isto nexmo-community/aws-voice-transcription-rds-callback-php para outro local e siga as instruções no README para colocá-lo em funcionamento. As instruções são idênticas às que foram seguidas acima para a primeira função.
Criar o gatilho
Depois de adicionar a segunda função, você pode acessar CloudWatch no seu Console da AWS e selecionar Eventos e Começar para criar uma nova regra de evento.
Defina a regra da seguinte forma:
Padrão de evento
Criar um padrão de eventos para filtrar eventos por serviço
Nome do serviço = Transcribe
Tipo de evento = Alteração no status da tarefa de transcrição
Status específico(s) = CONCLUÍDO
Como destino, selecione a função Lambda nº 2 criada acima
Role a página para baixo e clique em Configurar detalhes.
Dê à regra um nome e uma descrição significativos e ative-a.
Clique Criar regra para concluí-la.
Agora você está pronto para fazer o teste.
Uso
Com a implantação concluída, você poderá fazer uma ligação para o seu número virtual a partir de qualquer telefone. Você ouvirá uma mensagem informando que a ligação foi estabelecida e, em seguida, o número do destinatário será discado.
Depois que você desligar, o arquivo MP3 será recuperado da Vonage e enviado para o AWS S3. Em seguida, será iniciada uma tarefa de transcrição. É possível acompanhar o andamento da tarefa no site do AWS Console após o login.
Após a conclusão da transcrição, o CloudWatch acionará a função Lambda para analisar a transcrição e inseri-la no banco de dados.
Próximos passos
Se você tiver alguma dúvida ou encontrar algum problema, entre em contato com @VonageDev no Twitter ou fazer sua pergunta na Comunidade de Desenvolvedores da Vonage no Slack. Boa sorte.