
Partager:
Adam est un développeur et un consultant qui aime l'ultra-course, les blogs, et qui aide les autres à apprivoiser la technologie pour accomplir des choses étonnantes avec un désir insatiable de mentorat et d'aide.
Analyse tonale multicanal en PHP avec Amazon Comprehend
Temps de lecture : 2 minutes
Dans ce billet, vous mettrez à jour une base de données AWS Lambda introduite dans un post précédent où les résultats d'une transcription vocale sont stockés dans des serveurs RDS. L'objectif de cet exemple est d'utiliser Amazon Comprehend pour récupérer l'analyse de la tonalité d'une conversation entière, par canal, puis d'ajouter les résultats à un fichier RDS MySQL.
Voir nexmo-community/voice-channels-aws-transcribe-phpet nexmo-community/aws-voice-transcription-rds-callback-php pour comprendre ce avec quoi vous allez travailler dans cet exemple.
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.
Conditions préalables
Pour tirer le meilleur parti de cet exemple, vous devriez commencer par consulter les dépôts suivants :
Bien que le premier message soit nécessaire, vous mettrez principalement à jour le code dans le second pour cet exemple.
Instructions d'installation
Avec la nexmo-community/aws-voice-transcription-rds-callback-php déployé, vous devrez mettre à jour le fichier index.php de la manière suivante :
Ajoutez une déclaration d'importation pour AWS Comprehend, au début du fichier avec les autres importations.
use Aws\Comprehend\ComprehendClient;De la ligne 54 à 62, mettez à jour le
$conn-insert()pour y inclure le champsentimentchamp.
$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
]);
Ajoutez la fonction suivante à la fin du fichier, qui permet à
sentimentd'être alimenté pour l'insertion de la base de données.
function getSentiment(string $content) : Aws\Result {
$comprehendClient = new ComprehendClient([
'region' => $_ENV['AWS_REGION'],
'version' => $_ENV['AWS_VERSION'],
]);
return $comprehendClient->detectSentiment([
'LanguageCode' => 'en',
'Text' => $content,
]);
}
Mettre à jour le tableau
conversationsdans la base de donnéesRDScréée dans l'article précédent, afin d'y inclure lesentimentcontenu.
USE `voice_transcriptions`;
ALTER TABLE `conversations` ADD COLUMN `sentiment` TEXT AFTER `content` Déployer vers Lambda
Avec toutes les mises à jour ci-dessus effectuées avec succès, vous pouvez maintenant utiliser Serverless pour redéployer l'application sur AWS Lambda.
Prêt
Votre application est maintenant mise à jour pour inclure l'analyse de tonalité avec le contenu de la conversation, à l'avenir.
Prochaines étapes
Si vous avez des questions ou rencontrez des problèmes, vous pouvez contacter @VonageDev sur Twitter ou vous renseigner auprès de la Communauté Nexmo Slack de Nexmo. Nous vous souhaitons bonne chance.
