OpenAIのwhisperの使い方
OpenAIのWhisperは、多言語に対応した音声認識モデルで、音声ファイルをテキストデータに変換することができます。
オープンソースで、自分で環境を用意するなら無料で使えるのがポイント。
>Introducing Whisper (OpenAIのWhisper紹介ページ)
以下に、Whisperの基本的な使い方を説明します。
Whisperのインストール
Whisperを使用するためには、まずPython環境が必要です。Python 3.7以上が推奨されています。Whisperをインストールするには、以下のコマンドを実行します。
pip install git+https://github.com/openai/whisper.git
音声ファイルの準備
Whisperを使用するには、音声ファイルが必要です。サポートされているファイル形式には、mp3、mp4、mpeg、mpga、m4a、wav、webmなどがあります。
Whisperの実行
Whisperを使用して音声ファイルをテキストに変換する基本的な手順は以下の通りです。
Whisperモデルのロード
Pythonスクリプト内でWhisperモデルをロードします。
import whisper model = whisper.load_model("base") # 'base'はモデルのサイズを指定 音声ファイルの読み込みと実行 音声ファイルを読み込み、モデルを使用してテキストに変換します。
result = model.transcribe("path/to/audio/file.wav") print(result["text"])
言語の指定と翻訳
Whisperでは、特定の言語を指定して認識を行うことができます。また、音声を英語に翻訳する機能もあります。
result = model.transcribe("path/to/japanese/audio/file.wav", language="Japanese") print(result["text"]) # 日本語のテキストが出力される 翻訳を行う場合 result = model.transcribe("path/to/japanese/audio/file.wav", task="translate") print(result["text"]) # 英語に翻訳されたテキストが出力される
Whisperは、さまざまなモデルサイズ(tiny, base, small, medium, large)を提供しており、精度と実行速度のバランスを取ることができます。大きなモデルほど精度は高くなりますが、実行にはより多くの計算リソースが必要です。
Whisperの必要スペック
ビデオカードのメモリは1Gから動作可能。音声認識レベルLargeの場合、最大10Gバイト使用します。
動作させるだけなら、そこまで高いスペックは不要ですが、音声認識スピードが変わってきます。
GitHub版Whisperの必要スペックは以下の通り。
- Pythonのバージョン: Python 3.8以上
- 使用ディスク量: 10.5 MB
- RAMの使用量: 1~10GB
Whisperのモデルサイズによるスペック要件
Whisperには複数のモデルサイズがあり、それぞれに異なるスペックが推奨されます。
- tinyモデル: 最も小さいモデルで、精度は低いが処理速度は速い。ひらがなやカタカナ、漢字の文字起こしが不十分であることが多い。
- baseモデル: tinyよりも大きく、精度が向上している。
- mediumモデル: API版Whisperに匹敵する精度で文字起こしを終えるが、その分、認識スピードは遅くなる。
- largeモデル: 性能順にlarge>small>base>medium>tinyとなっており、largeが最も高性能。
一番性能が高いlargeで、だいたい認識率が90%くらい。1000文字認識させたら、100文字くらいは間違える計算。
Whisperで会議の文字起こしはできる?
できなくはないのですが、正しく文字起こしできる率が90%だとやはり手直しが面倒。
今のAI文字起こしは、音声認識AI+自然言語処理AIの組み合わせで文脈から修正をおこなって認識率を上げるのが優秀とされています。
関連 AIで文字起こし
Whisper単体でも悪くはないのですが、自然言語処理AIと組み合わせて精度を上げたいところです。
Whisper+ボイスレコーダー+ChatGPTを組み合わせた、文字起こし特化型のソリューションも出てきています。
Whisperの使用用途は?
Whisper AIの主な使用用途は以下の通りです。
文字起こし(音声認識)
音声ファイルやマイク入力から、多言語の文字起こしが可能。会議の議事録作成やインタビューの書き起こしなどに活用できる。
音声翻訳
多言語音声を英語に翻訳する機能を持つ。言語の壁を越えたコミュニケーションに役立つ。
字幕生成
リアルタイムの音声認識結果を字幕として動画に重ねることができる。ライブ配信などで字幕を表示するのに便利。
言語学習
音声と文字起こし結果を対比して学習することで、リスニング力向上に役立てられる。
アクセシビリティ向上
聴覚障害者向けに音声コンテンツへの字幕付与が可能になる。
オープンソースで無料で使える点と、低スペックマシン上でも動作する軽さが魅力でしょうか。
OpenAIのAPIからも呼び出せるので、ChatGPTとの連携のしやすさもポイントになるでしょう。
whisperの論文
Whisperは、大規模な弱教師あり学習を用いた堅牢な音声認識システムです。特に低リソースの言語において優れた性能を発揮します。
AIの弱教師あり学習(Weakly Supervised Learning)というのは、ラベル情報が不完全または不正確なデータを用いて学習を行う手法のことです。ネット上のデータを学習する場合、対象データは不正確なことも多く、余計なデータに振り回されない「ノイズ耐性」が重要視されます。
Whisperの論文から、概要を見ていきましょう。
参考)Robust Speech Recognition via Large-Scale Weak Supervision
翻訳能力
Whisperは、CoVoST2データセットのX→英語翻訳において、特に低リソースの言語グループで優れた性能を示し、mSLAMを6.7 BLEUポイント上回りました。
しかし、高リソースの言語においては、MaestroやmSLAMに対して平均的に改善は見られませんでした。
Fleursデータセットを翻訳データセットとして再利用した分析でも、Whisperの翻訳能力が評価されました。
言語識別
Whisperの言語識別性能は、Fleursデータセットにおいて、事前に教師あり学習を行ったモデルに比べて劣っています。これは、Fleursの20の言語に対して訓練データがないことが一因です。
ノイズ耐性
Whisperは、特に自然な分布のシフト(例:パブのノイズ)に対して、ノイズ耐性が高いことが示されています。LibriSpeechデータセットを用いたテストでは、SNRが10 dB以下のノイズ環境でも性能が急激に低下しませんでした。
長文の書き起こし
Whisperモデルは30秒の音声チャンクで訓練されており、長い音声入力を一度に処理することはできません。しかし、TED-LIUM3やCORAALなどのデータセットを用いたテストでは、商用のASRサービスと競合する性能を示しました。
Whisperは、低リソース言語の翻訳やノイズ環境での音声認識において特に優れた性能を発揮する一方で、高リソース言語や言語識別においては既存のモデルに劣る場合があります。
Whisperのまとめ
- Whisperは、多言語に対応した音声認識モデルで、OpenAIが開発したオープンソースソフトウェアです。
- ネット情報のような、ラベル情報が不完全または不正確なデータを用いた弱教師あり音声認識システム。
- 自然言語処理AIと組み合わえて、文字起こしや音声翻訳、字幕生成などの用途に使われます。