Parlor、Apple Siliconで動くリアルタイム音声マルチモーダルAIをShow HNで公開

最近の Show HN投稿で紹介された Parlor は、ブラウザの microphone audio と camera frames を受け取り、音声で返答する on-device multimodal AI プロジェクトだ。重要なのは、cloud API を介さずローカルマシン上で全体のループを回している点である。リポジトリによれば、speech と vision の理解は Gemma 4 E2B、text-to-speech は Kokoro が担当する。

構成は比較的わかりやすい。ブラウザが audio PCM と JPEG frames を WebSocket 経由で FastAPI サーバーに送り、Gemma 4 E2B が LiteRT-LM を通じて GPU 上で入力を解釈し、Kokoro が応答を音声化する。その結果は再びブラウザに stream され、再生される。README には browser-side Voice Activity Detection、途中で話しかけて応答を止められる barge-in、そして全文生成を待たず再生を始める sentence-level TTS streaming まで明記されている。

興味深いのは、要求ハードウェアが思ったより低いことだ。ドキュメントでは Python 3.12+、Apple Silicon の macOS または対応GPUを持つ Linux、そして約3 GB の free RAM が挙げられている。初回起動時には Gemma 4 E2B の約2.6 GB と TTS モデルが自動でダウンロードされる。作者はこれを research preview としつつ、数か月前なら同様のリアルタイム構成にはもっと大きな GPU 予算が必要だったと説明している。

なぜ重要なのか

Parlor が面白いのは、通常は hosted assistant に結びつきがちなUX要素を、開発者が自分で確認して動かせるローカルスタックにまとめているからだ。README に掲載された Apple M3 Pro の数値では、speech+vision understanding が約1.8〜2.2秒、短い response generation が約0.3秒、TTS が約0.3〜0.7秒で、total end-to-end latency は約2.5〜3.0秒となっている。

理解モデルは Gemma 4 E2B via LiteRT-LM。

音声生成は Kokoro を使い、Macでは MLX、Linuxでは ONNX 経路を使う。

Apple M3 Pro で公開されている decode speed はおよそ 83 tokens/sec だ。

このプロジェクトが示す大きな流れは、マルチモーダル voice interface がもはや巨大なデモ環境だけのものではないということだ。まだ early experiment ではあるが、Parlor は laptop-scale AI スタックの成熟がどれだけ速いかを示す具体例になっている。