Ermöglichen Sie Sehbehinderten das Hören von Dokumenten mit Amazon Textract und Amazon Polly PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Ermöglichen Sie Sehbehinderten das Hören von Dokumenten mit Amazon Textract und Amazon Polly

Auf der AWS re:Invent-Konferenz 2021 in Las Vegas haben wir vorgeführt Lies für mich auf der AWS Builders Fair – einer Website, die Sehbehinderten dabei hilft, Dokumente zu hören.

Sehen Sie sich für eine bessere Qualität das Video an hier.

Adaptive Technologie und Barrierefreiheitsfunktionen sind oft teuer, wenn sie überhaupt verfügbar sind. Hörbücher helfen Sehbehinderten beim Lesen. Audiodeskription macht Filme zugänglich. Aber was tun, wenn die Inhalte nicht bereits digitalisiert sind?

Dieser Beitrag konzentriert sich auf die AWS AI-Services Amazontext und Amazonas Polly, die Menschen mit eingeschränktem Sehvermögen stärken. Read For Me wurde von dem sehbehinderten Jack Marchetti mitentwickelt.

Lösungsüberblick

Durch eine ereignisgesteuerte, serverlose Architektur und eine Kombination mehrerer KI-Dienste können wir aus einem Bild eines Dokuments oder einem beliebigen Bild mit Text natürlich klingende Audiodateien in mehreren Sprachen erstellen. Zum Beispiel ein Brief vom IRS, eine Urlaubskarte von der Familie oder sogar die Eröffnungstitel eines Films.

Folgende Referenzarchitektur, veröffentlicht in der AWS-Architekturzentrum zeigt den Arbeitsablauf eines Benutzers, der mit seinem Telefon ein Foto macht und eine MP3-Datei des in diesem Dokument gefundenen Inhalts abspielt.

Ermöglichen Sie Sehbehinderten das Hören von Dokumenten mit Amazon Textract und Amazon Polly PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Der Workflow umfasst die folgenden Schritte:

  1. Statische Inhalte (HTML, CSS, JavaScript) werden auf gehostet AWS verstärken.
  2. Temporärer Zugriff wird für anonyme Benutzer auf Backend-Dienste über eine gewährt Amazon Cognito Identitätspool.
  3. Die Bilddateien werden gespeichert in Amazon Simple Storage-Service (Amazon S3).
  4. Ein Benutzer führt eine POST-Anforderung durch Amazon API-Gateway an den Audiodienst, der an einen Express weiterleitet AWS Step-Funktionen Arbeitsablauf.
  5. Der Step Functions-Workflow umfasst die folgenden Schritte:
    1. Amazontext extrahiert Text aus dem Bild.
    2. Amazon verstehen erkennt die Sprache des Textes.
    3. Wenn die Zielsprache von der erkannten Sprache abweicht, Amazon Übersetzen übersetzt in die Zielsprache.
    4. Amazonas Polly erstellt anhand des Textes eine Audiodatei als Ausgabe.
  6. Der AWS Step Functions-Workflow erstellt eine Audiodatei als Ausgabe und speichert sie in Amazon S3 im MP3-Format.
  7. Eine vorsignierte URL mit dem Speicherort der in Amazon S3 gespeicherten Audiodatei wird über API Gateway an den Browser des Benutzers zurückgesendet. Das Mobilgerät des Benutzers spielt die Audiodatei unter Verwendung der vorsignierten URL ab.

In den folgenden Abschnitten erörtern wir die Gründe, warum wir uns für die spezifischen Dienste, Architekturmuster und Dienstfunktionen für diese Lösung entschieden haben.

AWS AI-Dienste

Mehrere KI-Dienste sind miteinander verbunden, um Read For Me mit Strom zu versorgen:

  • Amazon Textract identifiziert den Text im hochgeladenen Bild.
  • Amazon Comprehend bestimmt die Sprache.
  • Wenn der Benutzer eine andere gesprochene Sprache als die Sprache auf dem Bild auswählt, übersetzen wir diese mit Amazon Translate.
  • Amazon Polly erstellt die MP3-Datei. Wir nutzen die Amazon Polly Neural Engine, die eine natürlichere, lebensechte Audioaufnahme erzeugt.

Einer der Hauptvorteile der Nutzung dieser KI-Dienste ist die einfache Einführung, da nur wenig oder gar keine Kernerfahrung im maschinellen Lernen erforderlich ist. Die Dienste stellen APIs bereit, die Clients mithilfe von SDKs aufrufen können, die in mehreren Programmiersprachen wie Python und Java verfügbar sind.

Mit Read For Me haben wir die Basis geschrieben AWS Lambda Funktionen in Python.

AWS SDK für Python (Boto3)

Das AWS SDK für Python (Boto3) vereinfacht die Interaktion mit AWS-Services. Die folgenden Zeilen des Python-Codes geben beispielsweise den Text zurück, der in dem von Ihnen bereitgestellten Bild oder Dokument gefunden wurde:

import boto3
client = boto3.client('textract')
response = client.detect_document_text(
Document={ 'S3Object': { 'Bucket': 'bucket-name', 'Name': 's3-key'
}
})
#do something with the response

Der gesamte Python-Code wird innerhalb einzelner Lambda-Funktionen ausgeführt. Es müssen keine Server bereitgestellt und keine Infrastruktur gewartet werden.

Architekturmuster

In diesem Abschnitt diskutieren wir die verschiedenen Architekturmuster, die in der Lösung verwendet werden.

Serverlos

Wir haben aus zwei Hauptgründen eine serverlose Architektur implementiert: Aufbaugeschwindigkeit und Kosten. Da wir keine zugrunde liegende Hardware warten oder Infrastruktur bereitstellen mussten, konzentrierten wir uns ausschließlich auf den Code der Geschäftslogik und nichts anderes. Dadurch konnten wir innerhalb weniger Tage einen funktionierenden Prototypen zum Laufen bringen. Wenn Benutzer nicht aktiv Bilder hochladen und Aufnahmen anhören, läuft nichts und daher entstehen außer der Speicherung keine Kosten. Eine S3-Lebenszyklusverwaltungsregel löscht hochgeladene Bilder und MP3-Dateien nach 1 Tag, sodass die Speicherkosten niedrig sind.

Synchroner Arbeitsablauf

Wenn Sie serverlose Workflows erstellen, ist es wichtig zu verstehen, wann ein synchroner Aufruf aufgrund der Architektur und der Benutzererfahrung sinnvoller ist als ein asynchroner Prozess. Bei Read For Me gingen wir zunächst den asynchronen Weg und planten, WebSockets für die bidirektionale Kommunikation mit dem Frontend zu verwenden. Unser Workflow würde einen Schritt beinhalten, um die mit dem Step Functions-Workflow verknüpfte Verbindungs-ID zu finden und nach Abschluss das Front-End zu benachrichtigen. Weitere Informationen zu diesem Vorgang finden Sie unter Von Poll zu Push: Transformieren Sie APIs mit Amazon API Gateway-REST-APIs und WebSockets.

Wir haben uns letztendlich dagegen entschieden und Express-Schrittfunktionen verwendet, die synchron sind. Benutzer verstehen, dass die Verarbeitung eines Bildes nicht sofort erfolgt, wissen aber auch, dass es keine 30 Sekunden oder eine Minute dauert. Wir befanden uns in einem Bereich, in dem ein paar Sekunden für den Endbenutzer zufriedenstellend waren und die Vorteile von WebSockets nicht benötigten. Dies vereinfachte den Arbeitsablauf insgesamt.

Express Step Functions-Workflow

Die Möglichkeit, Ihren Code in kleinere, isolierte Funktionen aufzuteilen, ermöglicht eine feinkörnige Steuerung, einfachere Wartung und die Möglichkeit, genauer zu skalieren. Wenn wir beispielsweise feststellten, dass die Lambda-Funktion, die Amazon Polly zum Erstellen der Audiodatei veranlasste, langsamer lief als die Funktion, die die Sprache bestimmte, konnten wir diese Funktion vertikal skalieren und mehr Speicher hinzufügen, ohne dies für die anderen tun zu müssen. In ähnlicher Weise begrenzen Sie den Explosionsradius dessen, was Ihre Lambda-Funktion tun oder auf den sie zugreifen kann, wenn Sie ihren Umfang und ihre Reichweite einschränken.

Einer der Vorteile der Orchestrierung Ihres Workflows mit Step Functions ist die Möglichkeit, Entscheidungsflusslogik einzuführen, ohne Code schreiben zu müssen.

Unser Step Functions-Workflow ist nicht komplex. Es ist linear bis zum Übersetzungsschritt. Wenn wir keine Übersetzungs-Lambda-Funktion aufrufen müssen, bedeutet das weniger Kosten für uns und eine schnellere Erfahrung für den Benutzer. Wir können den visuellen Designer auf der Step Functions-Konsole verwenden, um den spezifischen Schlüssel in der Eingabenutzlast zu finden und, falls vorhanden, eine Funktion über die andere mit JSONPath aufzurufen. Unsere Payload enthält beispielsweise einen Schlüssel namens translate:

{ 
extracted_text: "hello world",
target_language: "es",
source_language: "en",
translate: true
}

Im visuellen Designer von Step Functions finden wir den Übersetzungsschlüssel und richten entsprechende Regeln ein.

Ermöglichen Sie Sehbehinderten das Hören von Dokumenten mit Amazon Textract und Amazon Polly PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Kopflose Architektur

Amplify hostet den Front-End-Code. Das Frontend wird in React geschrieben und der Quellcode eingecheckt AWS-CodeCommit. Amplify löst einige Probleme für Benutzer, die versuchen, statische Websites bereitzustellen und zu verwalten. Wenn Sie dies manuell tun (unter Verwendung eines S3-Buckets, der für das statische Website-Hosting eingerichtet ist und diesen mit Amazon CloudFront), müssten Sie den Cache bei jeder Bereitstellung selbst ablaufen lassen. Sie müssten auch Ihre eigene CI/CD-Pipeline schreiben. Amplify übernimmt das für Sie.

Dies ermöglicht eine Headless-Architektur, bei der der Front-End-Code vom Back-End entkoppelt ist und jede Schicht unabhängig von der anderen verwaltet und skaliert werden kann.

ID analysieren

Im vorangegangenen Abschnitt haben wir die Architekturmuster für die Verarbeitung des hochgeladenen Bildes und die Erstellung einer MP3-Datei daraus besprochen. Sich ein Dokument vorlesen zu lassen, ist ein guter erster Schritt, aber was ist, wenn Sie nur etwas Bestimmtes wissen möchten, ohne dass Ihnen alles vorgelesen wird? Beispielsweise müssen Sie online ein Formular ausfüllen und Ihre Personalausweis- oder Reisepassnummer oder möglicherweise das Ablaufdatum angeben. Sie müssen dann ein Foto Ihres Ausweises machen und, während Sie ihn sich vorlesen lassen, auf diesen bestimmten Teil warten. Alternativ können Sie Analyse-ID verwenden.

Analyze ID ist eine Funktion von Amazon Textract, mit der Sie Dokumente abfragen können. Read For Me enthält ein Dropdown-Menü, in dem Sie gezielt nach dem Ablaufdatum, dem Ausstellungsdatum oder der Dokumentnummer fragen können. Sie können den gleichen Workflow verwenden, um eine MP3-Datei zu erstellen, die eine Antwort auf Ihre spezifische Frage bietet.

Sie können die Analyse-ID-Funktion unter demonstrieren readforme.io/analyze.

Zusätzliche Polly-Funktionen

  • Read For Me bietet mehrere neuronale Stimmen, die verschiedene Sprachen und Dialekte verwenden. Beachten Sie, dass es mehrere andere gibt Stimmen Sie können wählen, was wir nicht implementiert haben. Wenn eine neue Stimme verfügbar ist, genügt ein Update des Front-End-Codes und eine Lambda-Funktion, um davon zu profitieren.
  • Der Polly-Dienst bietet auch andere Optionen, die wir noch in Read For Me aufnehmen müssen. Dazu gehören die Anpassung der Geschwindigkeit der Stimmen und Anführungszeichen.

Zusammenfassung

In diesem Beitrag haben wir besprochen, wie zahlreiche AWS-Services, einschließlich KI und Serverless, genutzt werden können, um Sehbehinderten zu helfen. Sie können mehr über das Read For Me-Projekt erfahren und es nutzen, indem Sie es besuchen readforme.io. Sie finden auch Amazon Textract-Beispiele auf der GitHub Repo. Weitere Informationen zu Analyze ID finden Sie hier Ankündigung der Unterstützung für das Extrahieren von Daten aus Ausweisdokumenten mit Amazon Textract.

Der Quellcode für dieses Projekt wird als Open Source verfügbar sein und in Kürze dem öffentlichen GitHub von AWS hinzugefügt.


Über die Autoren

Ermöglichen Sie Sehbehinderten das Hören von Dokumenten mit Amazon Textract und Amazon Polly PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Jack Marchetti ist Senior Solutions Architect bei AWS. Mit einem Hintergrund in Softwareentwicklung konzentriert sich Jack hauptsächlich darauf, Kunden bei der Implementierung serverloser, ereignisgesteuerter Architekturen zu unterstützen. Er baute seine erste verteilte, Cloud-basierte Anwendung im Jahr 2013, nachdem er an der zweiten AWS re:Invent-Konferenz teilgenommen hatte, und ist seitdem begeistert. Vor AWS verbrachte Jack den Großteil seiner Karriere im Bereich Werbeagenturen, um Erfahrungen für einige der größten Marken der Welt zu sammeln. Jack ist blind und lebt mit seiner Frau Erin und seiner Katze Minou in Chicago. Er ist auch Drehbuchautor und Regisseur mit einem Hauptaugenmerk auf Weihnachtsfilmen und Horror. Sehen Sie sich Jacks Filmografie in seiner an IMDb

Ermöglichen Sie Sehbehinderten das Hören von Dokumenten mit Amazon Textract und Amazon Polly PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Alak Eswaradass ist Lösungsarchitekt bei AWS mit Sitz in Chicago, Illinois. Sie ist leidenschaftlich daran interessiert, Kunden bei der Entwicklung von Cloud-Architekturen zu unterstützen, die AWS-Services nutzen, um geschäftliche Herausforderungen zu meistern. Sie hat einen Master-Abschluss in Computer Science Engineering. Bevor sie zu AWS kam, arbeitete sie für verschiedene Gesundheitsorganisationen und verfügt über umfassende Erfahrung in der Architektur komplexer Systeme, technologischer Innovation und Forschung. Sie trifft sich mit ihren Töchtern und erkundet in ihrer Freizeit die Natur.

Ermöglichen Sie Sehbehinderten das Hören von Dokumenten mit Amazon Textract und Amazon Polly PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Swagat Kulkarni ist Senior Solutions Architect bei AWS und ein KI/ML-Enthusiast. Er ist leidenschaftlich daran interessiert, reale Probleme für Kunden mit Cloud-nativen Diensten und maschinellem Lernen zu lösen. Außerhalb der Arbeit reist Swagat gerne, liest und meditiert.

Zeitstempel:

Mehr von AWS Maschinelles Lernen