1 概要と背景
Whisperは、OpenAIが開発した汎用音声認識システムであり、多言語の音声をテキストに変換することを目的とする。2022年9月にオープンソースとして公開され、エンコーダ・デコーダ型のTransformerアーキテクチャを採用する。98言語以上をサポートし、ノイズの多い環境やアクセントの異なる音声にも高い耐性を持つ。単一モデルで転写、翻訳、言語識別、タイムスタンプ付き出力を処理できる点が特徴である。
1.1 開発の経緯
Whisperの開発は、OpenAIが大規模な弱教師あり学習の可能性を探る研究の一環として始まった。従来の音声認識モデルは、特定のドメインや言語に特化したデータセットに依存する傾向があったが、Whisperはインターネットから収集した約68万時間の多様な音声データを用いることで、汎用性を高めた。このアプローチにより、事前にラベル付けされたデータに頼らず、自動生成されたテキストを使用してモデルを訓練できるようになった。
1.2 カテゴリと位置づけ
Whisperは、自動音声認識(ASR)システムとして分類されるが、特に「汎用型」として位置づけられる。競合製品(例えばGoogle Speech-to-TextやAmazon Transcribe)と比較して、オープンソースである点や、単一モデルで多様なタスクを処理できる点で異なる。また、音声認識の分野では、Whisperは研究コミュニティにおけるベンチマークの一つとして広く参照されている。
2 技術的詳細
2.1 アーキテクチャ
Whisperは、Transformerベースのエンコーダ・デコーダ構造を採用する。入力音声は対数メルスペクトログラムに変換され、エンコーダで処理された後、デコーダがテキストを生成する。アーキテクチャ全体は、少ない訓練データでも高い性能を発揮するように設計されている。
2.1.1 エンコーダー
エンコーダーは、複数のTransformerブロックから構成され、入力された音声特徴量を高次元の表現に変換する。各ブロックは自己注意機構とフィードフォワードネットワークを持ち、時間的な依存関係を捕捉する。エンコーダーの出力は、デコーダーがテキストを生成するためのコンテキストとして利用される。
2.1.2 デコーダー
デコーダーは、エンコーダーの出力と過去の生成トークンをもとに、逐次的にテキストを出力する。通常のTransformerデコーダーと同様に、因果的な自己注意機構とエンコーダー・デコーダー注意機構を備える。デコーダーは、タスクに応じて特別なトークン(例:転写、翻訳、言語ID)を先頭に付与することで、マルチタスク処理を実現する。
2.1.3 マルチタスク学習
Whisperでは、単一のモデルが転写、翻訳、言語識別、タイムスタンプ出力を同時に学習する。訓練時には、タスクごとに異なるプロンプトトークンが与えられ、モデルはそれに応じて出力を調整する。この仕組みにより、タスクごとに別々のモデルを用意する必要がなくなる。
2.2 トレーニングデータと手法
2.2.1 データ収集と前処理
訓練データは、インターネット上の音声コンテンツ(ポッドキャスト、会議録音、動画の音声トラックなど)から収集された。収集後、自動音声認識(Whisper自体の初期モデルなど)を用いて弱いラベルが付与され、ノイズ除去や長さの正規化が行われた。最終的なデータセットは約68万時間に及び、98言語以上をカバーする。
2.2.2 弱教師あり学習
Whisperの訓練は、弱教師あり学習に基づく。自動生成されたラベルには誤りが含まれるが、大量のデータを利用することでモデルがノイズに強くなると同時に、汎用的なパターンを学習する。この手法は、人手による正確なラベル付けが高コストな問題を解決する。
2.3 対応言語とタスク
2.3.1 転写
転写タスクでは、Whisperは音声を同じ言語のテキストに変換する。98言語以上に対応し、英語の精度が最も高いが、他の言語でも実用的な性能を発揮する。出力には、単語ごとのタイムスタンプを付与することも可能である。
2.3.2 翻訳
翻訳タスクでは、任意の言語の音声を英語のテキストに変換する。Whisperは、転写と翻訳を同時に学習しているため、音声翻訳モデルとしても機能する。ただし、英語以外への翻訳はサポートされていない。
2.3.3 言語識別
言語識別タスクでは、入力音声の言語を自動的に判別する。Whisperは、デコーダーに言語IDトークンを出力させることで、98言語の中から該当する言語を特定する。この機能は、転写や翻訳の前処理として利用される。
3 モデルバリエーションと性能
3.1 モデルサイズ一覧
Whisperは、パラメータ数と速度の異なる5つのモデルサイズを提供する。サイズが大きいほど精度が高いが、リソース消費も増加する。
3.1.1 Tiny
パラメータ数約3900万。軽量でCPUでも動作可能だが、精度は低く、ノイズの多い音声や複雑なタスクには不向き。
3.1.2 Base
パラメータ数約7400万。Tinyより精度が向上し、エッジデバイスでの使用に適する。
3.1.3 Small
パラメータ数約2億4400万。中程度のリソースで良好な精度を発揮し、多くの一般的な用途に推奨される。
3.1.4 Medium
パラメータ数約7億6900万。高精度で、ノイズやアクセントの影響を受けにくい。GPUが必要。
3.1.5 Large
パラメータ数約15億5000万。最大規模で、最高の精度を誇る。翻訳タスクでも優れた性能を示す。
3.2 精度比較とベンチマーク
ベンチマークテストでは、LargeモデルがCommon VoiceやLibriSpeechなどの標準データセットで最も低い単語誤り率(WER)を達成する。例えば、英語のLibriSpeech cleanセットでWER約8%未満。SmallやMediumも実用的な精度を持つが、ノイズの多い環境ではLargeの優位性が顕著になる。
3.3 リソース要件と実行速度
TinyとBaseはCPUでもリアルタイム処理が可能だが、LargeはGPU(例:NVIDIA V100以上)を必要とする。実行速度はモデルサイズとハードウェアに依存し、Largeでは1秒の音声処理に数秒かかる場合がある。メモリ消費は、Tinyで約1GB、Largeで約10GBとなる。
4 応用とエコシステム
4.1 主なユースケース
4.1.1 自動字幕生成
動画プラットフォームや会議録画で、Whisperを用いて自動的に字幕を生成する。多言語対応により、国際的なコンテンツにも適用可能。タイムスタンプ付き出力は編集作業を効率化する。
4.1.2 音声検索と解析
大量の音声データ(例:電話録音、会議議事録)からキーワードを抽出したり、感情分析の前処理としてテキスト化する。Whisperの高精度が、誤検出の低減に貢献する。
4.1.3 補助技術としての利用
聴覚障害者向けのリアルタイム文字起こしや、音声操作インターフェースのバックエンドとして使用される。軽量モデル(Tiny、Base)はスマートフォンやウェアラブル機器への組み込みも可能。
4.2 関連ツールとライブラリ
OpenAIは公式のPythonライブラリwhisperを提供し、コマンドラインインターフェースも備える。コミュニティ開発のツールとして、faster-whisper(CTranslate2ベースの高速化)やwhisperX(話者分離機能付き)などがある。これらはHugging FaceのTransformersでも利用可能。
4.3 コミュニティとカスタマイズ
Whisperはオープンソースであり、GitHub上で活発なコミュニティが形成されている。ユーザーは、特定のドメイン(医療、法律など)向けにデータを追加してファインチューニングできる。プルリクエストやフォークによる改良が日常的に行われ、モデルの移植(ONNX、TensorRTなど)も進んでいる。
5 制約と課題
5.1 ノイズと専門用語への対応
Whisperは一般的なノイズには強いが、極端な背景音や音楽との混合音では精度が低下する。また、専門用語(医学、法律など)や固有表現(固有名詞、スラング)の認識率は訓練データの偏りに影響され、改善の余地がある。
5.2 プライバシーとデータの取り扱い
Whisperはローカル実行可能だが、処理する音声データに個人情報が含まれる場合、適切な管理が必要。特に、医療音声や録音の転記では、データの暗号化やアクセス制御が求められる。また、訓練データにインターネット上の音声が含まれるため、プライバシー侵害のリスクが指摘されている。
5.3 将来的な改善方向
今後の改善として、日本語など非英語言語の精度向上、エッジデバイス向けのさらなる軽量化、リアルタイム処理の最適化が期待される。また、話者識別や感情認識との統合、他の大規模言語モデルとの連携も研究が進んでいる。OpenAIはWhisperのアップデートを継続しており、コミュニティからのフィードバックを反映している。