(著者注)本記事は2022年10月に書いたものですが、諸事情で公開が遅くなってしまいました。その後Whisperのlarge-v2やAPIがリリースされるなど状況に変化がありましたが当時書いたものをそのまま公開します。
安藤章悟
みなさま、こんにちは。
2022年の9月22日にOpenAIからWhisperという音声認識エンジンが公開されました。
私も気になったので早速自宅で試してみました。少し試した段階でそれなりにちゃんと音声認識していそうと感じたので、とにかく難易度の高そうな音声を試してみようと思いYoutubeにあったコウメ太夫さんの動画( https://www.youtube.com/watch?v=NnvghuOrThg )を音声認識させてみたところ、ものすごく高精度で衝撃でした。
音声認識が難しい動画って何だろう?と考えてぱっと浮かんだのがコウメ太夫だったので、OpenAIのWhisperで音声認識してみたらかなりしっかり認識できててビックリした。コウメじゃなくて神戸になってるとか小さな誤認識には目をつぶる。https://t.co/uKV2cNNnAv pic.twitter.com/aVpDpIzrr1
— あんたん (@anpyan) 2022年9月22日
さて、Whisperで高精度な音声認識精度ができそうということは分かったのですが、次に気になったのは「AmiVoiceとWhisper、どちらが音声認識精度が高いんだろう?」です。
もちろん音声認識エンジンごとに得意分野があるので優劣をつけるのは難しいのですが、いくつか比較実験をしてみましょう!
電子カルテ入力音声で徹底比較してみる
まずは、こちらの記事でやった検証と同じことをやってみました。
実験条件は下記です。前回の検証とほぼ同じで、主な変更箇所を赤文字にしています。
- 病院やクリニックなどのお客さまからご提供頂いた電子カルテのデータ(個人情報や顧客情報その他重要な情報は含みません)をベースに原稿を作成し、その原稿を当社スタッフが読み上げた音声を使用しました。
- 上記の原稿・音声は音声認識エンジンの学習には使っておりません。
- 計測に使用した音声データ量は2933発話、音声区間長約2時間40分です。
- 話者数は男性13名・女性17名です。話者ごとに発話内容は異なります。
- 音声認識エンジンは、AmiVoice API の「音声入力_汎用」「音声入力_電子カルテ」、Google Speech to Textの「default」、Whisperの「large」の4種類を使用しました。設定値などはすべてデフォルトを使用しています。
- AmiVoice APIとGoogle Speech to Textは2021年3~4月頃に実施した結果のため若干古いエンジンによるものです。Whisperは2022年9月22日にリリースされたものを使用しました。
- 表記ゆれによる誤認識については、目視でチェックし修正を行いました。*1
- フィラー(不要語)は正解文および音声認識結果から除去して計算するものとしました。*2
- 音声中に句読点を「てん」や「まる」と発話している箇所がありますが、そこは音声認識精度の計測に含めません。*3
結果は下記になりました。
エンジン | 音声認識精度 |
---|---|
AmiVoice(音声入力_電子カルテ)2021年4月 | 97.33% |
AmiVoice(音声入力_汎用)2021年3月 | 84.63% |
Google(default)2021年3月 | 87.19% |
Whisper(large)2022年9月 | 78.83% |
あれ?
Whisperは私の感触では高精度で音声認識できそうだと思ったのですが、電子カルテ入力音声に対してはそんなに精度は高くないようです。
どうしてだろう?とWhisperのIntroducingのページを見るとこのような説明があります。
Whisper is an automatic speech recognition (ASR) system trained on 680,000 hours of multilingual and multitask supervised data collected from the web.
Whisperは、Webから収集されたデータでトレーニングされているようです。なので、電子カルテのデータなどWebにあまり存在していないデータに対してはあまり高い認識精度は出ないようです。
音声認識結果のサンプルを見てみましょう。Webにあまり無い内容のせいかWhisperでは誤認識が目立ちます。
- 正解
いずれの画像診断も良性腫瘍を疑うも腫瘍が大きいことから悪性も完全には否定できず摘出手術を施行した。腫瘍は腫大した小網リンパ節であった。 - AmiVoice(音声入力_電子カルテ)
いずれの画像診断も良性腫瘍を疑うも腫瘍が大きいことから悪性も完全には否定できず摘出手術を施行した。腫瘍は腫大した小網リンパ節であった。 - AmiVoice(音声入力_汎用)
いずれの画像診断も良性腫瘍を疑うも腫瘍が大きいことから悪性も完全には否定できず摘出手術を施行した。腫瘍は取材した消耗リンパ節であった。 - Google(default)
何の画像診断も良性腫瘍を疑うも使用が大きいことから悪性も完全には否定できず摘出手術を施行した。腫瘍は主題した消耗リンパ節であった - Whisper(large)
いずれの画像診断も量製手要を疑うも主要が大きいことから悪性も完全には否定できず適室手術を施行した。主要は取材した消耗淋波説であった。
歌声で徹底比較してみる
さて、どうやら電子カルテはWhisperの苦手分野だったようなので、次はWhisperの得意分野で実験してみましょう。
WhisperのIntroducingのページにはK-POPを音声認識して英語に翻訳するというサンプルがありましたので、きっと日本語の歌声でも音声認識できるに違いないということで、Adoさんの「うっせぇわ」(https://www.youtube.com/watch?v=Qp3b-RXtz4w)をWhisperの「large」を使って音声認識させてみました。
OpenAIのWhisperが歌も音声認識できるようなので、Adoさんの「うっせぇわ」をこちら(https://t.co/rkqSY4fwOZ)の動画から音声認識してみた。うわーー誤認識もちらほらあるけどあらかた聞き取れてるーー。すっげぇわ。 pic.twitter.com/bD2UVLpGSa
— あんたん (@anpyan) 2022年9月28日
結構すごい!!
Whisperの結果には誤認識もそれなりにありますが、全体的にだいぶ音声認識されているのではないでしょうか。
ちなみにAmiVoiceでは歌声の音声認識というものは全く想定していないのでおそらくほぼ音声認識できないでしょうが、一応双方の音声認識精度を計測してみました。
実験条件は下記です。
- https://www.youtube.com/watch?v=Qp3b-RXtz4w の動画の音声を音声認識対象としました
- 音声認識エンジンは、AmiVoice API の「音声入力_汎用」、Whisperの「large」の2種類を使用しました。設定値などはすべてデフォルトを使用しています。
- AmiVoice APIは2022年10月7日のものを使用し、Whisperは2022年9月22日にリリースされたものを使用しました。
- 表記ゆれによる誤認識については、目視でチェックし修正を行いました。
- 正解文はYoutubeの動画の歌詞テロップを手作業で文字にしたものを使いました。また例えば最初のサビの前の「はぁ?」など歌詞テロップに出ない部分は手作業で補完しました。
- 「?」などの発音しない記号は音声認識精度の計算対象として含めないこととしました。
結果は下記になりました。
エンジン | 音声認識精度 |
---|---|
Whisper(large)2022年9月 | 79.29% |
AmiVoice(音声入力_汎用)2022年10月 | 27.67% |
「うっせぇわ」の歌声の音声認識率
Whisperの圧倒的勝利ですね。AmiVoiceにとっては全く想定外の音声なのでどうしても高い精度を出すことはできませんでした。
音声認識精度の数字の詳細を少し見てみましょう。
正解文字数*4 | 誤挿入文字数 | 誤削除文字数 | 誤置換文字数 | |
Whisper | 652 | 10 | 52 | 73 |
AmiVoice | 647 | 5 | 290 | 173 |
AmiVoiceは誤削除文字数つまり「歌声に入っていたが、音声認識結果に入っていなかった誤りの文字数」が突出して多いです。これは音声認識エンジンに音声発話では無いとみなされたものと考えられます。
音声認識結果のサンプルを見てみましょう。これは冒頭の部分ですが、曲が盛り上がるところでAmiVoiceの結果が止まっており、音声発話ではないと判断されているようです。
- 正解:
正しさとは愚かさとはそれが何か見せつけてやる - Whisper:
正しさとは愚かさとはそれが何か見せつけてやる - AmiVoice:
正しさとは愚かさとはそれが何か実
さいごに
今回は、OpenAIのWhisperの音声認識精度を、AmiVoiceやGoogleと比較しました。
Whisperは非常に高精度で、歌声も音声認識できるなど面白い特徴も持っていますが、電子カルテ入力など業務に活用をしようとするとまだまだ課題はありそうです。
WhisperはTransformerという比較的新しい手法を使っているようですが、もしかしたらここが高精度の秘訣なのかもしれません。AmiVoiceでもこういった最新技術を取り入れることを含めて日々精度向上のための努力を続けています。
AmiVoiceでは開発者用のAPIを公開しております。興味があるかたは下記のAmiVoice APIからお試し頂けると幸いです。
おまけ:おもしろ誤認識コレクション
人間が空耳をするように、音声認識も思わぬ誤認識をすることがあります。今回は電子カルテの入力という専門用語が多い音声を題材にしたため、多くの誤認識が飛び交いました。前回はAmiVoiceとGoogleの誤認識を紹介しましたので、今回はWhisperの誤認識を一部ご紹介します。*5
エンジン | 音声認識結果 |
---|---|
正解文 | 歯肉腫瘤と歯の萌出異常を主訴に来院した |
Whisper(large) | 死肉種類と歯の放出異常を首相にLINEした |
それを首相にLINEされても困るでしょ
エンジン | 音声認識結果 |
---|---|
正解文 | 下顎義歯残根抜歯 |
Whisper(large) | 科学技師・山根伯氏 |
よく分からない人が出てきたので、画像生成AI(Stable Diffusion)にイメージ化してもらいました。
科学技師・山根伯氏
*1:どうしても人手作業のため抜けやミス等が残る可能性があります。そのため今回計測された音声認識精度は実際の値よりも若干低い数値である可能性があります。
*2:フィラー発話を意味あるものとして認識してしまった誤認識は挿入誤りとして減点対象としました
*3:「てん」「まる」という発話が句読点として認識されたものや、「点」「丸」などのように変換されたものは計測から除外しましたが、「てん」や「まる」の発話が単語やフレーズの一部として認識されてしまった誤認識については判別が難しいため減点対象としました
*4:ちなみに正解文字数がWhisperとAmiVoiceで異なるのは、表記ゆれ箇所の正解を音声認識結果に合わせて修正したためです。例えば歌詞に「ノーセンキュー(7文字)」という箇所がありますがWhisperはここを「No Thank You(10文字)」と認識しており、これは正解を見なせるため、正解の文字数が7文字から10文字に増加しています。
*5:よく見てみると前回も今回も歯科のサンプルから誤認識を抜粋していました。もしかすると歯科はおかしな誤認識が起こりやすいのかもしれません。ちなみに実験データとしては歯科以外のさまざまな科のデータも入っています。