Das Lesen des gedruckten Wortes eröffnet eine Welt voller Informationen, Vorstellungskraft und Kreativität. Gescannte Bücher und Dokumente können jedoch für Menschen mit Seh- und Lernbehinderungen schwierig zu konsumieren sein. Darüber hinaus hören sich manche Menschen lieber textbasierte Inhalte an als sie zu lesen. Eine Document-to-Speech-Lösung erweitert die Reichweite digitaler Inhalte, indem sie Textinhalten eine Stimme verleiht. Es wird in verschiedenen Branchen eingesetzt, z. B.:
- Unterhaltung- Sie können Ihre eigenen Hörbücher erstellen.
- Bildungswesen – Studierende können ihre Vorlesungsunterlagen in Sprache umwandeln und überall darauf zugreifen.
- Patientenversorgung – Dosierungsanweisungen und Vorsichtsmaßnahmen sind in der Regel in kleiner Schrift und schwer lesbar. Mit dieser Lösung können Sie ein Foto machen, in Sprache umwandeln und die Anweisungen anhören, um potenzielle Schäden zu vermeiden.
Die Document-to-Speech-Lösung wandelt gescannte Bücher oder Dokumente, die mit einem Mobiltelefon oder Handheld aufgenommen wurden, automatisch in Sprache um. Diese Lösung erweitert die Möglichkeiten von Amazonas Polly. Wir Text extrahieren aus gescannten Dokumenten mit Amazontext, und konvertieren Sie dann die Text zu Sprache mit Amazon Polly. Zu den Vorteilen der Lösung gehören Mobilität und Freiheit für den Benutzer sowie verbesserte Lernfähigkeiten für frühe Leser.
Die Idee stammt von Harry Pan, einer der liebsten Eltern-Kind-Aktivitäten des Blogautors – dem Lesen von Büchern. „Mein Sohn mag Märchenbücher, ist aber zu jung, um sie alleine zu lesen. Ich liebe es, ihm vorzulesen, aber manchmal muss ich arbeiten oder mich um die Hausarbeit kümmern. Daraus entstand die Idee, eine Document-to-Speech-Lösung zu entwickeln, die ihm vorlesen kann, wenn ich beschäftigt bin.“
Lösungsübersicht
Die Lösung ist eine ereignisgesteuerte serverlose Architektur, die Amazon AI-Dienste verwendet, um gescannte Dokumente in Sprache umzuwandeln. Amazon Textract und Amazon Polly gehören zur obersten Schicht des AWS-Stacks für maschinelles Lernen (ML). Diese Dienste ermöglichen es Entwicklern, jeder Anwendung ohne ML-Vorkenntnisse einfach Intelligenz hinzuzufügen.
Amazon Textract ist ein ML-Dienst, der automatisch Text, Handschrift und Daten aus gescannten Dokumenten extrahiert. Es geht über die einfache optische Zeichenerkennung (OCR) hinaus, um Daten aus Formularen und Tabellen zu identifizieren, zu verstehen und zu extrahieren. Amazon Textract verwendet ML, um jede Art von Dokument zu lesen und zu verarbeiten und Text, Handschriften, Tabellen und andere Daten ohne manuellen Aufwand genau zu extrahieren.
Amazon Polly ist ein Text-to-Speech-Dienst, der Text in lebensechte Sprache umwandelt und es Ihnen ermöglicht, sprechende Anwendungen zu erstellen und völlig neue Kategorien sprachfähiger Produkte zu entwickeln. Amazon Polly verwendet fortschrittliche Deep-Learning-Technologien, um Sprache zu synthetisieren, die wie eine menschliche Stimme klingt.
Die Nutzung von Amazon AI-Diensten bietet erhebliche Vorteile:
- Sie machen wenig Mühe; Sie können diese APIs in jede Anwendung integrieren
- Sie bieten hochgradig skalierbare und kostengünstige Lösungen
- Ihr Unternehmen kann seinen Fokus von der Entwicklung benutzerdefinierter Modelle auf Geschäftsergebnisse verlagern
Die Lösung verwendet auch Amazon API-Gateway zum schnellen Einrichten von APIs, die die Web-Benutzeroberfläche aufrufen kann, um Vorgänge wie das Hochladen von Dokumenten und das Konvertieren gescannter Dokumente in Sprache auszuführen. API Gateway bietet eine skalierbare Möglichkeit zum Erstellen, Veröffentlichen und Verwalten sicherer APIs. In dieser Lösung verwenden wir auch die API Gateway WebSocket-Unterstützung, um eine dauerhafte Verbindung zwischen der Web-Benutzeroberfläche und dem Backend herzustellen, sodass das Backend weiterhin Fortschrittsaktualisierungen in Echtzeit an den Benutzer senden kann.
Wir verwenden AWS Lambda Funktionen zum Auslösen asynchroner Amazon Textract- und Amazon Polly-Aufträge. Lambda ist ein hochverfügbarer und skalierbarer Rechendienst, mit dem Sie Code ausführen können, ohne Ressourcen bereitzustellen.
Wir verwenden eine AWS Step-Funktionen Zustandsmaschine, um zwei parallele Lambda-Funktionen zu orchestrieren – eine zum Moderieren von Text und die andere zum Speichern von Text Amazon Simple Storage-Service (Amazon S3). Step Functions ist ein serverloser Orchestrierungsdienst zum Definieren von Anwendungsworkflows als eine Reihe ereignisgesteuerter Schritte.
Architektur und Code
Wie im vorherigen Abschnitt beschrieben, verwenden wir zwei wichtige KI-Dienste, Amazon Textract und Amazon Polly, um eine Document-to-Speech-Konvertierungslösung zu erstellen. Ein zusätzlicher Service, den wir nicht angesprochen haben, ist AWS verstärken. Mit Amplify können Front-End-Entwickler schnell erweiterbare Full-Stack-Web- und Mobil-Apps erstellen. Mit Amplify können Sie ganz einfach ein Backend konfigurieren, eine Anwendung innerhalb von Minuten damit verbinden und mühelos skalieren. Wir verwenden Amplify, um eine Web-Benutzeroberfläche zu hosten, mit der Benutzer ihre gescannten Dokumente hochladen können.
Sie können auch Ihre eigene Benutzeroberfläche ohne Amplify verwenden. Während wir tief in diese Lösung eintauchen, zeigen wir, wie Sie jede Clientanwendung verwenden können, um eine Verbindung zum Backend herzustellen, um Dokumente in Sprache umzuwandeln – solange sie REST- und WebSocket-APIs unterstützen. Die Web-Benutzeroberfläche hier dient lediglich dazu, die wichtigsten Funktionen dieser Lösung zu demonstrieren. Zum jetzigen Zeitpunkt unterstützt die Lösung JPEG-, PNG- und PDF-Eingabeformate sowie die englische Sprache.
Das folgende Diagramm zeigt die Lösungsarchitektur.
Wir durchlaufen diese Architektur, indem wir dem Pfad einer einzelnen Benutzeranfrage folgen:
- Der Benutzer besucht die auf Amplify gehostete Web-Benutzeroberfläche. Der UI-Code ist die
index.html
Datei in dasclient
Ordner des Code-Repositorys. - Der Benutzer wählt eine JPG-, PDF- oder PNG-Datei zum Hochladen über die Webbenutzeroberfläche aus.
- Der Benutzer initiiert die Audio konvertieren und abspielen Prozess von der Webbenutzeroberfläche, die die Eingabedatei über eine auf API Gateway gehostete REST-API in einen S3-Bucket hochlädt.
- Wenn der Upload abgeschlossen ist, beginnt die Dokument-zu-Sprache-Konvertierung als Hintergrundprozess:
- Während der Konvertierung hält der Web-Client eine dauerhafte WebSocket-Verbindung mit dem API-Gateway aufrecht. Dadurch können die Backend-Prozesse (Lambda-Funktionen) kontinuierlich Fortschrittsaktualisierungen an den Webclient senden.
- Die Anfrage geht durch das API-Gateway und löst die Lambda-Funktion aus
convert-images-to-text
. Diese Funktion ruft Amazon Textract asynchron auf, um das Dokument in Text umzuwandeln. - Wenn die Bild-zu-Text-Konvertierung abgeschlossen ist, sendet Amazon Textract eine Benachrichtigung an Amazon Simple Notification Service (Amazon SNS).
- Die Benachrichtigung löst die Lambda-Funktion aus
on-textract-ready
, die eine Step Functions-Zustandsmaschine startet. - Die Zustandsmaschine orchestriert die folgenden Schritte:
- Es führt die Lambda-Funktion aus
retrieve-text
um den konvertierten Text von Amazon Textract zu erhalten. - Anschließend führt es Lambda-Funktionen aus
moderate-text
undstore-text
parallel zu.moderate-text
stoppt die weitere Verarbeitung, wenn unerwünschte Wörter erkannt werden, undstore-text
speichert eine Kopie des konvertierten Textes in einem S3-Bucket. - Nachdem die parallelen Schritte abgeschlossen sind, führt die Zustandsmaschine die Lambda-Funktion aus
convert-text-to-audio
, die Amazon Polly asynchron mit dem konvertierten Text für die Sprachkonvertierung aufruft. Die Zustandsmaschine endet nach diesem Schritt.
- Es führt die Lambda-Funktion aus
- Ähnlich wie Amazon Textract sendet Amazon Polly eine Benachrichtigung an Amazon SNS, wenn der Job erledigt ist. Die Benachrichtigung löst die Lambda-Funktion aus
on-polly-ready
, die zusammen mit dem Amazon S3-Speicherort der konvertierten Audiodatei eine abschließende Nachricht an die Webbenutzeroberfläche sendet.
- Die Web-Benutzeroberfläche lädt die endgültig konvertierte Audiodatei von Amazon S3 über eine REST-API herunter und spielt sie dann für den Benutzer ab.
- Die Anwendung verwendet eine Amazon DynamoDB Tabelle zum Nachverfolgen von Auftragsinformationen wie Amazon Textract-Auftrags-ID, Amazon Polly-Auftrags-ID und mehr.
Der Code wird gehostet auf GitHub und wird bereitgestellt mit AWS Cloud-Entwicklungskit (AWS CDK), ein Open-Source-Softwareentwicklungs-Framework zum Definieren von Cloud-Anwendungsressourcen mit vertrauten Programmiersprachen. AWS CDK stellt Ressourcen auf wiederholbare Weise bereit durch AWS CloudFormation.
Voraussetzungen:
Die einzige Voraussetzung für die Bereitstellung dieser Lösung ist ein AWS-Konto.
Stellen Sie die Lösung bereit
Die folgenden Schritte beschreiben, wie die Anwendung bereitgestellt wird:
- Melden Sie sich bei Ihrem AWS-Konto an.
- Auf dem AWS Cloud9 Konsole öffnen, eine vorhandene Umgebung öffnen oder auswählen Umgebung erstellen einen neuen zu erstellen.
- In Ihrer AWS Cloud9 IDE auf der Window Menü, wählen Sie Neues Terminal um ein Terminal zu öffnen.
Alle folgenden Schritte werden im selben Terminal durchgeführt.
- Klonen Sie das Git-Repository und geben Sie das Projektverzeichnis ein:
- Erstellen Sie eine virtuelle Python-Umgebung:
- Nachdem der Initialisierungsvorgang abgeschlossen und die virtuelle Umgebung erstellt wurde, verwenden Sie den folgenden Schritt, um Ihre virtuelle Umgebung zu aktivieren:
- Nachdem die virtuelle Umgebung aktiviert wurde, installieren Sie die erforderlichen Abhängigkeiten:
- Sie können jetzt die CloudFormation-Vorlagen aus dem AWS CDK-Code synthetisieren:
- Stellen Sie die AWS CDK-Anwendung bereit und erfassen Sie später benötigte AWS CDK-Ausgaben:
Sie müssen Änderungen bestätigen, die für jeden Stack bereitgestellt werden sollen. Sie können den Fortschritt der Stack-Erstellung in der AWS Cloud Formation-Konsole überprüfen.
- Um den Webclient zu besuchen, führen Sie den folgenden Befehl aus und folgen Sie seiner Ausgabe, um die Front-End-Bereitstellung zu starten und den Webclient zu verwenden:
Wichtige Dinge zu beachten:
- Das
extract-cdk-outputs.py
Skript gibt die URL der Web-Benutzeroberfläche aus. Das Skript gibt auch Zeichenfolgen des S3-Bucket-Namens, des Datei-API-Endpunkts und des Konvertierungs-API-Endpunkts aus, die vor dem Hochladen eines Dokuments auf der Webbenutzeroberfläche festgelegt werden müssen. - Sie können die Liste der unerwünschten Wörter in der Variablen im einstellen
moderate-text
Lambda-Funktion.
Verwenden Sie die Anwendung
Die folgenden Schritte zeigen, wie Sie die Anwendung über die Web-Benutzeroberfläche verwenden.
- Füllen Sie nach dem letzten Schritt der Bereitstellung die Felder für aus S3-Bucket-Name, Datei-Endpunkt und Conversion-Endpunkt in der Web-UI.
- Auswählen Wählen Sie Datei um eine Eingabedatei hochzuladen.
- Auswählen
Audio konvertieren und abspielen.
Die Web-Benutzeroberfläche zeigt den Fortschritt der laufenden Konvertierung an.
Die Web-Benutzeroberfläche spielt das Audio automatisch ab, wenn die Konvertierung abgeschlossen ist.
Aufräumen
Führen Sie den folgenden Befehl aus, um alle Ressourcen zu löschen und zukünftige Gebühren zu vermeiden:
Zusammenfassung
In diesem Beitrag haben wir eine Lösung zur schnellen Bereitstellung einer Dokument-zu-Sprache-Konvertierungsanwendung mithilfe von zwei leistungsstarken KI-Diensten demonstriert: Amazon Textract und Amazon Polly. Wir haben gezeigt, wie die Lösung funktioniert, und eine detaillierte exemplarische Vorgehensweise für den Code und die Bereitstellungsschritte bereitgestellt. Diese Lösung ist als Referenzarchitektur oder Schnellstart gedacht, die Sie weiter verbessern können. Insbesondere könnten Sie Unterstützung für mehr menschliche Sprachen hinzufügen, eine Warteschlange zum Puffern eingehender Anfragen hinzufügen und Benutzer authentifizieren.
Wie in diesem Beitrag besprochen, sehen wir mehrere Anwendungsfälle für diese Lösung in verschiedenen Branchen. Probieren Sie es aus und lassen Sie uns wissen, wie dies Ihren Anwendungsfall gelöst hat, indem Sie Feedback im Kommentarbereich hinterlassen. Sie können auf die Ressourcen für die Lösung im zugreifen Document-to-Speech-GitHub-Repository.
Bibliographie
Weitere Informationen finden Sie in den folgenden Ressourcen:
- Amazon Textract Entwicklerhandbuch
- Amazon Polly Entwicklerhandbuch
- Arbeiten mit WebSocket-APIs
- AWS CDK-Konstruktbibliothek
- AWS Amplify Konstruktbibliothek
Über die Autoren
Harry Pan ist ISV Solutions Architect bei Amazon Web Services in der San Francisco Bay Area, wo er Softwareunternehmen hilft, ihre Geschäftsziele zu erreichen, indem er gut strukturierte IT-Systeme aufbaut. Seine Freizeit verbringt er gerne mit seiner Familie, spielt Tennis, programmiert in Haskell und reist.
CHaitra Mathur ist Principal Solutions Architect bei AWS. Sie leitet Partner und Kunden beim Aufbau hochskalierbarer, zuverlässiger, sicherer und kostengünstiger Lösungen auf AWS. In ihrer Freizeit liest sie gerne, macht Yoga und verbringt Zeit mit ihren Töchtern.
- Coinsmart. Europas beste Bitcoin- und Krypto-Börse.
- Platoblockkette. Web3-Metaverse-Intelligenz. Wissen verstärkt. DEN FREIEN ZUGANG.
- CryptoHawk. Altcoin-Radar. Kostenlose Testphase.
- Quelle: https://aws.amazon.com/blogs/machine-learning/increase-your-content-reach-with-automated-document-to-speech-conversion-using-amazon-ai-services/
- "
- &
- 10
- 100
- 7
- 9
- Zugang
- Konto
- über
- Aktivitäten
- Zusatz
- Zusätzliche
- advanced
- Vorteilen
- AI
- KI-Dienste
- Alle
- Zulassen
- Amazon
- Amazon Web Services
- von jedem Standort
- Bienen
- APIs
- Anwendung
- Anwendungen
- Apps
- Architektur
- Bereich
- Audio-
- Automatisiert
- verfügbar
- AWS
- Hintergrund
- Bucht
- Vorteile
- Beyond
- Blog
- Bücher
- Grenze
- bauen
- Building
- Geschäft
- Fähigkeiten
- Erfassung
- Fälle
- CD
- Gebühren
- Auswählen
- Cloud
- Code
- Programmierung
- Bemerkungen
- Unternehmen
- Berechnen
- Vernetz Dich
- Verbindung
- Konsul (Console)
- verbrauchen
- Inhalt
- Umwandlung (Conversion)
- kostengünstiger
- könnte
- erstellen
- erstellt
- Schaffung
- Original
- Kunden
- technische Daten
- zeigen
- weisen nach, dass
- einsetzen
- Einsatz
- Einsatz
- beschrieben
- zerstören
- Detail
- detailliert
- erkannt
- Entwickler:in / Unternehmen
- Entwickler
- Entwicklung
- Gerät
- anders
- schwer
- digital
- Unterlagen
- Downloads
- Früh
- leicht
- Anstrengung
- Endpunkt
- Englisch
- Enter
- Arbeitsumfeld
- etablieren
- vorhandenen
- KONZENTRAT
- Familie
- Eigenschaften
- Feedback
- Felder
- Setzen Sie mit Achtsamkeit
- folgen
- Folgende
- Formen
- Unser Ansatz
- Francisco cisco~~POS=HEADCOMP
- Freiheit
- voller
- Funktion
- weiter
- Zukunft
- Git
- GitHub
- Unterstützung
- Ziele
- Anleitungen
- hilft
- hier
- hoch
- gehostet
- Haushalt
- Ultraschall
- Hilfe
- HTTPS
- human
- Idee
- identifizieren
- Phantasie
- das
- Erhöhung
- Energiegewinnung
- Information
- Varianten des Eingangssignals:
- installieren
- integrieren
- Intelligenz
- IT
- Job
- Jobs
- Wesentliche
- Wissen
- Sprache
- Sprachen
- lernen
- Liste
- wenig
- Standorte
- Lang
- ich liebe
- Maschine
- Maschinelles Lernen
- halten
- Weise
- manuell
- ML
- Mobil
- Handy
- Mobilität
- für
- mehr
- mehrere
- normal
- Notizen
- Benachrichtigung
- bieten
- laufend
- XNUMXh geöffnet
- öffnet
- Einkauf & Prozesse
- Orchesterbearbeitung
- Auftrag
- Organisation
- Andere
- besitzen
- Personen
- ein Bild
- Play
- spielend
- Potenzial
- größte treibende
- früher
- Principal
- Prozessdefinierung
- anpassen
- Verarbeitung
- Produkte
- Programmierung
- Programmiersprachen
- Projekt
- bietet
- veröffentlichen
- Direkt
- schnell
- erreichen
- Leser
- Lesebrillen
- Quelle
- Anforderung
- Zugriffe
- falls angefordert
- Voraussetzungen:
- Downloads
- REST
- Führen Sie
- San
- San Francisco
- skalierbaren
- Skalieren
- Sektoren
- Verbindung
- Modellreihe
- Serverlos
- Dienstleistungen
- kompensieren
- verschieben
- signifikant
- Einfacher
- klein
- So
- Software
- Software-Entwicklung
- solide
- Lösung
- Lösungen
- einige
- sie sind
- Ausgabe
- Stapel
- Anfang
- beginnt
- Bundesstaat
- Lagerung
- speichern
- Läden
- Support
- Unterstützt
- Systeme und Techniken
- Reden
- Technologies
- Vorlagen
- Terminal
- Durch
- Zeit
- oberste
- verfolgen sind
- Reise
- typisch
- ui
- verstehen
- Updates
- us
- -
- Nutzer
- Gegen
- Assistent
- Seh-
- Stimme
- Netz
- Web-Services
- .
- ohne
- Worte
- Arbeiten
- Werk
- weltweit wie ausgehandelt und gekauft ausgeführt wird.
- Schreiben