0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Pythonで作る簡易Video Transcript生成ツール(Whisper + FFmpeg)

0
Posted at

屏幕截图 2026-07-31 163635.png

はじめに

動画から文字起こしをしたいとき、毎回手動で聞き取るのは非常に手間がかかります。今回は WhisperFFmpeg を組み合わせて、動画ファイルから自動で Video Transcript を生成する簡易パイプラインをPythonで実装してみました。

処理の流れはシンプルです。

動画ファイル → FFmpegで音声抽出 → Whisperで文字起こし → テキスト出力

1. 必要なライブラリのインストール

pip install openai-whisper
brew install ffmpeg  # Macの場合

Whisperは内部でFFmpegを利用するため、事前にFFmpegがパスに通っている必要があります。

2. 動画から音声を抽出する

まずはFFmpegを使って動画ファイルから音声(wav形式)を取り出します。

import subprocess

def extract_audio(video_path: str, audio_path: str = "output.wav"):
    command = [
        "ffmpeg", "-i", video_path,
        "-ar", "16000", "-ac", "1",
        audio_path, "-y"
    ]
    subprocess.run(command, check=True)
    return audio_path

サンプリングレートを16kHz、モノラルに指定しているのは、Whisperが想定する入力形式に合わせるためです。

3. Whisperで文字起こしを実行

音声ファイルができたら、Whisperモデルに渡してVideo Transcriptを生成します。

import whisper

def transcribe_audio(audio_path: str, model_size: str = "base"):
    model = whisper.load_model(model_size)
    result = model.transcribe(audio_path, language="ja")
    return result["text"]

model_sizetinylargeまで選択可能で、精度と処理速度のトレードオフになります。日本語動画の場合、medium以上を使うと認識精度が安定します。

4. パイプラインとして統合する

最後に、動画パスを渡すだけでVideo Transcriptを出力する関数にまとめます。

def video_to_transcript(video_path: str) -> str:
    audio_path = extract_audio(video_path)
    transcript = transcribe_audio(audio_path)
    return transcript

if __name__ == "__main__":
    text = video_to_transcript("sample.mp4")
    with open("transcript.txt", "w", encoding="utf-8") as f:
        f.write(text)
    print("Video Transcriptの生成が完了しました。")

これで動画ファイル1本を渡すだけで、音声抽出から文字起こしまでを自動化できます。

おわりに

Whisperは無料でローカル実行できるため、API利用料を気にせずVideo Transcriptを量産できるのが大きな利点です。今回は最小構成でしたが、話者分離(Speaker Diarization)やフィラーワード除去を組み合わせると、さらに実用的なツールに拡張できます。次回はその発展版を紹介する予定です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?