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

Engedélyezze a látássérültek számára a dokumentumok meghallgatását az Amazon Textract és az Amazon Polly segítségével

A 2021-es AWS re:Invent konferencián Las Vegasban demóztunk Olvass nekem az AWS Builders Fair-en – egy olyan webhelyen, amely segít a látássérülteknek a dokumentumok meghallgatásában.

A jobb minőség érdekében nézze meg a videót itt.

Az adaptív technológia és a kisegítő lehetőségek gyakran drágák, ha egyáltalán rendelkezésre állnak. A hangoskönyvek segítik a látássérültek olvasását. A hangos leírás elérhetővé teszi a filmeket. De mi a teendő, ha a tartalom még nincs digitalizálva?

Ez a bejegyzés az AWS AI-szolgáltatásokra összpontosít Amazon szöveg és a Amazon Polly, amely képessé teszi a látássérülteket. A Read For Me fejlesztője Jack Marchetti volt, aki látássérült.

Megoldás áttekintése

Az eseményvezérelt, szerver nélküli architektúrán és több mesterségesintelligencia-szolgáltatás kombinációján keresztül természetes hangzású hangfájlokat hozhatunk létre több nyelven egy dokumentum képéből, vagy bármilyen szöveges képből. Például egy levél az adóhivataltól, egy nyaralási kártya a családtól, vagy akár egy film nyitócíme.

A következő Referencia architektúra, megjelent a AWS Építészeti Központ azt a munkafolyamatot mutatja, amikor egy felhasználó fényképet készít telefonjával, és lejátssza MP3-ban a dokumentumban található tartalmat.

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

A munkafolyamat a következő lépéseket tartalmazza:

  1. A statikus tartalom (HTML, CSS, JavaScript) a webhelyen található AWS erősítés.
  2. Ideiglenes hozzáférést biztosítanak az anonim felhasználóknak a háttérszolgáltatásokhoz egy Amazon Cognito identitáskészlet.
  3. A képfájlokat a rendszer tárolja Amazon egyszerű tárolási szolgáltatás (Amazon S3).
  4. Egy felhasználó POST kérést küld ezen keresztül Amazon API átjáró az audioszolgáltatáshoz, amely egy expresszt proxel AWS lépésfunkciók munkafolyamat.
  5. A Step Functions munkafolyamat a következő lépéseket tartalmazza:
    1. Amazon szöveg szöveget von ki a képből.
    2. Amazon Comprehend érzékeli a szöveg nyelvét.
    3. Ha a célnyelv eltér az észlelt nyelvtől, Amazon Translate lefordítja a célnyelvre.
    4. Amazon Polly hangfájlt hoz létre kimenetként a szöveg felhasználásával.
  6. Az AWS Step Functions munkafolyamat kimenetként létrehoz egy hangfájlt, és MP3 formátumban tárolja az Amazon S3-ban.
  7. Az Amazon S3-ban tárolt hangfájl helyével előre aláírt URL-cím visszaküldésre kerül a felhasználó böngészőjének az API-átjárón keresztül. A felhasználó mobileszköze lejátssza a hangfájlt az előre aláírt URL-cím használatával.

A következő szakaszokban megvitatjuk, hogy miért választottuk ehhez a megoldáshoz a konkrét szolgáltatásokat, architektúramintát és szolgáltatási jellemzőket.

AWS AI szolgáltatások

Számos AI-szolgáltatás össze van kötve a Read For Me táplálására:

  • Az Amazon Textract azonosítja a feltöltött kép szövegét.
  • Az Amazon Comprehend határozza meg a nyelvet.
  • Ha a felhasználó a képen látható nyelvtől eltérő beszélt nyelvet választ, akkor azt az Amazon Translate segítségével fordítjuk le.
  • Az Amazon Polly létrehozza az MP3 fájlt. Kihasználjuk az Amazon Polly neurális motort, amely természetesebb, élethűbb hangfelvételt készít.

Az AI-szolgáltatások használatának egyik fő előnye a könnyű átvétel, kevés vagy egyáltalán nem szükséges alapvető gépi tanulási tapasztalat. A szolgáltatások olyan API-kat tesznek közzé, amelyeket az ügyfelek több programozási nyelven (például Python és Java) elérhető SDK-k segítségével hívhatnak meg.

A Read For Me segítségével megírtuk az alapját AWS Lambda függvények Pythonban.

AWS SDK Pythonhoz (Boto3)

A AWS SDK Pythonhoz (Boto3) egyszerűvé teszi az AWS-szolgáltatásokkal való interakciót. Például a Python kód következő sorai az Ön által megadott képen vagy dokumentumban található szöveget adják vissza:

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

Az összes Python-kód egyedi Lambda-függvényeken belül fut. Nincsenek biztosítandó szerverek és karbantartandó infrastruktúra.

Építészeti minták

Ebben a részben a megoldásban használt különböző architektúra mintákat tárgyaljuk.

vagy szerver

Szerver nélküli architektúrát két fő okból valósítottunk meg: az építési sebesség és a költség. Mivel nem volt fenntartandó hardver vagy telepítendő infrastruktúra, teljes mértékben az üzleti logikai kódra összpontosítottunk, semmi másra. Ez lehetővé tette számunkra, hogy néhány nap alatt üzembe helyezhessünk egy működő prototípust. Ha a felhasználók nem töltenek fel aktívan képeket és nem hallgatnak felvételeket, akkor semmi sem fut, így a tároláson kívül semmi sem merül fel költségekkel. Az S3 életciklus-kezelési szabálya 3 nap után törli a feltöltött képeket és MP1 fájlokat, így a tárolási költségek alacsonyak.

Szinkron munkafolyamat

Amikor kiszolgáló nélküli munkafolyamatokat hoz létre, fontos megérteni, hogy a szinkron hívás mikor van értelmesebb az architektúra és a felhasználói élmény szempontjából, mint egy aszinkron folyamat. A Read For Me szolgáltatással kezdetben az aszinkron úton haladtunk, és azt terveztük, hogy a WebSockets segítségével kétirányú kommunikációt folytatunk a kezelőfelülettel. Munkafolyamatunk tartalmazna egy lépést a Step Functions munkafolyamathoz társított kapcsolatazonosító megkeresésére, és a befejezés után figyelmezteti a kezelőfelületet. A folyamattal kapcsolatos további információkért lásd: Szavazásról leküldésre: Alakítsa át az API-kat Amazon API Gateway REST API-k és WebSockets használatával.

Végül úgy döntöttünk, hogy ezt nem tesszük, és expressz lépésfüggvényeket használtunk, amelyek szinkronok. A felhasználók megértik, hogy egy kép feldolgozása nem lesz azonnali, de azt is tudják, hogy nem vesz igénybe 30 másodpercet vagy egy percet. Olyan helyen voltunk, ahol néhány másodperc kielégítő volt a végfelhasználó számára, és nem volt szükségünk a WebSockets előnyeire. Ez általánosságban leegyszerűsítette a munkafolyamatot.

Express Step Functions munkafolyamat

Az a képesség, hogy a kódot kisebb, elszigetelt funkciókra bontja, finom vezérlést, egyszerűbb karbantartást és pontosabb skálázást tesz lehetővé. Például, ha megállapítjuk, hogy a Lambda funkció, amely elindította az Amazon Polly-t a hangfájl létrehozásához, lassabban fut, mint a nyelvet meghatározó funkció, akkor ezt a funkciót függőlegesen méretezhetjük, így több memóriát adtunk hozzá anélkül, hogy ezt a többinél meg kellene tenni. Hasonlóképpen korlátozza a Lambda funkció által elérhetõ vagy elérhetõ sugárzási sugarat, ha korlátozza a hatókörét és elérhetõségét.

A munkafolyamat Step Functions funkcióval történő összehangolásának egyik előnye, hogy kód írása nélkül is bevezetheti a döntési folyamat logikáját.

Step Functions munkafolyamatunk nem bonyolult. A fordítási lépésig lineáris. Ha nem kell fordító Lambda függvényt hívnunk, az kevesebb költséget jelent számunkra, és gyorsabb élményt jelent a felhasználó számára. Használhatjuk a Step Functions konzol vizuális tervezőjét, hogy megkeressük az adott kulcsot a bemeneti hasznos adatban, és ha van, akkor a JSONPath segítségével hívhatjuk meg az egyik függvényt a másik helyett. Például a rakományunk tartalmaz egy translate nevű kulcsot:

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

A Step Functions látványtervezőn belül megtaláljuk a fordítási kulcsot, és beállítjuk a megfelelő szabályokat.

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

Fej nélküli építészet

Az Amplify tárolja a front-end kódot. A kezelőfelületet a React-ban írják, és a forráskódot bejelölik AWS CodeCommit. Az Amplify megold néhány problémát a statikus webhelyeket telepíteni és kezelni próbáló felhasználók számára. Ha ezt manuálisan csinálná (egy statikus webhely-tárhelyszolgáltatáshoz beállított S3-tárolót használva, Amazon CloudFront), magának kell lejáratnia a gyorsítótárat minden egyes telepítéskor. Ezenkívül meg kell írnia a saját CI/CD-folyamatát. Az Amplify megoldja ezt Ön helyett.

Ez lehetővé teszi a fej nélküli architektúrát, ahol az előtér kódja le van választva a háttérről, és minden réteg a másiktól függetlenül kezelhető és skálázható.

Az azonosító elemzése

Az előző részben tárgyaltuk a feltöltött kép feldolgozásának és MP3 fájl létrehozásának architektúra mintáit. Egy dokumentum visszaolvasása nagyszerű első lépés, de mi van akkor, ha csak valami konkrétumot szeretne megtudni anélkül, hogy az egészet vissza kellene olvasnia? Például ki kell töltenie egy űrlapot az interneten, és meg kell adnia személyi igazolványát vagy útlevélszámát, esetleg lejárati dátumát. Ezután fényképet kell készítenie az igazolványáról, és miközben vissza kell olvasnia, várja meg az adott részt. Alternatív megoldásként használhatja az azonosító elemzését.

Az Analyze ID az Amazon Textract olyan funkciója, amely lehetővé teszi a dokumentumok lekérdezését. A Read For Me egy legördülő menüt tartalmaz, ahol külön kérheti a lejárati dátumot, a kiállítás dátumát vagy a dokumentum számát. Ugyanezzel a munkafolyamattal létrehozhat egy MP3 fájlt, amely választ ad az Ön konkrét kérdésére.

Az Analysis ID funkciót itt tekintheti meg readforme.io/analyze.

További Polly-szolgáltatások

  • A Read For Me több neurális hangot kínál különböző nyelvek és dialektusok felhasználásával. Vegye figyelembe, hogy számos más is létezik hangok közül választhat, amit nem mi valósítottunk meg. Amikor egy új hang elérhető, a front-end kód frissítése és a lambda funkció már csak az előnyök kihasználásához szükséges.
  • A Polly szolgáltatás egyéb lehetőségeket is kínál, amelyeket még be kell építeni a Read For Me-be. Ezek közé tartozik a beállítás a hangok sebessége és a beszédjegyek.

Következtetés

Ebben a bejegyzésben megvitattuk, hogyan használhatunk számos AWS-szolgáltatást, beleértve az AI-t és a szerver nélkülit is, hogy segítsünk a látássérülteknek. A Read For Me projektről többet megtudhat és használhatja, ha ellátogat readforme.io. Amazon Textract példákat is találhat a GitHub repo. Ha többet szeretne megtudni az azonosító elemzéséről, tekintse meg a következőt: Támogatás bejelentése a személyazonosító okmányokból az Amazon Textract használatával történő adatok kinyerésére.

A projekt forráskódja nyílt forráskódú lesz, és hamarosan hozzáadódik az AWS nyilvános GitHubjához.


A szerzőkről

Enable the visually impaired to hear documents using Amazon Textract and Amazon Polly PlatoBlockchain Data Intelligence. Vertical Search. Ai.Jack Marchetti az AWS vezető megoldási építésze. A szoftvermérnöki háttérrel rendelkező Jack elsősorban arra összpontosít, hogy segítse az ügyfeleket szerver nélküli, eseményvezérelt architektúrák megvalósításában. Első elosztott, felhő alapú alkalmazását 2013-ban építette meg, miután részt vett a második AWS re:Invent konferencián, és azóta is akasztotta. Az AWS előtt Jack pályafutása nagy részét a reklámügynökségnél töltötte, ahol tapasztalatokat szerzett a világ néhány legnagyobb márkája számára. Jack jogilag vak, és Chicagóban él feleségével, Erinnel és Minou macskával. Emellett forgatókönyvíró és rendező is, aki elsősorban a karácsonyi filmekre és a horrorra összpontosít. Tekintse meg Jack filmográfiáját az övénél IMDb cimre.

Enable the visually impaired to hear documents using Amazon Textract and Amazon Polly PlatoBlockchain Data Intelligence. Vertical Search. Ai.Alak Eswaradass az Illinois állambeli chicagói székhelyű AWS megoldások építésze. Szenvedélyesen segíti ügyfeleit az AWS-szolgáltatásokat használó felhőarchitektúrák tervezésében az üzleti kihívások megoldására. Informatikai mérnöki mesterképzésben részesült. Mielőtt csatlakozott volna az AWS-hez, különböző egészségügyi szervezeteknél dolgozott, és mélyreható tapasztalatokkal rendelkezik komplex rendszerek, technológiai innováció és kutatás terén. Lányaival lóg, és szabadidejében a szabadban jár.

Enable the visually impaired to hear documents using Amazon Textract and Amazon Polly PlatoBlockchain Data Intelligence. Vertical Search. Ai.Swagat Kulkarni az AWS vezető megoldástervezője és az AI/ML rajongó. Szenvedélyesen törekszik az ügyfelek valós problémáinak megoldására felhőalapú natív szolgáltatásokkal és gépi tanulással. A munkán kívül Swagat szeret utazni, olvasni és meditálni.

Időbélyeg:

Még több AWS gépi tanulás