はじめに
今回は、音声認識AIのWhisperをローカル環境で使用する方法を詳しく紹介します。
Whisperは有料でAPI利用もできるが、今回は無料でローカルインストールして使用する。
Whisperとは
Whisperとは、ChatGPTなどを開発したOpenAI社が提供している音声認識AIである。Whisperは機械学習アルゴリズムと深層学習を駆使して、高度な音声認識を実現している。
また、Whisperは日本語や英語など約100言語に対応している。
詳しいアルゴリズムなどは以下のリンクを参照してください。
環境
今回使用する私の環境は以下の通りです。
-PC内環境-
OS : Windows11
CPU : Intel Corei5-10400F
GPU : NVIDIA GeForce GTX 1660 SUPER ... GPUはなくても動くがあったほうが快適
Python 3.12.2 (Python 3.7以上が必要)
venv : 仮想環境構築
Cuda Toolkit : 12.1 ... NVIDIAのGPUを活用した並列コンピューティングを行うための開発ツールキット
FFmpeg ... オーディオやビデオを録画、変換、およびストリーミングするためのオープンソースのマルチメディアフレームワーク
環境構築
仮想環境構築
venvを使った仮想環境構築のやり方は以下を参照。
ここでの仮想環境の名前([venv_NAME])は"whisper"とする。
CUDA Toolkit
今回はCUDA Toolkit 12.1をダウンロードする。(Pytorchとバージョンをそろえる。)
以下のように自分の環境を指定しダウンロードする。
Pytorch
CUDA Toolkitと同じバージョンを指定してインストールする。今回の場合は+cu121のPytorchをインストール。
以下のように自分の環境の指定を行う。
すると画像の「Run this Command」にインストールするためのコマンドが生成される。これを仮想環境上に入力していインストールを行う。
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
FFmpeg
以下の手順でFFmpegをダウンロードを行う。また、FFmpegを使用するにはPassを通す必要がある。
まず、画像の「ffmpeg-master-latest-win64-gpl.zip」を指定してダウンロードする。(ダウンロードを行ったフォルダーをメモすると良い。)
次にFFmpegのPathを通す。
Windowsの検索欄に「システム環境変数の編集」と入力して実行する。
次に「環境変数」を実行。
「[USER名]のユーザー環境変数(U)」の「Path」を実行する。
「新規作成」を実行し、先ほどFFmpegをダウンロードしたファイルの一つ下のディレクトリにある「bin」までのPathを通す。
[USER_PASS]\ffmpeg-master-latest-win64-gpl-LatestAuto-Build (2024-05-31 1250)\bin
「OK」を押してウィンドウを閉じる。
ライブラリのインストール
Whisperのインストールを行っていく。
pip install git+https://github.com/openai/whisper.git
上のコマンドを実行することで以下のパッケージがインストールされる。
- numpy
- torch
- tqdm
- more_itertools
- transformers
- ffmpeg-python
テスト実行
では今から、Whisperのサンプル音声の文字起こしを行っていく。
今回はサンプル音声データの文字起こしを行う。こちらの音声ファイルを拝借しました。
サンプル音声の内容は以下の通り。
過去最強クラスの台風14号が近づいてきています。九州南部、そして北部の皆さんを中心に防風、高波、高潮や大雨などに最大級の警戒をしてください。
プログラム
サンプルプログラムは以下の通りである。
import whisper
# モデルのロード
model = whisper.load_model("base")
# 音声ファイルのパス
audio_path = "file_path"
# 音声ファイルの文字起こし
result = model.transcribe(audio_path)
# 結果を表示
print(result["text"])
このプログラムはシンプルにモデルをロードして結果のテキストを出力するプログラムである。「file_path」のところを音声ファイルとする。また、モデルは公式ドキュメントに以下のような記載がある。
Size | Parameters | English-only model | Multilingual model | Required VRAM | Relativ speed |
---|---|---|---|---|---|
tiny | 39 M | tiny.en | tiny | ~ 1 GB | ~ 32 x |
base | 74 M | base.en | base | ~ 1 GB | ~ 16 x |
small | 244 M | small.en | small | ~ 2 GB | ~ 6 x |
medium | 769 M | medium.en | medium | ~ 5 GB | ~ 2 x |
large | 1550 M | N/A | large | ~ 10 GB | 1 x |
今回のプログラムではテストとして標準の「base」モデルで行う。
結果
プログラムを実行した結果は以下の通りになる。
過去最強クラスの台風14号が近づいてきています。九州南部、そして北部の皆さんを中心に防風、高波、高市屋大雨などに最大球の警戒をしてください。
出力の結果、「高潮や」を「高市屋」と誤字しているだけだった。