わずか 16.9MB:Cactus が超軽量音声認識モデル「Whistle」を公開
Cactus Compute は単一ファイルで 16.9 MB の音声認識モデル「Whistle」をリリースした。GPU 不要かつ CPU 単体・依存関係なしで動作し、7 言語の文字起こしと単語単位のタイムスタンプに対応。145 MB ある Whisper base をベンチマークで上回る。
Whistle は、単一の 16.9MB ファイルで音声認識、単語単位のタイムスタンプ付与、音声特徴量抽出をこなす超軽量オンデバイスモデルだ。
一般的な音声認識モデルは軽量版でも数百 MB から数 GB あり、GPU や複雑な依存環境を必要とすることが多い。Cactus Compute が公開した Whistle は、CPU のみで動作し、追加の依存関係も一切不要。単一の .cact ファイルを軽量な C++ エンジンに読み込ませるだけで完結する。
何ができるのか
Whistle は主に 3 つの処理をすべてデバイス上で実行する。
1 つ目は文字起こしだ。英語、ドイツ語、フランス語、スペイン語、イタリア語、オランダ語、ポーランド語の 7 言語に対応。16kHz モノラル音声を 1 パスあたり最大 30 秒まで処理し、30 秒を超える音声はウィンドウ分割で文字起こしする。言語は自動検出されるが、手動指定も可能だ。
2 つ目は単語単位のタイムスタンプ出力。デコーダのアテンションを利用し、各単語の開始時刻、終了時刻、確率を正確に出力する。
3 つ目は音声埋め込み表現の抽出だ。テキストへのデコードを行わずに、80 ミリ秒フレームごとのエンコーダ出力を直接取得できる。
さらに Aho-Corasick オートマトンを用いたキーワードバイアス機能を備えており、専門用語の認識率を高めることができる。入力音声が無音と判定された場合はビームサーチを行わずに即座に空のテキストを返す省電力設計も施されている。
速度・仕様・ベンチマーク
86,174 発話での検証によると、LibriSpeech、SPGISpeech、Earnings-22、FLEURS 平均などの指標で、145.3MB ある Whisper base の認識精度を上回った。検証動画では、Whisper base に比べてデコード速度が約 6 倍高速だったと報告されている。
初動レイテンシの短さも際立つ。Whisper は音声を一律 30 秒にパディングするため初回トークン生成までの時間が固定化されるが、Whistle は実音声の長さに比例する。初速トークンまでの時間は 5 秒クリップで 5.9 ミリ秒、10 秒で 11.1 ミリ秒、30 秒でも 36.3 ミリ秒にとどまる。
この効率は、8 ブロック構成のエンコーダとデコーダ、そして独自のクロスアテンション設計によるものだ。音声のキーとバリューの計算をクリップ到着時に 1 度だけ行いキャッシュするため、5 ビームの探索を行っても音声全体を何度も再計算せずに済む。
動かし方
導入は極めてシンプルだ。C++ エンジンは macOS、Linux、iOS、Android、watchOS、Windows on ARM、RISC-V、MIPS、WASI など 17 のターゲット向けにビルド済みバイナリが提供されている。
Python から使う場合も簡単な pip インストールだけで動き、16kHz の WAV 音声であれば追加ライブラリすら不要だ。マイク入力やリサンプリングには追加パッケージを用意すればよく、ターミナル上で needle whistle playground を叩けばすぐにマイク入力テストができる。
モデルの重みは Hugging Face に置かれており、エンジンとソースコードは GitHub(Cactus-Compute/needle3)で公開されている。
なぜ重要か
我々が評価したいのは、モデルを肥大化させる競争から抜け出し、エッジ実用性に振り切った割り切りの良さだ。わずか 16.9MB かつ純粋な CPU 駆動という仕様は、これまで重い AI を載せられなかったウェアラブル、スマート家電、車載機器、マイコンにとって理想的な音声入力手段になる。
対応言語が現状 7 言語に限られ、出力も最大 320 トークンまでという制約はあるため、長時間の会議録音には向かない。しかし、ローカル環境で機密を守りつつ、軽快な音声コマンド処理を実装したい開発者にとっては、今すぐ試す価値のある有力な選択肢だ。
情報源 (2)
- cactuscompute.com(新しいタブで開きます)原文cactuscompute.com
- youtube.com(新しいタブで開きます)報道youtube.com