Het lezen van het gedrukte woord opent een wereld van informatie, verbeeldingskracht en creativiteit. Gescande boeken en documenten kunnen echter moeilijk te consumeren zijn voor mensen met een visuele handicap en leerstoornissen. Bovendien luisteren sommige mensen liever naar op tekst gebaseerde inhoud dan deze te lezen. Een document-naar-spraakoplossing vergroot het bereik van digitale inhoud door tekstinhoud een stem te geven. Het heeft toepassingen in verschillende industriรซle sectoren, zoals:
- Onstpanning- U kunt uw eigen audioboeken maken.
- Onderwijs โ Studenten kunnen hun aantekeningen omzetten in spraak en ze overal openen.
- Patiรซntenzorg โ Doseringsinstructies en voorzorgsmaatregelen zijn meestal in kleine letters en moeilijk te lezen. Met deze oplossing kunt u een foto maken, omzetten in spraak en naar de instructies luisteren om mogelijke schade te voorkomen.
De document-naar-spraakoplossing zet gescande boeken of documenten die met een mobiele telefoon of handheld-apparaat zijn gemaakt automatisch om naar spraak. Deze oplossing breidt de mogelijkheden van Amazon Polly. Wij extraheer tekst van gescande documenten met Amazon T-extracten converteer vervolgens de tekst naar spraak met behulp van Amazon Polly. Voordelen van de oplossing zijn onder meer mobiliteit en vrijheid voor de gebruiker plus verbeterde leermogelijkheden voor vroege lezers.
Het idee is ontstaan โโuit Harry Pan, een van de favoriete ouder-kindactiviteiten van de blogauteur: boeken lezen. โMijn zoon houdt van verhalenboeken, maar is te jong om alleen te lezen. Ik lees hem graag voor, maar soms moet ik werken of huishoudelijke klusjes doen. Dit leidde tot het idee om een โโdocument-naar-spraakoplossing te bouwen die hem kon voorlezen als ik het druk hadโ.
Overzicht van de oplossing
De oplossing is een gebeurtenisgestuurde serverloze architectuur die gebruikmaakt van Amazon AI-services om gescande documenten naar spraak om te zetten. Amazon Textract en Amazon Polly behoren tot de bovenste laag van de AWS machine learning (ML) stack. Met deze services kunnen ontwikkelaars eenvoudig intelligentie toevoegen aan elke applicatie zonder voorafgaande kennis van ML.
Amazon Textract is een ML-service die automatisch tekst, handschrift en gegevens extraheert uit gescande documenten. Het gaat verder dan eenvoudige optische tekenherkenning (OCR) om gegevens uit formulieren en tabellen te identificeren, begrijpen en extraheren. Amazon Textract gebruikt ML om elk type document te lezen en te verwerken, waarbij tekst, handschrift, tabellen en andere gegevens nauwkeurig worden geรซxtraheerd zonder enige handmatige inspanning.
Amazon Polly is een tekst-naar-spraakservice die tekst omzet in levensechte spraak, zodat je applicaties kunt maken die praten en geheel nieuwe categorieรซn spraakgestuurde producten kunt bouwen. Amazon Polly gebruikt geavanceerde deep learning-technologieรซn om spraak te synthetiseren die klinkt als een menselijke stem.
Het gebruik van Amazon AI-services heeft aanzienlijke voordelen:
- Ze kosten weinig moeite; u kunt deze API's in elke toepassing integreren
- Ze bieden zeer schaalbare en kosteneffectieve oplossingen
- Uw organisatie kan haar focus verleggen van de ontwikkeling van aangepaste modellen naar bedrijfsresultaten
De oplossing maakt ook gebruik van Amazon API-gateway om snel API's op te zetten die de web-UI kan aanroepen om bewerkingen uit te voeren zoals het uploaden van documenten en het converteren van gescande documenten naar spraak. API Gateway biedt een schaalbare manier om veilige API's te maken, publiceren en onderhouden. In deze oplossing gebruiken we ook API Gateway WebSocket-ondersteuning om een โโpermanente verbinding tot stand te brengen tussen de web-UI en de backend, zodat de backend voortgangsupdates naar de gebruiker in realtime kan blijven sturen.
Wij gebruiken AWS Lambda functies om asynchrone taken van Amazon Textract en Amazon Polly te activeren. Lambda is een zeer beschikbare en schaalbare rekenservice waarmee u code kunt uitvoeren zonder resources in te richten.
We gebruiken een AWS Stap Functies state machine om twee parallelle Lambda-functies te orkestreren - รฉรฉn om tekst te modereren en de andere om tekst in op te slaan Amazon eenvoudige opslagservice (Amazon S3). Step Functions is een serverloze orkestratieservice om applicatieworkflows te definiรซren als een reeks gebeurtenisgestuurde stappen.
Architectuur en code
Zoals beschreven in de vorige sectie, gebruiken we twee belangrijke AI-services, Amazon Textract en Amazon Polly, om een โโdocument-naar-spraak-conversie-oplossing te bouwen. Een extra service waar we het nog niet over hebben gehad is AWS versterken. Met Amplify kunnen front-end ontwikkelaars snel uitbreidbare, full-stack web- en mobiele apps bouwen. Met Amplify kun je eenvoudig een backend configureren, er binnen enkele minuten een applicatie op aansluiten en moeiteloos schalen. We gebruiken Amplify om een โโweb-UI te hosten waarmee gebruikers hun gescande documenten kunnen uploaden.
U kunt ook uw eigen gebruikersinterface gebruiken zonder Amplify. Terwijl we diep in deze oplossing duiken, laten we zien hoe u elke clienttoepassing kunt gebruiken om verbinding te maken met de backend om documenten naar spraak te converteren - zolang ze REST- en WebSocket-API's ondersteunen. De web-UI hier is alleen bedoeld om de belangrijkste functies van deze oplossing te demonstreren. Op het moment van schrijven ondersteunt de oplossing JPEG-, PNG- en PDF-invoerformaten en de Engelse taal.
Het volgende diagram illustreert de oplossingsarchitectuur.
We doorlopen deze architectuur door het pad van een enkele gebruikersaanvraag te volgen:
- De gebruiker bezoekt de web-UI die wordt gehost op Amplify. De UI-code is de
index.html
bestand in declient
map van de coderepository. - De gebruiker kiest een JPG-, PDF- of PNG-bestand om te uploaden met behulp van de web-UI.
- De gebruiker start de Audio converteren en afspelen proces van de web-UI, die het invoerbestand uploadt naar een S3-bucket, via een REST API die wordt gehost op API Gateway.
- Wanneer het uploaden is voltooid, begint de document-naar-spraakconversie als een achtergrondproces:
- Tijdens de conversie houdt de webclient een permanente WebSocket-verbinding met de API Gateway. Hierdoor kunnen de backend-processen (Lambda-functies) continu voortgangsupdates naar de webclient sturen.
- Het verzoek gaat via de API Gateway en activeert de Lambda-functie
convert-images-to-text
. Deze functie roept Amazon Textract asynchroon aan om het document naar tekst te converteren. - Wanneer de afbeelding-naar-tekst-conversie is voltooid, stuurt Amazon Textract een melding naar: Amazon eenvoudige meldingsservice (Amazone SNS).
- De melding activeert de Lambda-functie
on-textract-ready
, waarmee een Step Functions-statusmachine wordt gestart. - De statusmachine orkestreert de volgende stappen:
- Het voert de Lambda-functie uit
retrieve-text
om de geconverteerde tekst van Amazon Textract te verkrijgen. - Het voert vervolgens Lambda-functies uit
moderate-text
enstore-text
parallel.moderate-text
stopt de verdere verwerking wanneer ongewenste woorden worden gedetecteerd, enstore-text
slaat een kopie van de geconverteerde tekst op in een S3-bucket. - Nadat de parallelle stappen zijn voltooid, voert de statusmachine de Lambda-functie uit
convert-text-to-audio
, die Amazon Polly asynchroon aanroept met de geconverteerde tekst, voor spraakconversie. De toestandsmachine is na deze stap voltooid.
- Het voert de Lambda-functie uit
- Net als bij Amazon Textract stuurt Amazon Polly een melding naar Amazon SNS wanneer de klus is geklaard. De melding activeert de Lambda-functie
on-polly-ready
, die een laatste bericht naar de web-UI stuurt, samen met de Amazon S3-locatie van het geconverteerde audiobestand.
- De web-UI downloadt het uiteindelijke geconverteerde audiobestand van Amazon S3 via een REST API en speelt het vervolgens af voor de gebruiker.
- De applicatie maakt gebruik van een Amazon DynamoDB tabel om taakinformatie bij te houden, zoals Amazon Textract-taak-ID, Amazon Polly-taak-ID en meer.
De code wordt gehost op GitHub en wordt geรฏmplementeerd met behulp van AWS Cloud-ontwikkelingskit (AWS CDK), een open-source softwareontwikkelingsraamwerk om cloudtoepassingsbronnen te definiรซren met behulp van bekende programmeertalen. AWS CDK voorziet middelen op een herhaalbare manier door middel van: AWS CloudFormatie.
Voorwaarden
De enige vereiste om deze oplossing te implementeren is een AWS-account.
Implementeer de oplossing
In de volgende stappen wordt beschreven hoe u de toepassing implementeert:
- Meld u aan bij uw AWS-account.
- Op de AWS-Cloud9 console, open een bestaande omgeving of kies Creรซer omgeving om een โโnieuwe te maken.
- In uw AWS Cloud9 IDE, op de venster menu, kies Nieuwe terminal om een โโterminal te openen.
Alle volgende stappen worden uitgevoerd in dezelfde terminal.
- Kloon de git-repository en voer de projectdirectory in:
- Maak een virtuele Python-omgeving:
- Nadat het init-proces is voltooid en de virtuele omgeving is gemaakt, gebruikt u de volgende stap om uw virtuele omgeving te activeren:
- Nadat de virtuele omgeving is geactiveerd, installeert u de vereiste afhankelijkheden:
- U kunt nu de CloudFormation-sjablonen synthetiseren uit de AWS CDK-code:
- Implementeer de AWS CDK-toepassing en leg de AWS CDK-uitgangen vast die later nodig zijn:
U moet de wijzigingen bevestigen die voor elke stapel moeten worden geรฏmplementeerd. U kunt de voortgang van het maken van de stapel controleren op de AWS Cloud Formation-console.
- Om de webclient te bezoeken, voert u de volgende opdracht uit en volgt u de uitvoer om de front-endimplementatie te starten en de webclient te gebruiken:
Belangrijke dingen om op te merken:
- De
extract-cdk-outputs.py
script drukt de URL van de web-UI af. Het script drukt ook strings af van de S3-bucketnaam, het bestands-API-eindpunt en het conversie-API-eindpunt, die moeten worden ingesteld op de web-UI voordat een document wordt geรผpload. - U kunt de lijst met ongewenste woorden instellen in de variabele in de
moderate-text
Lambda-functie.
Gebruik de applicatie
De volgende stappen laten zien hoe u de applicatie via de web-UI kunt gebruiken.
- Vul na de laatste stap van de implementatie de velden in voor: S3 Bucketnaam, Bestandseindpunt en Conversie-eindpunt in de web-UI.
- Kies Kies bestand om een โโinvoerbestand te uploaden.
- Kies Audio converteren en afspelen.
De web-UI toont de voortgang van de lopende conversie.
De web-UI speelt de audio automatisch af wanneer de conversie is voltooid.
Opruimen
Voer de volgende opdracht uit om alle bronnen te verwijderen en toekomstige kosten te voorkomen:
Conclusie
In dit bericht hebben we een oplossing gedemonstreerd om snel een document-naar-spraak-conversietoepassing te implementeren met behulp van twee krachtige AI-services: Amazon Textract en Amazon Polly. We hebben laten zien hoe de oplossing werkt en hebben een gedetailleerd overzicht gegeven van de code en implementatiestappen. Deze oplossing is bedoeld als referentiearchitectuur of snelle start die u verder kunt verbeteren. U kunt met name ondersteuning toevoegen voor meer menselijke talen, een wachtrij toevoegen voor het bufferen van inkomende verzoeken en gebruikers authenticeren.
Zoals besproken in dit bericht, zien we meerdere use-cases voor deze oplossing in verschillende branches. Probeer het eens en laat ons weten hoe dit uw use-case heeft opgelost door feedback achter te laten in het opmerkingengedeelte. U hebt toegang tot de bronnen voor de oplossing in de document naar spraak GitHub-repository.
Referenties
Meer informatie is beschikbaar op de volgende bronnen:
- Amazon Textract-ontwikkelaarsgids
- Amazon Polly-ontwikkelaarsgids
- Werken met WebSocket API's
- AWS CDK Construct-bibliotheek
- AWS Amplify Construct-bibliotheek
Over de auteurs
Harry Pan is een ISV Solutions Architect bij Amazon Web Services, gevestigd in de San Francisco Bay Area, waar hij softwarebedrijven helpt hun zakelijke doelen te bereiken door goed ontworpen IT-systemen te bouwen. Hij brengt zijn vrije tijd graag door met zijn gezin, maar ook van tennis, coderen in Haskell en reizen.
CHaitra Mathur is Principal Solutions Architect bij AWS. Ze begeleidt partners en klanten bij het bouwen van zeer schaalbare, betrouwbare, veilige en kosteneffectieve oplossingen op AWS. In haar vrije tijd houdt ze van lezen, yoga en tijd doorbrengen met haar dochters.
- Coinsmart. Europa's beste Bitcoin- en crypto-uitwisseling.
- Platoblockchain. Web3 Metaverse Intelligentie. Kennis versterkt. GRATIS TOEGANG.
- CryptoHawk. Altcoin-radar. Gratis proefversie.
- Bron: https://aws.amazon.com/blogs/machine-learning/increase-your-content-reach-with-automated-document-to-speech-conversion-using-amazon-ai-services/
- "
- &
- 10
- 100
- 7
- 9
- toegang
- Account
- over
- activiteiten
- toevoeging
- Extra
- vergevorderd
- voordelen
- AI
- AI-diensten
- Alles
- Het toestaan
- Amazone
- Amazon Web Services
- overal
- api
- APIs
- Aanvraag
- toepassingen
- apps
- architectuur
- GEBIED
- audio
- geautomatiseerde
- Beschikbaar
- AWS
- achtergrond
- Baai
- betekent
- Verder
- Blog
- Boeken
- grens
- bouw
- Gebouw
- bedrijfsdeskundigen
- mogelijkheden
- vangen
- gevallen
- CD
- lasten
- Kies
- Cloud
- code
- codering
- opmerkingen
- Bedrijven
- Berekenen
- Verbinden
- versterken
- troosten
- consumeren
- content
- Camper ombouw
- kostenefficient
- kon
- en je merk te creรซren
- aangemaakt
- het aanmaken
- gewoonte
- Klanten
- gegevens
- tonen
- gedemonstreerd
- implementeren
- ingezet
- inzet
- beschreven
- vernietigen
- detail
- gedetailleerd
- gedetecteerd
- Ontwikkelaar
- ontwikkelaars
- Ontwikkeling
- apparaat
- anders
- moeilijk
- digitaal
- documenten
- downloads
- Vroeg
- gemakkelijk
- inspanning
- Endpoint
- Engels
- Enter
- Milieu
- oprichten
- bestaand
- extracten
- familie
- Voordelen
- feedback
- Velden
- Focus
- volgen
- volgend
- formulieren
- Achtergrond
- Francisco
- Vrijheid
- vol
- functie
- verder
- toekomst
- Git
- GitHub
- Vrijgevigheid
- Doelen
- Guides
- helpt
- hier
- zeer
- gehost
- huishouden
- Hoe
- How To
- HTTPS
- menselijk
- idee
- identificeren
- verbeelding
- omvatten
- Laat uw omzet
- -industrie
- informatie
- invoer
- installeren
- integreren
- Intelligentie
- IT
- Jobomschrijving:
- Vacatures
- sleutel
- kennis
- taal
- Talen
- leren
- Lijst
- Elke kleine stap levert grote resultaten op!
- plaats
- lang
- liefde
- machine
- machine learning
- onderhouden
- manier
- handboek
- ML
- Mobile
- mobiele telefoon
- mobiliteit
- modellen
- meer
- meervoudig
- een
- Opmerkingen
- notificatie
- bieden
- lopend
- open
- opent
- Operations
- orkestratie
- bestellen
- organisatie
- Overige
- het te bezitten.
- partners
- Mensen
- beeld
- Spelen
- spelen
- potentieel
- krachtige
- vorig
- Principal
- processen
- verwerking
- Producten
- Programming
- programmeertalen
- project
- biedt
- publiceren
- Quick
- snel
- bereiken
- lezers
- lezing
- bewaarplaats
- te vragen
- verzoeken
- nodig
- Voorwaarden
- Resources
- REST
- lopen
- heilige
- San Francisco
- schaalbare
- Scale
- Sectoren
- beveiligen
- -Series
- Serverless
- service
- Diensten
- reeks
- verschuiving
- aanzienlijke
- Eenvoudig
- Klein
- So
- Software
- software development
- solide
- oplossing
- Oplossingen
- sommige
- zijn
- Uitgaven
- stack
- begin
- starts
- Land
- mediaopslag
- shop
- winkels
- ondersteuning
- steunen
- Systems
- Talk
- Technologies
- templates
- terminal
- Door
- niet de tijd of
- bovenste
- spoor
- Reizend
- typisch
- ui
- begrijpen
- updates
- us
- .
- gebruikers
- Tegen
- Virtueel
- visie
- Stem
- web
- webservices
- binnen
- zonder
- woorden
- Mijn werk
- Bedrijven
- wereld
- het schrijven van