Amazon Polly und Pinpoint konfigurieren Serverless-Architekturen unter AWS, Teil 2

Als Vorbereitung für unsere serverlose Text-to-Speech-App widmet sich dieser Artikel den Grundlagen von Amazon Polly und Pinpoint. Mithilfe der beiden AWS-Dienste wollen wir Sprachnachrichten automatisiert versenden.

Amazon Polly ist ein auf AWS betriebener Cloud-Service, mit dem sowohl Amazon-Benutzer als auch Entwickler, die Backends in AWS betreiben, einen übermittelten Text in natürliche Sprache umwandeln lassen können. Dabei greift Polly auf Machine-Learning-Algorithmen zurück, die auch mit zahlreichen anderen AWS-Diensten integriert sind.

Amazon Polly unterstützt mehrere Sprachen und bringt eine große Anzahl lebensechter Stimmen mit. So können Entwickler z. B. Anwendungen erstellen, die eine Sprachfunktion für unterschiedliche Regionen bieten. Nutzer zahlen bei Polly nur für den Text, aus dem eine Sprachausgabe generiert wird. Die von Amazon Polly erzeugte Sprachausgabe lässt sich ohne zusätzliche Kosten zwischenspeichern und wiedergeben. Häufige Anwendungsfälle für Amazon Polly sind u. a. mobile Anwendungen wie Newsreader, Spiele, E-Learning-Plattformen, barrierefreie Anwendungen für sehbehinderte Personen sowie das schnell wachsende IoT-Segment. Wichtig: Amazon Polly ist nicht für die Verwendung mit dem Payment Card Industry Data Security Standard (PCI-DSS) oder FedRAMP zertifiziert.

Die Nutzung von Amazon Polly bietet Entwicklern viele Vorteile. Der Wichtigste besteht darin, dass es sich bei Polly um eine Cloud-basierte Lösung handelt. In Geräten verbaute Sprachausgabelösungen hingegen erfordern in der Regel erhebliche Datenverarbeitungsressourcen. Der Zugriff auf CPU, Arbeitsspeicher und Festplattenspeicher führt zwangsläufig zu höheren Entwicklungskosten und höherem Stromverbrauch bei Geräten wie Tablets, Smartphones usw. Die Umwandlung von Text zu Sprache in der Cloud reduziert also den lokalen Ressourcenbedarf erheblich. Alle mit Polly verfügbaren Sprachen und Stimmen werden zudem in bestmöglicher Qualität ausgeliefert, etwaige Sprachverbesserungen sind für alle Endbenutzer sofort verfügbar und erfordern keine zusätzliche Aktualisierung der Geräte.

Laut Amazon verwendet Polly eine „erstklassige“ Sprachausgabetechnologie, um natürliche Sprache mit hoher Aussprachegenauigkeit zu generieren (einschließlich Abkürzungen, Langform von Akronymen, Interpretation von Datum/Uhrzeit und Klärung von Homografen). Zudem erlaubt Polly mit seiner sehr niedrigen Latenz schnelle Reaktionszeiten und eignet sich damit auch für Dialogsysteme. Die Sprachsynthese mit Amazon Polly unterstützt mehrere Sprachen und bietet für die meisten von ihnen sowohl männliche als auch weibliche Stimmen. Mit dem bei AWS üblichen nutzungsabhängigen Preismodell von Amazon Polly fallen keine Einrichtungskosten an.

Amazon Pinpoint

Amazon Pinpoint ist ein Service, der es AWS-Nutzern ermöglicht, über mehrere so genannte Messaging-Kanäle mit ihren Kunden zu interagieren. Pinpoint ist also in erster Linie ein Steuerungs-Tool für Marketing-Kampagnen. Nutzer können damit Push-Benachrichtigungen, E-Mails, SMS-Nachrichten und Sprachnachrichten an ihre Kunden versenden lassen. Die zentralen Begrifflichkeiten und Entitäten in Pinpoint sind Projekte, Zielgruppen, Zielgruppensegmente, Kanäle und Kampagnen. Hat man in der Pinpoint-Management-Console ein erstes Projekt erstellt, kann man einen oder mehrere Kanäle konfigurieren. Zur Verfügung stehen Push-Benachrichtigungen, E-Mail, SMS und die Option „Stimme“. Für unsere kleine Demo legen wir mit der letzten Option einen Sprachkanal ab.

Mit Hilfe eines Sprachkanals lassen sich Sprachnachrichten aus einem Textskript erstellen (oder von Lambda-getriggert von seiner App entgegennehmen), um sie über das Telefon zu übermitteln. So ist es möglich, auch Kunden zu erreichen, deren Telefonnummern keine SMS-Nachrichten empfangen können – etwa Benutzer, die Festnetz- oder VoIP-Dienste benutzen. Zum gegenwärtigen Zeitpunkt lassen sich Sprachnachrichten nur mit der SMS- und Voice-APIsenden. Man kann die Amazon Pinpoint Console benutzen, um spezielle Telefonnummern zum Senden von Sprachnachrichten von AWS anzufordern.

Longcodes

Bevor man also z. B. SMS-Messaging in beide Richtungen verwenden kann, um Nachrichten zu empfangen, muss man einen Kurzcode (SMS) oder Langcode (Sprache) für den SMS-/Sprach-Kanal anfordern. Die so genannte Langwahlnummer (auch als „Lange, virtuelle Nummer“ oder LVN bekannt) handelt es sich um eine – je nach Land, zu dem sie gehört, – bis zu 12-stellige Standard-Telefonnummer, die in der Regel für eine persönliche Kommunikation mit geringem Volumen gedacht ist. Langwahlnummern können aber auch zum Senden von Testnachrichten oder von geringen Mengen von Nachrichten an die eigenen Kunden verwendet werden. Allerdings sind in den USA und Kanada die Senderaten für Langwahlnummern auf 1 Nachricht pro Sekunde beschränkt. Das Limit kann in anderen Ländern und Regionen höher oder niedriger ausfallen. Wer also unbedacht eine große Menge von Nachrichten von einer Langwahlnummer sendet, kann möglicherweise von seinem Mobilnetzbetreiber blockiert werden.

Insbesondere beim programmatischen Senden sollte man deshalb die Anzahl der Nachrichten pro Sekunde in seiner Anwendung begrenzen. Verwendet man den Sprachkanal zum ersten Mal, befindet sich das entsprechende Konto in einer Sandbox, sodass für dieses bestimmte Beschränkungen gelten. Diese Limits lassen sich allerdings jederzeit durch einen Support-Call aufheben. Das Konto wird dann aus der Sandbox entfernt und hat Produktionszugriff.

Man kann Langcodes direkt über die Pinpoint-Konsole mieten. Bei diesen Telefonnummern handelt es sich um dedizierte Nummern, die nur vom jeweiligen Pinpoint-Konto verwendet werden dürfen und auch nur für den Sprachkanal bestimmt sind. Mietet man allerdings wie erwähnt einen Langcode, der auf USA (einschließlich Puerto Rico) oder Kanada basiert, kann dieser zusätzlich auch zum Senden von SMS-Nachrichten verwendet werden.

Langwahl-Nummern für Pinpoint lassen sich direkt über die Console anfordern.

Zum Anfordern/Mieten von Longcodes klickt man im Pinpoint-Dashboard auf „Einstellungen“ und dort im Abschnitt „SMS und Sprache“ auf „Verwalten“. Dort findet man den Button „Langwahlnummer anfordern“. Mit ihm ist es möglich, lokale Telefonnummern zu ordern, die in verschiedenen Ländern oder Regionen registriert sind. Allerdings lassen sich zurzeit nur Langcodes für eine begrenzte Anzahl von Ländern und Regionen über die Pinpoint-Konsole anmieten.

Um einen Langcode für ein Land zu erhalten, das nicht als Zielland oder -Region aufgeführt ist (wie z. B. Deutschland) müsste man einen neuen Konto- und Rechnungsunterstützungs-Fall im AWS-Support-Center öffnen. Für unsere Demo ist es aber relativ belanglos, welche Nummer beim Anruf angezeigt wird. Uns geht es primär um das Zusammenspiel der serverlosen Komponenten.

Hier weiterlesen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.