Amazonas Polly ist ein Dienst, der Texte in lebensechte Sprache umwandelt. Es ermöglicht die Entwicklung einer ganzen Klasse von Anwendungen, die Text in mehreren Sprachen in Sprache umwandeln können.
Dieser Dienst kann von Chatbots, Hörbüchern und anderen Text-to-Speech-Anwendungen in Verbindung mit anderen AWS-KI- oder maschinellen Lerndiensten (ML) verwendet werden. Zum Beispiel, Amazon Lex und Amazon Polly können kombiniert werden, um einen Chatbot zu erstellen, der eine wechselseitige Konversation mit einem Benutzer führt und bestimmte Aufgaben basierend auf den Befehlen des Benutzers ausführt. Amazon Transcribe, Amazon Übersetzenund Amazon Polly können kombiniert werden, um Sprache in Text in der Ausgangssprache zu transkribieren, in eine andere Sprache zu übersetzen und zu sprechen.
In diesem Beitrag stellen wir einen interessanten Ansatz zum Hervorheben von Text vor, während er mit Amazon Polly gesprochen wird. Diese Lösung kann in vielen Text-to-Speech-Anwendungen für Folgendes verwendet werden:
- Fügen Sie Audio in Büchern, Websites und Blogs visuelle Funktionen hinzu
- Erhöhen Sie das Verständnis, wenn Kunden versuchen, den gesprochenen Text schnell zu verstehen
Unsere Lösung gibt dem Client (in diesem Beispiel dem Browser) die Möglichkeit zu wissen, welcher Text (Wort oder Satz) gerade von Amazon Polly gesprochen wird. Dadurch kann der Kunde den Text während des Sprechens dynamisch hervorheben. Eine solche Fähigkeit ist nützlich, um in den zuvor genannten Anwendungsfällen visuelle Sprachunterstützung bereitzustellen.
Unsere Lösung kann erweitert werden, um neben der Texthervorhebung weitere Aufgaben auszuführen. Beispielsweise kann der Browser im Frontend Bilder anzeigen, Musik abspielen oder andere Animationen ausführen, während der Text gesprochen wird. Diese Funktion ist nützlich für die Erstellung dynamischer Hörbücher, Bildungsinhalte und umfangreicherer Text-to-Speech-Anwendungen.
Lösungsüberblick
Im Kern nutzt die Lösung Amazon Polly, um eine Textfolge in Sprache umzuwandeln. Der Text kann über den Browser oder über einen API-Aufruf an den von unserer Lösung bereitgestellten Endpunkt eingegeben werden. Die von Amazon Polly generierte Rede wird als Audiodatei (MP3-Format) in einem gespeichert Amazon Simple Storage-Service (Amazon S3) Eimer.
Allerdings kann der Browser bei alleiniger Verwendung der Audiodatei nicht erkennen, welche Teile des Textes gerade gesprochen werden, da uns keine detaillierten Informationen darüber vorliegen, wann jedes Wort gesprochen wird.
Amazon Polly bietet eine Möglichkeit, dies mithilfe von Sprachmarkierungen zu erreichen. Sprachmarkierungen werden in einer Textdatei gespeichert, die die Zeit (gemessen in Millisekunden ab Beginn des Audios) anzeigt, zu der jedes Wort oder jeder Satz gesprochen wird.
Amazon Polly gibt Sprachmarkierungsobjekte in einem zeilengetrennten JSON-Stream zurück. Ein Sprachmarkenobjekt enthält die folgenden Felder:
- Uhrzeit – Der Zeitstempel in Millisekunden ab Beginn des entsprechenden Audiostreams
- Typ – Die Art des Sprachzeichens (Satz, Wort, Mundbild oder SSML)
- Startseite – Der Offset in Bytes (nicht Zeichen) des Beginns des Objekts im Eingabetext (ohne Mundzeichen)
- Ende – Der Offset in Bytes (nicht Zeichen) des Objektendes im Eingabetext (ohne Mundbildzeichen)
- Wert – Dies variiert je nach Art des Sprachzeichens:
- SSML – SSML-Tag
- Mundbild – Der Mundbildname
- Wort oder Satz – Eine Teilzeichenfolge des Eingabetextes, begrenzt durch die Start- und Endfelder
Beispielsweise kann Ihnen der Satz „Maria hatte ein kleines Lamm“ die folgende Sprachmarkendatei liefern, wenn Sie Folgendes verwenden SpeechMarkTypes
= [„Wort“, „Satz“] im API-Aufruf, um die Sprachmarken zu erhalten:
Das Wort „had“ (am Ende von Zeile 3) beginnt 373 Millisekunden nach Beginn des Audiostreams, beginnt bei Byte 5 und endet bei Byte 8 des Eingabetextes.
Architektur Überblick
Die Architektur unserer Lösung ist im folgenden Diagramm dargestellt.
Unsere Website für die Lösung ist auf Amazon S3 als statische Dateien (JavaScript, HTML) gespeichert, die in gehostet werden Amazon CloudFront (1) und an den Browser des Endbenutzers übermittelt (2).
Wenn der Benutzer über ein einfaches HTML-Formular Text in den Browser eingibt, wird dieser von JavaScript im Browser verarbeitet. Dadurch wird eine API (3) aufgerufen Amazon API-Gateway, um ein aufzurufen AWS Lambda Funktion (4). Die Lambda-Funktion ruft Amazon Polly (5) auf, um Sprach- (Audio) und Sprachmarkierungsdateien (JSON) zu generieren. Es werden zwei Anrufe an Amazon Polly getätigt, um die Audio- und Sprachmarkierungsdateien abzurufen. Die Aufrufe erfolgen über asynchrone JavaScript-Funktionen. Die Ausgabe dieser Aufrufe sind die Audio- und Sprachmarkierungsdateien, die in Amazon S3 (6a) gespeichert werden. Um zu vermeiden, dass mehrere Benutzer sich gegenseitig die Dateien im S3-Bucket überschreiben, werden die Dateien in einem Ordner mit Zeitstempel gespeichert. Dies minimiert die Wahrscheinlichkeit, dass zwei Benutzer die Dateien des anderen in Amazon S3 überschreiben. Für eine Produktionsversion können wir robustere Ansätze verwenden, um Benutzerdateien basierend auf Benutzer-ID oder Zeitstempel und anderen eindeutigen Merkmalen zu trennen.
Die Lambda-Funktion erstellt vorsignierte URLs für die Sprach- und Sprachmarkierungsdateien und gibt sie in Form eines Arrays (7, 8, 9) an den Browser zurück.
Wenn der Browser die Textdatei an den API-Endpunkt sendet (3), erhält er in einem synchronen Aufruf zwei vorsignierte URLs für die Audiodatei und die Sprachmarkendatei zurück (9). Dies wird durch das Schlüsselsymbol neben dem Pfeil angezeigt.
Eine JavaScript-Funktion im Browser ruft die Sprachmarkierungsdatei und das Audio von ihren URL-Handles ab (10). Es richtet den Audioplayer für die Audiowiedergabe ein. (Zu diesem Zweck wird der HTML-Audio-Tag verwendet).
Wenn der Benutzer auf die Wiedergabeschaltfläche klickt, werden die im vorherigen Schritt abgerufenen Sprachmarkierungen analysiert, um eine Reihe zeitgesteuerter Ereignisse unter Verwendung von Zeitüberschreitungen zu erstellen. Die Ereignisse rufen eine Rückruffunktion auf, eine weitere JavaScript-Funktion, mit der der gesprochene Text im Browser hervorgehoben wird. Gleichzeitig streamt die JavaScript-Funktion die Audiodatei von ihrem URL-Handle.
Das Ergebnis ist, dass die Ereignisse zu den richtigen Zeiten ausgeführt werden, um den gesprochenen Text während der Audiowiedergabe hervorzuheben. Die Verwendung von JavaScript-Timeouts ermöglicht uns die Synchronisierung des Audios mit dem hervorgehobenen Text.
Voraussetzungen:
Um diese Lösung auszuführen, benötigen Sie eine AWS-Konto sowie einem AWS Identity and Access Management and (IAM) Benutzer, der berechtigt ist, Amazon CloudFront, Amazon API Gateway, Amazon Polly, Amazon S3, AWS Lambda und AWS Step Functions zu verwenden.
Verwenden Sie Lambda, um Sprache und Sprachmarkierungen zu generieren
Der folgende Code ruft Amazon Polly auf synthesize_speech
Führen Sie die Funktion zweimal aus, um die Audio- und Sprachmarkierungsdatei abzurufen. Sie werden als asynchrone Funktionen ausgeführt und so koordiniert, dass sie mithilfe von Versprechen gleichzeitig das Ergebnis zurückgeben.
Auf der JavaScript-Seite erfolgt die Texthervorhebung durch Textmarker (Start, Ende, Wort) und die zeitgesteuerten Ereignisse werden durch festgelegt setTimers()
:
Alternative Ansätze
Anstelle des vorherigen Ansatzes können Sie einige Alternativen in Betracht ziehen:
- Erstellen Sie sowohl die Sprachmarkierungen als auch die Audiodateien in einer Step Functions-Zustandsmaschine. Die Zustandsmaschine kann die Parallelverzweigungsbedingung aufrufen, um zwei verschiedene Lambda-Funktionen aufzurufen: eine zum Generieren von Sprache und eine andere zum Generieren von Sprachmarkierungen. Den Code hierfür finden Sie im Verwendung von Schrittfunktionen Unterordner im Github-Repo.
- Rufen Sie Amazon Polly asynchron auf, um die Audio- und Sprachmarkierungen zu generieren. Dieser Ansatz kann verwendet werden, wenn der Textinhalt umfangreich ist oder der Benutzer keine Echtzeitantwort benötigt. Weitere Informationen zum Erstellen langer Audiodateien finden Sie unter Lange Audiodateien erstellen.
- Lassen Sie Amazon Polly die vorsignierte URL direkt mithilfe von erstellen
generate_presigned_url
Aufruf des Amazon Polly-Clients in Boto3. Wenn Sie sich für diesen Ansatz entscheiden, generiert Amazon Polly die Audio- und Sprachmarkierungen jedes Mal neu. In unserem aktuellen Ansatz speichern wir diese Dateien in Amazon S3. Obwohl diese gespeicherten Dateien in unserer Version des Codes nicht über den Browser zugänglich sind, können Sie den Code ändern, um zuvor generierte Audiodateien abzuspielen, indem Sie sie von Amazon S3 abrufen (anstatt die Audiodaten für den Text erneut mit Amazon Polly zu generieren). Wir haben mehr Codebeispiele für den Zugriff auf Amazon Polly mit Python in der AWS-Codebibliothek.
Erstellen Sie die Lösung
Die gesamte Lösung erhalten Sie bei uns Github Repo. Um diese Lösung in Ihrem Konto zu erstellen, befolgen Sie die Anweisungen in der Datei README.md. Die Lösung umfasst eine AWS CloudFormation Vorlage zur Bereitstellung Ihrer Ressourcen.
Aufräumen
Um die in dieser Demo erstellten Ressourcen zu bereinigen, führen Sie die folgenden Schritte aus:
- Löschen Sie die S3-Buckets, die zum Speichern der CloudFormation-Vorlage (Bucket A), des Quellcodes (Bucket B) und der Website erstellt wurden (
pth-cf-text-highlighter-website-[Suffix]
). - Löschen Sie den CloudFormation-Stack
pth-cf
. - Löschen Sie den S3-Bucket mit den Sprachdateien (
pth-speech-[Suffix]
). Dieser Bucket wurde von der CloudFormation-Vorlage erstellt, um die von Amazon Polly generierten Audio- und Sprachmarkierungsdateien zu speichern.
Zusammenfassung
In diesem Beitrag haben wir ein Beispiel für eine Lösung gezeigt, die mithilfe von Amazon Polly Text hervorheben kann, während er gesprochen wird. Es wurde mit der Sprachmarkierungsfunktion von Amazon Polly entwickelt, die uns Markierungen für die Stelle liefert, an der jedes Wort oder jeder Satz in einer Audiodatei beginnt.
Die Lösung ist als CloudFormation-Vorlage verfügbar. Es kann unverändert für jede Webanwendung bereitgestellt werden, die eine Text-in-Sprache-Konvertierung durchführt. Dies wäre nützlich, um Audio in Büchern, Avataren mit Lippensynchronisationsfunktionen (unter Verwendung von Mundbild-Sprachzeichen), Websites und Blogs visuelle Funktionen hinzuzufügen und Menschen mit Hörbehinderungen zu helfen.
Es kann erweitert werden, um neben der Texthervorhebung weitere Aufgaben auszuführen. Beispielsweise kann der Browser im Frontend Bilder anzeigen, Musik abspielen und andere Animationen ausführen, während der Text gesprochen wird. Diese Funktion kann für die Erstellung dynamischer Hörbücher, Bildungsinhalte und umfangreicherer Text-to-Speech-Anwendungen nützlich sein.
Wir heißen Sie herzlich willkommen, diese Lösung auszuprobieren und über die folgenden Links mehr über die relevanten AWS-Services zu erfahren. Sie können die Funktionalität für Ihre spezifischen Anforderungen erweitern.
Über den Autor
Varad G Varadarajan ist Trusted Advisor und Field CTO für Digital Native Businesses (DNB)-Kunden bei AWS. Er hilft ihnen bei der Entwicklung und dem Aufbau innovativer Lösungen im großen Maßstab mithilfe von AWS-Produkten und -Services. Varads Interessengebiete sind IT-Strategieberatung, Architektur und Produktmanagement. Außerhalb der Arbeit schreibt Varad gerne kreativ, schaut sich mit Familie und Freunden Filme an und reist.
- SEO-gestützte Content- und PR-Distribution. Holen Sie sich noch heute Verstärkung.
- PlatoData.Network Vertikale generative KI. Motiviere dich selbst. Hier zugreifen.
- PlatoAiStream. Web3-Intelligenz. Wissen verstärkt. Hier zugreifen.
- PlatoESG. Automobil / Elektrofahrzeuge, Kohlenstoff, CleanTech, Energie, Umwelt, Solar, Abfallwirtschaft. Hier zugreifen.
- BlockOffsets. Modernisierung des Eigentums an Umweltkompensationen. Hier zugreifen.
- Quelle: https://aws.amazon.com/blogs/machine-learning/highlight-text-as-its-being-spoken-using-amazon-polly/
- :hast
- :Ist
- :nicht
- $UP
- 1
- 10
- 100
- 11
- 12
- 17
- 19
- 22
- 23
- 33
- 7
- 8
- 9
- a
- Fähigkeit
- Über Uns
- Zugang
- zugänglich
- Zugriff
- Konto
- Hinzufügen
- Zusätzliche
- Berater
- Nach der
- aufs Neue
- AI
- Hilfe
- allein
- Alternativen
- Obwohl
- Amazon
- Amazon API-Gateway
- Amazonas Polly
- Amazon Web Services
- an
- und
- Animationen
- Ein anderer
- jedem
- Bienen
- Anwendung
- Anwendungen
- Ansatz
- Ansätze
- angemessen
- Architektur
- SIND
- Bereiche
- Feld
- AS
- At
- Audio-
- verfügbar
- Avatare
- vermeiden
- – warten auf Sie!
- AWS
- AWS Lambda
- AWS Step-Funktionen
- Zurück
- basierend
- BE
- weil
- Anfang
- Sein
- neben
- Blogs
- Bücher
- beide
- Filiale
- Browser
- bauen
- Unternehmen
- Taste im nun erscheinenden Bestätigungsfenster nun wieder los.
- by
- rufen Sie uns an!
- Aufrufe
- CAN
- Fähigkeiten
- capability
- Fälle
- sicher
- Chancen
- Charakteristik
- Zeichen
- Chatbot
- Chatbots
- Klasse
- Auftraggeber
- Code
- kombiniert
- Zustand
- Verbindung
- Geht davon
- Konsul (Console)
- Consulting
- enthält
- Inhalt
- fortsetzen
- Gespräch
- Umwandlung (Conversion)
- verkaufen
- koordiniert
- Kernbereich
- Dazugehörigen
- erstellen
- erstellt
- schafft
- Erstellen
- Kreativ (Creative)
- CTO
- Strom
- Kunden
- Demo
- Abhängig
- Einsatz
- Details
- entwickelt
- Entwicklung
- anders
- digital
- Direkt
- DNB
- do
- Dokument
- Tut nicht
- erledigt
- Nicht
- dynamisch
- dynamisch
- jeder
- Früher
- Bildungs-
- ermöglicht
- Ende
- Endpunkt
- endet
- greift ein
- Tritt ein
- Ganz
- Fehler
- Veranstaltungen
- Jedes
- Beispiel
- Beispiele
- ausgesetzt
- erweitern
- Familie
- Merkmal
- wenige
- Feld
- Felder
- Reichen Sie das
- Mappen
- Finden Sie
- Fertig
- folgen
- Folgende
- Aussichten für
- unten stehende Formular
- Format
- gefunden
- Freunde
- für
- Materials des
- Vorderes Ende
- Funktion
- Funktionalität
- Funktionen
- Tor
- erzeugen
- erzeugt
- erzeugt
- GitHub
- ABSICHT
- gibt
- Go
- hätten
- Griff
- Griffe
- Haben
- he
- Hörtests
- hilft
- Hervorheben
- Besondere
- Hervorheben
- gehostet
- HTML
- http
- HTTPS
- i
- ID
- Identitätsschutz
- if
- Bilder
- in
- Dazu gehören
- Einschließlich
- angegeben
- Information
- innovativ
- Varianten des Eingangssignals:
- innerhalb
- sofortig
- beantragen müssen
- Anleitung
- Interesse
- interessant
- in
- ruft auf
- IT
- SEINE
- JavaScript
- JSON
- Wesentliche
- Wissen
- Sprache
- Sprachen
- grosse
- LERNEN
- lernen
- Länge
- lassen
- Bibliothek
- Line
- Links
- wenig
- Lang
- Maschine
- Maschinelles Lernen
- gemacht
- Management
- viele
- Kennzeichen
- erwähnt
- ML
- ändern
- mehr
- Filme
- mehrere
- Musik
- nativen
- Need
- Bedürfnisse
- Neu
- neu
- weiter
- Objekt
- Objekte
- erhalten
- of
- Offset
- on
- EINEM
- or
- Andere
- UNSERE
- Möglichkeiten für das Ausgangssignal:
- aussen
- Parallel
- Teile
- Personen
- Ausführen
- führt
- Erlaubnis
- Ort
- Plato
- Datenintelligenz von Plato
- PlatoData
- Play
- gespielt
- Spieler
- Post
- Gegenwart
- vorgeführt
- früher
- vorher
- Verarbeitet
- Produkt
- Produktmanagement
- Produktion
- Produkte
- Versprechen
- Promises
- bietet
- Bereitstellung
- Bereitstellung
- Zweck
- schnell
- Echtzeit
- Release
- relevant
- Downloads
- Antwort
- Folge
- Rückkehr
- Rückgabe
- robust
- Führen Sie
- s
- gleich
- Skalieren
- sendet
- Satz
- Modellreihe
- Lösungen
- kompensieren
- Sets
- erklären
- zeigte
- Konzerte
- Seite
- Einfacher
- gleichzeitig
- Lösung
- Lösungen
- Quelle
- Quellcode
- sprechen
- spezifisch
- Rede
- gesprochen
- Stapel
- Anfang
- beginnt
- Bundesstaat
- Schritt
- Shritte
- Lagerung
- speichern
- gelagert
- Strategie
- Strom
- Ströme
- Schnur
- so
- Symbol
- Synchronisation
- TAG
- und Aufgaben
- Vorlage
- Text-to-Speech
- zur Verbesserung der Gesundheitsgerechtigkeit
- Das
- Die Quelle
- Der Staat
- ihr
- Sie
- Diese
- fehlen uns die Worte.
- Durch
- Zeit
- Zeitgesteuert
- mal
- Zeitstempel
- zu
- Übersetzen
- Reise
- vertraut
- versuchen
- Drehungen
- XNUMX
- tippe
- verstehen
- einzigartiges
- URL
- us
- -
- benutzt
- Mitglied
- Nutzer
- verwendet
- Verwendung von
- Wert
- Werte
- Version
- wurde
- beobachten
- Weg..
- we
- Netz
- Internetanwendung
- Web-Services
- Webseite
- Webseiten
- willkommen
- Was
- wann
- welche
- während
- WHO
- ganze
- mit
- Word
- Arbeiten
- würde
- Schreiben
- Du
- Ihr
- Zephyrnet