Whisperをローカルで動かして「少し遅い」と感じたら、次に試すべきはfaster-whisper。
これはOpenAI公式のopenai-whisperを高速化したCTranslate2ベースのPython実装です。
CPUでもGPUでも動作し、Apple Silicon(M1/M2/M3)では約2〜3倍の速度が出ることもあります。
本記事では、Mac上での導入から実行、モデルと精度の選び方までを最短で解説します。
faster-whisperとは(概要)
faster-whisper は Whisperを軽量化したPython実装で、
内部で CTranslate2 という高速推論エンジンを使用しています。
- 特徴
- CPU/GPU対応(Apple Silicon対応)
- モデルを軽量化・最適化して高速処理
- 量子化(int8 / float16)によりメモリ削減
- Pythonスクリプトからそのまま呼び出し可能
オリジナルのopenai-whisperに比べ、
CPUでは約2〜3倍・GPUでは最大5倍の速度差が出ることがあります。
特に長時間音声(会議録・動画など)を扱う場合に有効です。
サンプルコードで実行する
以下のサンプルを fw_transcribe.py として保存し、
ローカルの音声ファイルを引数に渡すだけで動作します。
# fw_transcribe.py
from faster_whisper import WhisperModel
import sys
MODEL_NAME = "small" # "tiny", "base", "small", "medium", "large-v3" など
COMPUTE_TYPE = "int8" # "int8", "int8_float16", "float16", "float32"
def main(audio_path: str):
model = WhisperModel(MODEL_NAME, compute_type=COMPUTE_TYPE)
segments, info = model.transcribe(audio_path, language="ja")
text = "".join(segment.text for segment in segments)
print(text)
if __name__ == "__main__":
if len(sys.argv) < 2:
print("Usage: python fw_transcribe.py <audio_file>")
sys.exit(1)
main(sys.argv[1])
実行例
- 処理が完了すると、標準出力に文字起こし結果が表示されます。
- 精度と速度のバランスを見ながら、
MODEL_NAMEやCOMPUTE_TYPEを変更して試せます。
# smallモデル、int8で実行
$ python fw_transcribe.py sample.wav
これはウィスパーのテスト用温性サンプルです
# smallモデル、float32で実行
$ python fw_transcribe.py sample.wav
これはウィスパーのテスト用音声サンプルです。
# mediumモデル、int8で実行
$ python fw_transcribe.py sample.wav
これはウィスパーのテスト用音声サンプルです
Sayコマンドで生成した音声をサンプルに使用しました。
最初のsmallモデル、int8では音の認識は正しいものの漢字の誤りが見られます。
より上位のモデル、またはfloat32の利用で、漢字や句読点の正確性が改善する傾向があります。
モデルサイズ別の目安(精度・速度)
Whisperは複数のモデルサイズが用意されています。
以下はMacBook Air M2での実測に基づく目安です(1分音声を処理)。
| モデル | 精度 | 処理時間(目安) | 用途 |
|---|---|---|---|
tiny | ★★☆☆☆ | 約3〜4秒 | 試用・短時間音声 |
base | ★★★☆☆ | 約5〜6秒 | ノート・議事録の要点抽出 |
small | ★★★★☆ | 約8〜10秒 | 実務下書きレベル |
medium | ★★★★★ | 約15秒〜 | 高精度・長時間処理 |
※実測はApple M2 + Python 3.11環境でのCPU実行結果。
精度は録音品質により変動します。
6. まとめ
- 導入手順:
pip install faster-whisper - 最小実行:
python fw_transcribe.py sample.m4a - 推奨設定:
MODEL_NAME="small",COMPUTE_TYPE="int8" - メリット:公式Whisperより約2〜3倍高速、軽量・安定
Whisperを使いこなす第一歩は、「動作を軽くする」こと。faster-whisperはその最短ルートです。
このあと紹介するwhisper.cpp編(ネイティブCLI)では、さらに軽量・スクリプト不要で実行できる手法を紹介します。



