Vereenvoudig de patiëntenzorg met een aangepaste stemassistent met behulp van Amazon Lex V2

Bronknooppunt: 988220

Burn-out bij artsen is de afgelopen decennia een uitdaging geweest in de gezondheidszorg. Hoewel patiëntinteractie en diagnose cruciale aspecten zijn van het werk van een arts, zijn administratieve taken even belastend en tijdrovend. Artsen en clinici moeten voor elke patiënt een gedetailleerd medisch dossier bijhouden. Dat dossier wordt opgeslagen in het elektronische patiëntendossier (EPD) van het ziekenhuis, een database die de dossiers van elke patiënt in het ziekenhuis bevat. Om deze gegevens bij te houden, besteden artsen vaak meerdere uren per dag aan het handmatig invoeren van gegevens in het EPD-systeem, wat resulteert in een lagere productiviteit en een grotere burn-out.

Burn-out bij artsen is een van de belangrijkste factoren die leiden tot depressie, vermoeidheid en stress voor artsen tijdens hun carrière. Bovendien kan het leiden tot een hoger personeelsverloop, verminderde productiviteit en kostbare medische fouten, die het leven en de gezondheid van mensen beïnvloeden.

In dit bericht leer je het belang van stemassistenten en hoe ze administratieve taken voor artsen kunnen automatiseren. We doorlopen ook het maken van een aangepaste stemassistent met behulp van PocketSphinx en Amazon-Lex.

Stemassistenten als oplossing voor burn-out bij artsen

Stemassistenten beginnen nu de vitale, maar handmatige delen van de patiëntenzorg te automatiseren. Ze kunnen een krachtig hulpmiddel zijn om artsen te helpen tijd te besparen, stress te verminderen en meer tijd te besteden aan het concentreren op de patiënt dan aan de administratieve vereisten van klinische documentatie.

Tegenwoordig worden stemassistenten steeds beter beschikbaar naarmate de modellen voor natuurlijke taalverwerking vooruitgaan, het aantal fouten afneemt en de ontwikkeling toegankelijker wordt voor de gemiddelde ontwikkelaar. De meeste apparaten zijn echter beperkt, dus ontwikkelaars moeten vaak hun eigen aangepaste versies bouwen.

Als Solutions Architects die in de gezondheidszorg werken, zien we een groeiende trend richting de adoptie van stemassistenten in ziekenhuizen en patiëntenkamers.

In dit bericht leer je hoe je een aangepaste stemassistent kunt maken met PocketSphinx en Amazon Lex. Met onze eenvoudig te installeren en beheerde services kunnen ontwikkelaars en innovators aan de slag en beginnen met het ontwikkelen van de apparaten van de toekomst.

Aangepaste oplossingsarchitectuur voor stemassistenten

Het volgende architectuurdiagram geeft een overzicht op hoog niveau van onze oplossing.

In onze oplossing maken we eerst een interface met een stemassistentscript dat op uw computer draait. Nadat het wake-word is herkend, begint de stemassistent met opnemen wat u zegt en stuurt de audio naar Amazon Lex, waar hij een AWS Lambda functie om dummy-patiëntgegevens op te halen die zijn opgeslagen in Amazon DynamoDB. De sensorgegevens worden gegenereerd door een ander Python-script, generate_data.py, die u ook op uw computer uitvoert.

Sensortypen zijn onder meer bloeddruk, bloedglucose, lichaamstemperatuur, ademhalingsfrequentie en hartslag. Amazon Lex stuurt een gesproken bericht terug, en dat gebruiken we Amazon Polly, een dienst die tekst omzet in levensechte spraak, om een ​​consistente ervaring te creëren.

Nu bent u klaar om de componenten te maken die nodig zijn voor deze oplossing.

Implementeer uw oplossingsbronnen

U kunt alle bestanden van onze stemassistentoplossing op maat vinden op onze GitHub repo. Download alle bestanden, inclusief de PocketSphinx-modelbestanden die zijn gedownload van hun repo.

U moet de DynamoDB-tabel en Lambda-functie rechtstreeks implementeren door te kiezen Start Stack.

De AWS CloudFormatie Het duurt een paar minuten om de stapel te voltooien. Als het klaar is, kun je naar de Resources tabblad om de Lambda-functie en de gemaakte DynamoDB-tabel te bekijken. Let op de naam van de Lambda-functie, omdat we hier later naar verwijzen bij het maken van de Amazon Lex-bot.

Maak de Amazon Lex-bot

Wanneer de CloudFormation-stack compleet is, zijn we klaar om de Amazon Lex-bot te maken. Voor dit bericht gebruiken we de nieuwere V2-console.

  1. Kies op de Amazon Lex-console Schakel over naar de nieuwe Lex V2-console.
  2. Kies in het navigatievenster Bots.
  3. Kies Bot maken.
  4. Voor Bot naam, ga naar binnen Healthbot.
  5. Voor Omschrijving, voer een optionele beschrijving in.
  6. Voor Runtime-rolselecteer Een rol maken met basisrechten voor Amazon Lex.
  7. In het Children's Online Privacy Protection Act (COPPA) sectie, selecteer Nee.
  8. Bewaar de instellingen voor Time-out van inactieve sessie standaard (5 minuten).
  9. Kies Volgende.

  1. Voor Spraakinteractie, kies de stem die u wilt gebruiken.
  2. Kies Klaar .

Maak aangepaste slottypen, intenties en uitingen

Nu maken we een aangepast slottype voor de sensoren, onze intenties en voorbeelduitingen.

  1. Op de Soorten slots pagina, kies Voeg sleuftype toe.
  2. Kies Voeg een blanco sleuftype toe.
  3. Voor Slot type naam¸ invoeren SensorType.
  4. Kies Toevoegen.
  5. In de editor, onder Slotwaarde resolutieselecteer Beperken tot slotwaarden.

  1. Voeg de volgende waarden toe:
    1. Bloeddruk
    2. Bloed glucose
    3. Lichaamstemperatuur
    4. Hartslag
    5. Ademhalingsfrequentie

  1. Kies Sla het type slot op.

Op de intents pagina, hebben we automatisch twee intenties voor ons aangemaakt. Wij houden de FallbackIntent als standaard.

  1. Kies NieuweIntentie.
  2. Voor Intent naam, veranderen naar PatientData.

  1. In het Voorbeelduitingen sectie, voeg enkele zinnen toe om deze intentie aan te roepen.

In de volgende schermafbeelding geven we enkele voorbeelden, maar u kunt ook uw eigen voorbeelden toevoegen.

  1. In het Voeg slot toe sectie, voor Naam, ga naar binnen PatientId.
  2. Voor SlottypeKiezen AMAZON.AlphaNumeriek.
  3. Voor aanwijzingen, ga naar binnen What is the patient ID?

Deze prompt is niet echt belangrijk omdat we Lambda gebruiken voor uitvoering.

  1. Voeg nog een vereist slot toe met de naam SensorType.
  2. Voor Slottype, kiezen Sensortype (we hebben dit eerder gemaakt).
  3. Voor aanwijzingen, ga naar binnen What would you like to know?
  4. Onder Code hakenselecteer Gebruik een Lambda-functie voor initialisatie en validatie en Gebruik een Lambda-functie voor vervulling.

  1. Kies Bewaar intentie.
  2. Kies Bouw.

Het kan enkele minuten duren voordat de build is voltooid.

Maak een nieuwe versie

We maken nu een nieuwe versie met onze nieuwe bedoelingen. We kunnen de conceptversie niet in productie gebruiken.

  1. Wanneer de bouw voltooid is, op de Bot-versies pagina, kies Versie maken.
  2. Houd alle instellingen op de standaardwaarde.
  3. Kies creëren.

Je zou nu moeten zien Version 1 vermeld op de Bot-versies pagina.

Maak een alias

Nu maken we een alias om te implementeren.

  1. Onder Deployment in het navigatievenster, kies Aliassen.
  2. Chose Alias ​​maken.
  3. Voor Alias ​​naam¸ invoeren prod.
  4. Koppel deze alias aan de meest recente versie (Version 1).

  1. Kies creëren.
  2. Op de Aliassen pagina, kiest u de alias die u zojuist hebt gemaakt.
  3. Onder Talen, kiezen Engels (US).

  1. Voor bron, kies de Lambda-functie die u eerder hebt opgeslagen.
  2. Voor Lambda-functieversie of alias, kiezen $LAATSTE.

  1. Kies Bespaar.

Je hebt nu een werkende Amazon Lex Bot waarmee je kunt gaan testen. Voordat we verder gaan, moet u ervoor zorgen dat u de bot-ID en alias-ID opslaat.

De bot-ID bevindt zich op de botdetailpagina.

De alias-ID bevindt zich op de Aliassen pagina.

U moet deze waarden vervangen in het stemassistentscript voice_assistant.py later.

In de volgende secties leggen we uit hoe u PocketSphinx kunt gebruiken om een ​​aangepast wake-word te detecteren en hoe u de oplossing kunt gaan gebruiken.

Gebruik PocketSphinx voor wake-word-herkenning

De eerste stap van onze oplossing bestaat uit het aanroepen van een aangepast wake-word voordat we beginnen te luisteren naar uw opdrachten om naar Amazon Lex te sturen. Stemassistenten hebben een altijd actief, uiterst nauwkeurig en klein programma nodig om voortdurend naar een wake-word te luisteren. Dit komt meestal omdat ze worden gehost op een klein apparaat met een bijna lege batterij, zoals een Amazon Echo.

Voor wake-word-herkenning gebruiken we PocketSphinx, een open-source engine voor continue spraakherkenning, gemaakt door Carnegie Mellon University, om elk audiofragment te verwerken. We hebben besloten PocketSphinx te gebruiken omdat het een gratis, flexibel en nauwkeurig weksysteem biedt met goede prestaties.

Maak uw aangepaste wake-word

Het bouwen van het taalmodel met PocketSphinx is eenvoudig. De eerste stap is het maken van een corpus. Je kunt het meegeleverde model gebruiken dat vooraf is getraind met “Amazon”, dus als je niet je eigen wake-word wilt trainen, kun je doorgaan naar de volgende stap. We raden u echter ten zeerste aan om uit te proberen hoe u uw eigen aangepaste wake-word maakt voor gebruik met het stemassistent-script.

Het corpus is een lijst met zinnen die u gebruikt om het taalmodel te trainen. U vindt ons kant-en-klare corpusbestand in het bestand corpus.txt die u eerder hebt gedownload.

  1. Pas het corpusbestand aan op basis van de sleutelzin of het wake-word dat u wilt gebruiken en ga vervolgens naar het LMTool-pagina.
  2. Kies Blader EN selecteer de corpus.txt bestand dat u hebt gemaakt
  3. Kies KENNISBASIS SAMENSTELLEN.
  4. Download de bestanden die het hulpprogramma heeft gemaakt en vervang de voorbeeldcorpusbestanden die u eerder hebt gedownload.
  5. Vervang de KEY_PHRASE en DICT variabelen in het Python-script om de nieuwe bestanden en het wake-word weer te geven.

  1. Werk de bot-ID en botalias-ID bij met de waarden die u eerder in het stemassistentscript heeft opgeslagen.

Stel het stemassistentscript in op uw computer

In de GitHub-repository kun je de twee Python-scripts downloaden die je voor dit bericht gebruikt: generate_data.py en voice_assistant.py.

Voordat je het script kunt uitvoeren, moet je een aantal stappen voltooien, namelijk het installeren van de juiste Python-versie en bibliotheken.

  1. Download en installeer Python 3.6.

PocketSphinx ondersteunt tot Python 3.6. Als je een andere versie van Python hebt geïnstalleerd, kun je deze gebruiken pyenv om te schakelen tussen Python-versies.

  1. Install Pocketsfinx.
  2. Install Pyaudio.
  3. Installeer Boto3.

Zorg ervoor dat u de laatste versie met pip install boto3==<version>.

  1. Install de AWS-opdrachtregelinterface (AWS CLI) en configureer uw profiel.

Als je geen hebt AWS Identiteits- en toegangsbeheer (IAM)-gebruiker, dat kan creëer er een. Zorg ervoor dat u de regio instelt op dezelfde regio waar u eerder uw grondstoffen hebt gemaakt.

Start uw stemassistent

Nu we alles hebben ingesteld, opent u een terminal op uw computer en voert u deze uit generate_data.py.

Zorg ervoor dat u het minstens een minuut laat draaien, zodat de tabel goed gevuld is. Onze stemassistent vraagt ​​alleen de meest recente gegevens op die in de tabel zijn ingevoerd, zodat u deze kunt stoppen nadat deze een keer is uitgevoerd. De gegenereerde patiënt-ID's liggen tussen 0 en 99 en worden later opgevraagd.

Controleer de tabel om er zeker van te zijn dat er gegevens worden gegenereerd.

Nu kun je rennen voice_assistant.py.

Uw computer luistert naar het wekwoord dat u eerder hebt ingesteld (of de standaard "Amazon") en begint pas met opnemen nadat het het wekwoord heeft gedetecteerd. De wake-word-detectie wordt verwerkt met behulp van de PocketSphinx-decoder. De decoder controleert voortdurend of er KEYPHRASE or WakeWord in het audiokanaal.

Om het gesprek te beginnen, zeg je de uitspraak die je eerder in je intentie hebt gezet. Hieronder volgt een voorbeeldgesprek:

Jij: Hé Amazon

Jij: Ik wil patiëntgegevens krijgen.

Lex: Wat is de ID van de patiënt waar u informatie over wilt krijgen?

Jij: 45

Lex: Wat zou je willen weten over John Smith?

Jij: bloeddruk

Lex: De bloeddruk voor John Smith is 120/80.

Conclusie

Gefeliciteerd! U hebt een stemassistent voor de gezondheidszorg opgezet die kan dienen als een bot voor het ophalen van patiëntinformatie. Nu heb je de eerste stap naar het creëren van een gepersonaliseerde stemassistent voltooid.

Burn-out bij artsen is een belangrijk probleem dat moet worden aangepakt. Stemassistenten kunnen, met hun toenemende verfijning, een verschil maken in de medische gemeenschap door te dienen als virtuele schrijvers, assistenten en nog veel meer. In plaats van artsen te belasten met ondergeschikte taken zoals het bestellen van medicijnen of het opvragen van patiëntinformatie, kunnen ze innovatieve technologieën gebruiken om zichzelf te ontlasten van de ongedifferentieerde administratieve taken.

We hebben PocketSphinx en Amazon Lex gebruikt om een ​​stemassistent te maken met de eenvoudige taak om patiëntinformatie op te halen. In plaats van het programma op uw computer uit te voeren, kunt u proberen dit op elk klein apparaat te hosten dat Python ondersteunt, zoals de Raspberry Pi.

Bovendien is Amazon Lex dat Geschikt voor HIPAA, wat betekent dat u het kunt integreren met bestaande gezondheidszorgsystemen door de HL7/FHIR-normen te volgen.

Gepersonaliseerde gezondheidszorgassistenten kunnen van cruciaal belang zijn bij het helpen van artsen en verpleegkundigen bij de zorg voor hun patiënten, en het ophalen van sensorgegevens is slechts een van de vele gebruiksscenario's die haalbaar kunnen zijn. Andere gebruiksscenario's, zoals het bestellen van medicijnen en het noteren van gesprekken, kunnen artsen en verpleegkundigen in ziekenhuizen ten goede komen.

We willen je uitdagen om Amazon Lex uit te proberen en te zien wat je kunt maken!


Over de auteur

David Qiu is een Solutions Architect die in de HCLS-sector werkt en bedrijven in de gezondheidszorg helpt bij het bouwen van veilige en schaalbare oplossingen in AWS. Hij heeft een passie voor het onderwijzen van anderen over cloudtechnologieën en big data-verwerking. Buiten zijn werk speelt hij ook graag gitaar, videogames, sigaren en whisky. David heeft een bachelordiploma in economie en computerwetenschappen behaald aan de Washington University in St. Louis.

Manish Agarwal is een technologieliefhebber met meer dan 20 jaar technische ervaring, variërend van toonaangevende startups in de gezondheidszorg tot het leveren van grootschalige innovaties bij bedrijven als Apple en Amazon. Met diepgaande expertise op het gebied van AI/ML en gezondheidszorg, gelooft hij echt dat AI/ML de gezondheidszorgsector de komende vier tot vijf jaar volledig zal revolutioneren. Zijn interesses omvatten precisiegeneeskunde, virtuele assistenten, autonome auto's/drones, AR/VR en blockchain. Manish heeft een Bachelor of Technology behaald aan het Indian Institute of Technology (IIT).

Navneet Srivastava, een Principal Solutions Architect, is verantwoordelijk voor het helpen van dienstverleners en gezondheidszorgbedrijven bij het implementeren van data lake, data mesh, elektronische medische dossiers, apparaten en op AI/ML gebaseerde applicaties, terwijl klanten worden voorgelicht over hoe ze veilige, schaalbare en kostenbesparende oplossingen kunnen bouwen. effectieve AWS-oplossingen. Hij ontwikkelt strategische plannen om klanten en partners te betrekken, en werkt samen met een gemeenschap van technisch gerichte HCLS-specialisten binnen AWS. Navneet heeft een MBA van NYIT en een bachelor in Software Engineering en heeft verschillende associate- en professionele certificeringen voor architectuur op AWS.

Bron: https://aws.amazon.com/blogs/machine-learning/simplify-patient-care-with-a-custom-voice-assistant-using-amazon-lex-v2/

Tijdstempel:

Meer van AWS Blog over machine learning