【Whisper】音声ファイルを文字起こしする方法
アプリケーション

【Whisper】音声ファイルを文字起こしする方法

Whisper-v3-largeを使い、ドラッグ&ドロップで簡単に音声ファイルを文字起こしする方法

8k39

8k39

公開日: 2025年9月29日

【Whisper】音声ファイルを文字起こしする方法

はじめに

※この記事ではWindows環境前提で作成しました。

音声ファイルの文字起こしを行いたい場合、GroqCloudのようなクラウドサービスを使用する方法もありますが、ローカル環境で処理したい場合もあります。

大きいファイルはクラウドサービスを使用する事でPCを付けっぱなしにする必要もなく、より高速で処理できます。

事前準備

必要な環境

  • Python 3.8以上
  • FFmpeg

インストール手順

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

python、pipがインストールされている事を確認するためにバージョン確認を行う。

python --version
pip --version

バージョンが書かれていたら依存関係をインストールする。

# PyTorchのインストール(CUDA版)
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
 
# Whisperのインストール
pip install openai-whisper
 
# その他の依存関係
pip install ffmpeg-python

2. FFmpegのインストール

Whisperは音声ファイルの変換にFFmpegを使用します。

自動インストール(推奨)

# Windows(Chocolatey使用)
winget install ffmpeg

Wingetを使用することでパスまで自動で通してくれます。

一応インストール後はターミナルでバージョン確認を行って、パスが通ってるか確認する。

ffmpeg -version

スクリプトのダウンロード

完成したスクリプトとBATファイルをGitHubで配布しています:

Whisper-bat - GitHub Repository

リポジトリには以下が含まれています:

  • whisper_transcribe.py: メインのPythonスクリプト
  • whisper_drag_drop.bat: ドラッグ&ドロップ用BATファイル
  • README.md: 詳細な使用方法

ダウンロード手順

  1. GitHubリポジトリにアクセス
  2. Releaseからダウンロード
  3. ZIPファイルを解凍
  4. 任意のフォルダに配置

使用方法

1. 基本的な使用方法

  1. 音声ファイルを準備
  2. whisper_drag_drop.batに音声ファイルをドラッグ&ドロップ
  3. 自動で処理が開始
  4. 完了すると変換元ファイルと同じフォルダに_transcript.txtファイルが生成

2. 対応音声形式

  • MP3
  • WAV
  • M4A
  • FLAC
  • AAC
  • OGG
  • WMA

3. 出力ファイル例

# sample_audio_transcript.txt の文字起こし結果

言語: ja
全文:
こんにちは。今日はローカルでWhisperを動かす方法について説明します。まず最初に必要な環境を確認しましょう。

==================================================
セグメント別詳細:

[00:00:00.000 -> 00:00:03.840] こんにちは。今日はローカルでWhisperを動かす方法について説明します。
[00:00:03.840 -> 00:00:07.200] まず最初に必要な環境を確認しましょう。

モデルの種類と性能

モデル サイズ VRAM使用量 精度 処理速度
tiny 39MB ~1GB 非常に高速
base 74MB ~1GB 高速
small 244MB ~2GB 普通
medium 769MB ~5GB やや遅い
large-v3 1550MB ~10GB 最高 遅い

モデル変更方法

スクリプト内の以下の行を変更:

# 高速だが精度が低い
result = transcribe_audio(audio_file, model_name="base")
 
# バランス型
result = transcribe_audio(audio_file, model_name="medium")
 
# 最高精度(推奨)
result = transcribe_audio(audio_file, model_name="large-v3")

バッチ処理版

複数ファイルを一度に処理する場合:

def batch_transcribe(audio_folder):
    model = whisper.load_model("large-v3")
    
    audio_files = []
    supported_formats = ['.mp3', '.wav', '.m4a', '.flac']
    
    for file in Path(audio_folder).glob('*'):
        if file.suffix.lower() in supported_formats:
            audio_files.append(file)
    
    for audio_file in audio_files:
        print(f"処理中: {audio_file.name}")
        result = model.transcribe(str(audio_file), language="ja")
        
        output_path = audio_file.parent / f"{audio_file.stem}_transcript.txt"
        save_transcription(result, str(output_path))

参考リンク