Vereinfachen Sie die Patientenversorgung mit einem benutzerdefinierten Sprachassistenten mit Amazon Lex V2

Quellknoten: 988220

In den letzten Jahrzehnten war das Burnout bei Ärzten eine Herausforderung im Gesundheitswesen. Obwohl die Interaktion mit dem Patienten und die Diagnose wichtige Aspekte der Arbeit eines Arztes sind, sind Verwaltungsaufgaben gleichermaßen anstrengend und zeitaufwändig. Ärzte und Kliniker müssen für jeden Patienten eine detaillierte Krankenakte führen. Diese Aufzeichnung wird im elektronischen Gesundheitsaktensystem (EHR) des Krankenhauses gespeichert, einer Datenbank, die die Aufzeichnungen aller Patienten im Krankenhaus enthält. Um diese Aufzeichnungen zu führen, verbringen Ärzte täglich oft mehrere Stunden damit, Daten manuell in das EHR-System einzugeben, was zu geringerer Produktivität und erhöhtem Burnout führt.

Burnout beim Arzt ist einer der Hauptfaktoren, die bei Ärzten im Laufe ihrer Karriere zu Depressionen, Müdigkeit und Stress führen. Darüber hinaus kann es zu höheren Fluktuationen, geringerer Produktivität und kostspieligen medizinischen Fehlern kommen, die sich negativ auf das Leben und die Gesundheit der Menschen auswirken.

In diesem Beitrag erfahren Sie, wie wichtig Sprachassistenten sind und wie sie Verwaltungsaufgaben für Ärzte automatisieren können. Wir gehen auch durch die Erstellung eines benutzerdefinierten Sprachassistenten mit PocketSphinx und Amazon Lex.

Sprachassistenten als Lösung gegen Burnout beim Arzt

Sprachassistenten beginnen nun damit, die wichtigen, aber manuellen Teile der Patientenversorgung zu automatisieren. Sie können Ärzten dabei helfen, Zeit zu sparen, Stress abzubauen und sich mehr auf den Patienten zu konzentrieren, anstatt sich mit den administrativen Anforderungen der klinischen Dokumentation befassen zu müssen.

Heutzutage werden Sprachassistenten immer verfügbarer, da die Modelle zur Verarbeitung natürlicher Sprache weiterentwickelt werden, Fehler abnehmen und die Entwicklung für den durchschnittlichen Entwickler zugänglicher wird. Allerdings sind die meisten Geräte begrenzt, sodass Entwickler oft ihre eigenen angepassten Versionen erstellen müssen.

Als in der Gesundheitsbranche tätige Lösungsarchitekten sehen wir einen wachsenden Trend zur Einführung von Sprachassistenten in Krankenhäusern und Patientenzimmern.

In diesem Beitrag erfahren Sie, wie Sie mit PocketSphinx und Amazon Lex einen benutzerdefinierten Sprachassistenten erstellen. Mit unseren einfach einzurichtenden und verwalteten Diensten können Entwickler und Innovatoren sofort durchstarten und mit der Entwicklung der Geräte der Zukunft beginnen.

Benutzerdefinierte Lösungsarchitektur für Sprachassistenten

Das folgende Architekturdiagramm bietet einen allgemeinen Überblick über unsere Lösung.

In unserer Lösung stellen wir zunächst eine Schnittstelle zu einem Sprachassistenten-Skript her, das auf Ihrem Computer ausgeführt wird. Nachdem das Weckwort erkannt wurde, beginnt der Sprachassistent mit der Aufzeichnung Ihrer Aussagen und sendet den Ton an Amazon Lex, wo er eine verwendet AWS Lambda Funktion zum Abrufen gespeicherter Dummy-Patientendaten Amazon DynamoDB. Die Sensordaten werden von einem anderen Python-Skript generiert. generate_data.py, das Sie auch auf Ihrem Computer ausführen.

Zu den Sensortypen gehören Blutdruck, Blutzucker, Körpertemperatur, Atemfrequenz und Herzfrequenz. Amazon Lex sendet eine Sprachnachricht zurück, und wir verwenden Amazonas Polly, ein Dienst, der Text in lebensechte Sprache umwandelt, um ein konsistentes Erlebnis zu schaffen.

Jetzt können Sie die für diese Lösung erforderlichen Komponenten erstellen.

Stellen Sie Ihre Lösungsressourcen bereit

Alle Dateien unserer maßgeschneiderten Sprachassistentenlösung finden Sie auf unserer GitHub Repo. Laden Sie alle Dateien herunter, einschließlich der von dort heruntergeladenen PocketSphinx-Modelldateien Repo.

Sie müssen die DynamoDB-Tabelle und die Lambda-Funktion direkt bereitstellen, indem Sie auswählen Stack starten.

Das AWS CloudFormation Der Stapelvorgang dauert einige Minuten. Wenn es fertig ist, können Sie zum gehen Downloads Klicken Sie auf die Registerkarte, um die erstellte Lambda-Funktion und DynamoDB-Tabelle zu überprüfen. Notieren Sie sich den Namen der Lambda-Funktion, da wir später beim Erstellen des Amazon Lex-Bots darauf verweisen.

Erstellen Sie den Amazon Lex-Bot

Wenn der CloudFormation-Stack fertig ist, können wir den Amazon Lex-Bot erstellen. Für diesen Beitrag verwenden wir die neuere V2-Konsole.

  1. Wählen Sie in der Amazon Lex-Konsole Wechseln Sie zur neuen Lex V2-Konsole.
  2. Wählen Sie im Navigationsbereich Bots.
  3. Auswählen Bot erstellen.
  4. Aussichten für Bot Name, eingeben Healthbot.
  5. Aussichten für BeschreibungGeben Sie eine optionale Beschreibung ein.
  6. Aussichten für LaufzeitrolleWählen Erstellen Sie eine Rolle mit grundlegenden Amazon Lex-Berechtigungen.
  7. Im Gesetz zum Schutz der Online-Privatsphäre von Kindern (COPPA) Abschnitt auswählen Nein.
  8. Behalten Sie die Einstellungen bei Zeitlimit für Leerlaufsitzung in der Standardeinstellung (5 Minuten).
  9. Auswählen Weiter.

  1. Aussichten für Sprachinteraktion, wählen Sie die Stimme aus, die Sie verwenden möchten.
  2. Auswählen Erledigt .

Erstellen Sie benutzerdefinierte Slot-Typen, Absichten und Äußerungen

Jetzt erstellen wir einen benutzerdefinierten Slot-Typ für die Sensoren, unsere Absichten und Beispieläußerungen.

  1. Auf dem Steckplatztypen Seite wählen Steckplatztyp hinzufügen.
  2. Auswählen Leeren Steckplatztyp hinzufügen.
  3. Aussichten für Name des Steckplatztypseingeben SensorType.
  4. Auswählen Speichern.
  5. Im Editor unter SteckplatzauflösungWählen Beschränken Sie sich auf Steckplatzwerte.

  1. Fügen Sie die folgenden Werte hinzu:
    1. der allgemeine Gesundheitszustand
    2. Blutzucker
    3. Körpertemperatur
    4. Puls
    5. Atemfrequenz

  1. Auswählen Steckplatztyp speichern.

Auf dem Absichten Seite haben wir zwei Absichten automatisch für uns erstellt. Wir behalten die FallbackIntent als Standard.

  1. Auswählen NeuIntent.
  2. Aussichten für Absichtsname, ändern PatientData.

  1. Im Beispieläußerungen Fügen Sie im Abschnitt einige Ausdrücke hinzu, um diese Absicht hervorzurufen.

Im folgenden Screenshot stellen wir einige Beispiele vor, Sie können aber auch Ihre eigenen hinzufügen.

  1. Im Steckplatz hinzufügen Abschnitt, für Name und Vorname, eingeben PatientId.
  2. Aussichten für Steckplatztypwählen AMAZON.AlphaNumeric.
  3. Aussichten für Eingabeaufforderungen, eingeben What is the patient ID?

Diese Aufforderung ist eigentlich nicht wichtig, da wir Lambda zur Erfüllung verwenden.

  1. Fügen Sie einen weiteren erforderlichen Steckplatz mit dem Namen hinzu SensorType.
  2. Aussichten für Steckplatztyp, wählen Sensorart (Wir haben das früher erstellt).
  3. Aussichten für Eingabeaufforderungen, eingeben What would you like to know?
  4. Der Code-HakenWählen Verwenden Sie eine Lambda-Funktion zur Initialisierung und Validierung und Verwenden Sie zur Erfüllung eine Lambda-Funktion.

  1. Auswählen Absicht speichern.
  2. Auswählen Bauen.

Der Build kann einige Minuten dauern.

Erstellen Sie eine neue Version

Wir erstellen nun eine neue Version mit unseren neuen Absichten. Wir können die Entwurfsversion nicht in der Produktion verwenden.

  1. Wenn der Build abgeschlossen ist, auf der Bot-Versionen Seite wählen Version erstellen.
  2. Behalten Sie alle Standardeinstellungen bei.
  3. Auswählen Erstellen.

Sie sollten jetzt sehen Version 1 aufgeführt auf der Bot-Versionen

Erstellen Sie einen Alias

Jetzt erstellen wir einen Alias ​​für die Bereitstellung.

  1. Der Einsatz Wählen Sie im Navigationsbereich Aliases.
  2. Wählen Alias ​​erstellen.
  3. Aussichten für Pseudonymeingeben prod.
  4. Verknüpfen Sie diesen Alias ​​mit der neuesten Version (Version 1).

  1. Auswählen Erstellen.
  2. Auf dem Aliases Wählen Sie auf der Seite den soeben erstellten Alias ​​aus.
  3. Der Sprachen, wählen Englisch (US).

  1. Aussichten für Quelle, wählen Sie die Lambda-Funktion aus, die Sie zuvor gespeichert haben.
  2. Aussichten für Lambda-Funktionsversion oder Alias, wählen $NEUESTE.

  1. Auswählen Speichern.

Sie haben jetzt einen funktionierenden Amazon Lex Bot, mit dem Sie mit dem Testen beginnen können. Bevor wir fortfahren, stellen Sie sicher, dass Sie die Bot-ID und die Alias-ID speichern.

Die Bot-ID finden Sie auf der Bot-Detailseite.

Die Alias-ID befindet sich auf der Aliases

Sie müssen diese Werte im Sprachassistenten-Skript ersetzen voice_assistant.py später.

In den folgenden Abschnitten erklären wir, wie Sie mit PocketSphinx ein benutzerdefiniertes Aktivierungswort erkennen und wie Sie mit der Verwendung der Lösung beginnen.

Verwenden Sie PocketSphinx zur Aktivierungsworterkennung

Der erste Schritt unserer Lösung besteht darin, ein benutzerdefiniertes Aktivierungswort aufzurufen, bevor wir beginnen, Ihre Befehle abzuhören und sie an Amazon Lex zu senden. Sprachassistenten benötigen ein ständig aktives, hochpräzises und platzsparendes Programm, das ständig auf ein Weckwort wartet. Dies liegt normalerweise daran, dass sie auf einem kleinen Gerät mit niedrigem Akkustand wie einem Amazon Echo gehostet werden.

Für die Aktivierungsworterkennung verwenden wir PocketSphinx, eine Open-Source-Engine zur kontinuierlichen Spracherkennung der Carnegie Mellon University, um jeden Audioblock zu verarbeiten. Wir haben uns für PocketSphinx entschieden, weil es ein kostenloses, flexibles und genaues Wake-System mit guter Leistung bietet.

Erstellen Sie Ihr individuelles Aktivierungswort

Das Erstellen des Sprachmodells mit PocketSphinx ist einfach. Der erste Schritt besteht darin, einen Korpus zu erstellen. Sie können das mitgelieferte Modell verwenden, das mit „Amazon“ vorab trainiert wurde. Wenn Sie also nicht Ihr eigenes Aktivierungswort trainieren möchten, können Sie mit dem nächsten Schritt fortfahren. Wir empfehlen Ihnen jedoch dringend, die Erstellung Ihres eigenen Aktivierungsworts auszuprobieren, das Sie mit dem Sprachassistenten-Skript verwenden können.

Der Korpus ist eine Liste von Sätzen, die Sie zum Trainieren des Sprachmodells verwenden. Unsere vorgefertigte Korpusdatei finden Sie in der Datei corpus.txt die Sie zuvor heruntergeladen haben.

  1. Ändern Sie die Korpusdatei basierend auf der Schlüsselphrase oder dem Aktivierungswort, die Sie verwenden möchten, und gehen Sie dann zu LMTool-Seite.
  2. Auswählen Entdecken UND wählen Sie die aus corpus.txt Datei, die Sie erstellt haben
  3. Auswählen WISSENSBASIS ZUSAMMENSTELLEN.
  4. Laden Sie die vom Tool erstellten Dateien herunter und ersetzen Sie die zuvor heruntergeladenen Beispielkorpusdateien.
  5. Ersetzen Sie die KEY_PHRASE und DICT Variablen im Python-Skript, um die neuen Dateien und das Aktivierungswort widerzuspiegeln.

  1. Aktualisieren Sie die Bot-ID und die Bot-Alias-ID mit den Werten, die Sie zuvor im Sprachassistenten-Skript gespeichert haben.

Richten Sie das Sprachassistenten-Skript auf Ihrem Computer ein

Im GitHub-Repository können Sie die beiden Python-Skripte herunterladen, die Sie für diesen Beitrag verwenden: generate_data.py und voice_assistant.py.

Bevor Sie das Skript ausführen können, müssen Sie einige Schritte ausführen, nämlich die Installation der richtigen Python-Version und Bibliotheken.

  1. Laden Sie Python 3.6.

PocketSphinx unterstützt bis zu Python 3.6. Wenn Sie eine andere Version von Python installiert haben, können Sie diese verwenden pyenv um zwischen Python-Versionen zu wechseln.

  1. Installieren Taschensphinx.
  2. Installieren Pyaudio.
  3. Installieren Sie Boto3.

Stellen Sie sicher, dass Sie die verwenden neueste Version durch die Nutzung pip install boto3==<version>.

  1. Installieren AWS-Befehlszeilenschnittstelle (AWS CLI) und Konfigurieren Sie Ihr Profil.

Wenn Sie keine haben AWS Identity and Access Management and (IAM)-Benutzer noch nicht angemeldet sind, können Sie dies tun erstelle einen. Stellen Sie sicher, dass Sie die Region auf dieselbe Region festlegen, in der Sie zuvor Ihre Ressourcen erstellt haben.

Starten Sie Ihren Sprachassistenten

Nachdem wir nun alles eingerichtet haben, öffnen Sie ein Terminal auf Ihrem Computer und führen Sie es aus generate_data.py.

Stellen Sie sicher, dass Sie es mindestens eine Minute lang ausführen, damit die Tabelle ausreichend gefüllt ist. Unser Sprachassistent fragt nur die zuletzt in die Tabelle eingegebenen Daten ab, sodass Sie ihn nach einmaliger Ausführung stoppen können. Die generierten Patienten-IDs liegen zwischen 0 und 99 und werden später abgefragt.

Überprüfen Sie die Tabelle, um sicherzustellen, dass Daten generiert werden.

Jetzt kannst du rennen voice_assistant.py.

Ihr Computer wartet auf das zuvor festgelegte Aktivierungswort (oder die Standardeinstellung „Amazon“) und beginnt mit der Aufnahme erst, wenn er das Aktivierungswort erkennt. Die Wake-Word-Erkennung wird mit dem Decoder von PocketSphinx verarbeitet. Der Decoder prüft kontinuierlich, ob dies der Fall ist KEYPHRASE or WakeWord im Audiokanal.

Um das Gespräch zu beginnen, sagen Sie die Äußerung, die Sie zuvor in Ihrer Absicht festgelegt haben. Das Folgende ist ein Beispielgespräch:

Sie: Hey Amazon

Sie: Ich möchte Patientendaten erhalten.

Lex: Wie lautet die ID des Patienten, über den Sie Informationen erhalten möchten?

Sie: 45

Lex: Was möchtest du über John Smith wissen?

Sie: Blutdruck

Lex: Der Blutdruck von John Smith liegt bei 120/80.

Zusammenfassung

Glückwunsch! Sie haben einen Sprachassistenten für das Gesundheitswesen eingerichtet, der als Bot zum Abrufen von Patienteninformationen dienen kann. Jetzt haben Sie den ersten Schritt zur Erstellung eines personalisierten Sprachassistenten abgeschlossen.

Burnout beim Arzt ist ein wichtiges Problem, das angegangen werden muss. Sprachassistenten können mit ihrer zunehmenden Komplexität dazu beitragen, in der medizinischen Gemeinschaft einen Unterschied zu machen, indem sie als virtuelle Schreiber, Assistenten und vieles mehr fungieren. Anstatt Ärzte mit einfachen Aufgaben wie der Bestellung von Medikamenten oder dem Abrufen von Patienteninformationen zu belasten, können sie sich mithilfe innovativer Technologien von undifferenzierten Verwaltungsaufgaben entlasten.

Wir haben PocketSphinx und Amazon Lex verwendet, um einen Sprachassistenten mit der einfachen Aufgabe zu erstellen, einige Patienteninformationen abzurufen. Anstatt das Programm auf Ihrem Computer auszuführen, können Sie versuchen, es auf einem beliebigen kleinen Gerät zu hosten, das Python unterstützt, beispielsweise dem Raspberry Pi.

Darüber hinaus ist Amazon Lex HIPAA-geeignet, was bedeutet, dass Sie es in bestehende Gesundheitssysteme integrieren können, indem Sie den HL7/FHIR-Standards folgen.

Personalisierte Gesundheitsassistenten können bei der Unterstützung von Ärzten und Pflegekräften bei der Pflege ihrer Patienten von entscheidender Bedeutung sein, und das Abrufen von Sensordaten ist nur einer der vielen Anwendungsfälle, die realisierbar sein können. Andere Anwendungsfälle wie das Bestellen von Medikamenten und das Aufzeichnen von Gesprächen können Ärzten und Pflegekräften in allen Krankenhäusern zugute kommen.

Wir möchten Sie herausfordern, Amazon Lex auszuprobieren und zu sehen, was Sie daraus machen können!


Über den Autor

David Qiu ist ein Lösungsarchitekt, der im HCLS-Sektor arbeitet und Gesundheitsunternehmen beim Aufbau sicherer und skalierbarer Lösungen in AWS unterstützt. Es ist ihm eine Leidenschaft, andere über Cloud-Technologien und Big-Data-Verarbeitung aufzuklären. Außerhalb der Arbeit spielt er auch gerne Gitarre, Videospiele, Zigarren und Whisky. David hat einen Bachelor in Wirtschaftswissenschaften und Informatik von der Washington University in St. Louis.

Manish Agarwal ist ein Technologie-Enthusiast mit mehr als 20 Jahren Erfahrung im Ingenieurwesen, angefangen bei der Leitung eines hochmodernen Startups im Gesundheitswesen bis hin zur Bereitstellung groß angelegter Innovationen bei Unternehmen wie Apple und Amazon. Er verfügt über umfassende Fachkenntnisse in den Bereichen KI/ML und Gesundheitswesen und ist fest davon überzeugt, dass KI/ML die Gesundheitsbranche in den nächsten 4 bis 5 Jahren völlig revolutionieren wird. Zu seinen Interessen zählen Präzisionsmedizin, virtuelle Assistenten, autonome Autos/Drohnen, AR/VR und Blockchain. Manish hat einen Bachelor of Technology vom Indian Institute of Technology (IIT).

Navneet Srivastava, ein Principal Solutions Architect, ist dafür verantwortlich, Anbieterorganisationen und Gesundheitsunternehmen bei der Bereitstellung von Data Lake, Data Mesh, elektronischen Krankenakten, Geräten und KI/ML-basierten Anwendungen zu unterstützen und Kunden darüber aufzuklären, wie sie sichere, skalierbare und kostengünstige Lösungen aufbauen können. effektive AWS-Lösungen. Er entwickelt strategische Pläne zur Einbindung von Kunden und Partnern und arbeitet mit einer Community technisch fokussierter HCLS-Spezialisten innerhalb von AWS zusammen. Navneet hat einen MBA vom NYIT und einen Bachelor in Software Engineering und verfügt über mehrere Associate- und Professional-Zertifizierungen für Architektur auf AWS.

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

Zeitstempel:

Mehr von AWS-Blog für maschinelles Lernen