https://a.storyblok.com/f/270183/36015/3a7582a9a3/social_sentiment-analysis_voice_1200x627-1.png

Análise de tom multicanal em PHP com o Amazon Comprehend

Publicado em May 4, 2021

Tempo de leitura: 2 minutos

Nesta postagem, você vai atualizar um função do AWS Lambda função apresentada em um post anterior, na qual os resultados de uma transcrição de voz são armazenados no RDS. O objetivo deste exemplo é usar o Amazon Comprehend para recuperar a análise de tom de uma conversa inteira, por canais, e, em seguida, adicionar os resultados a um instância de banco de dados instância de banco de dados MySQL do RDS.

Veja nexmo-community/voice-channels-aws-transcribe-phpe nexmo-community/aws-voice-transcription-rds-callback-php para entender com o que você trabalhará neste exemplo.

Pré-requisitos

Instruções de configuração

Com o código nexmo-community/aws-voice-transcription-rds-callback-php código implantado, você precisará atualizar o index.php arquivo da seguinte maneira:

  • Adicione uma instrução de importação para o AWS Comprehend no início do arquivo, junto com as outras importações.

use Aws\Comprehend\ComprehendClient;
  • Da linha 54 à 62, atualize o $conn-insert() conteúdo para incluir o sentiment campo.

$conn->insert('transcriptions', [
    'conversation_uuid' => $conversation_uuid,
    'channel' => ($channel['channel_label'] == 'ch_0' ? 'caller' : 'recipient'),
    'start_time' => $startTime,
    'end_time' => $endTime,
    'content' => $item['alternatives'][0]['content'],
    'sentiment' => serialize(getSentiment($conversation['content'])->toArray()),
    'created' => $record_date,
    'modified' => $record_date
]);
  • Adicione a seguinte função ao final do arquivo, que permite sentiment seja preenchido para a inserção no banco de dados.

function getSentiment(string $content) : Aws\Result {

    $comprehendClient = new ComprehendClient([
        'region' => $_ENV['AWS_REGION'],
        'version' => $_ENV['AWS_VERSION'],
    ]);

    return $comprehendClient->detectSentiment([
        'LanguageCode' => 'en',
        'Text' => $content,
    ]);
}
  • Atualize a conversations tabela no RDS banco de dados criado na postagem anterior, para incluir o sentiment conteúdo.

USE `voice_transcriptions`;

ALTER TABLE `conversations` ADD COLUMN `sentiment` TEXT AFTER `content`

Implantar no Lambda

Com todas as atualizações acima concluídas com sucesso, agora você pode usar Serverless para reimplantar o aplicativo no AWS Lambda.

serverless deploy

Pronto

A partir de agora, seu aplicativo está atualizado para incluir a análise de tom no conteúdo das conversas.

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 Nexmo no Slack. Boa sorte.

Compartilhar:

https://a.storyblok.com/f/270183/384x384/b3c7ffaf85/adamculp.png
Adam CulpEx-funcionários da Vonage

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.