Apple Silicon上でSwift/MLX化した Nvidia PersonaPlex 7B、ローカル音声エージェントを実用域へ近づける

Hacker Newsの議論: https://news.ycombinator.com/item?id=47258801
原文: Ivan Campos による PersonaPlex 7B 移植記

このHN投稿が指しているのは、単なるbenchmark表より実用的な実験だ。NVIDIA ResearchのPersonaPlex 7B speech-to-speechスタックを、MLX経由でApple Silicon上のnative Swiftに移植する試みである。PersonaPlex自体が面白いのは、単純な speech-to-text + text-to-speech 連結ではなく、full-duplex の音声対話を狙ったモデルだからだ。そして記事がさらに面白いのは、その構成をローカル環境で実際に使える形へ持っていくため、何を変更したかを細かく書いている点にある。

移植で変わった点

0.5秒ごとに音声を出す heartbeat chunking を入れ、dead air と文末反復を減らした。

passthrough mode と realtime preview により、assistant音声をすぐ返し、interrupt も扱えるようにした。

audio stack を ring buffer、dynamic chunk dropping、session管理中心に組み替え、multi-user / multi-agent 構成まで視野に入れた。

筆者によれば、初期ポートは 3〜4秒の latency があり、自然な turn-taking には遅すぎた。パイプライン調整後、M4 Pro のデモでは 1.5B encoder 段から incremental audio output まで約 1.3x real time、ユーザー発話終了から assistant 音声開始までおよそ 0.4 の latency factor に到達したという。残る課題は turn detection で、元のPython reference環境向けだった voice activity logic を Swift 側でさらに詰める必要があるとされる。

AI builder にとって重要なのは、ローカルvoice agentが「デモでは動く」から「会話で使える」に近づいている点だ。この投稿は、speech-to-speech の難所が単なるモデル品質ではなく、streaming、buffering、interrupt、そして音声ループ全体の体感設計にあることをよく示している。