https://d226lax1qjow5r.cloudfront.net/blog/blogposts/multi-channel-tone-analysis-in-php-with-amazon-comprehend/Social_Sentiment-Analysis_Voice_1200x627-1.png

Análisis tonal multicanal en PHP con Amazon Comprehend

Publicado el May 4, 2021

Tiempo de lectura: 2 minutos

En este post, actualizarás un AWS Lambda introducida en un post anterior donde los resultados de una transcripción de voz se almacenan en RDS. El objetivo de este ejemplo es utilizar Amazon Comprehend para recuperar el análisis de tono de una conversación completa, por canales, y luego añadir los resultados a un archivo RDS MySQL.

Véase nexmo-community/canales-de-voz-aws-transcribe-phpy nexmo-community/aws-voice-transcription-rds-callback-php para saber con qué va a trabajar en este ejemplo.

Vonage API Account

To complete this tutorial, you will need a Vonage API account. If you don’t have one already, you can sign up today and start building with free credit. Once you have an account, you can find your API Key and API Secret at the top of the Vonage API Dashboard.

Requisitos previos

Instrucciones de instalación

Con la función nexmo-community/aws-voice-transcription-rds-callback-php desplegado, tendrá que actualizar el archivo index.php de la siguiente manera:

  • Añadir una declaración de importación para AWS Comprehend, en la parte superior del archivo con las otras importaciones.

use Aws\Comprehend\ComprehendClient;
  • De la línea 54 a la 62, actualice el $conn-insert() para incluir el campo 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
]);
  • Añadir la siguiente función al final del archivo, que permite a sentiment se rellene para la inserción en la base de datos.

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

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

    return $comprehendClient->detectSentiment([
        'LanguageCode' => 'en',
        'Text' => $content,
    ]);
}
  • Actualice la conversations en la base de datos RDS base de datos creada en el post anterior, para incluir el sentiment contenido.

USE `voice_transcriptions`;

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

Despliegue en Lambda

Con todo lo anterior actualizado correctamente, ahora puede utilizar Serverless para volver a implementar la aplicación en AWS Lambda.

serverless deploy

Listo

Su aplicación está ahora actualizada para incluir el análisis del tono con el contenido de la conversación, en adelante.

Próximos pasos

Si tiene alguna pregunta o se encuentra con problemas, puede ponerse en contacto con @VonageDev en Twitter o preguntar en la Comunidad Nexmo equipo de Slack. Buena suerte.

Compartir:

https://a.storyblok.com/f/270183/384x384/b3c7ffaf85/adamculp.png
Adam CulpAntiguos alumnos de Vonage

Adam es un desarrollador y consultor al que le gusta correr a toda velocidad, bloguear y ayudar a otros a domar la tecnología para conseguir cosas increíbles, con un deseo insaciable de servir de mentor y ayudar.