超高性能の音声文字起こしをローカル環境で実現する"whisper"。
Chat GPTやStable Diffusionが世界に衝撃を与えるなか、SDと同時期の2022年9月にOpenAIがリリースしていたOSSである。
SDのおかげで、Python環境のハードルも下がった頃合いだと思うので、
whisper版のwebuiである、whisper-webUIの導入手順を備忘録的にまとめる。
【導入編】
①Python,Gitの導入
SD webuiと同じなので、説明は省略する。Python3.10.6を前提とする。
②フォルダの作成
git clone https://huggingface [dot] co/spaces/aadnk/whisper-webui ⇐goo blogの制限のため、URLを直接貼れません。
…で、whisper webUIのリポジトリを引っ張ってくる。
③venv環境の構築と実行
説明を省略してもよかったが、whisper用のvenv環境を作る。サブフォルダに作る流派。
python -m venv venv
venv\scripts\activate.bat
④pipでwhisperをいれる
pip install -r requirements.txt torchまわりが割と問題のある記載なのだがCPUなら問題ないかもしれない。
⑤ffmpegのライブラリを入れる
この辺を参考にされたいが、俺はPATH通すの面倒なのでBINの中のDLLをwhisper-webuiと同階層に置いた。
⑥webuiを起動する
python app.py --input_audio_max_duration -1 --auto_parallel True
ブラウザでhttp://127.0.0.1:7860にアクセスすると、SD webuiで見慣れた感じのUIが出てくるぞ
【実行編】
①ModelとLanguageを設定する
Modelはlarge-v2かlarge-v3。Languageはjapaneseを設定する。
②文字起こししたい音声ファイル・動画ファイルをUpload FilesにD&Dする。
③その他設定
- TaskのTranscribeが文字起こし。基本これを使う。
- VADはVoice Activity Detectorという発話部分検出モデルの設定。silero-vadかsilero-vad-skip-gapsでいい。音声セクションのギャップの取り扱いが違うらしい。
④送信を押すと処理が始まる。
【応用編】
・遅い。早くならんの??
faster whisperという処理の早いやつがある。
pip install -r requirements-fasterWhisper.txt でインストールされるが、追加設定がいる。
- torch+cu118の指定
上のrequirementだと、cudaじゃないやつが入ったかもしれない。あと、12系だと動かないので指定が必要。
pip install torch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 --index-url https://download.pytorch.org/whl/cu118 - config.json5を書き換える
"whisper_implementation": "whisper", ⇒ "whisper_implementation": "faster-whisper",
・実行時の引数やwebui上でのモデル・言語選択がだるい
config.json5を書き換えよう。
"input_audio_max_duration": 600, | ⇒ | "input_audio_max_duration": -1, |
"auto_parallel": false, | ⇒ | "auto_parallel": true, |
"default_model_name": "medium", | ⇒ | "default_model_name": "large-v3", |
"language": null, | ⇒ | "language": "japanese", |
・ワンクリックで起動したい
call .\venv\scripts\activate.bat
app.py
…あたりをbatファイルにしましょう。
先日、PCの入れ替えでやったことを書いてるが、上記の流れを再検証したわけではないので、そこらへんは要注意。
※コメント投稿者のブログIDはブログ作成者のみに通知されます