MacのローカルWhisper:必要なもの、かかる容量、実行する方法

ローカルWhisperとは、OpenAIの音声認識モデルのWhisperを自分のMacで実行することです。音声は、どこかのサーバではなく、Macの中でテキストになります。Macで知っておきたいエンジンはwhisper.cppで、Appleシリコンを第一級の対象として扱っています。そして大事な決め手になるのはモデルのファイルです。大きなモデルほどよく聞き取りますが、ディスクの容量もメモリも多く使います。

このページでは、各部分がどう組み合わさるか、whisper.cpp自身の数字による各モデルのサイズごとの必要量、自分で実行するコマンド、そしてYapToTextの位置づけを説明します。私は、標準の Whisper Large v3 Turbo (Q5) のファイルでwhisper.cppを実行する無料アプリのYapToTextを作っているので、その部分はそのことをふまえて読んでください。MacにWhisperのアプリがあるかどうかだけを知りたい場合は、Whisper Macアプリのページが答えます。

Mac App StoreでYapToTextをダウンロード無料でダウンロードできます。アカウント不要で、機能の制限もありません。AppleシリコンのMac、macOS 14以降に対応しています。 ソースコードはGitHubにあります。

手順

  1. GitHubからwhisper.cppのリポジトリをクローンし、ターミナルでそのフォルダを開きます。
  2. プロジェクトの download-ggml-model.sh スクリプトで、large-v3-turbo-q5_0 などのモデルをダウンロードします。
  3. READMEにある2つのcmakeコマンドで、CMakeを使ってプロジェクトをビルドします。
  4. ffmpegなどで、録音を16ビットのWAVファイルに変換します。
  5. モデルのファイルとWAVファイルを指定してwhisper-cliを実行し、ターミナルで文字起こしを読みます。

ローカルWhisperの3つの部品を知る

ローカルWhisperには3つの部品があり、どれもMacの中にあります。モデルはファイルで、エンジンがそれを実行し、音声がMacの外に出る必要はありません。

  • モデル。 WhisperはOpenAIの音声認識モデルで、OpenAIはそのコードとモデルの重みをMITライセンスで公開しています。モデルのファイルを一度ダウンロードすれば、そのファイルが聞き取りを行います。
  • エンジン。 whisper.cppは、WhisperをCとC++で素直に実装したもので、同じくMITライセンスです。READMEは、Appleシリコンを第一級の対象と呼び、ARM NEON、Accelerate、Metal、Core MLで最適化されていて、Appleシリコンでは推論がMetal経由で完全にGPU上で実行されると説明しています。OpenAI自身のパッケージは、代わりにPythonからWhisperを実行します。
  • 音声。 録音かマイクの音声を入れると、テキストが出てきます。インターネットが必要なのは、最初にモデルのファイルをダウンロードするときだけです。

これがクラウドサービスとの違いです。文字起こしのために何かをアップロードすることはありません。同時に、作業をするのはMacなので、選んだモデルによって、その作業に必要なメモリとディスクの容量が決まります。

App Storeのポスター。見出しはNothing leaves your Macで、背景のYapToTextのAI Modelsページでは2つのモデルがどちらもIncludedと表示されている。
図1. YapToTextの1行に、モデルとエンジンが並んでいます。OpenAIの Whisper Large v3 Turbo (Q5) を、whisper.cppが実行し、574 MBでIncludedと表示されています。

ディスクの容量とメモリでモデルを選ぶ

whisper.cppは、各モデルがディスクとメモリでどれだけ使うかを公表していて、OpenAIは各モデルのパラメータ数を公表しています。TurboはOpenAIによるlarge-v3の高速版で、その5ビットのファイルは、largeのディスク容量の約5分の1です。

2026年10月3日に、whisper.cppのREADMEとモデルの一覧、OpenAIのWhisperのREADMEで確認しました。

モデルパラメータ数(OpenAI)ディスク上のファイル(whisper.cpp)メモリ(whisper.cpp)
tiny39 M75 MiB約273 MB
base74 M142 MiB約388 MB
small244 M466 MiB約852 MB
medium769 M1.5 GiB約2.1 GB
large(v1、v2、v3)1550 M2.9 GiB約3.9 GB
large-v3、5ビット(q5_0)量子化したlarge-v31.1 GiB記載なし
large-v3-turbo809 M1.5 GiB記載なし
large-v3-turbo、5ビット(q5_0)量子化したturbo547 MiB記載なし

MiBとGiBは1,024ずつ数えるので、whisper.cppの一覧にある547 MiBのturboのファイルは、YapToTextが574 MBと表示するのと同じファイルです。同じファイルが547と574の両方で載っていて、どちらのページも正しいのは、そのためです。whisper.cppのメモリの表は、もとの5つのサイズが対象で、turboと量子化したファイルの数字はありません。

YapToTextのAI Modelsページ。Whisper Large v3 Turbo (Q5)とPhi-3.5 Mini InstructにIncludedの表示があり、下にモデルライブラリがある。
図2. YapToTextはサイズをMBで表示するので、whisper.cppが547 MiBと載せているturboのファイルが、ここでは574 MBと表示され、その下にほかのWhisperモデルが並んでいます。

2つのプロジェクトから、さらにいくつかあります。

  • 英語専用のモデル。 tiny、base、small、mediumには、同じサイズで英語だけを聞き取る .en のファイルもあります。OpenAIによると、英語では、特にtiny.enとbase.enで、そのほうがよい傾向があり、small.enとmedium.enでは差が小さくなります。
  • 量子化したモデル。 q5_0で終わるファイルは量子化されています。whisper.cppによると、量子化したモデルは必要なメモリとディスクの容量が少なく、ハードウェアによってはより効率よく処理できます。
  • Turbo。 OpenAIは、large-v3を最適化した版で、文字起こしが速く、精度の低下は最小限と説明し、largeの約8倍の速さと評価しています。この比率はMacではなくA100で測ったもので、OpenAIは、turboは翻訳向けに学習されていないとも述べています。
  • 言語。 OpenAIによると、Whisperの性能は言語によって大きく異なります。
  • OpenAIのメモリの列。 OpenAIのREADMEは、代わりにPythonパッケージに必要なVRAMを載せています。tinyとbaseで約1 GB、turboで約6 GB、largeで約10 GBです。これらはwhisper.cppの数字ではありません。

YapToTextに5ビットのturboのファイルを選んだのは、私自身の音声入力では、フルサイズのモデルとほとんど同じ内容を聞き取りながら、メモリは3分の1で済んだからです。これは個人の音声入力の結果で、ベンチマークではないので、決める前に自分の声で2つのサイズを試してください。

whisper.cppでWhisperを自分で実行する

whisper.cppを自分で実行するには、ターミナルと、READMEのコマンドが前提にしている2つのツール、GitとCMakeが必要です。以下はREADMEのコマンドで、モデルだけを5ビットのturboのファイルに替えています。得られるのは、ターミナルに表示される音声ファイルの文字起こしで、アプリに入力された言葉ではありません。

手順1:コードとモデルを入手する

ターミナル: whisper.cppをクローンし、5ビットのturboモデルをダウンロードします。

git clone https://github.com/ggml-org/whisper.cpp.git
cd whisper.cpp
sh ./models/download-ggml-model.sh large-v3-turbo-q5_0

結果: プロジェクトが whisper.cpp フォルダに入り、スクリプトがHugging Faceから ggml-large-v3-turbo-q5_0.bin を models フォルダにダウンロードします。ダウンロードを小さくするには、base.en か small に替えます。

手順2:ビルドして、サンプルを文字起こしする

ターミナル: whisper-cliをビルドして、プロジェクトに付属するサンプルの録音で実行します。

cmake -B build
cmake --build build -j --config Release
./build/bin/whisper-cli -m models/ggml-large-v3-turbo-q5_0.bin -f samples/jfk.wav

結果: CMakeがプロジェクトをビルドし、whisper-cliがダウンロードしたモデルでサンプルを文字起こしして、ターミナルにテキストを表示します。

手順3:先に自分の音声を変換する

READMEによると、whisper-cliは現在16ビットのWAVファイルでしか動作せず、それ以外を変換するffmpegのコマンドが載っています。ffmpegは別にインストールします。

ターミナル: MP3を、whisper-cliが読み込めるWAV形式に変換します。

ffmpeg -i input.mp3 -ar 16000 -ac 1 -c:a pcm_s16le output.wav

結果: ffmpegが output.wav を16 kHz、モノラル、16ビットの音声として書き出し、それを -f のあとでwhisper-cliに渡します。

OpenAIのPythonパッケージを使う場合

ターミナル: Pythonで作業したい場合は、OpenAI自身のパッケージをインストールします。

pip install -U openai-whisper

結果: pipがwhisperコマンドをインストールします。OpenAIのREADMEによると、コードはPython 3.8から3.11で動作する想定で、ffmpegが必要で、初期設定のモデルはturboです。

ライブの音声には、whisper.cppにwhisper-streamが含まれていて、マイクの音声を半秒ごとにサンプリングして、連続して文字起こしします。SDL2が必要で、READMEはこれを単純なサンプルと呼んでいます。言葉をメール、Slack、エディタに入力するのは、アプリが加える部分です。

ターミナルなしでYapToTextの同じモデルを使う

YapToTextは、ターミナルのウインドウなしで、同じエンジンと同じファイルを実行します。MetalとAccelerateでビルドしたwhisper.cppのコピーがアプリに組み込まれていて、ggml-large-v3-turbo-q5_0.bin がApp Storeのダウンロードに入っています。そのSHA-256はHugging Face上のファイルと一致するので、独自に調整や再学習をしたものではなく、標準のモデルです。私がこのアプリを作ったのは、手でキーボードを打つことが難しく、Whisperがターミナルのウインドウにではなくすべてのアプリにタイプしてほしかったからです。スクリプトがダウンロードするのと同じファイルです。変わるのは、その周りのすべてです。

App Storeのポスター。見出しはYap it. Bam. It's typed.で、背景にYapToTextのHomeウインドウと3種類の浮かぶパネルのレイアウトが見える。
図3. ターミナルなしの同じWhisperのファイル。話すにつれて浮かぶパネルに言葉ができあがり、前面にあるアプリのカーソルの位置に入ります。

アプリがモデルの周りに加えるものは次のとおりです。

  • 返すメモリ。 Energy ページの Keep models in memory は、音声入力のあとモデルをどれだけ読み込んだままにするかを決めます。初期設定は使用後2分で、Only while dictating から Until quit まで選べます。早めに解放するとエネルギーとメモリを節約でき、解放したあとの次の音声入力は数秒余計にかかります。
  • macOSのための余裕。 macOSのメモリが足りなくなると、YapToTextは読み込んだモデルをすぐに手放し、5分待ってから再び準備します。
  • バッテリー駆動のときは軽いモデル。 Switch models with the power source は初期設定ではオフで、音声入力モデルと整形モデルに、電源につないでいるときとバッテリー駆動のときの選択をそれぞれ用意します。
  • 自分のファイル。 AI Models ページの Your own models で、Add Model は任意のwhisper.cppのGGML .bin ファイルを受け付けるので、スクリプトでダウンロードしたモデルも使えます。アプリはファイルを読んで何かを判別し、それ以外は受け付けません。
  • お使いのMacの数字。 Energy ページの This Mac カードにはチップとメモリが表示され、上の表と照らし合わせる数字になります。

AI Models ページの Dictation Model Library には、TinyからLarge v3まで、さらに10のWhisperモデルがあり、それぞれアプリが表示するサイズが付いています。AI Modelsのガイドに一覧があり、メモリの設定はEnergyのガイドで説明しています。App Storeのダウンロードが約2.9 GBなのは、アプリの2つのモデルが両方入っているからです。Homebrew版は約12 MBで、最初の音声入力の前に音声認識モデルのダウンロードが必要です。

ローカルWhisperが遅い、または聞き間違えるとき

大きなモデルをダウンロードする前に、手軽な対処から始めてください。モデルを変える前に、マイクと言葉を直します。

  1. 最初の実行を待つ。 モデルは文字起こしの前に読み込まれる必要があります。YapToTextでは、起動後の最初の音声入力に少し時間がかかります。Core MLでwhisper.cppをビルドした場合、READMEによると、デバイスでの最初の実行は、Neural Engineのサービスがモデルをコンパイルするあいだ遅くなります。
  2. 話す言語を設定する。 YapToTextの AI Models ページの Language の選択は、最初はMacのシステム言語になっていて、Whisperが使えない言語は自動検出に切り替わります。29の言語は言語のページに一覧があります。
  3. マイクを直す。 Bluetoothのマイクは電話の品質なので、Mac自身のマイクのほうがよく聞き取れます。YapToTextでは、メニューバーのパネルの Input の選択で選びます。
  4. 自分の言葉を教える。 YapToTextの Dictionaries ページは、入力された言葉を直すだけでなく、Whisperに名前や用語をあらかじめ教えます。方法は辞書のガイドにあります。
  5. 英語なら英語専用のモデルを使う。 メモリが厳しく、英語だけを話す場合は、OpenAIによると、.en版のほうがよい傾向があり、特にtinyとbaseで顕著です。
  6. モデルのサイズを変える。 聞き間違えて、メモリに余裕があるなら大きく、遅いなら小さくします。YapToTextでは、AI Models ページの星の評価でその兼ね合いがわかり、History のすべての音声入力に、その停止からテキストまでの時間が表示されます。
YapToTextのHistoryの項目でパイプラインの詳細を開いたところ。元の文字起こし、整えた文字起こし、モード、配信先、対象のアプリ、所要時間が見える。
図4. Historyのすべての音声入力に所要時間が付いています。話した長さと、停止からテキストまでの時間が、文字起こし、AIの整形、入力に分けて表示されます。

ローカルWhisperでも変わらないこと

Whisperをローカルで実行すると、作業がMacに移ります。移るのはそれだけです。ローカルで変わるのは音声の行き先で、どれだけよく聞き取れるかではありません。

  • 間違い。 どれだけよく聞き取れるかは、どこで動かしてもモデルが決めます。聞き間違える名前には、場所を変えるのではなく、辞書の項目かより良いマイクが必要です。
  • 翻訳。 OpenAIは、turboは翻訳向けに学習されていないと述べています。YapToTextはWhisperに文字起こしを頼むだけで、翻訳を頼むことはありません。
  • ダウンロードは一度。 ローカルのモデルも、一度は届く必要があります。whisper.cppのスクリプトはHugging Faceから取得し、YapToTextのApp Store版は中に持っていて、Homebrew版は AI Models ページから取得します。
  • IntelのMac。 whisper.cppは、IntelとArmのMacを対応としています。YapToTextにはAppleシリコンとmacOS 14以降が必要で、IntelのMacについては何も保証していません。
  • 精度の数字。 どのモデルについても、精度のパーセントは公表していません。星の評価と、自分の History が目安です。

設定が本当にローカルであることを確かめるには、オフライン音声入力のページに、1分でできる確認があります。Wi-Fiをオフにして音声入力します。

まとめ

  • ローカルWhisper。 Macの上にあるモデルのファイルとエンジンで、何もアップロードされません。
  • モデル。 5ビットのturboのファイルは、whisper.cppの一覧では547 MiBで、YapToTextに入っているものです。
  • 自分でやる。 whisper.cppをクローンし、モデルをダウンロードして、CMakeでビルドし、16ビットのWAVファイルにwhisper-cliを実行します。
  • ターミナルを使わない。 YapToTextは同じファイルを実行して、どのアプリにも無料で入力します。

まずMacのメモリで、次に自分の声でモデルを選んでください。 ここに書いた内容が画面と違う場合は、GitHubでissueを作成してください。すべて読んでいます。

Mac App StoreでYapToTextをダウンロード無料でダウンロードできます。アカウント不要で、機能の制限もありません。AppleシリコンのMac、macOS 14以降に対応しています。 ソースコードはGitHubにあります。

このページを書いた人。 Ryleigh Newmanはソフトウェアを開発しています。手でキーボードを打つことが難しいため、このサイトで紹介しているアプリ、YapToTextで毎日音声入力をしています。このページは英語から翻訳したものです。アプリの画面とサイトのほかのページは英語です。 プロジェクトについて(英語)。

ガイド

そのほかのガイド(英語)

出典

よくある質問

MacでWhisperをローカルで実行するには

whisper.cppを使います。リポジトリをクローンし、download-ggml-model.sh スクリプトでモデルをダウンロードして、CMakeでビルドし、16ビットのWAVファイルにwhisper-cliを実行します。YapToTextのように、それを組み込んだアプリを入れる方法もあり、設定なしで Whisper Large v3 Turbo が動きます。

Whisperにはどのくらいのメモリが必要ですか

モデルによります。whisper.cppは、tinyで約273 MB、smallで852 MB、mediumで2.1 GB、largeで3.9 GBと載せていて、量子化したモデルはそれより少ないと述べています。turboのメモリの数字は載っていません。

ローカルのWhisperモデルでおすすめはどれですか

私ならLarge v3 Turboから始めます。YapToTextに入っているのは、その5ビットのファイルで、whisper.cppの一覧では547 MiBです。メモリが厳しい場合は、smallやbaseのほうがはるかに少なく済み、OpenAIによると、最も小さいサイズでは英語専用のバージョンのほうが英語でよい傾向があります。

Whisper Large v3 Turboモデルの大きさは

whisper.cppのモデルの一覧では1.5 GiBで、5ビットのq5_0のファイルは547 MiBです。10進法の単位で数えると574 MBです。OpenAIは、turboのパラメータ数を809 M(ミリオン)と載せています。

ローカルWhisperにインターネットは必要ですか

モデルを一度ダウンロードするときだけです。そのあとは、whisper.cppもYapToTextも、接続なしで文字起こしします。YapToTextのApp Store版は音声認識モデルが中に入っているので、そのダウンロードも要りません。

whisper.cppのモデルをYapToTextで使えますか

はい。AI Modelsページの「Your own models」で、「Add Model」は任意のwhisper.cppのGGMLの .bin ファイルを受け付けます。アプリはファイル自体から、それが何かを判別します。