KAKEHASHI Tech Blog

カケハシのEngineer Teamによるブログです。

薬局業務向けの音声認識エンジンの評価・選定基準

こちらの記事は Advent Calendar 2024 の 7日目の記事になります。

adventar.org

生成AI研究開発チームのainoyaです。

カケハシでは生成AIを使った更なる薬局業務DXに挑戦しています

カケハシでは、生成AIを活用した薬局業務効率化の機能として、薬剤師の音声メモもしくは薬剤師との患者の音声データを文字起こしし、生成AIを使用して薬歴を自動生成するソリューションを現在開発しています。この機能が本当に業務の効率化をもたらすことができるかどうかは、医療用語を含む会話音声が正しく文字起こしできるかがとても重要なポイントです。今回の記事では、 Amazon TranscribeやGoogle Cloud Speech-to-Text API, OpenAI Whisper API等音声認識を行うためのソリューション(以降、音声認識エンジンと呼びます)の技術選定を行うにあたりどのような観点で検証・評価を行なったかについて紹介します。

音声認識エンジンの選定にあたり重要視した観点

音声文字起こしを行う機能の実装にあたり、複数の音声認識エンジンについて、実際に使用して検証と評価を横並びにして行いました。検討にあたり、次のような観点を中心に検討を行いました。(なお音声認識エンジンを自前開発するという方法は、検証スケジュールの都合で今回の検討では対象外としました。)

コスト

どれほど精度が優れている音声認識エンジンだとしても、顧客に提供する価格に対して原価割れしてしまうものは使用することができません。対象とするユースケースについて、1回利用あたりの音声の長さと、月当たりの利用頻度から、ランニングコストがいくらになるかを把握しておくことが重要です。

参考までに、OpenAI Whisper API、Amazon Transcribe、 Google Cloud Speech-to-Text API、Vertex AI Gemini 1.5 Pro、Vertex AI Gemini 1.5 Flash、 OpenAI gpt-4o-audio-previewでそれぞれ1分あたりの文字起こしにかかるコストを記載しておきます。

音声認識エンジン 1分あたりの文字起こしコスト(ドル) 1分あたりの文字起こしコスト(円)
Vertex AI Gemini 1.5 Flash 0.0012225 0.18
OpenAI Whisper API 0.006 0.89
OpenAI gpt-4o-audio-preview 0.006 0.89
Vertex AI Gemini 1.5 Pro 0.008625 1.29
Google Cloud Speech To Text 0.016 2.39
Amazon Transcribe 0.024 3.59

※料金は、2024/12/03時点での各サービスの公式サイトの価格表から転記しています。正確な情報は、公式サイトをご参照ください
※Amazon Transcribe、Google Cloud Speech To Text、Vertex AI Geminiは多段階料金になっており、トークン数や使用量に応じた割引があります。今回は最低利用の割引なしの料金で計算しています。
※為替レートは、2024/12/03時点でのレートを参考に1ドル=149.98円として概算しています。 ※VertexAI Geminiのマルチモーダル音声認識では、音声入力のコストの他に、300文字/分としてテキスト出力トークン分を加算しています
※OpenAI gpt-4o-audio-previewのマルチモーダル音声認識では、音声入力の料金のみ考慮しています。別途、テキストの入出力トークンのコストが発生します。

セキュリティ

ユースケースによっては、音声はプライバシーデータを含む可能性が高いです。秘匿性の高い音声情報がどのように扱われているか自社のコンプライアンスと合わせて把握しておくことが重要です。サービスによっては、サービスの改善のための学習の対象とされるため、使用する際に明示的なオプトアウトの設定が必要になります。また、私たちのユースケースでは音声認識後の薬歴生成プロセスも含めると、薬歴に本来除くべき秘匿情報が混入してしまう可能性があるため、薬歴生成全体としては、当事者による最終確認ができるUXになっています。

文字起こしの速度など、非機能要件の把握

非機能要件として、実時間に対してどれくらいの速さで文字起こしが行えるか把握しておくことも重要です。多くのサービスでは、比較的小さいサイズの音声ファイルでは同期的なリクエストで処理が完了するAPIをサポートしていますが、大きなサイズの音声ファイルに対しては処理開始と結果の取得が分かれている非同期処理のAPIを提供しています。非同期処理で実装を行う場合は、クライアントとのコネクションタイムアウトを気にする必要がないことから、完了処理後に、自前での自然言語処理などを追加しやすいため、精度改善面で有利です。リアルタイム音声入力が求められる要件においては、プロトコルとしてWebSocketが採用されていることが多いです。クライアントとサービス間でWebSocket通信を安定して行える状況にあるかどうかユースケースを確認することが重要です。屋外でネットワーク通信が不安定になる状況で使用したい場合は、切断時に文字起こしできなかった音声の再送処理などの追加の対策が必要になるかもしれません。

精度向上の余地が音声認識エンジンの機能で提供されているか

音声認識エンジンによっては、利用側で認識精度を改善するための機能が提供されています。運用中に精度が満足いくものにならない場合に、辞書による訂正機能やファインチューニングなど、音声の誤りをどの程度改善できる余地があるのか把握しておきましょう。

話者分離や感情分析など、文字起こし以外の機能の確認

文字起こしの結果を取得できる以外にも、検出した区間について話者のラベル付けを行える音声認識エンジンが存在します。それらの機能を備えていないものを使う場合には、処理を自前で追加する必要がありますが、処理時間が長くなることや、多段で別のタスクを構成することによる精度の劣化には注意が必要です。

ハルシネーションの有無

音声認識エンジンの実装によって、ハルシネーションがどの程度発生するかにも差異があります。言っていないことを文字起こししていることをサービス上で許容できるか、またそれがどの程度のハルシネーションかの挙動について知っておきましょう。例えば、OpenAI Whisper APIでの文字起こしは無音区間に対して「ご視聴ありがとうございました」「チャンネル登録お願いします」などのハルシネーションがよく観察されました。また、利用想定のユースケースでは到底発生し得ないような暴力的なワードも稀に見られます。これらの原因は、学習モデルの訓練データセットの偏りによって起きているものと推測されますが、それらのハルシネーションがユースケース上許容できるか認識しておくことが大事です。許容できない場合には、生成された文字起こしをフィルタリング・モデレーションする処理の追加が必要になるかもしれません。

音声認識結果の品質評価

対象とするユースケースにおいて満足する精度で文字起こしできるかは最も重要な観点です。弊社では、文字起こしの内容を薬剤師による人手評価と、機械的に実行可能な定量評価を組み合わせて行っています。加えて、文字起こしした内容を元に生成AIに出力された薬歴の内容についても薬剤師による品質評価を行っており、後段のタスクを含む品質評価の内容を総合して音声認識エンジンの性能評価を行っています。次のセクションでは、文字起こしの精度評価方法の一部をご紹介します。

プロダクトのユースケースに即した音声認識の精度評価を行う

音声認識エンジンの精度ベンチマーク指標としては、Ground Truthに対してどの程度の誤認識が存在するかを確認する単語誤り率(Word Error Rate: WER)、 文字誤り率(Character Error Rate: CER)が用いられるケースが多いのではないでしょうか。弊社もWER、CERを評価基準の一つとしていますが、一方で「てにをは」の一致など、必ずしも音声入力で自分たちが実現したかった機能において重要ではないポイントで誤認識とカウントされてしまうことがあります。WER、CERの結果は意識しつつも、それらでの一般的な評価だけではなく、ユースケースを満たす文字起こしが行えているか、追加の評価基準を持っておくのが重要です。

また、モデルのベンチマークとして公開されているWER、 CERが、自社ユースケースのデータで再現するとは限りません。モデルの訓練データセットが自社のユースケースのドメインを含んでいるかどうかによって、文字起こし精度が変わるためです。我々のチームでも、自社ユースケースに沿ったGround Truthを用意して、自分たちでWER、CERを改めて評価しています。

我々のケースでは、どんなにWER、 CERが良くても肝心の医療用語が正しく認識できていなければ間違った薬歴を生成してしまうため、追加の評価基準の一つとして、医療用語に絞った認識精度の評価を行っています。参考論文をベースに、以下のようなロジックで誤り率を計測しています。

  1. フィラーや漢数字など細かい表記揺れを正規化
  2. 医療用語をマッピング
  3. 誤り率を計算

認識精度については細心の注意を払うため、薬剤師による人手評価も併せて、最後の砦としてセットで行っています。しかしながら人手による評価は時間が必要で、頻度高く行うのは難しいため、このような定量評価を行うことで精度改善のサイクルを素早く回すことが可能になります。

まとめ

  • 音声入力の選定にあたり、精度面にとどまらない論点でどのような評価を行なったかについて解説しました。
  • このような観点・評価基準を明確に揃えておくことで、変化の激しい技術領域でもより精度の良いものをスピーディーに採用しやすくなり、自社サービスの提供品質が陳腐化しにくくなります。
  • 自社サービスに音声入力機能の搭載を考えている方への判断基準の指針として参考にしてもらえれば幸いです。