Whisper WebUIで動画の字幕を無料でつける方法

スポンサーリンク
Whisper
スポンサーリンク

ローカル環境にWhiper WebUIをインストールして、動画に字幕を付けてみました。OpenAIは有料でWhisper APIでの文字起こしサービスも提供していますが、自分でローカルにオープンソースのWhiperをセットアップすると無料で使うことができます。最近、動画を作る機会があって、Filmoraをインストールしました。購入した後で気付いたのですが、Filmoraで、自動字幕生成機能を使うには別途月額使用料が掛かります。(※最新のFilmoraでは字幕生成機能はサブスクに含まれてるようになって、別途料金が掛からないようになりました。ありがとう、Filmoraさん!)しかし、Whisperを使えば無料で文字起こしができます。Whisper WebUIをローカル環境にインストールして、実際に動画に字幕をつけてみて使い勝手を確認しました。

Whisperの環境構築

Whisperは過去のブログでも検証したことがあり、その中でWhisper WebUIをインストールしたことがあります。ここでは再度インストール方法をまとめてみます。

Python3.10のインストール

Python3.10をインストールします。Python3.10は、ここからダウンロードします。

上のサイトからWindowsの方はWindows installer (64-bit)を選んでインストーラーをダウンロードして実行してください。実行すると下のような画面が表示されますので、「Add Python 3.10 to PATH」にチェックを入れてから、「Install Now」でインストールをしましょう。

ffmpegのインストール

Whisperは音声の読み込みなどを行うためにffmpegをインストールする必要があります。ここからffmpegをダウンロードします。

Windowsは「Windows build by BtbN」のリンクから、下記のページで「ffmpeg-master-latest-win64-gpl.zip」をダウンロードして、好きなところにzipファイルを解凍します。

解答したら、ffmpegを使えるようにするためにPATHを通します。解凍したffmpeg-master-latest-win64-gplのフォルダの中のbinフォルダのPATHをコピーして、「設定」の「環境変数名の編集」から、「新規」にPATHを追加します。

PCを再起動して、ターミナルで「ffmpeg」と入力して、インストールされているのを確認します。

ffmpeg
ffmpeg version N-108306-ge7a987d7c9-20220923 Copyright (c) 2000-2022 the FFmpeg developers
  built with gcc 12.1.0 (crosstool-NG 1.25.0.55_3defb7b)

GPUのCUDA環境のセットアップ

WhisperはNVIDIA製のGPUを持ったPCを使うことをお勧めします。NVIDIAのGPUを搭載したPCでGPUで計算させるためにはCUDA環境のセットアップが必要になります。下の記事にまとめていますので、セットアップをしてください。

Whisper WebUIのセットアップ

それでは準備ができたのでWhisper WebUIのセットアップをしていきます。今回は、以下のaadnk氏が開発したwhisper-webuiをセットアップします。

Whisper Webui - a Hugging Face Space by aadnk
Discover amazing ML apps made by the community

まずは、Whisper WebUIをセットアップする場所を決めて、その場所をコマンドプロンプトやPowerShellなどのCLIで開きます。(フォルダを選択してShift+右クリックから選択できると思います。)

以下、テキストで以下のコマンドを入力することで、CLIを開いた場所にPython3.10の仮想環境を作成して、Whisper WebUIをセットアップしていきます。

py -3.10 -m venv venv
.\venv\Scripts\Activate.ps1
python -m pip install -U pip setuptools
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu117
git clone https://huggingface.co/spaces/aadnk/whisper-webui
cd .\whisper-webui\
pip install -r requirements.txt

これでセットアップが完了です。venv仮想環境に入って以下のコマンドでWhisper WebUIを起動します。

python app.py --input_audio_max_duration -1 --server_name 127.0.0.1 --auto_parallel True

ただし、毎回、仮想環境を立ち上げてコマンドを入力するのは面倒なので、起動用のバッチファイルを作ります。以下の「start.bat」を「whisper-webui」の中に置きます。

@echo off
call ..\venv\Scripts\activate.bat
start python app.py --input_audio_max_duration -1 --server_name 127.0.0.1 --auto_parallel True
start http://127.0.0.1:7860

Whisper WebUIはマウスで「start.bat」をクリックすることで起動します。

Using whisper implementation: whisper
[Auto parallel] Using GPU devices ['0'] and 8 CPU cores for VAD/transcription.

Running on local URL:  http://127.0.0.1:7860

To create a public link, set `share=True` in `launch()`.

指示されたURLにブラウザでアクセスすることで、Whiser WebUIの画面を表示されます。

Whisper WebUIで字幕生成

それでは字幕生成をします。詳しいWhisper WebUIのドキュメントは以下のリンクにあります。ここでは、動画あるいは音声ファイルから、字幕用のSRT形式のファイルを生成する方法を確認します。

docs/options.md · main · Kristian Stangeland / Whisper Webui · GitLab
An HTML WebUI for OpenAI's Whisper AI model that can transcribe and translate audio. The UI supports transcribing audio ...

Whisper WebUIの文字お越しの設定

元となる動画ファイルや音声ファイルをWhisper WebUIにアップロードします。Filmoraの場合は、文字起こししたい動画を右クリックで選択して、「エクスプローラに表示」でファイルの保存場所を開けるので、そのままファイルを選んでWhisper WebUIにアップロードします。

①モデルを選択する
使ってみた感じではmediumで十分な精度で文字起こしができるようです。largeを選ぶと文字起こしに時間掛かりますが、もし、mediumで精度が出ない場合は試してみてもいいと思います。また、もし、PCの性能が低くて時間が掛かりすぎる場合はsmallやbaseなどの別のモデルを試してください。
初めて使うときはモデルをダウンロードするのに少し時間が掛かります。

②言語を選択する
Whisperでは自動で言語を判別してくれますが、もし、言語が分かっている場合は指定した方が良いです。

③文字起こししたい動画や音声をアップロード
ドラッグ&ドロップなどでファイルをアップロードします。

④transcribeを選択する
文字起こしの場合はtranscribeを選択します。translateを選択すると英語に翻訳されます。

⑤silero-vadを選択する
ここはsilero-vadを選択すると良いです。文字起こしの推算をする音声データの区切り方になりますが、silero-vadを選ぶと声の切れ目で切って文字起こしをしてくれるので、自然な文字起こしになります。

⑥文字起こし開始
送信ボタンを押すと文字起こしを開始します。私のPCで50秒余りの動画の文字起こしを約20秒でやってくれました。文字起こしする動画やPCによって時間は変わります。

文字起こし結果の確認

WebUIの右側に文字起こし結果が表示されます。「srt」の拡張子をついたファイルが字幕ファイルになりますので、クリックしてダウンロードします。

Filmoraでの使用

ダウンロードしたSRTファイルはそのままFilmoraの画面にドラッグすると、区切りなども入っており、そのまま字幕になります。あとは音声を見ながら微調整をすると字幕生成の完成です!

ちなみにダウンロードしたSRTファイルの中身はこのようになっています。

1
00:00:00,000 --> 00:00:07,000
ローカル環境にWhisper Web UIをインストールして
動画に字幕を付けてみました

2
00:00:07,000 --> 00:00:14,000
OpenAIは有料でWhisper APIの文字おこしサービスも提供していますが

3
00:00:14,000 --> 00:00:22,000
自分でローカルにOpen SourceのWhisperをセットアップすると
無料で使うことができます

4
00:00:22,000 --> 00:00:28,000
最近動画を作る機会があって フィルモラをインストールしました

5
00:00:28,544 --> 00:00:38,144
購入した後で気づいたのですが
フィルモラで自動字幕生成機能を使うにはペット・月額使用量がかかります

かなり精度が高いので、修正は少なくて済みそうですね。今回はWhisper WebUIを使って無料でFilmoraに字幕をつける方法を説明しました。Filmoraだけではなく、いろいろな場面で文字起こしが使えるので、いいですよね。

ちなみに、Whisper WebUIはオンライン上の動画ファイルや、マイクからのリアルタイムの文字起こしにも対応しているので、是非ご活用ください。

Whisper
スポンサーリンク
鷹の目週末プログラマー

コメント