AWS erbjuder en bred uppsättning tjänster för artificiell intelligens (AI) och maskininlärning (ML), inklusive en svit med förutbildade, färdiga att använda tjänster för utvecklare utan tidigare erfarenhet av ML. I det här inlägget visar vi hur man använder sådana tjänster för att bygga en applikation som främjar inkluderingen av personer med en syn- eller kommunikationsnedsättning, vilket inkluderar svårigheter att se, läsa, höra, tala eller ha en konversation på ett främmande språk. Med tjänster som t.ex Amazon Transcribe, Amazon Polly, Amazon Translate, Amazon-erkännande och amazontext, kan du lägga till funktioner till dina projekt som live-transkription, text till tal, översättning, objektdetektering och textextraktion från bilder.
Enligt Världshälsoorganisationen, över 1 miljard människor – cirka 15 % av världens befolkning – lever med någon form av funktionshinder, och detta antal kommer sannolikt att växa på grund av befolkningens åldrande och en ökning av förekomsten av vissa kroniska sjukdomar. För personer med tal-, hörsel- eller synnedsättning kan vardagliga sysslor som att lyssna på ett tal eller ett TV-program, uttrycka en känsla eller ett behov, se sig omkring eller läsa en bok kännas som omöjliga utmaningar. Ett brett spektrum av forskning belyser betydelsen av hjälpmedel för inkludering av personer med funktionsnedsättning i samhället. Enligt forskning från Europaparlamentets forskningstjänst, vanliga tekniker som smartphones ger fler och fler möjligheter som är lämpliga för att tillgodose behoven hos personer med funktionsnedsättning. Dessutom, när du designar för personer med funktionshinder, tenderar du att bygga funktioner som förbättrar upplevelsen för alla; detta är känt som kantstensskärningseffekt.
Det här inlägget visar hur du kan använda AWS SDK för JavaScript att integrera funktioner som tillhandahålls av AWS AI-tjänster i dina egna lösningar. För att göra det visar en exempelwebbapplikation hur man använder Amazon Transcribe, Amazon Polly, Amazon Translate, Amazon Rekognition och Amazon Textract för att enkelt implementera tillgänglighetsfunktioner. Källkoden för denna applikation, AWS AugmentAbility, är tillgänglig på GitHub att använda som utgångspunkt för dina egna projekt.
Lösningsöversikt
AWS AugmentAbility drivs av fem AWS AI-tjänster: Amazon Transcribe, Amazon Translate, Amazon Polly, Amazon Rekognition och Amazon Textract. Den använder också Amazon Cognito användarpooler och identitetspooler för hantering av autentisering och auktorisering av användare.
När du har implementerat webbappen kommer du att kunna få åtkomst till följande funktioner:
- Livetranskription och text till tal – Appen transkriberar konversationer och tal åt dig i realtid med Amazon Transcribe, en automatisk taligenkänningstjänst. Skriv vad du vill säga och appen säger det åt dig genom att använda Amazon Polly text-till-tal-funktioner. Den här funktionen integreras också med Amazon Transcribe automatisk språkidentifiering för strömmande transkriptioner—Med minst 3 sekunders ljud kan tjänsten automatiskt upptäcka det dominerande språket och generera en utskrift utan att du behöver ange det talade språket.
- Livetranskription och text till tal med översättning – Appen transkriberar och översätter konversationer och tal åt dig i realtid. Skriv vad du vill säga och appen översätter och säger det åt dig. Översättning är tillgänglig på de över 75 språk som för närvarande stöds av Amazon Translate.
- Konversationsöversättning i realtid – Välj ett målspråk, tala på ditt språk och appen översätter det du sa till ditt målspråk genom att kombinera funktionerna Amazon Transcribe, Amazon Translate och Amazon Polly.
- Objektdetektering – Ta en bild med din smartphone så beskriver appen objekten runt omkring dig genom att använda Amazon Rekognition-etikettdetekteringsfunktioner.
- Textigenkänning för etiketter, skyltar och dokument – Ta en bild med din smartphone av valfri etikett, skylt eller dokument, så läser appen upp den för dig. Den här funktionen drivs av Amazon Rekognition och Amazon Textracts textextraheringsfunktioner. AugmentAbility kan också översätta texten till över 75 språk, eller göra den mer läsbar för användare med dyslexi genom att använda typsnittet OpenDyslexic.
Livetranskription, text till tal och översättning av konversationer i realtid är för närvarande tillgängliga på kinesiska, engelska, franska, tyska, italienska, japanska, koreanska, brasiliansk portugisiska och spanska. Textigenkänningsfunktioner är för närvarande tillgängliga på arabiska, engelska, franska, tyska, italienska, portugisiska, ryska och spanska. En uppdaterad lista över de språk som stöds av varje funktion finns tillgänglig på AugmentAbility GitHub repo.
Du kan bygga och distribuera AugmentAbility lokalt på din dator eller i ditt AWS-konto genom att använda AWS Amplify Hosting, en fullständigt hanterad CI/CD och statisk webbhotell för snabba, säkra och pålitliga statiska appar och appar som renderas på serversidan.
Följande diagram illustrerar applikationens arkitektur, förutsatt att den är distribuerad i molnet med AWS Amplify Hosting.
Lösningsarbetsflödet inkluderar följande steg:
- En mobil webbläsare används för att komma åt webbappen – en HTML-, CSS- och JavaScript-applikation som drivs av AWS Amplify Hosting. Applikationen har implementerats med hjälp av SDK för JavaScript och AWS Amplify JavaScript-bibliotek.
- Användaren loggar in genom att ange ett användarnamn och ett lösenord. Autentisering utförs mot Amazon Cognito-användarpoolen. Efter en lyckad inloggning används Amazon Cognito-identitetspoolen för att förse användaren med de tillfälliga AWS-uppgifter som krävs för att få åtkomst till appfunktioner.
- Medan användaren utforskar appens olika funktioner interagerar mobilwebbläsaren med Amazon Transcribe (StartStreamTranscriptionWebSocket operation), Amazon Translate (Översätt text operation), Amazon Polly (Syntetisera tal operation), Amazon Recognition (Upptäck etiketter och Detektera text operations) och Amazon Textract (DetectDocumentText drift).
AWS-tjänster har integrerats i den mobila webbappen genom att använda SDK för JavaScript. Generellt sett ger SDK för JavaScript åtkomst till AWS-tjänster i antingen webbläsarskript eller Node.js; för detta exempelprojekt används SDK:n i webbläsarskript. För ytterligare information om hur du får åtkomst till AWS-tjänster från ett webbläsarskript, se Komma igång i ett webbläsarskript. SDK för JavaScript tillhandahålls som en JavaScript-fil som stöder en standarduppsättning AWS-tjänster. Den här filen läses vanligtvis in i webbläsarskript med hjälp av en <script>
taggen som refererar till det värdbaserade SDK-paketet. En anpassad webbläsar-SDK byggdes med en specificerad uppsättning tjänster (för instruktioner, se Bygga SDK för webbläsare).
Varje tjänst integrerades i den mobila webbappen enligt riktlinjerna och kodexemplen som finns tillgängliga i AWS SDK för JavaScript-utvecklarguide. Implementeringen av live-transkriptionsfunktioner krävde några ytterligare steg eftersom Amazon Transcribe Streaming WebSocket kräver att utvecklare kodar ljudet med händelseströmskodning och använder Signature version 4 signeringsprocess för att lägga till autentiseringsinformation till AWS API-förfrågningar som skickas av HTTP. För mer information om detta tillvägagångssätt, se Transkribera tal till text i realtid med Amazon Transcribe med WebSocket.
Webbsidan för användarinloggning har implementerats med hjälp av autentisering funktioner i AWS Amplify JavaScript-biblioteket. För mer information om autentiserings- och auktoriseringsflödet, se Åtkomst till AWS-tjänster med hjälp av en identitetspool efter inloggning.
Följande genomgång visar hur man distribuerar AugmentAbility genom att använda AWS Amplify Hosting; den innehåller följande steg:
- Skapa Amazon Cognito-användarpoolen och identitetspoolen och ge behörigheter för åtkomst till AWS AI-tjänster.
- Klona GitHub-förvaret och redigera konfigurationsfilen.
- Distribuera den mobila webbappen till AWS förstärka konsol.
- Använd den mobila webbappen.
Skapa Amazon Cognito-användarpoolen och identitetspoolen och ge behörigheter för åtkomst till AWS AI-tjänster
Det första steget som krävs för att distribuera appen består av skapa en Amazon Cognito-användarpool med Hosted UI aktiverat, skapa en Amazon Cognito identitetspool, integrera de två poolerna, och slutligen bevilja tillstånd för åtkomst av AWS-tjänster till AWS identitets- och åtkomsthantering (IAM) roll kopplad till identitetspoolen. Du kan antingen slutföra detta steg genom att manuellt arbeta med varje uppgift eller genom att distribuera en AWS molnformation mall.
CloudFormation-mallen tillhandahåller och konfigurerar automatiskt nödvändiga resurser, inklusive Amazon Cognito-pooler, IAM-roller och IAM-policyer.
- Logga in på AWS Management Console och starta CloudFormation-mallen genom att välja Starta stack:
Mallen lanseras i EU Väst (Irland) AWS-regionen som standard. För att starta lösningen i en annan region, använd regionväljaren i konsolens navigeringsfält. Se till att välja en region där AWS-tjänsterna i omfattning (Amazon Cognito, AWS Amplify, Amazon Transcribe, Amazon Polly, Amazon Translate, Amazon Rekognition och Amazon Textract) är tillgängliga (us-east-2
,us-east-1
,us-west-1
,us-west-2
,ap-south-1
,ap-northeast-2
,ap-southeast-1
,ap-southeast-2
,ca-central-1
,eu-central-1
,eu-west-1
,eu-west-2
). - Välja Nästa.
- För Region, ange identifieraren för den region du vill använda (bland de som stöds).
- För Användarnamn, ange användarnamnet du vill använda för att komma åt appen.
- För E-postadress , ange e-postadressen som det tillfälliga lösenordet för din första inloggning ska skickas till.
- Välja Nästa.
- På Konfigurera stackalternativ sida, välj Nästa.
- På översyn sida, granska och bekräfta inställningarna.
- Markera kryssrutan för att bekräfta att mallen kommer att skapa IAM-resurser och kan kräva en AWS CloudFormation-funktion.
- Välja Skapa stack att distribuera stacken.
Du kan se stackens status på AWS CloudFormation-konsolen i status kolumn. Du bör få en CREATE_COMPLETE
status inom ett par minuter.
Som en del av malldistributionen ges följande behörigheter till IAM-rollen som antas av den autentiserade användaren:
transcribe:StartStreamTranscriptionWebSocket
translate:TranslateText
comprehend:DetectDominantLanguage
polly:SynthesizeSpeech
rekognition:DetectText
rekognition:DetectLabels
textract:DetectDocumentText
Även om Amazon Comprehend inte uttryckligen används i denna webbapplikation, tillstånd beviljas för åtgärden comprehend:DetectDominantLanguage. Amazon Translate kan automatiskt anropa Amazon Comprehend för att fastställa språket för texten som ska översättas om en språkkod inte anges.
Klona GitHub-förvaret och redigera konfigurationsfilen
Nu när åtkomst till AWS AI-tjänster har konfigurerats är du redo att klona GitHub-förvaret och redigera konfigurationsfilen.
- I AWS AugmentAbility GitHub repoväljer Koda och Hämta ZIP.
Antingen uppmanas du att välja en plats på din dator dit ZIP-filen ska laddas ner till, eller så sparas den automatiskt i dinDownloads
mapp. - När du har laddat ner filen, packa upp den och radera ZIP-filen.
Du borde ha skaffat en mapp som heteraws-augmentability-main
med några filer och undermappar i den. - Skapa en fil med namnet
config.js
med valfri textredigerare och skriv in följande innehåll i den: - I
config.js
fil du skapade, ersätt de fyraINSERT_
strängar med Amazon Cognito-identitetspool-ID, identifierare för din valda region, Amazon Cognito-användarpool-ID och klient-ID för användarpool.
Du kan hämta sådana värden genom att öppna AWS CloudFormation-konsolen och välja stacken med namnetaugmentability-stack
, och välja Utgångarna fliken.
- Spara filen config.js i
aws-augmentability-main
mapp och zippa mappen för att få en nyaws-augmentability-main.zip
fil.
Implementera den mobila webbappen till Amplify-konsolen
Nu när du har laddat ner och redigerat AugmentAbility-projektfilerna är du redo att bygga och distribuera den mobila webbappen med Amplify-konsolen.
- På Kom igång med Amplify Hosting sida, välj Distribuera utan Git-leverantör.
- Välja Fortsätta.
- I Starta en manuell distribution avsnitt, för App-namnanger du namnet på din app.
- För Miljönamn, ange ett meningsfullt namn för miljön, t.ex
development
orproduction
. - För Metodväljer Dra och släpp.
- Antingen dra och släpp
aws-augmentability-main.zip
fil från din dator till släppzonen eller använd Välj filer för att väljaaws-augmentability-main.zip
filen från din dator. - Välja Save och distribueraoch vänta på meddelandet Implementeringen har slutförts.
Använd den mobila webbappen
Den mobila webbappen bör nu distribueras. Innan du öppnar appen för första gången måste du ställa in ett nytt lösenord för användaren som har skapats automatiskt under steg 1. Du hittar länken till den tillfälliga inloggningsskärmen i Utgångarna fliken för CloudFormation-stacken (fält UserPoolLoginUrl
). För denna första inloggning använder du användarnamnet du ställt in och det tillfälliga lösenordet du fick via e-post.
När du har ställt in ditt nya lösenord är du redo att testa den mobila webbappen.
I Allmänt avsnitt av Amplify-konsolen, bör du kunna hitta en länk till appen under Produktionsgrenens URL märka. Öppna den eller skicka den till din smartphone, logga sedan in med dina nya referenser och börja spela med AugmentAbility.
Nästa steg
Om du vill göra ändringar i den mobila webbappen kan du arbeta med filerna som klonats från förvaret, bygga den mobila webbappen lokalt (som förklaras i README-fil), och distribuera sedan om appen genom att ladda upp den uppdaterade ZIP-filen via Amplify-konsolen. Som ett alternativ kan du skapa en GitHub, Bitbucket, GitLab eller AWS CodeCommit arkiv för att lagra dina projektfiler och ansluta det till Amplify för att dra nytta av automatiska byggen på varje kodbekräftelse. För att lära dig mer om detta tillvägagångssätt, se Komma igång med befintlig kod. Om du följer den här handledningen, se till att ersätta kommandot npm run build
med npm run-script build
vid steg 2a.
För att skapa ytterligare användare på Amazon Cognito-konsolen, se Skapa en ny användare i AWS Management Console. Om du behöver återställa lösenordet för en användare bör du använda den tillfälliga inloggningsskärmen som du använde för att ändra det tillfälliga lösenordet. Du hittar länken på Utgångarna fliken i CloudFormation-stacken (fält UserPoolLoginUrl
).
Städa upp
När du är klar med dina tester, för att undvika framtida avgifter, radera resurserna som skapades under den här genomgången.
- Välj på AWS CloudFormation-konsolen Stacks i navigeringsfönstret.
- Välj stapeln
augmentability-stack
. - Välja Radera och bekräfta raderingen när du uppmanas.
- På Amplify-konsolen väljer du appen du skapade.
- På Handlingar meny, välj Radera app och bekräfta raderingen när du uppmanas.
Slutsats
I det här inlägget visade jag dig hur du distribuerar ett kodexempel som använder AWS AI- och ML-tjänster för att lägga funktioner som live-transkription, text till tal, objektdetektering eller textigenkänning i händerna på alla. Att veta hur man bygger applikationer som kan användas av människor med många olika förmågor och funktionshinder är nyckeln för att skapa mer inkluderande och tillgängliga produkter.
För att komma igång med AugmentAbility, klona eller dela GitHub repository och börja experimentera med den mobila webbappen. Om du vill experimentera med AugmentAbility innan du distribuerar resurser i ditt AWS-konto kan du kolla in demo (referenser: demo-user
, Demo-password-1
).
Om författaren
Luca Guida är lösningsarkitekt på AWS; han är baserad i Milano och stödjer italienska ISV:er i deras molnresa. Med en akademisk bakgrund inom datavetenskap och teknik började han utveckla sin AI/ML-passion på universitetet; som medlem av NLP-gemenskapen (natural language processing) inom AWS hjälper Luca kunder att bli framgångsrika samtidigt som de använder AI/ML-tjänster.
- Myntsmart. Europas bästa bitcoin- och kryptobörs.
- Platoblockchain. Web3 Metaverse Intelligence. Kunskap förstärkt. FRI TILLGÅNG.
- CryptoHawk. Altcoin radar. Gratis provperiod.
- Källa: https://aws.amazon.com/blogs/machine-learning/use-aws-ai-and-ml-services-to-foster-accessibility-and-inclusion-of-people-with-a-visual- eller-kommunikationsstörning/
- "
- 100
- a
- Om oss
- tillgång
- tillgänglighet
- tillgänglig
- åtkomst
- Enligt
- Konto
- Handling
- Dessutom
- Annat
- adress
- adresse
- mot
- AI
- AI-tjänster
- alternativ
- amason
- bland
- api
- app
- Ansökan
- tillämpningar
- tillvägagångssätt
- appar
- arkitektur
- runt
- konstgjord
- artificiell intelligens
- Konstgjord intelligens (AI)
- associerad
- audio
- authenticated
- Autentisering
- tillstånd
- Automat
- automatiskt
- tillgänglig
- AWS
- bakgrund
- därför att
- innan
- fördel
- Miljarder
- kropp
- gränsen
- Box
- webbläsare
- SLUTRESULTAT
- bygger
- kapacitet
- utmaningar
- avgifter
- kinesisk
- val
- Välja
- cloud
- koda
- Kolumn
- förbinda
- Kommunikation
- samfundet
- fullborda
- dator
- Datavetenskap
- konfiguration
- Kontakta
- Konsol
- innehåll
- Konversation
- konversationer
- Par
- skapa
- skapas
- Skapa
- referenser
- För närvarande
- beställnings
- Kunder
- demonstrera
- distribuera
- utplacerade
- utplacera
- utplacering
- Designa
- detaljer
- Detektering
- Bestämma
- Utvecklare
- utvecklare
- utveckla
- olika
- sjukdomar
- dokument
- domän
- ladda ner
- Drop
- under
- lätt
- redaktör
- Teknik
- Engelska
- ange
- Miljö
- EU
- Giltigt körkort
- händelse
- dagliga
- alla
- befintliga
- erfarenhet
- experimentera
- SNABB
- Leverans
- Funktioner
- Slutligen
- Förnamn
- första gången
- flöda
- följer
- efter
- utländska
- gaffel
- formen
- franska
- från
- framtida
- allmänhet
- generera
- gå
- GitHub
- Välgörenhet
- beviljats
- Väx
- riktlinjer
- har
- Hälsa
- hjälper
- höjdpunkter
- värd
- värd
- Hur ser din drömresa ut
- How To
- HTTPS
- Identifiering
- Identitet
- bilder
- genomföra
- genomförande
- genomföras
- vikt
- omöjligt
- förbättra
- innefattar
- Inklusive
- integration
- Öka
- informationen
- integrera
- integrerade
- Intelligens
- irland
- IT
- japanska
- JavaScript
- resa
- Nyckel
- känd
- koreanska
- etikett
- Etiketter
- språk
- Språk
- lansera
- lanserar
- LÄRA SIG
- inlärning
- Bibliotek
- sannolikt
- LINK
- Lista
- Lyssna
- lever
- lokalt
- läge
- du letar
- Maskinen
- maskininlärning
- Vanliga
- göra
- förvaltade
- ledning
- hantera
- manuell
- manuellt
- meningsfull
- medlem
- minsta
- ML
- Mobil
- mer
- Natural
- Navigering
- nödvändigt för
- behov
- antal
- erhållna
- Erbjudanden
- öppet
- öppning
- drift
- Verksamhet
- egen
- paket
- del
- brinner
- Lösenord
- Personer
- Bild
- i
- Punkt
- Strategier
- poolen
- Pools
- befolkning
- portugisiska
- drivs
- bearbetning
- Produkter
- Program
- projektet
- projekt
- ge
- förutsatt
- ger
- område
- Läsning
- realtid
- motta
- mottagna
- Recover
- region
- pålitlig
- Repository
- förfrågningar
- kräver
- Obligatorisk
- Kräver
- forskning
- Resurser
- översyn
- Roll
- Körning
- Nämnda
- Vetenskap
- screen
- sDK
- sekunder
- säkra
- service
- Tjänster
- in
- visa upp
- signera
- Tecken
- smartphone
- smartphones
- Samhället
- fast
- lösning
- Lösningar
- några
- källkod
- spanska
- tala
- tala
- stapel
- starta
- igång
- status
- lagra
- ström
- streaming
- framgångsrik
- Framgångsrikt
- Som stöds
- Stödjande
- Stöder
- Målet
- uppgifter
- Tekniken
- temporär
- testa
- tester
- Smakämnen
- källan
- världen
- tid
- Avskrift
- Översättning
- tv
- typiskt
- ui
- under
- universitet
- användning
- användare
- version
- utsikt
- vänta
- webb
- väster
- Vad
- medan
- VEM
- inom
- utan
- Arbete
- arbetssätt
- världen
- Din