概要
pythonで文字起こしできるOpenAIのWhisperが公開されたのでさっそくローカルで動かしてみました。
この間、stable diffusionをローカルで動かしたくてGPUを12Gぐらい積んだPCをうっかり買ったんですがこいつが役に立つ日が来そうです。
更新履歴
2022-11-19 CUDAを使う方法を追記
参考
OpenAI の Whisper の CLI 版を動かしてみたのだが、ローカルの PC でこのレベルの音声認識が動かせることにめちゃくちゃ感動…🥹😭🙏
認識精度が 𝑮𝑶𝑫 な上にちゃんと「!」とかのボイスの感嘆表現もキャッチしてて凄すぎる 𝑺𝑰𝑵𝑮𝑼𝑳𝑨𝑹𝑰𝑻𝒀……(続く)https://t.co/vdhBlbegso pic.twitter.com/98SmVo7cak— Torishima (@izutorishima) September 22, 2022
環境
Windows10
Python 3.9.12
コード
本体のインストール
whisper本体をインストールします。
pip install git+https://github.com/openai/whisper.git
ffmpegのインストール
ffmepegもインストールします。
が、chocoを使ってインストールするのが面倒だったので下記サイトからffmpegをダウンロードして、音声ファイルと同じフォルダに置いても動きました。
GPUを使う
GPUを使うにはGPU対応のtorchをインストールすると良いそうです。
一旦アンインストールしてインストールし直します。
pip uninstall torch pip install torch --extra-index-url https://download.pytorch.org/whl/cu116
CPUでmediumモデルを動かすと30秒あたりの書き出しに3分ぐらいかかってました。
が、GPUだと15分の音声が1分ぐらいで書き出し終わりました。すごいなGPU…。
動画。音声ファイルの書き出し実行
書き出しの実行をします。
この指定だと同じフォルダに文字起こししたshift-jisのtxtファイル(改行なし)と、字幕ファイルのvttファイルができます。
指定するファイルはmp3でもmp4でも大丈夫でした。便利だなあ…。
whisper --model medium --task transcribe --language Japanese 書き出したいファイル名.mp3
下記のような感じでターミナルに随時書き出されました。
modelはsmallよりmediumのほうがだいぶ精度が良かったです。疑問符とか感嘆符もついててすごいですね…、切り抜きとか捗りそう。
CUDAを使う
CUDAはGPUを並列処理で動かす仕組みらしいです。
コマンドで使う分には特に意味がなさそうですが設定してみます。
ちょうどCUDAに対応しているらしいNVIDIAのGPUを持っているので使ってみます。
使用しているGPUの最新のドライバをインストールします。
CUDA ツールキットをダウンロードしてインストールします。特にデフォルトからかえていません。
CUDA対応のpytorchのインストール。
python -m pip install --upgrade --force-reinstall torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu116
コマンドでpytorchのデフォルトを確認する。
whisper --help | findstr -i
下記のように「default: cuda」となっていれば使えているようです。
–device DEVICE device to use for PyTorch inference (default: cuda)
コマンド実行してみます。オプションで念のため「–device cuda」としてみました。タスクマネージャーを見るとGPUで動いているようです。
whisper --model medium --task transcribe --language Japanese '書き出したいファイル名.mp4' --device cuda
おわり。