
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.
Análise de tom multicanal em PHP com o Amazon Comprehend
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
Para aproveitar ao máximo este exemplo, recomenda-se que você dê uma olhada nos seguintes repositórios para começar:
Embora a primeira postagem seja necessária, neste exemplo você passará a maior parte do tempo atualizando o código na segunda.
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 osentimentcampo.
$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
sentimentseja 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
conversationstabela noRDSbanco de dados criado na postagem anterior, para incluir osentimentconteú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.
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.