
Teilen Sie:
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.
Mehrkanalige Tonwertanalyse in PHP mit Amazon Comprehend
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
Um den größtmöglichen Nutzen aus diesem Beispiel zu ziehen, sollten Sie sich zunächst die folgenden Repos ansehen:
Obwohl der erste Beitrag erforderlich ist, werden Sie den Code in diesem Beispiel hauptsächlich im zweiten Beitrag aktualisieren.
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 FeldsentimentFeld.
$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
sentimentfü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
conversationsTabelle in derRDSDatenbank, die im vorherigen Beitrag erstellt wurde, um densentimentInhalt.
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.
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!
