← [ TECH / 技術部 ] に戻る
OBSERVATION · 其の0375 · 2025.10.17

MacでWhisperを高速化する方法①:faster-whisper編(Python実装・Apple Silicon対応)

こんにちは、パレイド技術部の夏目です。

(2026-06-08 更新)large-v3-turbo に触れ、高速化シリーズに MLX 編(③)を追記しました。

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", "large-v3-turbo" など
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_NAMECOMPUTE_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)では、さらに軽量・スクリプト不要で実行できる手法を紹介します。
さらに MLX 編(③) では、Apple Silicon の GPU を直接使う高速化ルートも扱います。
4 実装の違いを実測で比較した決定版ガイドもあるので、どれを選ぶか迷ったら参照してください。

リンク集

pareido.jpMacでWhisperをインストールして音声認識を試す(ローカル実行・Apple Silicon対応) – パレイドこんにちは、パレイド技術部の夏目です。 (2026-06-08 更新)モデル表に large-v3-turbo を追加し、高速化の選択肢とし…pareido.jp パレイドMacでWhisperを高速化②whisper.cpp編:導入・モデル(ggml)DL・CLI実行の使い方【Apple Silicon】こんにちは、パレイド技術部の夏目です。 (2026-06-08 更新)Apple Silicon での GPU/Metal 利用と現行 CLI 名(whispe… パレイドMacでWhisperをインストールして音声認識を試す(ローカル実行・Apple Silicon対応)こんにちは、パレイド技術部の夏目です。 (2026-06-08 更新)モデル表に large-v3-turbo を追加し、高速化の選択肢として MLX 編(③)… パレイドMac版Whisper比較ガイド【決定版】openai-whisper・faster-whisper・whisper.cpp・MLX、4実装を同条件で再計測こんにちは、パレイド技術部の夏目です。 (2026-06-09 更新)MLX-Whisper を加えた4実装を同条件で再計測し、決定版に改稿しました。 Macで… パレイドMacでWhisperを高速化する方法③:MLX編(Apple Silicon ネイティブ・mlx-whisper)こんにちは、パレイド技術部の夏目です。 MacでWhisperを高速化するシリーズの第3弾です。これまで①faster-whisper(Python実装・CTr…
▶ 関連動画 · YOUTUBE
━━ 観るのを再開 ━━
前の記事を読む
技術部 · MacでWhisperをインストールして音声認識を試す(ローカル実行・Apple Silicon対応)
動画を観る
YouTube
次の記事を読む
技術部 · MacでWhisperを高速化②whisper.cpp編:導入・モデル(ggml)DL・CLI実行の使い方【Apple Silicon】
━━ 他の観測領域 ━━
TECH · 技術部
ファミリーベーシック 機械語対応(1)|なぜ機械語か
PHIL · 思想部
技術部 試験放送 総括 ── 3つの BGM 生成エンジンを実配信で比べて。速さの SA3、バランスの Turbo、音質の XL
FRONT · 辺境部
【スーパーマリオ256W】世界11を歩く — ファミコンのバグ面 11-1〜11-4