Macで無料・高速に文字起こししたいならwhisper.cpp一択だった話
最近、英語の技術解説を聞く機会が増え、「音声ファイルを無料で文字起こしできたら便利だな」と感じることが多くなりました。
特に、英語で話される技術セッションや学習用ポッドキャストは、音声よりも文字のほうが内容を理解しやすく、自分で見返すためにもテキスト化しておきたいというニーズがあります。
もちろん、日本語の音声にも使いたい🙆
そんなとき、OpenAIが提供している文字起こしモデル「Whisper」にたどり着きました。
ただし、Mac(特にApple Silicon)環境では選ぶべき実装に注意が必要です。
1. Whisper (Python版) はMacユーザーには非推奨
Whisper(Python版)は公式実装であり、CLIで簡単に使えるのが魅力です。
ただし、MacではGPU処理がうまく動作せず、CPUのみでの実行になるため非常に遅いです。
- 6分のMP3ファイルで10分以上かかることもある
- 実行時に以下のような警告が出る
UserWarning: FP16 is not supported on CPU; using FP32 instead
- PyTorchのMPS対応が不完全で、GPU高速化を試みるとエラーで詰むことが多い
- 日本語への翻訳も精度が落ちる印象 → 文字起こし後にDeepLなどで翻訳するのが現実的
結論:MacユーザーはPython版Whisperは避けた方が無難です。
2. Macならwhisper.cpp一択
Apple Silicon (M1〜M3) のMacでは、C++実装の whisper.cpp が非常に高速かつ安定しています。
Python環境も不要で、動作も軽量。自分の使った中ではこれが一番快適でした。
セットアップ手順
以下の手順でインストール可能です。
xcode-select --install # インストール済みなら不要
git clone https://github.com/ggerganov/whisper.cpp
cd whisper.cpp
./models/download-ggml-model.sh base.en # baseは速度重視、mediumは精度重視
brew install cmake
make
cmake --build build --config Release
使い方(例)
./build/bin/whisper-cli -m ./models/ggml-base.en.bin -f "example.mp3" -otxt
-
-m
使用するモデル(base.enやmedium.enなど) -
-f
文字起こししたい音声ファイル(MP3/WAV/MP4など) -
-otxt
テキスト形式で出力 -
-oj
JSON形式でも出力可能
使い方の詳細は以下で確認できます。
./build/bin/whisper-cli -h
使用してみた感想
- Wihsperで10分以上かかっていたのが1分でできました!
- 精度も十分で、Python版と遜色なし
-
alias whisper='~/whisper.cpp/build/bin/whisper-cli ...'
のように設定すればより便利 - 翻訳が必要な場合は、DeepLなどにコピペでOK
- オプション --translate で翻訳できるが精度・速度に不安がある
- JSON形式で出力すればタイムスタンプが出る(後で確認する場合も便利)
まとめ
ツール | 特徴 | Macでの使用感 |
---|---|---|
Whisper (Python版) | 正式実装。簡単に使えるが遅い | GPUが使えず非現実的 |
whisper.cpp | Apple Siliconで高速動作。Python不要 | 爆速&実用的 |