Show HN: Real-time AI (audio/video in, voice out) on an M3 Pro with Gemma E2B
TL;DR Highlight
We open-sourced a real-time multimodal AI speech and video conversation system that runs completely locally on Apple Silicon M3 Pro without the internet. It is attracting attention for its ability to handle speech recognition, video understanding, and TTS simultaneously without cloud costs.
Who Should Read
Developers who want to build their own on-device AI voice assistants, or backend/ML developers who want to build a multimodal pipeline locally without cloud AI API costs.
Core Mechanics
- This project (Parlor) is a real-time multimodal conversation system that takes microphone and camera input and responds with voice, with all processing done only on the user's device.
- It uses Google's recently released Gemma 4 E2B model for language understanding and video recognition, and utilizes the LiteRT-LM runtime for GPU acceleration.
- Kokoro is used for TTS (text-to-speech). It operates with the MLX backend on Mac and the ONNX backend on Linux.
- The structure streams microphone and camera data from the browser to a FastAPI server via WebSocket, and the server returns the processed audio to the browser via WebSocket.
- The browser runs Silero VAD (Voice Activity Detection model) to enable hands-free conversation without push-to-talk, and also supports barge-in functionality to interrupt the AI while it's speaking.
- TTS is streamed sentence by sentence, so audio playback starts before the entire response is generated, reducing perceived latency.
- The motivation for development was to eliminate server costs and make an English learning service sustainable. Six months ago, RTX 5090 was required for real-time processing, but now it's possible with M3 Pro.
- The developer particularly emphasized that Gemma 4 E2B supports multilingualism, allowing users to freely mix their native language and the language they are learning in conversation, which is especially useful for language learning.
Evidence
- "During offline environment testing, a bug was discovered where the page would stop at 'loading...' when localhost was first opened with the internet disconnected. One user reported that it works normally if the page is loaded once while connected to the internet and then the connection is disconnected. I was impressed with the fast performance, including video input, on an M4 Pro 48GB.\n\nA developer who is creating a similar project shared that Gemma 4 E2B is still too heavy despite being E2B, and they are using the Qwen 0.8B model instead. This demonstrates the trade-off between model size and real-time responsiveness is a real barrier.\n\nMultiple comments agreed that the latency of Kokoro TTS is very low, and one developer commented, 'Apple should have used this in Siri,' criticizing Apple for falling behind in technology.\n\nA comment shared information that only the text portion of Gemma 4 E2B can be fine-tuned. They shared their experience of fine-tuning it into an 'AI that talks like a pirate' along with a related video link, and also noted that the TTS portion cannot be fine-tuned.\n\nSome users reported that the voice recognition speed of Gemma E2B does not reach real-time on hardware such as M1 Max (64GB), RTX 5060 Ti (16GB), and Snapdragon 8 Gen 2, and asked for solutions. This suggests that performance may not be guaranteed in environments other than M3 Pro."
How to Apply
- If you need a hands-free workshop assistant or a voice AI while driving long distances, you can launch Parlor as a local server and open a browser to use a voice assistant for timer, calculation, memo search, etc. without the internet and without push-to-talk.
- If you are operating an English learning service or a multilingual conversation app and cloud API costs are burdensome, you can eliminate server costs by referring to the structure of Parlor (FastAPI + WebSocket + Gemma 4 E2B + Kokoro) and converting it to an on-device pipeline.
- If you want to change the response style of the Gemma 4 E2B model to a specific domain, you can apply text fine-tuning to the E2B model to learn the desired tone or response pattern. Keep in mind that fine-tuning does not apply to the TTS portion, so it only applies to the text generation stage.
- If you feel that Gemma 4 E2B is too heavy for low-spec environments (M1 or lower, 16GB or lower GPU, etc.), as mentioned in the comments, it is a good idea to first try replacing it with a smaller model like Qwen 0.8B and measure the real-time latency to confirm the trade-off.
Code Example
# Architecture flow (excerpt from README)
Browser (mic + camera)
│
│ WebSocket (audio PCM + JPEG frames)
▼
FastAPI server
├── Gemma 4 E2B via LiteRT-LM (GPU) → understands speech + vision
└── Kokoro TTS (MLX on Mac, ONNX on Linux) → speaks back
│
│ WebSocket (streamed audio chunks)
▼
Browser (playback + transcript)
# Installation and execution (based on README)
git clone https://github.com/fikrikarim/parlor
cd parlor
cp .env.example .env
# Modify necessary settings in .env
pip install -r requirements.txt
uvicorn src.main:app --reloadTerminology
Related Papers
Jamesob's guide to running SOTA LLMs locally
2천 달러짜리 RTX 3090 한 장부터 4만 달러짜리 RTX PRO 6000 4장 셋업까지, 로컬에서 최신 LLM을 직접 돌리는 방법을 하드웨어 선택·구성·실행 설정까지 통째로 정리한 실전 가이드다.
Faster embeddings: how we rebuilt the ONNX path in Manticore
Manticore Search가 기존 SentenceTransformers/Candle 백엔드를 ONNX Runtime으로 교체해 텍스트 임베딩 생성 속도를 평균 14배 향상시켰다. 별도 모델 서비스 없이 DB 내부에서 직접 임베딩을 처리하는 구조에서 INSERT 속도가 곧 임베딩 속도이기 때문에 이 개선은 실질적인 ingest 처리량 향상으로 직결된다.
Asymmetric Quantization: Near-Lossless Retrieval with 97% Storage Reduction
멀티벡터 검색 모델의 문서 벡터를 1비트 이진값으로 압축하고 쿼리 벡터만 int8로 유지하는 비대칭 양자화 기법으로, 스토리지를 97% 줄이면서 검색 품질 손실을 0.61점(NDCG@10 기준)에 그치게 만든 실제 프로덕션 적용 사례다.
Show HN: Bash4LLM+ – A lightweight, dependency-free Bash wrapper for LLM APIs
Python이나 Node.js 없이 순수 Bash만으로 Groq 등 OpenAI 호환 LLM API를 호출할 수 있는 단일 스크립트 도구로, Termux(Android)를 포함한 모든 Unix 환경에서 동작한다.
Wayfinder Router: deterministic routing of queries between local and hosted LLM
프롬프트의 복잡도를 모델 호출 없이 오프라인으로 점수화해서 간단한 쿼리는 로컬 모델로, 어려운 쿼리는 유료 모델로 자동 라우팅하는 CLI 도구다. LLM 비용을 줄이면서도 응답 품질을 유지하고 싶은 개발자에게 유용하다.
Apple Neural Engine: Architecture, Programming, and Performance
Apple 기기에 내장된 AI 전용 칩인 ANE(Apple Neural Engine)를 리버스 엔지니어링으로 분석한 302페이지짜리 기술 문서로, Core ML 아래 숨겨진 내부 구조와 직접 접근 경로를 처음으로 공개한다.