
Compartir:
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.
Análisis tonal multicanal en PHP con Amazon Comprehend
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
Para sacar el máximo partido de este ejemplo, debería consultar los siguientes repositorios para empezar:
Aunque el primer post es necesario, en este ejemplo se actualizará principalmente el código en el segundo.
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 camposentimentcampo.
$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
sentimentse 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
conversationsen la base de datosRDSbase de datos creada en el post anterior, para incluir elsentimentcontenido.
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.
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.
