ランキングに戻る

fikrikarim/parlor

HTML

On-device, real-time multimodal AI. Have natural voice and vision conversations with an AI that runs entirely on your machine. Powered by Gemma 4 E2B and Kokoro.

gemmakokorolitert-lmlocal-llmmultimodalon-device-aipythonreal-timespeech-recognitiontext-to-speechvoice-assistantapple-silicon
スター成長
スター
1.9k
フォーク
242
週間成長
Issue
5
1.8k1.9k1.9k
26年4月26年5月26年6月26年7月
README

Parlor

On-device, real-time multimodal AI. Have natural voice and vision conversations with an AI that runs entirely on your machine.

Parlor uses Gemma 4 E2B for understanding speech and vision, and Kokoro for text-to-speech. You talk, show your camera, and it talks back, all locally.

https://github.com/user-attachments/assets/cb0ffb2e-f84f-48e7-872c-c5f7b5c6d51f

Research preview. This is an early experiment. Expect rough edges and bugs.

Why?

I'm self-hosting a totally free voice AI on my home server to help people learn speaking English. It has hundreds of monthly active users, and I've been thinking about how to keep it free while making it sustainable.

The obvious answer: run everything on-device, eliminating any server cost. Six months ago I needed an RTX 5090 to run just the voice models in real-time.

Google just released a super capable small model that I can run on my M3 Pro in real-time, with vision too! Sure you can't do agentic coding with this, but it is a game-changer for people learning a new language. Imagine a few years from now that people can run this locally on their phones. They can point their camera at objects and talk about them. And this model is multi-lingual, so people can always fallback to their native language if they want. This is essentially what OpenAI demoed a few years ago.

How it works

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)
  • Voice Activity Detection in the browser (Silero VAD). Hands-free, no push-to-talk.
  • Barge-in. Interrupt the AI mid-sentence by speaking.
  • Sentence-level TTS streaming. Audio starts playing before the full response is generated.

Requirements

  • Python 3.12+
  • macOS with Apple Silicon, or Linux with a supported GPU
  • ~3 GB free RAM for the model

Quick start

git clone https://github.com/fikrikarim/parlor.git
cd parlor

# Install uv if you don't have it
curl -LsSf https://astral.sh/uv/install.sh | sh

cd src
uv sync
uv run server.py

Open http://localhost:8000, grant camera and microphone access, and start talking.

Models are downloaded automatically on first run (~2.6 GB for Gemma 4 E2B, plus TTS models).

Configuration

Variable Default Description
MODEL_PATH auto-download from HuggingFace Path to a local gemma-4-E2B-it.litertlm file
PORT 8000 Server port

Performance (Apple M3 Pro)

Stage Time
Speech + vision understanding ~1.8-2.2s
Response generation (~25 tokens) ~0.3s
Text-to-speech (1-3 sentences) ~0.3-0.7s
Total end-to-end ~2.5-3.0s

Decode speed: ~83 tokens/sec on GPU (Apple M3 Pro).

Project structure

src/
├── server.py              # FastAPI WebSocket server + Gemma 4 inference
├── tts.py                 # Platform-aware TTS (MLX on Mac, ONNX on Linux)
├── index.html             # Frontend UI (VAD, camera, audio playback)
├── pyproject.toml         # Dependencies
└── benchmarks/
    ├── bench.py           # End-to-end WebSocket benchmark
    └── benchmark_tts.py   # TTS backend comparison

Acknowledgments

License

Apache 2.0

関連リポジトリ
ollama/ollama

Get up and running with Kimi-K2.6, GLM-5.2, MiniMax, DeepSeek, gpt-oss, Qwen, Gemma and other models.

GoGo ModulesMIT Licensellamallm
ollama.com
176.6k17.1k
huggingface/transformers

🤗 Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and multimodal models, for both inference and training.

PythonPyPIApache License 2.0nlpnatural-language-processing
huggingface.co/transformers
162.8k34k
hiyouga/LlamaFactory

Unified Efficient Fine-Tuning of 100+ LLMs & VLMs (ACL 2024)

PythonPyPIApache License 2.0fine-tuningllama
llamafactory.readthedocs.io
73.4k9k
unslothai/unsloth

Unsloth is a local UI for training and running Gemma 4, Qwen3.6, DeepSeek, Kimi, GLM and other models.

PythonPyPIApache License 2.0fine-tuningllama
unsloth.ai/docs
68.7k6.2k
GaiZhenbiao/ChuanhuChatGPT

GUI for ChatGPT API and many LLMs. Supports agents, file-based QA, GPT finetuning and query with web search. All with a neat UI.

PythonPyPIGNU General Public License v3.0chatbotchatgpt-api
huggingface.co/spaces/JohnSmith9982/ChuanhuChatGPT
15.3k2.2k
xorbitsai/inference

Swap GPT for any LLM by changing a single line of code. Xinference lets you run open-source, speech, and multimodal models on cloud, on-prem, or your laptop — all through one unified, production-ready inference API.

PythonPyPIApache License 2.0ggmlpytorch
inference.readthedocs.io
9.4k847
yangjianxin1/Firefly

Firefly: 大模型训练工具,支持训练Qwen2.5、Qwen2、Yi1.5、Phi-3、Llama3、Gemma、MiniCPM、Yi、Deepseek、Orion、Xverse、Mixtral-8x7B、Zephyr、Mistral、Baichuan2、Llma2、Llama、Qwen、Baichuan、ChatGLM2、InternLM、Ziya2、Vicuna、Bloom等大模型

PythonPyPIgptalpaca
6.6k584
clusterzx/paperless-ai

An automated document analyzer for Paperless-ngx using OpenAI API, Ollama, Deepseek-r1, Azure and all OpenAI API compatible Services to automatically analyze and tag your documents.

JavaScriptnpmMIT Licenseaiautomation
clusterzx.github.io/paperless-ai/
5.8k316
google/gemma_pytorch

The official PyTorch implementation of Google's Gemma models

PythonPyPIApache License 2.0gemmagoogle
ai.google.dev/gemma
5.7k600
google-gemma/cookbook

A collection of guides and examples for the Gemma open models from Google.

Jupyter NotebookApache License 2.0codegemmagemma
ai.google.dev/gemma/
3.9k640
deta/surf

Personal AI Notebooks. Organize files & webpages and generate notes from them. Open source, local & open data, open model choice (incl. local).

TypeScriptnpmApache License 2.0localproductivity
deta.surf
3.5k254
cactus-compute/needle

26m agentic model for tiny devices

PythonPyPIMIT Licensecactusgemini
cactuscompute.com
3.3k246