TL;DR🤩
- 音声認識器Whisperの認識精度と認識速度について調査
- 認識精度
- 英語では論文同様の結果
- 日本語の認識精度はドメインに依存
- baseモデルの推論がドメインにより不安定
- ビームサーチの利用により、推論の頑健性が向上
- largeモデルのCERはbaseモデルの半分程度
- baseモデルの推論がドメインにより不安定
- 認識速度
- baseモデルのRTFはGPUで0.104 largeのRTFは0.408
- バッチサイズなどを最適化することで改善
- baseモデルのRTFはGPUで0.104 largeのRTFは0.408
こんにちは。RevCommのリサーチチームでインターンをしている中田亘です。 2022年9月21日にOpenAIからWhisperと呼ばれる音声認識器が一般に公開されました。今回は、Whisperの性能に関して調査を行ったので紹介します。
Whisperとは
Whisperは、OpenAIが発表した「Robust Speech Recognition via Large-Scale Weak Supervision」で提案された音声認識器です。従来の音声認識器は数千から数万時間の音声データで学習したものが主流でしたが、Whisperは68万時間もの音声データをWeb上から収集し、Transformerで学習しているところが大きな特徴です。また、学習の際には音声認識に限らず、翻訳、VAD(音声区間検出)、アライメントなどの様々なタスクで学習されています。これにより、様々な用途に適用可能な汎用モデルが学習できていると報告されています。今回は、Whisperの音声認識の性能に焦点を当て、調査を行いました。
実験と結果
実験では、AWS上にCPUインスタンス・GPUインスタンスを構築し、OpenAIが提供しているbaseモデルおよびlargeモデルの認識精度・認識速度について調査を行いました。
実験条件
特筆しない限り、実験条件は下表の通りです。
EC2インスタンス | CPU: c5.9xlarge (36CPU) 推論には32CPUを使用
GPU: g4dn.xlarge (4CPU, NVIDIA T4 16GB VRAM) |
認識精度テストセット | 英語
|
認識速度テストセット |
|
バッチサイズ | 1 |
デコーディング手法 | 貪欲法 |
テキストの正規化 | 英語: Whisper公式実装で使用されている手法
日本語: 句読点除去 |
認識精度
Whisperの推論をGPUインスタンスで行い、その認識精度について調査しました。
英語でのWER
英語では、baseモデルおよびlargeモデルのword error rate(WER; 単語誤り率)を調査しました。
LibriSpeech test-clean test-other
Earnings-21
日本語でのCER
日本語では、largeモデルおよびbaseモデル双方のcharacter error rate(CER; 文字誤り率)を調査しました。
base, largeの比較
おかげで、おかげで、おかげで、おかげで、おかげで、おかげで、おかげで、おかげで、おかげで、おかげで、おかげで、おかげで、おかげで、おかげで、おかげで、おかげで、おかげで、おかげで、おかげで、おかげで、おかげで、おかげで、おかげで、おかげで、おかげで、おかげで、おかげで、おかげで、おかげで、おかげで、おかげで、おかげで、おかげで、おかげで、おかげで、おかげで、おかげで、おかげで、おかげで、おかげで、おかげで、おかげで、おかげで、おかげで、おかげで
これはTransformerなどの自己回帰型モデルで時折発生する、リピーティング(繰り返し)という現象です。revcomm-test-setのドメインがWhisperの学習に使用されたドメインと異なるため、出力が不安定になっていると考えられます。これに関しては、ビームサーチの利用により大幅にCERが改善することを後ほど紹介します。
論文では、日本語のCommon Voice9においてCERが0.094、日本語のFLEURSにおいてCERが0.064と報告されていますが、我々が用いたテストセットのうち、特にrevcomm-test-setの認識精度では論文中にあるような低いCERにはなりませんでした。
他のシステムとの比較
広く一般に音声認識サービスを展開している他社の音声認識器を用いて、TEDとCommon VoiceにおいてCERの比較を行いました。図4-6 に、他社の音声認識器とbaseモデル (whisper-base) 、largeモデル (whisper-large) の比較結果を示します。
この結果をみると、whisper-baseの性能は奮わないものの、whisper-largeがTED・Common Voiceの双方において優れた性能を示しています。日本語のASRをしたい時に、whisper-largeは有力な選択肢であると言えるでしょう。
revcomm-test-setにおけるビームサーチ利用の効果
先ほど、revcomm-test-setにおいてCERが非常に悪くなる結果を紹介しました。この結果を踏まえて、デコーディング手法にビームサーチを利用することで認識精度が改善しないか検討を行いました。結果を図7に示します。
図7の結果を見ると、baseモデルでは貪欲法 (greedy) と比較して、ビームサーチを利用することによりCERが大幅に改善していることが確認できます。推論結果を見ても、先ほどのようなリピーティングはほとんど確認されず、推論の頑健性が向上していることが確認できました。このことから、baseモデルを用いたrevcomm-test-setの推論において、ビームサーチの利用がかなり有効であると言えます。一方で、largeモデルに関しては、改善はしているもののbaseモデルのような大幅な改善は見られませんでした。
ビームサイズ=2の時のlargeモデルの出力を確認してみると、以下のようなものが確認されました。
正解文 | Whisper largeモデルによる認識結果
(ビームサイズ 2) |
あのーまあこちらーどういう風に使うかっていうとこなんですけどもーあの実はーここあのヒートマップになってて色が濃いところっていうのはー電話がこう通じた時通電した時はーあのこう色がどんどん濃くなっていう感じ回数が多くなった | こちらはどういうふうに使うかというところなんですけども、実はここヒートマップになっていて色が濃いところというのは電話が通じたとき、通電したときは色がどんどん濃くなっていく。回数が多くなる。 |
この例からは、「あのー」「まあ」などの言いよどみ(フィラー)が、whisper-largeの認識結果に含まれていないことが確認できます。これは、whisperの学習に用いられたデータセットにフィラーがほとんど含まれておらず、推論結果にフィラーが含まれにくくなっているためと推測されます。一方で、revcomm-test-setの正解文は、通話音声やビデオ会議の発話を聞こえたとおりに書き起こしたものであり、フィラーが多く含まれます。フィラーを書き起こしていないことが、CERのボトルネックとなっていると考えられます。
認識速度
認識速度に関しては、revcomm-test-setのサブセットであるrevcomm-videoの推論におけるreal time factor (RTF) を調査しました。RTFは以下の式で求められます。
本記事では、inferとglobalの2種類のRTFを調査しました。それぞれ定義は以下のとおりです。
- infer: モデルの順伝播のみにかかった時間
- global : 音声のデコード、メルスペクトログラム生成などの推論に必要な処理すべてを合計した時間
注意点: 今回の推論では、全ての音声を30秒にゼロパディングしています。これは、Whisper公式実装では、30秒以外の音声は入力できないようになっているためです。
モデルごとのRTF
また、GPUではinferとglobalでRTFが大きく異なることが確認されました。これは、CPUでデコードした音声をGPUに移動させる際の通信などが原因となっていると考えられます。こういった通信のオーバーヘッドは、処理を非同期化することにより改善できる可能性があります。
baseモデルにおけるバッチサイズによるRTFの変化
以上の実験ではバッチサイズを1としていましたが、GPUでのbaseモデル推論においてGPUの使用率を確認したところ40%程度であり、GPUの能力を最大限に利用できていませんでした。バッチサイズをより大きくすれば、さらに効率よく推論をできるのではと考え、バッチサイズによるRTFの変化を調査しました。結果を図9に示します。
結果から、バッチサイズ8程度が一番効率よく推論が行えることが確認できました。ただし、処理の非同期化などにより最適なバッチサイズは変化すると思われます。
ビームサイズによるRTFの変化
先ほどビームサーチの利用により、ドメインにより不安定なbaseモデルの推論がより頑健になることを紹介しました。一方で、ビームサーチを使用することにより処理が増えるため推論時間が長くなると考えられます。そこで、ビームサーチを使用することでどの程度処理時間が増えるかを調査しました。なお、推論はGPUインスタンスで行いました。結果を図10に示します。
まとめ
Whisperの認識精度および認識速度について調査を行い、結果を紹介しました。
認識精度に関しては、英語ではおおむね論文通りの結果が確認されました。一方で、日本語の認識精度については、特にRevComm内製のテストセットによる評価について、論文で示されているほど低いCERにはなりませんでした。Whisperの音声認識結果にはフィラーがほとんど入らないため、対話音声におけるフィラーを聞こえたとおりに書き起こしたテキストを正解とした評価では、CERが大きな値となることがあるようです。また、baseモデルの推論において、ドメインによってはビームサーチが極めて効果的であることも確認されました。
認識速度に関してはGPUの利用が非常に効果的であることが確認された一方で、GPU利用により順伝播以外の時間が増えることが確認されました。これはCPU-GPU間のデータの移動に時間がかかっていると推測されます。