Simplificați îngrijirea pacientului cu un asistent vocal personalizat folosind Amazon Lex V2

Nodul sursă: 988220

În ultimele decenii, epuizarea medicului a reprezentat o provocare în industria sănătății. Deși interacțiunea cu pacientul și diagnosticul sunt aspecte critice ale muncii unui medic, sarcinile administrative sunt la fel de solicitante și consumatoare de timp. Medicii și clinicienii trebuie să păstreze o fișă medicală detaliată pentru fiecare pacient. Acea înregistrare este stocată în sistemul de evidență medicală electronică a spitalului (EHR), o bază de date care conține înregistrările fiecărui pacient din spital. Pentru a menține aceste înregistrări, medicii petrec adesea mai multe ore în fiecare zi pentru a introduce manual datele în sistemul EHR, ceea ce duce la o productivitate mai scăzută și la creșterea epuizării.

Epuizarea medicului este unul dintre factorii principali care duc la depresie, oboseală și stres pentru medici în timpul carierei lor. În plus, poate duce la o cifră de afaceri mai mare, productivitate redusă și erori medicale costisitoare, care afectează viața și sănătatea oamenilor.

În această postare, aflați importanța asistenților vocali și modul în care aceștia pot automatiza sarcinile administrative pentru medici. De asemenea, parcurgem crearea unui asistent vocal personalizat folosind PocketSphinx și Amazon Lex.

Asistenții vocali ca soluție pentru epuizarea medicului

Asistenții vocali încep acum să automatizeze părțile vitale, dar manuale, ale îngrijirii pacientului. Ele pot fi un instrument puternic pentru a ajuta medicii să economisească timp, să reducă stresul și să petreacă mai mult timp concentrându-se asupra pacientului față de cerințele administrative ale documentației clinice.

Astăzi, asistenții vocali devin din ce în ce mai disponibili pe măsură ce modelele de procesare a limbajului natural avansează, erorile scad și dezvoltarea devine mai accesibilă pentru dezvoltatorul obișnuit. Cu toate acestea, majoritatea dispozitivelor sunt limitate, astfel încât dezvoltatorii trebuie să își construiască adesea propriile versiuni personalizate.

În calitate de arhitecți de soluții care lucrează în industria sănătății, vedem o tendință în creștere spre adoptarea asistenților vocali în spitale și în camerele pacienților.

În această postare, înveți cum să creezi un asistent vocal personalizat folosind PocketSphinx și Amazon Lex. Cu serviciile noastre ușor de configurat și gestionat, dezvoltatorii și inovatorii pot începe să dezvolte dispozitivele viitorului.

Arhitectură personalizată a soluției de asistent vocal

Următoarea diagramă de arhitectură prezintă o imagine de ansamblu la nivel înalt a soluției noastre.

În soluția noastră, interfațăm mai întâi cu un script de asistent vocal care rulează pe computerul dvs. După ce cuvântul de trezire este recunoscut, asistentul vocal începe să înregistreze ceea ce spui și trimite sunetul către Amazon Lex, unde folosește un AWS Lambdas funcția de a prelua datele false ale pacientului stocate în Amazon DynamoDB. Datele senzorului sunt generate de un alt script Python, generate_data.py, pe care îl rulați și pe computer.

Tipurile de senzori includ tensiunea arterială, glicemia, temperatura corpului, ritmul respirator și ritmul cardiac. Amazon Lex trimite înapoi un mesaj vocal, iar noi folosim Amazon Polly, un serviciu care transformă textul în vorbire reală, pentru a crea o experiență consistentă.

Acum sunteți gata să creați componentele necesare pentru această soluție.

Implementați resursele soluției dvs

Puteți găsi toate fișierele soluției noastre personalizate de asistent vocal pe site-ul nostru GitHub repo. Descărcați toate fișierele, inclusiv fișierele model PocketSphinx descărcate de pe acestea repo.

Trebuie să implementați direct tabelul DynamoDB și funcția Lambda prin alegere Lansați Stack.

Formarea AWS Cloud stiva durează câteva minute. Când este complet, puteți merge la Resurse pentru a verifica funcția Lambda și tabelul DynamoDB creat. Notați numele funcției Lambda, deoarece îl facem referire mai târziu când creăm robotul Amazon Lex.

Creați botul Amazon Lex

Când stiva CloudFormation este completă, suntem gata să creăm botul Amazon Lex. Pentru această postare, folosim noua consolă V2.

  1. În consola Amazon Lex, alegeți Comutați la noua consolă Lex V2.
  2. În panoul de navigare, alegeți Motoare de cautare.
  3. Alege Creați bot.
  4. Pentru Numele botului, introduce Healthbot.
  5. Pentru Descriere, introduceți o descriere opțională.
  6. Pentru Rol de rulare, Selectați Creați un rol cu ​​permisiuni de bază Amazon Lex.
  7. În Legea privind protecția confidențialității online a copiilor (COPPA) secțiune, selectați Nu.
  8. Păstrați setările pentru Expirare sesiune inactivă implicit (5 minute).
  9. Alege Pagina Următoare →.

  1. Pentru Interacțiunea vocală, alegeți vocea pe care doriți să o utilizați.
  2. Alege Terminat .

Creați tipuri de sloturi personalizate, intenții și enunțuri

Acum creăm un tip de slot personalizat pentru senzori, intențiile noastre și eșantionul de enunțuri.

  1. Pe Tipuri de sloturi pagina, alege Adăugați tip de slot.
  2. Alege Adăugați un tip de spațiu gol.
  3. Pentru Numele tipului de slotintroduce SensorType.
  4. Alege Adăuga.
  5. În editor, sub Rezoluția valorii slotului, Selectați Limitați la valorile sloturilor.

  1. Adăugați următoarele valori:
    1. Tensiune arteriala
    2. Glucoza din sange
    3. Temperatura corpului
    4. Ritm cardiac
    5. Viteza respiratorie

  1. Alege Salvați tipul slotului.

Pe intenţii pagină, avem două intenții create automat pentru noi. Păstrăm FallbackIntent ca implicit.

  1. Alege NewIntent.
  2. Pentru Numele intenției, schimba in PatientData.

  1. În Exemple de enunțuri secțiune, adăugați câteva expresii pentru a invoca această intenție.

Vă oferim câteva exemple în următoarea captură de ecran, dar le puteți adăuga și pe ale dvs.

  1. În Adăugați slot secțiune, pt Nume si Prenume, introduce PatientId.
  2. Pentru Tipul slotului¸ alege AMAZON.AlfaNumeric.
  3. Pentru Prompts, introduce What is the patient ID?

Acest prompt nu este de fapt important, deoarece folosim Lambda pentru îndeplinire.

  1. Adăugați un alt spațiu necesar numit SensorType.
  2. Pentru Tipul slotului, alege SensorType (am creat asta mai devreme).
  3. Pentru Prompts, introduce What would you like to know?
  4. În Cârlige de cod, Selectați Utilizați o funcție Lambda pentru inițializare și validare și Folosiți o funcție Lambda pentru îndeplinire.

  1. Alege Salvați intenția.
  2. Alege Construi.

Construirea poate dura câteva minute.

Creați o versiune nouă

Acum creăm o nouă versiune cu noile noastre intenții. Nu putem folosi versiunea schiță în producție.

  1. Când construcția este completă, pe Versiuni de bot pagina, alege Creați versiunea.
  2. Păstrați toate setările implicite.
  3. Alege Crea.

Ar trebui să vezi acum Version 1 listate pe Versiuni de bot .

Creați un alias

Acum creăm un Alias ​​de implementat.

  1. În Implementare în panoul de navigare, alegeți Pseudonime.
  2. Chose Creați un alias.
  3. Pentru Poreclaintroduce prod.
  4. Asociați acest alias cu cea mai recentă versiune (Version 1).

  1. Alege Crea.
  2. Pe Pseudonime pagina, alegeți aliasul pe care tocmai l-ați creat.
  3. În Limbă, alege Engleză (US).

  1. Pentru Sursă, alegeți funcția Lambda pe care ați salvat-o mai devreme.
  2. Pentru Versiunea sau aliasul funcției Lambda, alege $ ULTIMUL.

  1. Alege Economisiți.

Acum aveți un Amazon Lex Bot funcțional cu care puteți începe să testați. Înainte de a merge mai departe, asigurați-vă că salvați ID-ul botului și ID-ul aliasului.

ID-ul botului se află pe pagina de detalii a botului.

ID-ul alias este situat pe Pseudonime .

Trebuie să înlocuiți aceste valori în scriptul asistentului vocal voice_assistant.py mai târziu.

În secțiunile următoare, explicăm cum să utilizați PocketSphinx pentru a detecta un cuvânt de trezire personalizat, precum și cum să începeți să utilizați soluția.

Utilizați PocketSphinx pentru recunoașterea cuvintelor de trezire

Primul pas al soluției noastre implică invocarea unui cuvânt de activare personalizat înainte de a începe să vă ascultăm comenzile pentru a le trimite către Amazon Lex. Asistenții vocali au nevoie de un program mereu pornit, foarte precis și cu amprentă mică pentru a asculta în mod constant un cuvânt de trezire. De obicei, acest lucru se datorează faptului că sunt găzduiți pe un dispozitiv mic, cu baterie scăzută, cum ar fi Amazon Echo.

Pentru recunoașterea cuvintelor de trezire, folosim PocketSphinx, un motor open-source de recunoaștere continuă a vorbirii, realizat de Universitatea Carnegie Mellon, pentru a procesa fiecare fragment audio. Am decis să folosim PocketSphinx deoarece oferă un sistem de trezire gratuit, flexibil și precis, cu performanțe bune.

Creați-vă cuvântul de trezire personalizat

Construirea modelului de limbaj folosind PocketSphinx este simplă. Primul pas este crearea unui corpus. Puteți folosi modelul inclus care este pre-antrenat cu „Amazon”, așa că dacă nu doriți să vă antrenați propriul cuvânt de trezire, puteți sări la pasul următor. Cu toate acestea, vă încurajăm să testați crearea propriului cuvânt de trezire personalizat pe care să îl utilizați cu scriptul asistentului vocal.

Corpusul este o listă de propoziții pe care le folosiți pentru a antrena modelul lingvistic. Puteți găsi fișierul nostru corpus pre-construit în fișier corpus.txt pe care le-ați descărcat mai devreme.

  1. Modificați fișierul corpus pe baza expresiei cheie sau a cuvântului de trezire pe care doriți să îl utilizați și apoi accesați Pagina LMTool.
  2. Alege Naviga ȘI selectați corpus.txt fișierul pe care l-ați creat
  3. Alege COMPILAȚI BAZĂ DE CUNOAȘTE.
  4. Descărcați fișierele create de instrument și înlocuiți fișierele corpus exemplu pe care le-ați descărcat anterior.
  5. Inlocuieste KEY_PHRASE și DICT variabilele din scriptul Python pentru a reflecta noile fișiere și cuvântul de trezire.

  1. Actualizați ID-ul botului și ID-ul alias-ului bot cu valorile salvate mai devreme în scriptul asistentului vocal.

Configurați scriptul asistentului vocal pe computer

În depozitul GitHub, puteți descărca cele două scripturi Python pe care le utilizați pentru această postare: generate_data.py și voice_assistant.py.

Trebuie să parcurgeți câțiva pași înainte de a putea rula scriptul, și anume instalarea versiunii Python și a bibliotecilor corecte.

  1. Descărcați și instalați Python 3.6.

PocketSphinx acceptă până la Python 3.6. Dacă aveți o altă versiune de Python instalată, puteți utiliza pyenv pentru a comuta între versiunile Python.

  1. Instala Pocketsphinx.
  2. Instala Pyaudio.
  3. Instalați Boto3.

Asigurați-vă că utilizați ultima versiune prin utilizarea pip install boto3==<version>.

  1. Instala il Interfața liniei de comandă AWS (AWS CLI) și configurați-vă profilul.

Dacă nu aveți Gestionarea identității și accesului AWS (IAM) încă, puteți creeaza una. Asigurați-vă că setați Regiunea la aceeași Regiune în care ați creat resursele mai devreme.

Porniți asistentul vocal

Acum că avem totul configurat, deschideți un terminal pe computer și rulați generate_data.py.

Asigurați-vă că îl rulați timp de cel puțin un minut, astfel încât tabelul să fie populat decent. Asistentul nostru vocal interogează doar cele mai recente date introduse în tabel, astfel încât să îl puteți opri după ce rulează o singură dată. ID-urile pacientului generate sunt între 0-99 și sunt solicitate ulterior.

Verificați tabelul pentru a vă asigura că se generează date.

Acum poți fugi voice_assistant.py.

Computerul dvs. ascultă cuvântul de activare pe care l-ați setat mai devreme (sau „Amazon”) și nu începe înregistrarea până când nu detectează cuvântul de activare. Detectarea cuvântului de trezire este procesată folosind decodorul PocketSphinx. Decodorul verifică continuu pentru KEYPHRASE or WakeWord în canalul audio.

Pentru a iniția conversația, rostiți enunțul pe care l-ați stabilit în intenția dvs. mai devreme. Următoarea este un exemplu de conversație:

Tu: Bună Amazon

Tu: Vreau să obțin date despre pacienți.

Lex: Care este ID-ul pacientului despre care doriți să obțineți informații?

Tu: 45

Lex: Ce ai vrea să știi despre John Smith?

Tu: tensiunea arterială

Lex: Tensiunea arterială pentru John Smith este 120/80.

Concluzie

Felicitări! Ați configurat un asistent vocal de asistență medicală care poate servi ca bot de recuperare a informațiilor despre pacient. Acum ați parcurs primul pas către crearea unui asistent vocal personalizat.

Epuizarea medicului este o problemă importantă care trebuie abordată. Asistenții vocali, cu sofisticarea lor crescândă, pot contribui la schimbarea comunității medicale, servind ca scribi virtuali, asistenți și multe altele. În loc să îngreuneze medicii cu sarcini ușoare, cum ar fi comandarea medicamentelor sau preluarea informațiilor despre pacient, aceștia pot folosi tehnologii inovatoare pentru a se elibera de sarcinile administrative nediferențiate.

Am folosit PocketSphinx și Amazon Lex pentru a crea un asistent vocal cu sarcina simplă de a prelua unele informații despre pacient. În loc să rulați programul pe computer, puteți încerca să îl găzduiți pe orice dispozitiv mic care acceptă Python, cum ar fi Raspberry Pi.

În plus, Amazon Lex este Eligibil pentru HIPAA, ceea ce înseamnă că îl puteți integra cu sistemele de sănătate existente urmând standardele HL7/FHIR.

Asistenții medicali personalizați pot fi vitali pentru a ajuta medicii și asistentele să își îngrijească pacienții, iar recuperarea datelor senzorilor este doar unul dintre numeroasele cazuri de utilizare care pot fi viabile. Alte cazuri de utilizare, cum ar fi comanda de medicamente și scrierea conversațiilor, pot beneficia medicii și asistentele din spitale.

Vrem să vă provocăm să încercați Amazon Lex și să vedeți ce puteți face!


Despre autor

David Qiu este un arhitect de soluții care lucrează în sectorul HCLS, ajutând companiile din domeniul sănătății să construiască soluții sigure și scalabile în AWS. Este pasionat de educarea altora despre tehnologiile cloud și procesarea datelor mari. În afara serviciului, îi place să cânte la chitară, jocuri video, trabucuri și whisky. David deține o licență în economie și informatică de la Universitatea Washington din St. Louis.

Manish Agarwal este un pasionat de tehnologie cu peste 20 de ani de experiență în inginerie, de la startup de vârf în domeniul sănătății până la furnizarea de inovații masive la companii precum Apple și Amazon. Având o experiență profundă în AI/ML și asistența medicală, el crede cu adevărat că AI/ML va revoluționa complet industria sănătății în următorii 4-5 ani. Interesele sale includ medicina de precizie, asistenți virtuali, mașini autonome/drone, AR/VR și blockchain. Manish deține o licență în tehnologie de la Institutul Indian de Tehnologie (IIT).

Navneet Srivastava, un arhitect principal de soluții, este responsabil pentru a ajuta organizațiile furnizorilor și companiile de asistență medicală să implementeze data lake, rețea de date, înregistrări medicale electronice, dispozitive și aplicații bazate pe AI/ML, educând în același timp clienții despre cum să construiască sigur, scalabil și cost-cost. soluții AWS eficiente. El dezvoltă planuri strategice pentru a implica clienții și partenerii și lucrează cu o comunitate de specialiști HCLS axați pe tehnic în cadrul AWS. Navneet are un MBA de la NYIT și o licență în Inginerie software și deține mai multe certificări de asociat și profesionale pentru arhitectură pe AWS.

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

Timestamp-ul:

Mai mult de la Blog de AWS Machine Learning