Forenkle patientbehandlingen med en tilpasset stemmeassistent ved hjælp af Amazon Lex V2

Kildeknude: 988220

I de sidste par årtier har udbrændthed hos læger været en udfordring i sundhedssektoren. Selvom patientinteraktion og diagnose er kritiske aspekter af en læges job, er administrative opgaver lige så belastende og tidskrævende. Læger og klinikere skal føre en detaljeret journal for hver patient. Denne journal gemmes i hospitalets elektroniske journalsystem (EPJ), en database, der indeholder journalerne for hver patient på hospitalet. For at vedligeholde disse optegnelser bruger læger ofte flere timer hver dag til manuelt at indtaste data i EPJ-systemet, hvilket resulterer i lavere produktivitet og øget udbrændthed.

Lægers udbrændthed er en af ​​de førende faktorer, der fører til depression, træthed og stress for læger i løbet af deres karriere. Derudover kan det føre til højere omsætning, reduceret produktivitet og dyre lægefejl, hvilket påvirker folks liv og helbred.

I dette indlæg lærer du betydningen af ​​stemmeassistenter, og hvordan de kan automatisere administrative opgaver for læger. Vi går også igennem at skabe en tilpasset stemmeassistent ved hjælp af PocketSphinx og Amazon Lex.

Stemmeassistenter som en løsning på lægeudbrændthed

Stemmeassistenter begynder nu at automatisere de vitale, men dog manuelle dele af patientbehandlingen. De kan være et kraftfuldt værktøj til at hjælpe læger med at spare tid, reducere stress og bruge mere tid på at fokusere på patienten i forhold til de administrative krav til klinisk dokumentation.

I dag bliver stemmeassistenter mere tilgængelige, efterhånden som modeller for behandling af naturlige sprog udvikler sig, fejl falder, og udvikling bliver mere tilgængelig for den gennemsnitlige udvikler. De fleste enheder er dog begrænsede, så udviklere skal ofte bygge deres egne tilpassede versioner.

Som Solutions Architects, der arbejder i sundhedssektoren, ser vi en voksende tendens til brug af stemmeassistenter på hospitaler og patienter.

I dette indlæg lærer du, hvordan du opretter en brugerdefineret stemmeassistent ved hjælp af PocketSphinx og Amazon Lex. Med vores nemme at opsætte og administrerede tjenester kan udviklere og innovatører komme i gang og begynde at udvikle fremtidens enheder.

Tilpasset stemmeassistent-løsningsarkitektur

Følgende arkitekturdiagram viser et overblik over vores løsning på højt niveau.

I vores løsning bruger vi først et script til stemmeassistent, der kører på din computer. Efter det vågne ord er genkendt, begynder stemmeassistenten at optage, hvad du siger og sender lyden til Amazon Lex, hvor den bruger en AWS Lambda funktion til at hente dummy patientdata gemt i Amazon DynamoDB. Sensordataene genereres af et andet Python-script, generate_data.py, som du også kører på din computer.

Sensortyper omfatter blodtryk, blodsukker, kropstemperatur, respirationsfrekvens og hjertefrekvens. Amazon Lex sender en talebesked tilbage, og vi bruger Amazon Polly, en tjeneste, der forvandler tekst til naturtro tale, for at skabe en ensartet oplevelse.

Nu er du klar til at oprette de nødvendige komponenter til denne løsning.

Implementer dine løsningsressourcer

Du kan finde alle filerne i vores tilpassede stemmeassistent-løsning på vores GitHub repo. Download alle filerne, inklusive PocketSphinx-modelfilerne, der er downloadet fra deres repo.

Du skal implementere DynamoDB-tabellen og Lambda-funktionen direkte ved at vælge Start Stack.

AWS CloudFormation stakken tager et par minutter at fuldføre. Når det er færdigt, kan du gå til Ressourcer fanen for at tjekke Lambda-funktionen og den oprettede DynamoDB-tabel. Bemærk navnet på Lambda-funktionen, fordi vi henviser til det senere, når vi opretter Amazon Lex-bot.

Opret Amazon Lex-bot

Når CloudFormation-stakken er færdig, er vi klar til at oprette Amazon Lex-bot. Til dette indlæg bruger vi den nyere V2-konsol.

  1. På Amazon Lex-konsollen skal du vælge Skift til den nye Lex V2-konsol.
  2. Vælg i navigationsruden Bots.
  3. Vælg Opret bot.
  4. Til Bot navn, gå ind Healthbot.
  5. Til Beskrivelse, indtast en valgfri beskrivelse.
  6. Til Runtime rolle, Vælg Opret en rolle med grundlæggende Amazon Lex-tilladelser.
  7. I Børns Online Privacy Protection Act (COPPA) sektion, vælg Ingen.
  8. Behold indstillingerne for Timeout for inaktiv session på deres standard (5 minutter).
  9. Vælg Næste.

  1. Til Stemmeinteraktion, vælg den stemme, du vil bruge.
  2. Vælg Udført.

Opret brugerdefinerede slottyper, hensigter og ytringer

Nu opretter vi en brugerdefineret slottype til sensorerne, vores hensigter og eksempler på ytringer.

  1. Slot typer side, vælg Tilføj slottype.
  2. Vælg Tilføj tom slottype.
  3. Til Slottypenavngå ind SensorType.
  4. Vælg Tilføj.
  5. I redaktøren under Slot værdi opløsning, Vælg Begræns til slotværdier.

  1. Tilføj følgende værdier:
    1. Blodtryk
    2. Blodsukker
    3. Kropstemperatur
    4. Hjerterytme
    5. Åndedrætsfrekvens

  1. Vælg Gem slottype.

Hensigter side, har vi to hensigter oprettet automatisk til os. Vi beholder FallbackIntent som standard.

  1. Vælg NewIntent.
  2. Til Hensigtsnavn, skifte til PatientData.

  1. I Eksempel på ytringer sektion, tilføje nogle sætninger for at påberåbe sig denne hensigt.

Vi giver et par eksempler i det følgende skærmbillede, men du kan også tilføje dit eget.

  1. I Tilføj slot afsnit, for Navn, gå ind PatientId.
  2. Til Slot type¸ vælg AMAZON.AlphaNumeric.
  3. Til prompter, gå ind What is the patient ID?

Denne prompt er faktisk ikke vigtig, fordi vi bruger Lambda til opfyldelse.

  1. Tilføj en anden påkrævet plads ved navn SensorType.
  2. Til Slot type, vælg Sensortype (vi oprettede dette tidligere).
  3. Til prompter, gå ind What would you like to know?
  4. Under Kode kroge, Vælg Brug en Lambda-funktion til initialisering og validering , Brug en Lambda-funktion til opfyldelse.

  1. Vælg Gem hensigten.
  2. Vælg Byg.

Opbygningen kan tage et par minutter at fuldføre.

Opret en ny version

Vi opretter nu en ny version med vores nye hensigter. Vi kan ikke bruge kladdeversionen i produktionen.

  1. Når bygningen er færdig, på Bot versioner side, vælg Opret version.
  2. Hold alle indstillinger på deres standard.
  3. Vælg Opret.

Du skal nu se Version 1 opført på Bot versioner .

Opret et alias

Nu opretter vi et Alias, der skal implementeres.

  1. Under Deployment i navigationsruden skal du vælge aliasser.
  2. valgte Opret alias.
  3. Til Alias ​​navngå ind prod.
  4. Knyt dette alias til den seneste version (Version 1).

  1. Vælg Opret.
  2. aliasser side, skal du vælge det alias, du lige har oprettet.
  3. Under Sprog, vælg English (US).

  1. Til Kilde, skal du vælge den Lambda-funktion, du gemte tidligere.
  2. Til Lambda funktion version eller alias, vælg $SENESTE.

  1. Vælg Gem.

Du har nu en fungerende Amazon Lex Bot, som du kan begynde at teste med. Før vi går videre, skal du sørge for at gemme bot-id'et og alias-id'et.

Bot-id'et er placeret på siden med botdetaljer.

Alias-id'et er placeret på aliasser .

Du skal erstatte disse værdier i stemmeassistent-scriptet voice_assistant.py senere.

I de følgende afsnit forklarer vi, hvordan du bruger PocketSphinx til at detektere et brugerdefineret wake-ord, samt hvordan du begynder at bruge løsningen.

Brug PocketSphinx til wake ordgenkendelse

Det første trin i vores løsning involverer at påkalde et brugerdefineret wake-ord, før vi begynder at lytte til dine kommandoer, der skal sendes til Amazon Lex. Stemmeassistenter har brug for et altid tændt, meget præcist og lille footprint-program for konstant at lytte efter et vågent ord. Dette skyldes normalt, at de er hostet på en lille enhed med lavt batteri, såsom en Amazon Echo.

Til wake word-genkendelse bruger vi PocketSphinx, en open-source kontinuerlig talegenkendelsesmotor lavet af Carnegie Mellon University, til at behandle hver lydklump. Vi besluttede at bruge PocketSphinx, fordi det giver et gratis, fleksibelt og præcist vækkesystem med god ydeevne.

Opret dit brugerdefinerede wake word

Det er enkelt at bygge sprogmodellen ved hjælp af PocketSphinx. Det første skridt er at skabe et korpus. Du kan bruge den medfølgende model, der er fortrænet med "Amazon", så hvis du ikke vil træne dit eget wake word, kan du springe til næste trin. Vi opfordrer dig dog stærkt til at teste at skabe dit eget brugerdefinerede wake-ord til brug med stemmeassistent-scriptet.

Korpuset er en liste over sætninger, som du bruger til at træne sprogmodellen. Du kan finde vores forudbyggede korpusfil i filen corpus.txt som du downloadede tidligere.

  1. Rediger korpusfilen baseret på den nøglesætning eller det vækkeord, du vil bruge, og gå derefter til LMTool side.
  2. Vælg Gennemse OG vælg corpus.txt fil du har oprettet
  3. Vælg SAMLER VIDENSBASE.
  4. Download filerne, som værktøjet oprettede, og erstat de eksempler på korpusfiler, som du tidligere downloadede.
  5. Udskift KEY_PHRASE , DICT variabler i Python-scriptet for at afspejle de nye filer og wake word.

  1. Opdater bot-id'et og bot-alias-id'et med de værdier, du tidligere gemte i stemmeassistent-scriptet.

Konfigurer stemmeassistent-scriptet på din computer

I GitHub-lageret kan du downloade de to Python-scripts, du bruger til dette indlæg: generate_data.py , voice_assistant.py.

Du skal udføre et par trin, før du kan køre scriptet, nemlig at installere den korrekte Python-version og biblioteker.

  1. Download og installer Python 3.6.

PocketSphinx understøtter op til Python 3.6. Hvis du har en anden version af Python installeret, kan du bruge pyenv for at skifte mellem Python-versioner.

  1. Installer Pocketsfinx.
  2. Installer Pyaudio.
  3. Installer Boto3.

Sørg for at bruge seneste version ved hjælp af pip install boto3==<version>.

  1. Installer og AWS kommandolinjegrænseflade (AWS CLI) og konfigurere din profil.

Hvis du ikke har en AWS identitets- og adgangsstyring (IAM) bruger endnu, kan du skab en. Sørg for at indstille regionen til den samme region, hvor du tidligere oprettede dine ressourcer.

Start din stemmeassistent

Nu hvor vi har alt sat op, skal du åbne en terminal på din computer og køre generate_data.py.

Sørg for at køre det i mindst et minut, så bordet er anstændigt befolket. Vores stemmeassistent forespørger kun på de seneste data, der er indsat i tabellen, så du kan stoppe den, når den kører én gang. De genererede patient-id'er er mellem 0-99 og bliver bedt om senere.

Tjek tabellen for at sikre, at data genereres.

Nu kan du løbe voice_assistant.py.

Din computer lytter efter det wake-ord, du har indstillet tidligere (eller standard "Amazon") og starter ikke optagelsen, før den registrerer wake-ordet. Detektionen af ​​det vågne ord behandles ved hjælp af PocketSphinx's dekoder. Dekoderen kontrollerer løbende for KEYPHRASE or WakeWord i lydkanalen.

For at påbegynde samtalen skal du sige den ytring, du har angivet i din hensigt tidligere. Følgende er et eksempel på en samtale:

Dig: Hej Amazon

Dig: Jeg vil gerne have patientdata.

Lex: Hvad er ID på den patient, du ønsker at få information om?

Du: 45

Lex: Hvad vil du gerne vide om John Smith?

Dig: blodtryk

Lex: Blodtrykket for John Smith er 120/80.

Konklusion

Tillykke! Du har oprettet en stemmeassistent i sundhedssektoren, der kan fungere som en bot til hentning af patientoplysninger. Nu har du fuldført det første skridt mod at skabe en personlig stemmeassistent.

Lægers udbrændthed er et vigtigt problem, der skal løses. Stemmeassistenter kan med deres stigende sofistikerede hjælpe med at gøre en forskel i det medicinske samfund ved at tjene som virtuelle skribenter, assistenter og meget mere. I stedet for at belaste læger med snævre opgaver som at bestille medicin eller hente patientoplysninger, kan de bruge innovative teknologier til at aflaste de udifferentierede administrative opgaver.

Vi brugte PocketSphinx og Amazon Lex til at oprette en stemmeassistent med den enkle opgave at hente nogle patientoplysninger. I stedet for at køre programmet på din computer, kan du prøve at hoste dette på en hvilken som helst lille enhed, der understøtter Python, såsom Raspberry Pi.

Desuden er Amazon Lex HIPAA-berettiget, hvilket betyder, at du kan integrere det med eksisterende sundhedssystemer ved at følge HL7/FHIR-standarderne.

Personlige sundhedsassistenter kan være afgørende for at hjælpe læger og sygeplejersker med at tage sig af deres patienter, og hentning af sensordata er blot en af ​​de mange brugssager, der kan være levedygtige. Andre use cases såsom bestilling af medicin og opskrivningssamtaler kan gavne læger og sygeplejersker på tværs af hospitaler.

Vi vil gerne udfordre dig til at prøve Amazon Lex og se, hvad du kan lave!


Om forfatteren

David Qiu er en løsningsarkitekt, der arbejder i HCLS-sektoren og hjælper sundhedsvirksomheder med at bygge sikre og skalerbare løsninger i AWS. Han brænder for at uddanne andre i cloud-teknologier og big data-behandling. Uden for arbejdet kan han også lide at spille guitar, videospil, cigarer og whisky. David har en bachelor i økonomi og datalogi fra Washington University i St. Louis.

Manish Agarwal er en teknologientusiast med mere end 20 års ingeniørerfaring lige fra førende banebrydende Healthcare-startup til at levere massive innovationer hos virksomheder som Apple og Amazon. Med dyb ekspertise inden for AI/ML og sundhedspleje, tror han virkelig på, at AI/ML fuldstændig vil revolutionere sundhedsindustrien i de næste 4-5 år. Hans interesser omfatter præcisionsmedicin, virtuelle assistenter, autonome biler/droner, AR/VR og blockchain. Manish har Bachelor of Technology fra Indian Institute of Technology (IIT).

Navneet Srivastava, en Principal Solutions Architect, er ansvarlig for at hjælpe udbyderorganisationer og sundhedsvirksomheder med at implementere data lake, data mesh, elektroniske medicinske journaler, enheder og AI/ML-baserede applikationer, mens de uddanner kunder om, hvordan man opbygger sikker, skalerbar og omkostnings- effektive AWS-løsninger. Han udvikler strategiske planer for at engagere kunder og partnere og arbejder med et fællesskab af teknisk fokuserede HCLS-specialister inden for AWS. Navneet har en M.B.A fra NYIT og en bachelor i Software Engineering og har adskillige associerede og professionelle certificeringer til arkitektarbejde på AWS.

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

Tidsstempel:

Mere fra AWS Machine Learning Blog