Enable the visually impaired to hear documents using Amazon Textract and Amazon Polly PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Omogočite slabovidnim, da poslušajo dokumente z uporabo Amazon Texttract in Amazon Polly

Na konferenci AWS re:Invent leta 2021 v Las Vegasu smo predstavili Preberi zame na sejmu AWS Builders Fair—spletnem mestu, ki pomaga slabovidnim slišati dokumente.

Za boljšo kakovost si oglejte video tukaj.

Prilagodljiva tehnologija in funkcije dostopnosti so pogosto drage, če so sploh na voljo. Zvočne knjige slabovidnim pomagajo pri branju. Zvočni opis omogoča dostopnost filmov. Toda kaj storiti, ko vsebina še ni digitalizirana?

Ta objava se osredotoča na storitve AI AWS Amazonovo besedilo in Amazon Polly, ki opolnomočijo slabovidne. Read For Me je sorazvil Jack Marchetti, ki je slaboviden.

Pregled rešitev

Z arhitekturo brez strežnika, ki temelji na dogodkih, in kombinacijo več storitev AI lahko ustvarimo naravno zveneče zvočne datoteke v več jezikih iz slike dokumenta ali katere koli slike z besedilom. Na primer pismo davčne uprave, počitniška čestitka družine ali celo uvodni naslov filma.

Naslednja Referenčna arhitektura, objavljeno v Arhitekturni center AWS prikazuje potek dela uporabnika, ki posname sliko s svojim telefonom in predvaja MP3 vsebine, ki se nahaja v tem dokumentu.

Enable the visually impaired to hear documents using Amazon Textract and Amazon Polly PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Potek dela vključuje naslednje korake:

  1. Statična vsebina (HTML, CSS, JavaScript) gostuje na Ojačaj AWS.
  2. Anonimnim uporabnikom je omogočen začasni dostop do zalednih storitev prek Amazon Cognito bazen identitete.
  3. Slikovne datoteke so shranjene v Preprosta storitev shranjevanja Amazon (Amazon S3).
  4. Uporabnik pošlje zahtevo POST prek Amazon API Gateway avdio storitvi, ki posreduje ekspresu Korak funkcije AWS potek dela
  5. Potek dela Funkcije korakov vključuje naslednje korake:
    1. Amazonovo besedilo izvleče besedilo iz slike.
    2. Amazonsko razumevanje zazna jezik besedila.
    3. Če se ciljni jezik razlikuje od zaznanega jezika, Amazon prevod prevede v ciljni jezik.
    4. Amazon Polly ustvari zvočno datoteko kot izhod z uporabo besedila.
  6. Potek dela AWS Step Functions ustvari zvočno datoteko kot izhod in jo shrani v Amazon S3 v formatu MP3.
  7. Vnaprej podpisan URL z lokacijo zvočne datoteke, shranjene v Amazon S3, se pošlje nazaj v uporabnikov brskalnik prek API Gateway. Uporabnikova mobilna naprava predvaja zvočno datoteko z vnaprej podpisanim URL-jem.

V naslednjih razdelkih razpravljamo o razlogih, zakaj smo za to rešitev izbrali določene storitve, arhitekturni vzorec in storitvene funkcije.

AWS AI storitve

Več storitev AI je povezanih za napajanje Read For Me:

  • Amazon Texttract identificira besedilo na naloženi sliki.
  • Amazon Comprehend določi jezik.
  • Če uporabnik izbere drugačen govorni jezik od jezika na sliki, ga prevedemo z Amazon Translate.
  • Amazon Polly ustvari datoteko MP3. Izkoriščamo nevronski mehanizem Amazon Polly, ki ustvarja bolj naraven, realističen zvočni posnetek.

Ena od glavnih prednosti uporabe teh storitev umetne inteligence je enostavnost sprejemanja z malo ali nič potrebnih osnovnih izkušenj s strojnim učenjem. Storitve razkrivajo API-je, ki jih lahko odjemalci prikličejo z uporabo SDK-jev, ki so na voljo v več programskih jezikih, kot sta Python in Java.

Z Read For Me smo napisali osnovo AWS Lambda funkcije v Pythonu.

AWS SDK za Python (Boto3)

O AWS SDK za Python (Boto3) omogoča enostavno interakcijo s storitvami AWS. Naslednje vrstice kode Python na primer vrnejo besedilo, ki ga najdete na sliki ali dokumentu, ki ga posredujete:

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

Vsa koda Python se izvaja znotraj posameznih funkcij Lambda. Ni strežnikov za zagotavljanje in infrastrukture za vzdrževanje.

Arhitekturni vzorci

V tem razdelku razpravljamo o različnih arhitekturnih vzorcih, uporabljenih v rešitvi.

Brez strežnika

Brezstrežniško arhitekturo smo implementirali iz dveh glavnih razlogov: hitrost gradnje in stroški. Ker ni bilo osnovne strojne opreme za vzdrževanje ali infrastrukture za uvajanje, smo se v celoti osredotočili na kodo poslovne logike in nič drugega. To nam je omogočilo, da smo v nekaj dneh vzpostavili delujoč prototip. Če uporabniki aktivno ne nalagajo slik in poslušajo posnetkov, se nič ne izvaja in zato nič ne povzroča stroškov zunaj shranjevanja. Pravilo upravljanja življenjskega cikla S3 izbriše naložene slike in datoteke MP3 po 1 dnevu, zato so stroški shranjevanja nizki.

Sinhroni potek dela

Ko gradite poteke dela brez strežnika, je pomembno razumeti, kdaj je sinhroni klic bolj smiseln glede na arhitekturo in uporabniško izkušnjo kot asinhroni proces. Z Read For Me smo sprva šli po asinhroni poti in načrtovali uporabo WebSockets za dvosmerno komunikacijo s sprednjim delom. Naš potek dela bi vključeval korak za iskanje ID-ja povezave, povezanega s potekom dela s funkcijami korakov, in po zaključku opozoriti sprednji del. Za več informacij o tem postopku glejte Od anketiranja do potiskanja: preoblikujte API-je z uporabo API-jev REST Amazon API Gateway in WebSockets.

Nazadnje smo se odločili, da tega ne bomo storili, in smo uporabili ekspresne stopenjske funkcije, ki so sinhrone. Uporabniki razumejo, da obdelava slike ne bo takojšnja, vedo pa tudi, da ne bo trajala 30 sekund ali minute. Bili smo v prostoru, kjer je bilo nekaj sekund zadovoljivo za končnega uporabnika in ni potreboval prednosti WebSockets. To je na splošno poenostavilo potek dela.

Potek dela Express Step Functions

Zmožnost razdelitve kode na manjše, izolirane funkcije omogoča natančen nadzor, lažje vzdrževanje in možnost natančnejšega prilagajanja. Če smo na primer ugotovili, da je funkcija Lambda, ki je sprožila Amazon Polly ustvariti zvočno datoteko, delovala počasneje kot funkcija, ki je določala jezik, bi lahko navpično prilagodili to funkcijo in dodali več pomnilnika, ne da bi morali to storiti za druge. Podobno omejite radij eksplozije tega, kar lahko vaša funkcija Lambda naredi ali dostopa, ko omejite njen obseg in doseg.

Ena od prednosti orkestriranja vašega delovnega toka s funkcijami korakov je zmožnost uvajanja logike poteka odločanja, ne da bi vam bilo treba napisati kodo.

Naš potek dela s funkcijami korakov ni zapleten. Je linearen do koraka prevajanja. Če nam ni treba klicati prevodne funkcije Lambda, je to za nas manj stroškov in hitrejša izkušnja za uporabnika. Uporabimo lahko vizualni oblikovalec na konzoli Step Functions, da poiščemo določen ključ v vhodnem obremenitvi in, če je prisoten, pokličemo eno funkcijo čez drugo z uporabo JSONPath. Na primer, naš tovor vključuje ključ, imenovan translate:

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

V vizualnem oblikovalcu Step Functions najdemo ključ za prevajanje in nastavimo pravila za ujemanje.

Enable the visually impaired to hear documents using Amazon Textract and Amazon Polly PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Brezglava arhitektura

Amplify gosti kodo sprednjega dela. Sprednji del je napisan v Reactu, izvorna koda pa je preverjena AWS CodeCommit. Amplify rešuje nekaj težav za uporabnike, ki poskušajo uvesti in upravljati statična spletna mesta. Če ste to počeli ročno (z uporabo vedra S3, nastavljenega za statično gostovanje spletnega mesta in posredovanje tega z Amazon CloudFront), bi morali sami poteči predpomnilnik ob vsaki uvedbi. Prav tako bi morali napisati svoj cevovod CI/CD. Amplify to uredi namesto vas.

To omogoča brezglavo arhitekturo, kjer je sprednja koda ločena od zaledja in je mogoče vsako plast upravljati in spreminjati neodvisno od druge.

Analizirajte ID

V prejšnjem razdelku smo razpravljali o arhitekturnih vzorcih za obdelavo naložene slike in ustvarjanje datoteke MP3 iz nje. To, da vam preberejo dokument, je odličen prvi korak, toda kaj, če želite izvedeti samo nekaj konkretnega, ne da bi vam prebrali celotno stvar? Na primer, izpolniti morate spletni obrazec in navesti svojo državno osebno izkaznico ali številko potnega lista ali morda datum njegove veljavnosti. Nato morate fotografirati svojo osebno izkaznico in počakati na ta določen del, medtem ko vam jo preberejo. Lahko pa uporabite Analyze ID.

Analyze ID je funkcija Amazon Texttract, ki vam omogoča poizvedovanje po dokumentih. Read For Me vsebuje spustni meni, kjer lahko posebej vprašate za datum poteka, datum izdaje ali številko dokumenta. Isti potek dela lahko uporabite za ustvarjanje datoteke MP3, ki nudi odgovor na vaše specifično vprašanje.

Funkcijo Analyze ID lahko predstavite na readforme.io/analyze.

Dodatne funkcije Polly

  • Read For Me ponuja več nevronskih glasov, ki uporabljajo različne jezike in narečja. Upoštevajte, da obstaja več drugih glasov lahko izbirate med katerimi nismo izvajali. Ko je na voljo nov glas, je dovolj, da ga izkoristite, posodobite kodo sprednjega dela in funkcijo lambda.
  • Storitev Polly ponuja tudi druge možnosti, ki jih moramo še vključiti v Read For Me. Ti vključujejo prilagajanje hitrost glasov in govorne oznake.

zaključek

V tej objavi smo razpravljali o tem, kako uporabiti številne storitve AWS, vključno z umetno inteligenco in brezstrežniško, za pomoč slabovidnim. Več o projektu Read For Me lahko izveste in ga uporabite tako, da obiščete readforme.io. Primere Amazon Texttract najdete tudi na GitHub repo. Če želite izvedeti več o Analyze ID, si oglejte Napovedujemo podporo za pridobivanje podatkov iz osebnih dokumentov z uporabo Amazon Texttract.

Izvorna koda za ta projekt bo odprtokodna in kmalu dodana v javni GitHub AWS.


O avtorjih

Enable the visually impaired to hear documents using Amazon Textract and Amazon Polly PlatoBlockchain Data Intelligence. Vertical Search. Ai.Jack Marchetti je višji arhitekt za rešitve pri AWS. Z izkušnjami na področju programskega inženiringa je Jack v prvi vrsti osredotočen na pomoč strankam pri implementaciji brezstrežniških arhitektur, ki temeljijo na dogodkih. Svojo prvo distribuirano aplikacijo v oblaku je zgradil leta 2013 po udeležbi na drugi konferenci AWS re:Invent in od takrat je zasvojen. Pred AWS je Jack večji del svoje kariere preživel v oglaševalskih agencijah, ki so gradile prostore za nekatere največje blagovne znamke na svetu. Jack je pravno slep in živi v Chicagu s svojo ženo Erin in mačko Minou. Je tudi scenarist in režiser, ki se osredotoča predvsem na božične filme in grozljivke. Oglejte si Jackovo filmografijo pri njem IMDb stran.

Enable the visually impaired to hear documents using Amazon Textract and Amazon Polly PlatoBlockchain Data Intelligence. Vertical Search. Ai.Alak Eswaradass je arhitekt rešitev pri AWS s sedežem v Chicagu, Illinois. Strastno želi pomagati strankam pri oblikovanju arhitektur v oblaku z uporabo storitev AWS za reševanje poslovnih izzivov. Po izobrazbi je magistrica inženirke računalništva. Preden se je pridružila AWS, je delala za različne zdravstvene organizacije in ima poglobljene izkušnje z arhitekturo kompleksnih sistemov, tehnološkimi inovacijami in raziskavami. V prostem času se druži s hčerkama in raziskuje na prostem.

Enable the visually impaired to hear documents using Amazon Textract and Amazon Polly PlatoBlockchain Data Intelligence. Vertical Search. Ai.Swagat Kulkarni je višji arhitekt rešitev pri AWS in navdušenec nad AI/ML. Navdušen je nad reševanjem problemov iz resničnega sveta za stranke z izvornimi storitvami v oblaku in strojnim učenjem. Zunaj dela Swagat uživa v potovanjih, branju in meditaciji.

Časovni žig:

Več od Strojno učenje AWS