
アプリケーション
【Whisper】音声ファイルを文字起こしする方法
Whisper-v3-largeを使い、ドラッグ&ドロップで簡単に音声ファイルを文字起こしする方法

hakasaku
公開日: 2025年9月29日
【Whisper】音声ファイルを文字起こしする方法
はじめに
音声ファイルの文字起こしを行いたい場合、Groq Cloud APIのようなクラウドサービスを使用する方法もありますが、ローカル環境で処理したい場合もあります。
長い音声等、処理に時間がかかる場合は、クラウドサービスを使用する事でPCを付けっぱなしにする必要もなく、より高速で処理できます。
事前準備
必要な環境
- Python 3.8以上
- CUDA対応GPU(推奨:処理速度が大幅に向上)
- 8GB以上のRAM(Whisper-largeモデル使用時)
- 5GB以上の空きディスク容量
GPU要件について
- NVIDIA GPU: CUDA 11.8以降対応
- AMD GPU: ROCm対応(実験的)
- CPU only: 可能だが処理時間が長い
インストール手順
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
: 詳細な使用方法
ダウンロード手順
- GitHubリポジトリにアクセス
- Releaseからダウンロード
- ZIPファイルを解凍
- 任意のフォルダに配置
使用方法
1. 基本的な使用方法
- 音声ファイルを準備
whisper_drag_drop.bat
に音声ファイルをドラッグ&ドロップ- 自動で処理が開始
- 完了すると変換元ファイルと同じフォルダに
_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")
トラブルシューティング
よくある問題と解決法
1. CUDAエラー
RuntimeError: CUDA out of memory
解決法:
- より小さなモデルを使用(medium → base → tiny)
- 他のプロセスを終了してメモリを解放
fp16=True
オプションを追加
2. FFmpegエラー
FileNotFoundError: ffmpeg was not found
解決法:
- FFmpegをインストール
- 環境変数PATHにFFmpegを追加
3. 処理が異常に遅い
原因: CPUで処理されている 解決法:
- CUDAドライバを正しくインストール
- PyTorchのCUDA版を再インストール
4. 日本語の認識精度が悪い
解決法:
language="ja"
パラメータが設定されているか確認- より大きなモデル(large-v3)を使用
- 音声品質を確認(ノイズ除去など)
UVRを利用してBGMやノイズの分離を行ったり出来るため、前処理を工夫するのも効果的です。
高度な設定
カスタマイズ例
# 温度パラメータで創造性を調整
result = model.transcribe(
audio_path,
language="ja",
temperature=0.2, # 低い値ほど確実性重視
word_timestamps=True,
verbose=True
)
# 初期プロンプトで文脈を指定
result = model.transcribe(
audio_path,
language="ja",
initial_prompt="これは技術的な講義の録音です。",
word_timestamps=True
)
バッチ処理版
複数ファイルを一度に処理する場合:
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))
参考リンク
- GitHub - Whisper-bat: 完成したスクリプト
- OpenAI Whisper: 公式リポジトリ
- PyTorch CUDA: CUDA版PyTorchインストール
- FFmpeg: 音声変換ライブラリ
- Groq API版の記事: クラウド処理版