医療音声アシスタントの作り方

Medical Voice Assistant を考案したとき 、まだパンデミックはありませんでした。そしてそれがリリースされたとき、私たちはリリースが非常にタイムリーであることに気づきました(偽りの謙虚さなしで)。しかし、今日の現実では、これは医師の生活を簡素化し、患者ケアの質を向上させるすべてのサービスに関連しています。



この記事では、新製品について詳しく説明します。計画はこれです:



  • 医療音声アシスタントが必要な理由。
  • 主な使用例;
  • ソリューションが構成するコンポーネント。
  • タスクの処理方法と割り当て方法。




IHLのしくみ



医療音声アシスタント(IHP)が必要な理由



IHLには2つの主な目的があります。



  • . , : , ( ) , , .
  • . , , . / , .




ここでは、ほとんどすべての病院に適した音声アシスタントを使用するための基本的なシナリオを見ていきます。もちろん、もっと多くのオプションがあります-それはすべて特定のクリニックのニーズに依存します。



医師/ナースコール。患者が医療スタッフの助けを必要とする場合に適しています。患者が「鎮痛剤」、「痛みを伴う」、「注射が必要」などのキーワードを発声するとすぐに、システムはタスクを必要な専門家グループに割り当て、決定の期限を設定します。



自動クエリ実行..。患者は、すでにナレッジベースにあるヘルプ情報(たとえば、カフェテリアのスケジュール)を要求します。IHLはキーワードで関連記事を見つけ、患者に声をかけます。患者は幸せであり、看護師も幸せです。彼らはより重要な仕事をすることができます。



双方向通信これは、患者が専門家の診察を必要とする場合に使用されます。たとえば、新薬を服用するための投与量とスケジュールの詳細について医師に尋ねる必要がある場合などです。



IHLのコンポーネント



医療音声アシスタントは、最も単純なものから最も複雑なものまで、さまざまなタスクを解決できます。ただし、その汎用性は実装の容易さと組み合わされています。コンポーネントレベルでは、これはかなりミニマルなソフトウェアおよびハードウェアソリューションです。私たちは意図的にこれを目指しました。



IHLには4つの基本モジュールが含まれています。



  1. 患者ターミナル。これは、音声を受信するためのマイク、システム(および医師)からのメッセージを再生するためのスピーカー、および患者情報を処理して他のコンポーネントと相互作用するマイクロコンピューターで構成されています。
  2. 音声認識および合成システム。システムはクラウドで使用することも、ローカルにインストールすることもできます。
  3. 会計および要求の処理のシステム。医療スタッフが働くWebアプリケーション。ビジネスプロセスSimpleOneを自動化するためのESMプラットフォームに基づいて実装されます
  4. 医師や看護師のためのターミナル。Wi-FiまたはLANを介して会計および処理システムに接続されているタブレットまたはPC。


音声リクエストの処理



病棟の端末は、患者、音声認識合成システム(SRS)、会計要求処理システム(CPS)間のコミュニケーションセンターとして機能します。



一般に、リクエスト処理プロセスは次のようになります。



  • 端末は常にキーワードを待っています。
  • キーワードが話された場合、端末は短い音声(4〜5秒)を録音します。
  • 音声はCPCに送信されます。
  • 端末はCPCから制御システムに応答を送信します。
  • 端末は、事前設定されたCPSロジック(テンプレート)に応じて、患者に情報をアナウンスします。




スクリーンショットは、X線記録を使用してリクエストを処理する例を示しています



。より快適な対話のために、「リクエストは受け入れられました。助けを待ってください」という標準の応答に加えて、IHLは特別な信号を再現します。患者のメッセージ録音の終わり。



テンプレートに基づいたタスクの割り当て



システムでは、一意のクエリテンプレートを設定できます。各テンプレートには、有効化条件(必要なキーワード)を割り当てることができます。クライアントがテンプレートで規定されたキーワードを発声するとすぐに、システムはリクエストをアクティブにし、タスクを特定のスペシャリストグループに割り当てます。または、たとえば、ナレッジベースから必要な情報をアナウンスします。



システムには、患者が発したすべてのフレーズを格納する「メッセージ」テーブルがあります。システムは着信メッセージのテーブルを監視し、メッセージがテンプレート条件に一致する場合にクエリを作成します。





リクエストテンプレート「患者の鎮痛剤」には、キーワード「痛みを伴う」を選択します。リクエストに高い優先度を割り当て、「看護スタッフ」方式を選択し、必要なパフォーマーのグループである看護師を接続します。これで、患者が「痛い」と言った場合、IHLは自動的にそのタスクを看護師グループに割り当てます。グループメンバーは、タスクが割り当てられたという通知を受け取ります。患者のメッセージは、リクエストの「説明」フィールドに反映されます。





要求テンプレートの表示



並行して、タスクは応答時間制御(SLA)カウンターで固定されます。この例では、問題を解決するのに10分かかります。スペシャリストが期限に間に合わない場合、問題は上級医師またはグループにエスカレーションされます(エスカレーションシナリオも構成可能です)。





SLAカウンター



システムには無制限の数のリクエストテンプレートを作成できます。これは、管理者権限を持つ従業員が実行できます。





クエリテンプレート



Pocketsphinx、Python、SQLite3を選んだ理由



プロトタイプソリューションでは、RaspberryPiファミリーのマイクロコンピューターとRaspbianGNU / LinuxベースOSを使用しました。 Terminalは、補助システムとPocketsphinxライブラリ(LiveSpeech)へのRESTリクエストを使用してPythonで記述されたシンプルなアプリケーションです。



Pocketsphinxライブラリは、最初の応答(キーワードの検索)のパフォーマンスを向上させるのに役立つため、優れています。音声認識および合成システムは、認識のために複雑なメカニズムと辞書を使用します。大まかに言えば、Pocketsphinxはキーワード認識プロセスを高速化し、顧客のネガティブな体験を回避します。 Pocketsphinxは設定も簡単で、いくつかのモードで動作します。



PythonとPocketsphinxを使用すると、ターミナルの機能が大幅に拡張されます。患者が退屈しないように、ゲームをIHLに追加できます。たとえば、プロトタイプでは、単純なゲーム「Cities」を実装しました。



標準のRESTAPIは、CDSとKMSを統合するために使用されます。



以下は、CPSアドレスの例です(CPSに向けてPOSTメッセージを送信し、応答を解析するなど)。



url = 'https://user:pass@mva.simpleone.ru/rest/v1/table/mva_itguild_inquiry'

payload = {«description»: text, «subject»: «mva_inquiry»}

header = {'Accept': 'application/json;charset=UTF-8','Content-Type': 'application/json;charset=UTF-8'}

response = requests.post(url,data=json.dumps(payload), headers=header)

i_json = response.json()


CPCを使用した連続音声合成は、承認、要求、処理という非常に容量が大きいため、迅速なプロセスではありません。それをスピードアップするために、ローカルのSQLite3データベースを使用して、以前に生成された患者の応答を保存します。このソリューションは、一定のシナリオでリクエストを処理するのに適しています。たとえば、診療所や治療室の場所、食堂のスケジュールに関する情報を発声する場合などです。



もう1つの重要なポイントはロギングです。それがなければ、改善やバグ修正に取り組むことは不可能です。したがって、端末は、隣接するすべてのシステムの一般的な操作プロセスと個々のコンポーネントの両方のロギングを実装します。



結果は何ですか



音声制御を使用して医療スタッフにタスクを割り当てることは、(医師と患者にとって)利便性だけでなく、病院での作業プロセスの真剣な最適化の可能性についても重要です。病院が介護者をより快適で生産的にする機会が多ければ多いほど、最終的には患者ケアの質が向上します。



最小限の既製のサービスを使用しながら、病院向けの非常に便利で多機能なソリューションを作成したかったのです。しかし、おそらくIHLの主な利点は、その汎用性です。音声アシスタントは、あらゆる規模とプロファイルの病院に迅速に導入できます。特定の医療機関のタスクや急速に変化する状況を考慮して、ソフトウェアを「オンザフライ」で最適化できます。



All Articles