Salli näkövammaisten kuulla asiakirjoja Amazon Textractin ja Amazon Polly PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.

Salli näkövammaisten kuulla asiakirjoja Amazon Textractin ja Amazon Pollyn avulla

Vuoden 2021 AWS re:Invent -konferenssissa Las Vegasissa esitimme demoa Lue Minulle AWS Builders Fair -sivustolla, joka auttaa näkövammaisia ​​kuulemaan asiakirjoja.

Paremman laadun saat katsomalla videon tätä.

Mukautuva tekniikka ja esteettömyysominaisuudet ovat usein kalliita, jos niitä on ollenkaan saatavilla. Äänikirjat auttavat näkövammaisia ​​lukemaan. Äänikuvaus tekee elokuvista saatavilla. Mutta mitä teet, kun sisältöä ei ole vielä digitoitu?

Tämä viesti keskittyy AWS AI -palveluihin Amazonin teksti ja Amazon Polly, jotka vahvistavat näkövammaisia. Read For Me -ohjelman on kehittänyt näkövammainen Jack Marchetti.

Ratkaisun yleiskatsaus

Tapahtumalähtöisen, palvelimettoman arkkitehtuurin ja useiden tekoälypalvelujen yhdistelmän avulla voimme luoda luonnolliselta kuulostavia äänitiedostoja useilla kielillä asiakirjan kuvasta tai mistä tahansa tekstiä sisältävästä kuvasta. Esimerkiksi kirje verottajalta, lomakortti perheeltä tai jopa elokuvan avausotsikot.

Seuraavat Viitearkkitehtuuri, julkaistu EU: ssa AWS-arkkitehtuurikeskus näyttää työnkulun, jossa käyttäjä ottaa kuvan puhelimellaan ja toistaa MP3-tiedoston kyseisessä asiakirjassa olevasta sisällöstä.

Salli näkövammaisten kuulla asiakirjoja Amazon Textractin ja Amazon Polly PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.

Työnkulku sisältää seuraavat vaiheet:

  1. Staattista sisältöä (HTML, CSS, JavaScript) isännöidään AWS vahvistaa.
  2. Nimettömille käyttäjille myönnetään väliaikainen käyttöoikeus taustapalveluihin Amazon Cognito identiteettipooli.
  3. Kuvatiedostot on tallennettu Amazonin yksinkertainen tallennuspalvelu (Amazon S3).
  4. Käyttäjä tekee POST-pyynnön kautta Amazon API -yhdyskäytävä äänipalveluun, joka välittää pikaviestin AWS-vaihetoiminnot työnkulku.
  5. Step Functions -työnkulku sisältää seuraavat vaiheet:
    1. Amazonin teksti poimii tekstiä kuvasta.
    2. Amazonin käsitys tunnistaa tekstin kielen.
    3. Jos kohdekieli eroaa havaitusta kielestä, Amazon Käännä käännetään kohdekielelle.
    4. Amazon Polly luo äänitiedoston ulostulona tekstin avulla.
  6. AWS Step Functions -työnkulku luo äänitiedoston ulostulona ja tallentaa sen Amazon S3:een MP3-muodossa.
  7. Esiallekirjoitettu URL-osoite, joka sisältää Amazon S3:een tallennetun äänitiedoston sijainnin, lähetetään takaisin käyttäjän selaimeen API Gatewayn kautta. Käyttäjän mobiililaite toistaa äänitiedoston käyttämällä ennalta allekirjoitettua URL-osoitetta.

Seuraavissa osioissa keskustelemme syistä, miksi valitsimme tälle ratkaisulle tietyt palvelut, arkkitehtuurimallin ja palveluominaisuudet.

AWS AI -palvelut

Useat tekoälypalvelut on kytketty yhteen Read For Me:

  • Amazon Textract tunnistaa ladatun kuvan tekstin.
  • Amazon Comprehend määrittää kielen.
  • Jos käyttäjä valitsee eri puhutun kielen kuin kuvassa, käännämme sen Amazon Translatella.
  • Amazon Polly luo MP3-tiedoston. Hyödynnämme Amazon Polly -hermomoottoria, joka luo luonnollisemman ja todenmukaisemman äänitallenteen.

Yksi näiden AI-palveluiden käytön tärkeimmistä eduista on helppokäyttöisyys ilman, että vaaditaan vain vähän tai ei ollenkaan ydinoppimiskokemusta. Palvelut paljastavat API:t, joita asiakkaat voivat kutsua käyttämällä SDK:ita, jotka on saatavilla useilla ohjelmointikielillä, kuten Python ja Java.

Read For Me -sovelluksella kirjoitimme taustan AWS Lambda toimii Pythonissa.

AWS SDK Pythonille (Boto3)

- AWS SDK Pythonille (Boto3) tekee vuorovaikutuksesta AWS-palvelujen kanssa helppoa. Esimerkiksi seuraavat Python-koodin rivit palauttavat antamastasi kuvasta tai asiakirjasta löytyneen tekstin:

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

Kaikki Python-koodi ajetaan yksittäisissä Lambda-funktioissa. Ei ole tarjottavia palvelimia eikä ylläpidettävää infrastruktuuria.

Arkkitehtuurin kuviot

Tässä osiossa käsittelemme ratkaisussa käytettyjä erilaisia ​​arkkitehtuurimalleja.

serverless

Otimme käyttöön palvelimettoman arkkitehtuurin kahdesta pääsyystä: rakentamisen nopeudesta ja hinnasta. Koska taustalla ei ollut ylläpidettävää laitteistoa tai käyttöön otettavaa infrastruktuuria, keskityimme täysin liiketoimintalogiikkakoodiin emmekä mihinkään muuhun. Tämän ansiosta saimme toimivan prototyypin käyttöön muutamassa päivässä. Jos käyttäjät eivät aktiivisesti lataa kuvia ja kuuntele tallenteita, mikään ei ole käynnissä, joten mistään ei aiheudu kustannuksia tallennustilan ulkopuolella. S3-elinkaarihallintasääntö poistaa ladatut kuvat ja MP3-tiedostot 1 päivän kuluttua, joten säilytyskustannukset ovat alhaiset.

Synkroninen työnkulku

Kun rakennat palvelimettomia työnkulkuja, on tärkeää ymmärtää, milloin synkroninen puhelu on arkkitehtuurin ja käyttökokemuksen perusteella järkevämpää kuin asynkroninen prosessi. Read For Me -sovelluksella menimme alun perin asynkronista polkua pitkin ja suunnittelimme käyttävämme WebSocketsia kaksisuuntaiseen kommunikointiin käyttöliittymän kanssa. Työnkulkumme sisältää vaiheen, jossa etsitään Step Functions -työnkulkuun liittyvä yhteystunnus, ja kun se on valmis, varoittaa käyttöliittymä. Lisätietoja tästä prosessista on kohdassa Pollista Pushiin: Muunna API:t Amazon API Gateway REST -sovellusliittymien ja WebSocketsin avulla.

Lopulta päätimme olla tekemättä tätä ja käytimme pika-askelfunktioita, jotka ovat synkronisia. Käyttäjät ymmärtävät, että kuvan käsittely ei ole välitöntä, mutta he tietävät myös, että se ei vie 30 sekuntia tai minuuttia. Olimme tilassa, jossa muutama sekunti tyydytti loppukäyttäjää emmekä tarvinneet WebSocketsin etuja. Tämä yksinkertaisti työnkulkua yleisesti.

Express Step Functions -työnkulku

Mahdollisuus jakaa koodisi pienempiin, eristettyihin toimintoihin mahdollistaa hienorakeisen ohjauksen, helpomman ylläpidon ja tarkemman skaalauksen. Jos esimerkiksi määritämme, että Lambda-toiminto, joka laukaisi Amazon Pollyn luomaan äänitiedoston, toimi hitaammin kuin toiminto, joka määritti kielen, voisimme skaalata tätä toimintoa pystysuunnassa ja lisätä muistia ilman, että muiden tarvitsisi tehdä niin. Samoin rajoitat Lambda-toiminnon räjähdyssädettä, kun rajoitat sen laajuutta ja ulottuvuutta.

Yksi työnkulun ohjaamisen eduista Step Functionsilla on kyky ottaa käyttöön päätöskulkulogiikka ilman koodin kirjoittamista.

Step Functions -työnkulkumme ei ole monimutkainen. Se on lineaarinen käännösvaiheeseen asti. Jos meidän ei tarvitse kutsua käännöslambda-funktiota, se maksaa meille vähemmän ja käyttäjäkokemus on nopeampi. Voimme käyttää Step Functions -konsolin visuaalista suunnittelijaa löytääksemme tietyn avaimen syöttöhyötykuormasta ja, jos se on olemassa, kutsua yhtä funktiota toisen päälle JSONPathilla. Esimerkiksi hyötykuormamme sisältää avaimen nimeltä translate:

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

Step Functions -visuaalisesta suunnittelijasta löydämme käännösavaimen ja määritämme vastaavat säännöt.

Salli näkövammaisten kuulla asiakirjoja Amazon Textractin ja Amazon Polly PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.

Päätön arkkitehtuuri

Amplify isännöi käyttöliittymäkoodia. Käyttöliittymä kirjoitetaan Reactissa ja lähdekoodi kirjataan sisään AWS CodeCommit. Amplify ratkaisee muutamia ongelmia käyttäjille, jotka yrittävät ottaa käyttöön ja hallita staattisia verkkosivustoja. Jos teit tämän manuaalisesti (käyttäen staattista verkkosivuston isännöintiä varten määritettyä S3-säilöä ja esität sen Amazon CloudFront), sinun on vanhenettava välimuisti itse aina, kun teet käyttöönottoja. Sinun on myös kirjoitettava oma CI/CD-putki. Amplify hoitaa tämän puolestasi.

Tämä mahdollistaa päättömän arkkitehtuurin, jossa käyttöliittymäkoodi on irrotettu taustajärjestelmästä ja jokaista kerrosta voidaan hallita ja skaalata toisistaan ​​riippumatta.

Analysoi tunnus

Edellisessä osiossa käsittelimme arkkitehtuurimalleja ladatun kuvan käsittelyyn ja MP3-tiedoston luomiseen siitä. Asiakirjan lukeminen sinulle on loistava ensimmäinen askel, mutta entä jos haluat tietää vain jotain tiettyä ilman, että koko asia luetaan sinulle takaisin? Sinun on esimerkiksi täytettävä lomake verkossa ja annettava osavaltion henkilöllisyystodistus tai passinumero tai ehkä sen viimeinen voimassaolopäivä. Sitten sinun on otettava kuva henkilöllisyystodistuksestasi ja odotettava sitä osaa, kun se luetaan sinulle. Vaihtoehtoisesti voit käyttää Analysoi ID:tä.

Analyze ID on Amazon Textractin ominaisuus, jonka avulla voit tehdä kyselyjä asiakirjoista. Read For Me sisältää avattavan valikon, josta voit kysyä erityisesti viimeistä käyttöpäivää, myöntämispäivää tai asiakirjan numeroa. Voit käyttää samaa työnkulkua MP3-tiedoston luomiseen, joka tarjoaa vastauksen tiettyyn kysymykseesi.

Voit esitellä Analyze ID -ominaisuutta osoitteessa readforme.io/analyze.

Pollyn lisäominaisuudet

  • Read For Me tarjoaa useita hermoääniä hyödyntäen eri kieliä ja murteita. Huomaa, että on olemassa useita muita ääniä voit valita, jota emme toteuttaneet. Kun uusi ääni on saatavilla, käyttöliittymäkoodin päivitys ja lambda-toiminto riittää sen hyödyntämiseen.
  • Polly-palvelu tarjoaa myös muita vaihtoehtoja, joita emme ole vielä sisällyttäneet Read For Me -ohjelmaan. Niihin kuuluu säätäminen äänien nopeus ja puhe merkinnät.

Yhteenveto

Tässä viestissä keskustelimme siitä, kuinka käyttää lukuisia AWS-palveluita, mukaan lukien tekoäly ja palvelimeton, näkövammaisten auttamiseksi. Voit oppia lisää Read For Me -projektista ja käyttää sitä käymällä osoitteessa readforme.io. Löydät myös esimerkkejä Amazon Textractista GitHub repo. Lisätietoja Analyze ID:stä on osoitteessa Ilmoittaa tuesta tietojen poimimiselle henkilöasiakirjoista Amazon Textractin avulla.

Tämän projektin lähdekoodi on avoimen lähdekoodin lähde ja se lisätään pian AWS:n julkiseen GitHubiin.


Tietoja Tekijät

Salli näkövammaisten kuulla asiakirjoja Amazon Textractin ja Amazon Polly PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.Jack Marchetti on AWS:n Senior Solutions -arkkitehti. Ohjelmistotekniikan taustalla oleva Jack keskittyy ensisijaisesti auttamaan asiakkaita toteuttamaan palvelimettomia, tapahtumalähtöisiä arkkitehtuureja. Hän rakensi ensimmäisen hajautetun pilvipohjaisen sovelluksensa vuonna 2013 osallistuttuaan toiseen AWS re:Invent -konferenssiin ja on ollut siitä lähtien koukussa. Ennen AWS:ää Jack vietti suurimman osan urastaan ​​mainostoimiston tilan rakentamisessa joillekin maailman suurimmista brändeistä. Jack on laillisesti sokea ja asuu Chicagossa vaimonsa Erinin ja kissa Minoun kanssa. Hän on myös käsikirjoittaja ja ohjaaja, jonka pääpaino on jouluelokuvissa ja kauhussa. Katso Jackin filmografia hänen luonaan IMDb sivu.

Salli näkövammaisten kuulla asiakirjoja Amazon Textractin ja Amazon Polly PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.Alak Eswaradass on ratkaisuarkkitehti AWS:ssä Chicagossa, Illinoisissa. Hän haluaa auttaa asiakkaita suunnittelemaan pilviarkkitehtuuria hyödyntäen AWS-palveluita liiketoiminnan haasteiden ratkaisemiseksi. Hän on koulutukseltaan tietojenkäsittelytieteen maisteri. Ennen AWS:lle tuloaan hän työskenteli erilaisissa terveydenhuollon organisaatioissa, ja hänellä on syvällinen kokemus monimutkaisten järjestelmien, teknologiainnovaatioiden ja tutkimuksen suunnittelusta. Hän viettää aikaa tyttäriensä kanssa ja tutkii ulkoilua vapaa-ajallaan.

Salli näkövammaisten kuulla asiakirjoja Amazon Textractin ja Amazon Polly PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.Swagat Kulkarni on AWS:n vanhempi ratkaisuarkkitehti ja AI/ML-harrastaja. Hän on intohimoinen asiakkaiden todellisten ongelmien ratkaisemiseen pilvipohjaisten palveluiden ja koneoppimisen avulla. Työn ulkopuolella Swagat nauttii matkustamisesta, lukemisesta ja meditoinnista.

Aikaleima:

Lisää aiheesta AWS-koneoppiminen