はじめに
今回は Windows 端末で Whisper を GPU で動かしてみました。
Whisper は CPU でも動かすことができますが、やはり CPU で処理するとかなり時間がかかってしまい、実用的に使うのは難しい感じでした。
そこで、 FPS ゲームや Minecraft のために買ったはいいけど、ろくにゲームをする時間がなくて、宝の持ち腐れになっていたゲーミングPCを使って、 Whisper を動かしてみました。
なお、 CPU で Whisper を動かすだけなら、下記の記事の通りで OK です。
この記事の後掲として openai-whisper よりも早く動作すると言われている faster-whisper を使った文字起こしの記事も作成しました。
後掲の記事は下記からご覧ください。
環境
今回の環境は下記のとおりです。
なお、 NVIDIA 製の GPU が必須になります。
端末
- OS: Windows 11 Home
- CPU: 13th Gen Intel Core i7-13620H 2.40 GHz
- メモリ: 32GB
- GPU: NVIDIA GeForce RTX 4060 Laptop(VRAM:8GB)
Python 実行環境
Python は10系統のものが必要になるので、注意してくだだい。
- Python: 3.10.11
- Python バージョン管理ツール: pyenv-win(ver 3.1.1)
- Python パッケージ管理ツール: Poetry(ver 1.8.3)
Python 仮想環境の構築方法はこちらご覧ください。
環境構築(セットアップ編)
Whisper を GPU で動かすには下記のものが必要になります。
- Build Tools for Visual Studio
- CUDA Toolkit(ver.11.8)
- cuDNN Library
- FFmpeg
Build Tools for Visual Studio
ダウンロード
下記のサイトから Build Tools for Visual Studio をダウンロードします。
画面を下にスクロールします。
Tools for Visual Studio
をクリックし、 Build Tools for Visual Studio 2022
の ダウンロード
をクリックしてダウンロードします。
インストール
ダウンロードした vs_BuildTools
を実行し、インストーラーを起動します。
続行(O)
をクリックします。
C++ によるデスクトップ開発
にチェックを入れ、右下の インストール(I)
をクリックします。
インストールが完了するのを待ちます。
インストールが完了したら、 OK(O)
をクリックし、画面右上の ☓
をクリックして、インストーラーを閉じます。
CUDA Toolkit
CUDA Toolkit のバージョンは 11.8 を利用します。
ダウンロード
下記のサイトから CUDA Toolkit をダウンロードします。
CUDA Toolkit 11.8.0
をクリックします。
利用してる環境に合わせて選択していきます。
-
Operating System
はWindows
をクリックします。 -
Architecture
はx86_64
をクリックします。 -
Version
は11
をクリックします。 -
Installer Type
はexe (local)
をクリックします。 -
Download (3.0GB)
をクリックして、ダウンロードします。
インストール
ダウンロードした cuda_11.8.0_522.06_windows.exe
を実行し、任意のフォルダに解凍します。
解凍が終わるのを待ちます。
解凍が終わるとインストーラーが自動で起動します。
システムの互換性チェックが終わるのを待ちます。
同意して続行する(A)
をクリックします。
インストールオプションは 高速(推奨)(E)
のまま 次へ(N)
をクリックします。
I understand, and wish to continue the installation regardless.
にチェックを入れて NEXT
をクリックします。
インストールが完了するのを待ちます。
次へ(N)
をクリックします。
閉じる(C)
をクリックします。
cuDNN Library
ダウンロード
下記のサイトから cuDNN Library をダウンロードします。
Download cuDNN Library
をクリックします。
下記の順で選択していきます。
-
Operating System
はWindows
をクリックします。 -
Architecture
はx86_64
をクリックします。 -
Version
はTarball
をクリックします。 -
CUDA Version
は11
をクリックします。 -
Download (640.3MB)
をクリックして、ダウンロードします。
補足
cuDNN Library はWebサイトを開いた際に表示される最新バージョンをダウンロードすれば大丈夫です。
ライブラリの展開
ダウンロードした cudnn-windows-x86_64-9.0.0.312_cuda11-archive.zip
を解凍し、下記の3つのフォルダを CUDA をインストールしたフォルダに移動させます。
- bin
- include
- lib
※デフォルトでの CUDA のフォルダは C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8
になります。
FFmpeg
ダウンロード
下記のサイトから FFmpeg をダウンロードします。
ffmpeg-master-latest-win64-gpl.zip
をクリックしてダウンロードします。
インストール
ダウンロードした ffmpeg-master-latest-win64-gpl.zip
を解凍して、任意のフォルダに配置します。
フォルダを配置したら bin
フォルダに Path を通します。
環境構築(Python 編)
Whisper を使うにあたり Python 実行環境が必要になります。
今回は pyenv-win と Poetry を利用する前提で進めています。
Python 実行環境の構築については、下記を参照してください。
新規環境構築
下記の記事を参考にし、新しく Pyhon 実行環境を構築します。
なお、 Python は10系統のものが必要になります。
今回は、 Python 3.10.11 を利用しました。
補足
今回作成した仮想環境のプロジェクト名はWhisperExecutionEnvironment
としています。
PyTorch のインストール
Poetry を利用している場合は pip
コマンドとは異なり、下記のコマンドを実行します。
poetry source add --priority=explicit pytorch-gpu-src https://download.pytorch.org/whl/cu118
poetry add --source pytorch-gpu-src torch torchvision torchaudio
Whisper のインストール
Poetry を利用している場合、普通に add
コマンドを利用してもインストール出来ません。
下記の手順でインストールします。
-
pyproject.toml を開きます。
-
[tool.poetry.dependencies]
にopenai-whisper = {git = "https://github.com/openai/whisper.git", rev = "v20231117"}
を追記します。[tool.poetry] name = "whisperexecutionenvironment" version = "0.1.0" description = "" authors = ["IoriGunji-Vantiq <igunji@vantiq.com>"] readme = "README.md" [tool.poetry.dependencies] python = "^3.10" torch = {version = "^2.5.1+cu118", source = "pytorch-gpu-src"} torchvision = {version = "^0.20.1+cu118", source = "pytorch-gpu-src"} torchaudio = {version = "^2.5.1+cu118", source = "pytorch-gpu-src"} + openai-whisper = {git = "https://github.com/openai/whisper.git", rev = "v20231117"} [[tool.poetry.source]] name = "pytorch-gpu-src" url = "https://download.pytorch.org/whl/cu118" priority = "explicit" [build-system] requires = ["poetry-core"] build-backend = "poetry.core.masonry.api"
-
poetry update
コマンドを実行します。
補足
私の環境では依存関係にあるllvmlite (0.34.0)
のインストールに失敗しました。
以下の手順で解決しました。
poetry add llvmlite
コマンドを実行します。- 今度は
numba
がコケるので、poetry add numba
を実行します。
Whisper の実行
準備が整ったら Whisper を実行してみます。
poetry run whisper {your_file_name} --language Japanese --model medium --device cuda --output_dir data
poetry run whisper sample_voice.mp4 --language Japanese --model medium --device cuda --output_dir data
補足
実行に失敗する場合は、端末を再起動してみましょう。
参考文献
下記のサイトを参考にさせて頂きました。