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

Mehrkanalige Tonwertanalyse in PHP mit Amazon Comprehend

Zuletzt aktualisiert am May 4, 2021

Lesedauer: 2 Minuten

In diesem Beitrag aktualisieren Sie eine AWS Lambda Funktion, die in einem früheren Beitrag vorgestellt wurde und bei der die Ergebnisse einer Voice-Transkription in RDS. Das Ziel für dieses Beispiel ist die Verwendung von Amazon Comprehend zu verwenden, um die Tonanalyse für ein ganzes Gespräch nach Kanälen abzurufen und dann die Ergebnisse in eine RDS MySQL-Datenbankinstanz hinzuzufügen.

Siehe nexmo-community/voice-channels-aws-transcribe-phpund nexmo-community/aws-voice-transcription-rds-callback-php um zu verstehen, womit Sie in diesem Beispiel arbeiten werden.

Vonage API-Konto

Um dieses Tutorial durchzuführen, benötigen Sie ein Vonage API-Konto. Wenn Sie noch keines haben, können Sie sich noch heute anmelden und mit einem kostenlosen Guthaben beginnen. Sobald Sie ein Konto haben, finden Sie Ihren API-Schlüssel und Ihr API-Geheimnis oben auf dem Vonage-API-Dashboard.

Voraussetzungen

Anweisungen zur Einrichtung

Mit der nexmo-community/aws-voice-transcription-rds-callback-php Code implementiert, müssen Sie die index.php Datei auf die folgende Weise aktualisieren:

  • Fügen Sie eine Importanweisung für AWS Comprehend am Anfang der Datei mit den anderen Importen hinzu.

use Aws\Comprehend\ComprehendClient;
  • Von Zeile 54 bis 62 aktualisieren Sie die $conn-insert() Inhalt, um das Feld sentiment Feld.

$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
]);
  • Fügen Sie die folgende Funktion am Ende der Datei hinzu, die es ermöglicht sentiment für das Einfügen in die Datenbank ausgefüllt werden kann.

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

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

    return $comprehendClient->detectSentiment([
        'LanguageCode' => 'en',
        'Text' => $content,
    ]);
}
  • Aktualisieren Sie die conversations Tabelle in der RDS Datenbank, die im vorherigen Beitrag erstellt wurde, um den sentiment Inhalt.

USE `voice_transcriptions`;

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

Auf Lambda bereitstellen

Nachdem alle oben genannten Punkte erfolgreich aktualisiert wurden, können Sie nun mit Serverless verwenden, um die App erneut in AWS Lambda.

serverless deploy

Bereit

Ihre App ist nun so aktualisiert, dass sie künftig eine Tonanalyse mit dem Inhalt der Konversation enthält.

Nächste Schritte

Wenn Sie Fragen haben oder Probleme auftreten, können Sie sich an @VonageDev auf Twitter oder in der Nexmo-Gemeinschaft Slack-Team. Viel Glück!

Teilen Sie:

https://a.storyblok.com/f/270183/384x384/b3c7ffaf85/adamculp.png
Adam CulpVonage Ehemalige

Adam ist ein Entwickler und Berater, der gerne Ultraläufe absolviert, bloggt und anderen dabei hilft, Technologien zu zähmen, um erstaunliche Dinge zu erreichen, und der ein unstillbares Verlangen hat, Mentoren zu sein und zu helfen.