Macでローカル音声入力を作ろうとすると、似たような言葉が一気に出てきます。
Whisper、large-v3、large-v3-turbo、4bit、8bit、MLX、mlx-whisper、faster-whisper、whisper.cpp。
Turboはモデルの種類の話です。4bitは量子化の話です。MLXはApple Silicon向けの機械学習フレームワークです。mlx-whisperはWhisperをMLX上で動かすための実装です。
どれも音声入力に関係していますが、実は同じ種類の言葉ではありません。

さらに、同じlarge-v3という名前でも、PyTorch形式、MLX形式、CTranslate2形式、GGML/GGUF形式では、使える環境がそれぞれ違います。
私も最初は、Turboと4bitを同じような軽量化の話だと思っていました。
でも実際には違いました。
Turboはモデル構造の違い。4bitは量子化の違い。
ここを分けて考えないと、
- 「large-v3を使っているはずなのに、なぜ動かないのか」
- 「TurboとはWhisperの上位版なのか、4bitとはどう違うのか」
- 「MLXとmlx-whisperは同じものなのか」
- 「Macなら結局どれを選べばいいのか」
という混乱から抜け出せません。
この記事では、Macでローカル音声入力を作るときに混乱しやすい用語を、ひとつひとつ整理します。
まず結論:見るべき軸は6つある

Whisperまわりの用語は、次の6つに分けると見通しが良くなります。
| 軸 | 代表例 | 何を決める話か |
|---|---|---|
| モデル全体の名前 | Whisper | 音声認識モデルの大きな種類 |
| モデルの版 | large-v3、large-v3-turbo、medium、small | 精度・速度・重さの基本的な性格 |
| 量子化・数値精度 | fp16、int8、4bit、q4 | メモリ使用量・速度・精度への影響 |
| 推論実装 | openai-whisper、mlx-whisper、faster-whisper、whisper.cpp | そのモデルをどう呼び出して動かすか |
| 実行基盤 | PyTorch、MLX、CTranslate2、Metal | CPUやGPUなどのハードウェアをどう使うか |
| モデル形式 | PyTorch/HF形式、MLX形式、CTranslate2形式、GGML/GGUF形式 | その実装で読み込める重みの形式 |
ざっくり言い換えると、こういう関係です。
- Whisperは、音声認識モデルの大きな名前
- large-v3やlarge-v3-turboは、どの「頭脳」を使うかという選択
- 4bitや8bitは、その頭脳をどれくらい軽く持つかという選択
- MLXやCTranslate2は、計算を動かす土台
- mlx-whisperやfaster-whisperは、その土台の上でWhisperを動かすための道具
- モデル形式は、その道具で読めるファイルの種類
たとえば、large-v3-turbo 4bitという表現は、分解するとこうなります。
| 部分 | 意味 |
|---|---|
| large-v3-turbo | 高速化されたWhisperモデル |
| 4bit | そのモデルを軽く持つための量子化形式 |
Turboはモデルの話で、4bitは量子化の話です。
これは完全に別の軸です。
同じように、MLXとmlx-whisperも別の話です。
| 用語 | 意味 |
|---|---|
| MLX | Apple Silicon向けの機械学習フレームワーク |
| mlx-whisper | WhisperをMLXで動かすための実装 |
この分解ができると、構成の選択がずいぶん楽になります。
Whisperとは何か
WhisperはOpenAIが公開している音声認識モデルです。
音声を入力すると、話されている内容をテキストとして出力します。
日本語の音声入力、会議の文字起こし、動画字幕の作成、読書メモやブログの下書きなど、幅広い用途に使えます。
最大の特徴は、ローカルでも動かせることです。
クラウドの音声認識サービスとは違い、必要なモデルと実行環境さえ用意すれば、自分のMacの中だけで音声認識を完結させられます。
音声データを外部サーバーに送らずに済むため、プライバシー面でも魅力があります。
ただし、Whisperは音声入力アプリそのものではありません。
あくまで音声認識モデルです。
実際に音声入力ツールとして使うには、周辺の仕組みも必要になります。
| 必要なもの | 役割 |
|---|---|
| Python環境 | 自作ツールを動かす土台 |
| 推論ライブラリ | Whisperを実際に動かす |
| モデルファイル | 音声認識の中身 |
| マイク入力 | 音声を録音する |
| 録音処理 | 音声データを扱う |
| 貼り付け処理 | 認識結果を入力欄に入れる |
| 後処理 | 誤変換・句読点・記号などを補正する |
Whisperは音声入力アプリの中核にはなりますが、Whisperだけで快適な音声入力環境が完成するわけではありません。
これは、実際に作ってみて強く感じた部分です。
large-v3とは何か
large-v3は、Whisperの大型モデルです。
Whisperにはtiny、base、small、medium、large系があり、その中でlarge-v3は高精度寄りの位置づけにあります。
一般に、大きいモデルほど次のような傾向があります。
| 傾向 | 内容 |
|---|---|
| 認識精度 | 高くなりやすい |
| ノイズ耐性 | 強くなりやすい |
| 固有名詞や文脈 | 拾いやすくなる場合がある |
| メモリ使用量 | 増えやすい |
| 推論時間 | 長くなりやすい |
ブログの下書きや読書メモのように、あとから読み返す文章を作りたい場合は、「重いけれど精度寄り」という性格がよく効きます。
私自身も、自分用のローカル音声入力では最終的にlarge-v3系を使う構成に落ち着きました。
短い検索ワードではなく、ブログ執筆や読書メモに使いたかったからです。
ただし、large-v3を使えば常に完璧になるわけではありません。
Whisperはあくまで「話した内容を文字起こしするモデル」であり、自然な記事文にリライトしてくれる専用モデルではないからです。
句読点、改行、言い直しの処理、専門用語の補正、不要な出力の削除といった部分は、後処理や辞書補正と組み合わせた方が実用的です。
また、長い音声を扱う場合は、モデルの性能だけでなく、音声の区切り方も重要になります。
無音区間の扱い、チャンク分割、前後の文脈をどう引き継ぐか、言語指定をするかどうか。
このあたりでも結果は変わります。
large-v3-turboとは何か

large-v3-turboは、large-v3を軽くした高速版です。
ここはかなり誤解しやすいところで、名前だけ見ると、
- 「large-v3を速くしただけ?」
- 「large-v3を4bitにしたもの?」
- 「Turboだから上位版?」
と思ってしまいがちです。
しかし、large-v3-turboは単にlarge-v3を4bitにしたものではありません。
Hugging Faceのモデルカードでは、large-v3-turboはlarge-v3を剪定してfine-tuneしたモデルとして説明されており、特にデコーダー層が32層から4層に減らされています。
つまり、モデル構造そのものが違うのです。
Whisperは、音声を処理するエンコーダーと、テキストを生成するデコーダーを持っています。
デコーダーはテキストを順番に生成する部分なので、ここが軽くなると体感速度に効きやすくなります。
そのため、large-v3-turboは次のような用途に向いています。
| 向いている用途 | 理由 |
|---|---|
| 短い音声入力 | すぐ返ってくる方が快適 |
| 会話に近い文字起こし | 待ち時間が短い方が使いやすい |
| コマンド入力 | テンポが重要 |
| 軽さ重視の運用 | 大きいモデルより扱いやすい |
一方で、large-v3と比べると品質差が出る可能性もあります。
特に、固有名詞や専門用語、数字が多い音声、ノイズが多い環境、長めに話してあとから読み返したい用途では、両者を実際に比較してみた方が安全です。
また、Whisperの翻訳タスクに使いたい場合は、large-v3-turboよりlarge-v3の方が向いている場合があります。
日本語音声を日本語テキストにする用途なら大きな問題になりにくいですが、翻訳まで想定するなら注意してください。
TurboとはWhisperの上位版なのか?4bitとは何が違うのか
この記事でもっとも大事な整理のひとつです。
- Turboはモデルの違いです。
- 4bitは量子化の違いです。
この2つは独立した軸です。
| 表現 | 意味 |
|---|---|
| large-v3 | 高精度寄りの大型Whisperモデル |
| large-v3-turbo | large-v3を軽くした高速版モデル |
| large-v3 4bit | large-v3を4bit量子化したもの |
| large-v3-turbo 4bit | large-v3-turboをさらに4bit量子化したもの |
つまり、large-v3-turbo 4bitとは「高速版モデルを、さらに4bit量子化して軽く動かす」という意味です。
ただし、理屈として組み合わせられることと、実際のライブラリがその組み合わせに対応していることは別の話です。
- ある実装では4bitが使える。
- 別の実装ではint8までしか使えない。
- また別の実装ではq4という名前でも量子化方式が違う。
こういったことは珍しくありません。
「4bit」という言葉だけを見て単純に比較するのは危険です。
量子化を簡単にいうと、AIモデルの中の数字を粗くして、軽く・省メモリで動かすための技術。
ただし、賢くなるわけではなく、精度と軽さのトレードオフがある。
4bit、8bit、fp16は何の話か

4bitや8bitは、モデルの重みをどのくらい細かい数値で持つかという話です。
大きなモデルは、「重み」と呼ばれる大量の数値を内部に持っています。
その数値を高い精度で持てばメモリをたくさん使い、低いビット数に落とせばメモリを抑えられます。
これが量子化の考え方です。
| 形式 | 傾向 |
|---|---|
| fp32 | 精度は高いが重い。ローカル音声入力ではほとんど使わない |
| fp16 | 精度と重さのバランスが良い。GPUやApple Silicon環境でよく使われる |
| int8 / 8bit | メモリを抑えやすい。実装によっては速度面でも有利 |
| 4bit / q4 | さらに軽い。メモリ削減に有効だが、精度や速度は実装依存 |
ここで大事なのは、量子化はモデルを賢くするものではないということです。
4bitにしたから認識精度が上がるわけではありません。
基本的には「同じモデルをより軽く動かすための工夫」です。
さらに言うと、軽くなるからといって必ず速くなるとも限りません。
量子化モデルは計算時に内部で展開や変換が必要になることがあり、ハードウェアや実装がその形式に最適化されていなければ、期待ほど速くならないこともあります。
音声入力で本当に見るべきなのは、カタログ上のビット数ではなく次の4点です。
| 見るポイント | 内容 |
|---|---|
| 録音終了から何秒で文字が出るか | 体感速度 |
| メモリ使用量はどれくらいか | 常駐運用しやすいか |
| 誤認識がどれくらい増えるか | 認識品質 |
| 修正にかかる時間が増えないか | 実用上のコスト |
特に重要なのは修正時間です。
推論が少し速くなっても、誤認識が増えて修正に時間がかかるなら、音声入力としての総合的な体験はかえって悪くなります。
4bitが悪いわけではありません。
少なくとも私のMac環境では、4bitはかなり現実的な選択肢でした。
ただし、どの環境でも同じように精度と速度のバランスが取れるとは限りません。
自分の声、自分のマイク、自分の用途で確認することが大事です。
補足:fp16は16bitの一種
fp16は、16bitの一種です。
ただし、単に「16bit」と書くと、整数なのか小数なのか、どの形式なのかがわかりません。
fpはfloating pointの略で、日本語では浮動小数点数と呼ばれます。
つまり、fp16は「16bitの浮動小数点形式」という意味です。
AIモデルでは小数を大量に扱うため、ただ「16bit」と書くよりも、fp16と書いた方が形式がはっきりします。
同じ16bitでも、int16のような整数形式や、bf16のような別の16bit浮動小数点形式があります。
ざっくり言えば、
fp16:16bitの浮動小数点形式。元のモデルに近い精度で扱いやすいが、4bitや8bitより重いint8 / 8bit:8bit整数などを使って軽くした形式4bit / q4:さらに軽くした量子化形式
という理解で十分です。
つまり、fp16は16bitではあります。
ただし、「16bitの浮動小数点形式」だと明確にするために、fp16と書いているわけです。
補足:整数と小数は何が違うのか
- 整数は、
1、2、100のように小数点がない数です。 - 小数は、
0.5、1.25、-0.03のように小数点がある数です。
AIモデルの中には「重み」と呼ばれる大量の数字があり、この重みは多くの場合、小数を扱える形式で保存・計算されます。
たとえば、0.032や-1.248のような細かい数字を使って、音声や文章を判断しています。
fp16のfpはfloating pointの略で、浮動小数点数という意味です。
ざっくり言えば、小数を扱うための形式です。
一方で、int8のintはintegerの略で、整数という意味です。
量子化では、もともとの細かい数値を、より少ないビット数で表せる形に変換して、モデルを軽く扱えるようにします。
つまり、
fp16:16bitの浮動小数点形式int8 / 8bit:8bit整数などを使って軽く扱う形式4bit / q4:さらに少ない情報量で軽く扱う形式
という理解で十分です。
AIモデルでは、数値を細かく持つほど情報を残しやすい一方で、メモリを多く使います。
逆に、量子化して少ないビット数で扱うと軽くなりますが、精度に影響が出る場合があります。
MLXとは何か

MLXは、Appleの機械学習研究チームが公開している、Apple Silicon向けの機械学習フレームワークです。
M1、M2、M3、M4のようなApple Silicon搭載MacでAIモデルを効率よく動かすための土台、と考えるとわかりやすいです。
MLXはそのための有力な選択肢として開発されました。
ただし、MLXはWhisperそのものではありません。
あくまでAIモデルを動かすための「土台」であり、WhisperをMLXで動かすには、その上にWhisper用の実装が別途必要になります。
その代表例がmlx-whisperです。
mlx-whisperとは何か
mlx-whisperは、WhisperをMLX上で動かすための実装です。
関係を整理するとこうなります。
| 名前 | 役割 |
|---|---|
| Whisper | 音声認識モデル |
| large-v3、large-v3-turbo | Whisperの具体的なモデル |
| MLX | Apple Silicon向けの機械学習フレームワーク |
| mlx-whisper | WhisperをMLXで動かすための実装 |
| 自作音声入力ツール | 録音・推論・貼り付け・辞書補正などをまとめるアプリ部分 |
自作の音声入力ツールから見ると、処理の流れはこうなります。
| 層 | 役割 |
|---|---|
| ホットキー・録音処理 | マイク音声を取得する |
| 自作Pythonコード | 音声を渡し、結果を受け取り、貼り付ける |
| mlx-whisper | Whisper推論を呼び出す |
| MLX | Apple Silicon上で計算する |
| Whisperモデル | 実際に音声をテキスト化する |
この関係を理解しておくと、アップデートのときの判断もしやすくなります。
MLXを更新しても音声認識モデル自体は変わりません。
mlx-whisperを更新しても認識精度が必ず上がるわけではありません。
認識精度の中心は、あくまで使っているモデルです。
ただし、実装側の更新によって速度、安定性、対応モデル、バグ修正が改善されることはあります。
毎日使う道具にするなら、更新は試験環境で確認してから本番に反映するのが安全です。
faster-whisperとは何か

faster-whisperは、Whisperを高速に動かすための実装です。
内部ではCTranslate2を使っており、WhisperモデルをCTranslate2形式に変換することで推論を高速化します。
CUDAが使える環境やCPU推論では特に強い選択肢になりますが、Macでも動きます。
ただし、Apple SiliconのGPUをMLXのように直接活かす方向とは少し性格が違います。
| 名前 | 位置づけ |
|---|---|
| openai-whisper | OpenAIの公式実装。基準としてわかりやすいが、最速とは限らない |
| faster-whisper | CTranslate2ベースの高速実装 |
| mlx-whisper | MLXベースでApple Siliconと相性が良い実装 |
| whisper.cpp | C/C++実装。Metal対応や量子化モデルがあり、Macローカルでも有力 |
Macだけで考えるならmlx-whisperとwhisper.cppは特に試す価値があります。
CUDA搭載PCも含めて選ぶなら、faster-whisperも強い候補になります。
whisper.cppもMacでは重要
Macローカル音声入力において、whisper.cppも見逃せない選択肢です。
whisper.cppはC/C++で書かれたWhisper実装で、Python環境に強く依存せず、CLIやアプリへの組み込みがしやすいのが特徴です。
MacではMetal対応により、Apple Silicon上でも効率よく動かせます。
また、q4、q5、q8のような量子化モデルがよく使われます。
ここでも注意が必要なのは、whisper.cppのq4とMLXの4bitは、同じものとして比較できるとは限らないという点です。
名前が似ていても、量子化方式、実装、速度、精度への影響はそれぞれ異なります。
Macでローカル音声入力を作るなら、候補は大きく次のように整理できます。
| 目的 | 候補 |
|---|---|
| Apple SiliconでPythonから使いたい | mlx-whisper |
| CLIや軽量アプリに組み込みたい | whisper.cpp |
| CUDA環境やCTranslate2形式を使いたい | faster-whisper |
| 公式実装でまず試したい | openai-whisper |
私の場合はPythonで自作音声入力ツールを作りたかったので、最終的にはmlx-whisperを使う方向に落ち着きました。
ただ、MacローカルWhisperの選択肢としてwhisper.cppは知っておいた方がいいと思います。
同じlarge-v3でも、形式が違うとそのまま使えない

実務でかなり重要になるのが、モデル形式の話です。
同じlarge-v3という名前でも、配布形式や変換形式が違うことがあります。
| 形式 | 主な利用先 |
|---|---|
| PyTorch / Hugging Face形式 | openai-whisper、Transformers系 |
| MLX形式 | mlx-whisper |
| CTranslate2形式 | faster-whisper |
| GGML/GGUF系形式 | whisper.cpp |
これは、同じ本でも紙の本、Kindle版、PDF版で読み方が違うようなものです。
中身の元は同じでも、読み込む道具が違えばそのまま使えないことがあります。
mlx-whisperで使いたいなら、MLX向けに変換されたモデルが必要です。faster-whisperで使いたいなら、CTranslate2形式のモデルが必要です。whisper.cppで使いたいなら、GGML/GGUF系のモデルが必要です。
「large-v3だから動くはず」と考えると詰まりやすいです。
実際には次の順番で確認する必要があります。
- どのモデルを使うか
- どの推論実装で動かすか
- その実装がどのモデル形式を読めるか
- 量子化版を使うなら、その実装が対応しているか
この順番で見ると、エラーの原因を切り分けやすくなります。
Macローカル音声入力で本当に重要なこと
モデル選びは重要ですが、毎日使う音声入力ツールとして考えると、モデル名だけでは決まりません。
実際に重要なのは、次の6つです。
1. 体感遅延
音声入力では、話し終わってから文字が出るまでの時間が非常に重要です。
ベンチマーク上の推論速度が速くても、実際の操作で待たされるなら使いにくいものです。
見るべきなのは単なる推論時間ではなく、次の一連の処理全体の合計です。
録音停止 → 音声データの準備 → 必要なら無音除去 → Whisper推論 → 後処理 → クリップボードへのコピー → 現在の入力欄への貼り付け
つまり音声入力では、録音停止からテキスト貼り付け完了までを測るべきです。
また、初回ロード時間と常駐後の推論時間は分けて考える必要があります。
毎回モデルを読み込む設計にすると、どれだけ速いモデルを使っても体感は悪くなります。
音声入力ツールとして使うなら、モデルは常駐させる構成の方が実用的です。
2. 自分の用途での認識精度
一般的なベンチマークより、自分の声と用途での精度が大事です。
| 用途 | 重視するもの |
|---|---|
| 検索ワード入力 | 速度、短文の正確さ |
| コマンド入力 | 誤作動しないこと |
| ブログ下書き | 文脈、句読点、修正コスト |
| 読書メモ | 固有名詞、専門用語 |
| 会議文字起こし | 話者、雑音、長時間安定性 |
ブログ執筆や読書メモに使うなら、単に文字が出ればよいわけではありません。
- あとから読めること。
- 修正が少なくて済むこと。
- 専門用語や固有名詞をなるべく落とさないこと。
- 句読点や文の区切りが破綻しにくいこと。
このあたりが重要になります。
3. 量子化による修正コスト
4bitにするとメモリ使用量を抑えやすくなります。
ただし、少しでも誤認識が増えて、その修正に時間がかかるなら、音声入力全体としては損になることがあります。
特に注意したいのは、ノイズが多い環境、早口、数字や固有名詞・英語が多い音声、言い直しが多い発話、長めに話す場面です。
4bitが悪いわけではありません。
むしろMacローカル音声入力では現実的な選択肢です。
ただし、fp16、8bit、4bitは、自分の音声で実際に比較した方がいいです。
4. Apple Siliconとの相性
M1、M2、M3、M4のMacを使っているなら、Apple Siliconとの相性は重要な軸です。
この点でMLX系はかなり有力ですが、常に唯一の正解というわけではありません。
- Pythonで自作ツールを作るなら、mlx-whisper
- 軽量なCLIやアプリ組み込みを考えるなら、whisper.cpp
- CUDA環境も視野に入れるなら、faster-whisper
自分の開発スタイルと実行環境に合わせて選ぶのが現実的です。
5. デコード設定と音声の区切り方
Whisperの結果は、モデルだけで決まるわけではありません。
言語の明示、無音部分の扱い、長い音声の分割方法、前後の文脈の引き継ぎ方、温度設定やビームサイズ、無音時の幻覚出力への対策。
こういった設定や前処理でも結果は変わります。
日本語音声入力なら、言語をjaと明示した方が安定することがあります。
自動言語判定に任せると、短い音声やノイズのある音声で判定が揺れることがあります。
また、長い無音や環境音があると、Whisperが存在しない文章を出力してしまうことがあります。
無音検出や破棄ルールも、実用上は重要です。
6. 後処理と操作導線
最終的な使いやすさを決めるのはモデルだけではありません。
毎日使う音声入力では、周辺部分がかなり効いてきます。
- どのキーで録音を始めるか。
- 押している間だけ録音するのか。
- クリックなしで入力欄に貼り付けられるか。
- マイクを自動選択できるか。
- 不要な出力を破棄できるか。
- 固有名詞を辞書補正できるか。
- 誤認識しやすい単語をどう置換するか。
こういった細かい設計の積み重ねが、実際の使い心地を決めます。
たとえば、右Shiftキーを押している間だけ録音し、認識結果をクリップボードに入れて現在の入力欄へ貼り付ける、といった導線にすることができます。
また、「入力破棄」「ボツ」のような言葉を検出したら貼り付けない、というルールも実用的です。
Whisperの生出力だけで完璧な音声入力を作るのは難しく、辞書補正、破棄ルール、句読点補正、貼り付け処理まで含めて設計した方が実用性は上がります。
用途別の選び方
長文の下書きや読書メモが中心の場合
ブログの下書きや読書メモに使うなら、精度寄りの構成を優先した方がいいです。
| 優先したいこと | 候補 |
|---|---|
| 精度重視 | large-v3 |
| Mac最適化重視 | mlx-whisper + MLX形式モデル |
| メモリ削減 | large-v3の4bit / q4量子化版 |
| 速度も欲しい | large-v3-turboと比較 |
この用途では、単純な推論速度よりも「あとから修正する手間」が重要です。
少し推論が速くても誤認識が増えて修正時間が増えるなら意味がないので、まずはlarge-v3系とlarge-v3-turbo系を自分の声で比較するのが現実的です。
短い音声入力やコマンド入力が中心の場合
短文入力なら、待ち時間の少なさが最優先です。
この場合はlarge-v3-turboが有力な選択肢になります。
音声入力はテンポが命で、「話す → キーを離す → すぐ文字が出る」という流れが気持ちよくないと、日常的に使わなくなります。
短文中心なら、large-v3の最高精度よりlarge-v3-turboの低遅延の方が、結果として満足度が高い場合があります。
メモリに余裕がない場合
メモリが少ないMacでは、無理に大きなfp16モデルを使うより量子化版を選んだ方が安定します。
Apple Silicon Macはユニファイドメモリなので、メモリ不足は全体の動作に影響します。
音声入力ツールを常駐させるなら、最大精度よりも「日常作業を邪魔しないこと」も重要な軸です。
Apple Silicon Macでまず試すなら
Apple Silicon Macで日本語ローカル音声入力を作るなら、最初に比較したいのは次の2系統です。
| 目的 | 構成 |
|---|---|
| 速度基準 | mlx-whisper + large-v3-turbo |
| 精度基準 | mlx-whisper + large-v3 |
| さらに軽量化 | それぞれの4bit / q4量子化版 |
| CLIや組み込み重視 | whisper.cpp |
最初から完璧な構成を決めようとするより、2〜3パターンを同じ音声で比較した方が早く答えが出ます。
比較するときのチェック項目

モデルを選ぶときは、テスト音声を用意すると判断しやすいです。
| テスト音声 | 見るポイント |
|---|---|
| 5秒程度の短文 | 体感遅延、短文の安定性 |
| 30秒程度のメモ | 句読点、文脈、言い直し |
| 専門用語入りの文章 | 固有名詞、英語混じり |
| 数字を含む文章 | 日付、金額、番号 |
| 少しノイズのある音声 | 実環境での強さ |
| 無音に近い音声 | 幻覚出力の有無 |
測る項目は次の通りです。
| 項目 | 意味 |
|---|---|
| 初回ロード時間 | モデル読み込みの時間 |
| 常駐後の推論時間 | 実際に毎回待つ時間 |
| 貼り付け完了までの時間 | 音声入力としての体感 |
| メモリ使用量 | 常駐運用できるか |
| 誤認識数 | 単純な精度 |
| 修正時間 | 実用上のコスト |
| 無音時の挙動 | 勝手に文字を出さないか |
音声認識の評価では誤認識率が注目されがちですが、実際の音声入力では「どれだけ直す必要があるか」が一番効きます。
よくある失敗
モデル名だけで選んでしまう
large-v3だから正解、Turboだから正解。
そういうことはありません。
長文メモならlarge-v3。
短文入力ならlarge-v3-turbo。
メモリ重視なら量子化版。
Mac最適化ならMLXやwhisper.cpp。
CUDA環境ならfaster-whisper。
このように用途によって正解は変わります。
モデル名は「出発点」であって、「答え」ではないです。
4bitを万能だと思ってしまう
4bitはメモリ削減に有効ですが、必ず速くなるわけではありませんし、精度が保たれるとも限りません。
さらに、MLXの4bit、whisper.cppのq4、他の実装の4bitは、名前が似ていても同じものとして比較できるとは限らない点に注意が必要です。
毎回モデルを読み込んでしまう
音声入力では、毎回モデルをロードすると遅すぎて実用になりません。
モデルは起動時に一度常駐させ、録音ごとに推論だけを走らせる構成にした方がいいです。
自動言語判定に任せすぎる
日本語音声入力なら、言語をjaと明示した方が安定する場合があります。
自動言語判定に任せると、短い発話やノイズのある音声で判定が揺れることがあります。
無音対策をしない
無音や環境音だけでも、Whisperは何らかの文章を出力してしまうことがあります。
音声入力ツールとして実用化するなら、無音検出、短すぎる音声の破棄、特定フレーズでの入力破棄といった仕組みをあらかじめ入れておく方が安全です。
まとめ:モデル・量子化・実装・形式・導線を分けて考える
Whisperまわりで混乱する一番の原因は、違う階層の言葉をまとめて比べてしまうことです。
| 用語 | 何の話か |
|---|---|
| Whisper | 音声認識モデル全体 |
| large-v3 | 高精度寄りの大型モデル |
| large-v3-turbo | large-v3を軽くした高速版モデル |
| 4bit / 8bit | 量子化・数値精度の話 |
| MLX | Apple Silicon向けの機械学習フレームワーク |
| mlx-whisper | WhisperをMLXで動かす実装 |
| faster-whisper | CTranslate2ベースのWhisper実装 |
| whisper.cpp | C/C++ベースのWhisper実装 |
| モデル形式 | その実装で読み込める重みの形式 |
Macでローカル音声入力を作るなら、モデル名だけで選ばない方がいいです。
見るべきは次の順番です。
- 用途は短文入力か、長文メモか
- 精度と速度のどちらを優先するか
- Apple Siliconに合った実装を使うか
- メモリに余裕があるか
- 量子化による精度差が許容できるか
- モデル形式が実装に合っているか
- 録音・貼り付け・辞書補正まで含めて実用になるか
Apple Silicon Macで日本語音声入力を作るなら、まずはmlx-whisperかwhisper.cppを候補にするのが現実的です。
- 速度を重視するならlarge-v3-turbo。
- 精度を重視するならlarge-v3。
- メモリを抑えたいなら4bitやq4の量子化版を試してみてください。
ただし、最終的な正解はベンチマーク表ではなく、自分の声、自分のマイク、自分の用途で決まります。
モデル性能だけでなく、待ち時間、修正時間、貼り付け導線、辞書補正、安定運用まで含めて評価することが、音声入力ツールとして本当に使えるかどうかを判断する唯一の方法だと思います。
参考リンク
OpenAI Whisper
https://openai.com/research/whisper/
openai/whisper-large-v3|Hugging Face
https://huggingface.co/openai/whisper-large-v3
openai/whisper-large-v3-turbo|Hugging Face
https://huggingface.co/openai/whisper-large-v3-turbo
Apple MLX GitHub
https://github.com/ml-explore/mlx
Apple MLX Documentation
https://ml-explore.github.io/mlx/
mlx-whisper|PyPI
https://pypi.org/project/mlx-whisper/
mlx-community/whisper-large-v3-mlx-4bit|Hugging Face
https://huggingface.co/mlx-community/whisper-large-v3-mlx-4bit
faster-whisper|GitHub
https://github.com/SYSTRAN/faster-whisper
CTranslate2|GitHub
https://github.com/OpenNMT/CTranslate2
whisper.cpp|GitHub
https://github.com/ggml-org/whisper.cpp

コメント