AIを使ってYouTubeの科学動画(英語版など)を効率的に視聴しましょう!第3回 動画から字幕を作る方法

今日は科学系の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回につづきます)