🎤
Whisper! 声を聞いて、文字を書くよ!音声認識界に衝撃を与えた!
前書き
3連休中の勉強会でネタとしてウィスパーが人気がありました。
論文原文14ページ斜め読み状態で話してしまいました。(2022年に読んだので覚えてると思ってた)
結構忘れていて読み直して面白かったのと、この記事見てもらえたらという思いもあり追加で論文読んで記事にしました。
まだ、自分の理解で話します。間違いあったら優しく指摘してもらえたら嬉しいです。
読者対象
ウィスパーを使っていて、最初の論文の中身を知りたい人。
音声認識に興味がある人。
1. どんなもの?
- 声を聞いて、文字起こしができる。かなり精度が高く、多くの言語に対応、様々な状況にも対応。
- また、英語への翻訳、発生識別、言語の識別、時間の出力と様々なタスクにも対応。
- 構造は基本トランスフォーマーでエンコーダーデコーダーモデルです。
- 入力は音声をログメルスペクトグラムにしてそれをコンボリューションで変換した後トランスフォーマーのエンコーダーに入れてます。
- デコーダーには、 マルチタスクの形式でテキストを入れているのと自らが予測したトークンを再帰的に入力していきます。(トークナイザーはbyte-levelBPE)
- エンコーダーとデコーダーでクロスアテンションで融合して、最終的に次のトークン(言葉)予測している。
2. 先行研究と比べてどこがすごいの?
- 性能が高い!音声自動認識サービス(A-D)よりいい、人間のサービスとほぼ同等(F-I)、コンピューターも使った人間のサービスには負けてはいるが(E)。
- 頑健である。つまり 色々なデータセットで高い精度が出る
- 下の図は、 LibriSpeech用に作ったモデル(wav2vec2.0をLibriSpeech用にファインチューニングしたものと考えてます)とWhisperが他のデータセットでどのような精度かを表しています。
- ウィスパーはゼロショットで、より良い精度を出している。ファインチューニングもなくいきなり使えるこれもすごい!
- 左の図の見方が難しかったので、説明するとx軸がLibriSpeechでの精度で右に行くほど悪い、y軸は他のデータセットでの精度で上に行くほど悪い、y軸でwhisperはなだらかに悪くなっている
3. 技術や手法の"キモ"はどこにある?
- 68万時間の音声とそのラベルのデータセットを用意したことがなによりすごい!(多少ラベル低品質)
- そのために Webから集めたデータから品質が低すぎるものは削除している
- 例えば、AI が書き起こしたデータは削除、言語の識別機を作って音声と書き起こした言語が違うものも削除。
- wav2Vec2.0では、教師ラベルがなく100万時間。それに対してラベルありの過去の例のスピーチシチューでは5140時間と100万時間にはかなり大きいギャップがあった。
- 転写(音声からテキストへの変換)、翻訳(異なる言語への翻訳)、音声活動検出(音声があるかどうかを検出)、アライメント(音声とテキストの対応関係を特定)、言語識別(言語を特定)などがネットワーク自体が対応、個別に作るモデルより扱いがずっと楽になる。
4. どうやって有効だと検証した?
- いろんなデータセットについていろんなAIシステムと比較している。
- 各言語のデータ量とワードエラーレートとBLEUで精度をプロットしている。 基本的にデータ量に応じて 精度上がってるが、言語によっては その相関性から外れているものもある。
- モデルサイズに応じて精度がどう変わるかをプロットしたもの、基本的にモデルサイズが大きいほど精度がいい ウィスパーは複数のモデルが用意されている。
- 書き起こしを標準化するためのツールを使っているがそれがウィスパー用に作ったものかオープンソースかで比較している。違いは特になし。
5. 議論はあるか?
- wav2Vec2.0の100万時間で事前学習してから、この68万時間でファインチューニングしたらさらによくならない?
- 今chatAI作るのに音声>whispeer>言語>LLM>言語>TTS>音声って仕組みが普通だと思うけど、音声>whisperorLLM>音声できたらいいなと思った。unityとかで音声シュミレーション追加されればできる?
6. 次に読むべき論文はあるか?
-蒸留でwhisperを高速にした: DISTIL-WHISPER: ROBUST KNOWLEDGE
DISTILLATION VIA LARGE-SCALE
PSEUDO LABELLING
-音声から音声出力で気になった: Chameleon: Mixed-Modal Early-Fusion Foundation
Models
論文情報・参考資料・次に読む?記事
- この論文 : Robust Speech Recognition via Large-Scale Weak Supervision
- Introducing Whisper:ここで早口の言葉、アクセントがある言葉とかを文字列に変えてるよ。
- gitにソースある
あとがき
後細かく面白点いっぱいあるので、ほそぼそと追記していくかも?
記事よかったら、いいね♡ 押してね!
Discussion