今日は科学系のYouTube動画のAIをアシスタントとして使う視聴法の第3回で、動画から字幕をWhisperで作る方法をまとめてみます。
第2回で書いたようにChatGPTはYouTube動画から字幕を取り出すことができない(Geminiはできる)ので動画のスクリプトをWhisperというソフトで取り出してそれをLLMに入れて使うというのが定番のようです。手軽な方法としてはChromeの機能拡張で字幕を取得してそれを使ってもよいわけです。ただ取得されるYouTubeの自動生成字幕はまちがっていることも多い(固有名詞の間違い、専門用語の間違いなど)ので、ChatGPTのおすすめはWhisperで字幕を作ることだそうです。NIH videocastでも字幕がダウンロードできますが、これも結構間違いがはいっています。ということで、Whisperの使い方をしらべてみました。
Ubuntuでの利用を前提にまとめてみます。
動画ファイルから音声のみを取り出してwavファイルをつくっておいて、それを利用します。動画からwavファイルをとりだすには、yt-dlpなどのツールを使ってください。
次のコマンドでURLとかいてあるところに動画のurlを書き込んで使います。
yt-dlp -x –audio-format wav URL
1)Whisperには二種類あります。OpenAI Whisperが公式版ですが、Pythonで動きGPU対応ですが少し重いという欠点があります。今はfaster-whisperが主流になっているそうです。研究用にはこちらがおすすめで、高速、CPUのみでも実用的、GPUにも対応、メモリー効率がよいなどよいことずくめのようです。
2)Whisperは基本的にオフラインで動作します。AIですので、最初の一回だけは字幕生成のためのモデルをダウンロードするために、ネットにつなぐ必要があります。Ubuntuでのfaster-whisperのインストールは次のコマンドで行います。
pip install faster-whisper
3)Pythonで動くので、インストールがちゃんとできたかをコマンドラインで確認します。Bashで
python
とうってpythonを起動しておいて、コマンドラインでつぎのコマンドを入れます。
from faster_whisper import WhisperModel
4)初回のみモデルがダウンロードされます。モデルは以下のようなものがあります。
| モデル | 精度 | 速度 |
| tiny | 低 | 速 |
| base | 低 | 速 |
| small | 中 | 普通 |
| medium | 高 | 遅 |
| large | 最高 | 遅 |
研究用には、small, mediumがよいそうです。ダウンロードしたモデルは、~/.cacheに保存されます。これ以降は完全オフラインで動きます。
4)実行例です。Pythonで動くのでpythonコードを例として挙げておきます。
from faster_whisper import WhisperModel
model = WhisperModel(“small”)
segments, info = model.transcribe(“lecture.wav”)
for segment in segments:
print(segment.text)
このコードでは、lecture.wavという音声ファイルをsmallモデルでテキスト化しています。
(私のコンピュータだと、1時間の動画を字幕にするのに、20-40分かかります。もっと高速化する方法については次回にまとめます。)
これでsegment.textに字幕が生成されました。ひとまずこのあたりまで試してみてください。(第4回につづきます)