惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

B
Blog
D
Docker
J
Java Code Geeks
腾讯CDC
Blog — PlanetScale
Blog — PlanetScale
G
Google Developers Blog
M
MIT News - Artificial intelligence
L
LangChain Blog
T
The Blog of Author Tim Ferriss
P
Proofpoint News Feed
MyScale Blog
MyScale Blog
博客园 - Franky
GbyAI
GbyAI
Hugging Face - Blog
Hugging Face - Blog
aimingoo的专栏
aimingoo的专栏
Last Week in AI
Last Week in AI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 聂微东
N
Netflix TechBlog - Medium
B
Blog RSS Feed
Y
Y Combinator Blog
阮一峰的网络日志
阮一峰的网络日志
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google DeepMind News
Google DeepMind News

Hacker News - Newest: "AI"

AI can't read an investor deck AI as an attorney? Student uses ChatGPT, Gemini to sue UW over alleged racial discrimination Hacking MCP Servers in AI Systems – The Rug Pull: Tool Changes After Approval GitHub - MeepCastana/KubeezCut: Free Web based video editor Can AI judge journalism? A Thiel-backed startup says yes, even if it risks chilling whistleblowers Coming soon: 10 Things That Matter in AI Right Now DARPA built an AI to fact-check enemy weapons claims What explains heterogeneity in AI adoption? When AI Meets Muscle: Context-Aware Electrical Stimulation Promises a New Way to Guide Human Movements - Department of Computer Science AI Changed How We Build. It Did Not Change What Matters. Linux rules on using AI-generated code - Copilot is OK, but humans must take 'full responsibility for the… Meta spins up AI version of Mark Zuckerberg to engage with employees Code Mode: Let Your AI Write Programs, Not Just Call Tools | TanStack Blog GitHub - Delavalom/graft: Go framework for building AI agents. Type-safe tools, multi-provider (OpenAI, Anthropic, Gemini, Bedrock), zero vendor SDKs. India's TCS tops estimates, says new AI models did not dent services demand Gen Z's fading AI hype Strong feeling: we are in a folded AI reality GitHub - machinarii/total-recall-catalog: A reference catalog of latest knowledge retrieval, memory & RAG systems GitHub - mensfeld/code-on-incus: Give each AI agent its own isolated machine with root, Docker, and systemd. Active defense detects and stops threats automatically.. Quantization, LoRA, and the 8% Problem: Benchmarking Local LLMs for Production AI Iran war: We spoke to the man making Lego-style AI videos that experts say are powerful propaganda Powell, Bessent discussed Anthropic's Mythos AI cyber threat with major U.S. banks GitHub - immartian/bellamem: Persistent belief-graph memory for AI agents. Retrieves decisive context by importance — not recency, not RAG, not /compact. recursive-mode: The Repo-Native Operating System for AI Engineering After the attack on Sam Altman's home, will AI CEO's go on the offensive? The biggest advance in AI since the LLM Opus 4.6 vs GPT 5.4 One Prompt Unity World Generation Test “AI polls” are fake polls Client Challenge Can AI be a 'child of God'? Inside Anthropic's meeting with Christian leaders
GitHub - typomonster/parlor-jarvis: On-device, real-time ...
unusual_typo · 2026-04-27 · via Hacker News - Newest: "AI"

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

Parlor Jarvis is an enhanced fork of Parlor with stronger multilingual capabilities and richer image inputs. You talk, show your camera (or screen, PDF, or video), and it talks back — all locally.

Parlor Jarvis Demo

Video generation in ComfyUI.

Parlor Jarvis Demo

Image: AI-generated influencer

English translation of the demo conversation

User: I'm trying to generate a video using LTX, please help me.

AI: I see you're curious about generating a video using LTX. Currently, I can see a ComfyUI workflow and related documentation on the screen. Could you tell me more specifically what kind of video you'd like to make using LTX?

User: What clothes is the model wearing?

AI: The model in the photo is wearing a light green knit cardigan with a white top underneath. For the bottom, she is wearing denim jeans.

Parlor:

parlor_realtime_ai_with_audio_video_input_optimized.mp4

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

Parlor vs Parlor Jarvis

Capability Parlor Parlor Jarvis
Language model Gemma 4 E2B Supergemma 4 E4B (abliterated, enhanced Korean)
Text-to-speech Kokoro (English only) Supertonic — 5 languages: English (en), Korean (ko), Spanish (es), Portuguese (pt), French (fr)
Image input Camera Camera + screen sharing, PDF, video
Frontend Raw HTML Next.js

Why?

Local models are quickly catching up on both text generation and image understanding, and one of the most exciting breakthroughs is multilingual capability — strong performance across European languages (Spanish, Portuguese, French, …) and Asian languages (Korean, …), not just English. Parlor Jarvis is our take on what a fully on-device, multilingual, multimodal assistant can feel like today: speak any of the supported languages, point your camera, share your screen, drop in a PDF or video, and have a real conversation with a model running entirely on your machine. Enjoy!

Original author's why (from Parlor):

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 / screen / PDF / video)
    │
    │  WebSocket (audio PCM + JPEG frames)
    ▼
FastAPI server
    ├── Supergemma 4 E4B via LiteRT-LM (GPU)  →  understands speech + vision
    └── Supertonic 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+
  • Node.js 20+ (for the Next.js frontend)
  • macOS with Apple Silicon, or Linux with a supported GPU
  • ~3 GB free RAM for the model

Quick start

Parlor Jarvis has two pieces: a FastAPI backend (src/) and a Next.js frontend (web/). In development you run both — Next proxies /ws to FastAPI so the browser talks to a single origin.

git clone https://github.com/typomonster/parlor-jarvis.git
cd parlor-jarvis

Terminal 1 — backend:

# 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

Terminal 2 — frontend:

cd web
npm install
npm run dev

Open http://localhost:3000, 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).

How the dev proxy works

web/next.config.ts declares a rewrite from /wshttp://localhost:8000/ws, so the browser opens ws://localhost:3000/ws and Next.js proxies the upgrade through to FastAPI. Override the backend target with BACKEND_URL=http://host:port npm run dev if you want to point at a different server.

Configuration

Note: The default configuration is optimized for Korean, even though both the LLM and TTS support other languages natively. You can swap the LLM or TTS models via the env vars below — see Supported models and TTS engines.

Backend (src/)

Variable Default Description
MODEL_PATH auto-download from HuggingFace Path to a local .litertlm file
HF_REPO typomonster/supergemma4-e4b-abliterated-litert-lm HuggingFace repo to pull the model from
HF_FILENAME supergemma4-e4b-abliterated.litertlm File within HF_REPO to download
PORT 8000 FastAPI port
TTS_ENGINE supertonic supertonic (multilingual — en/ko/es/pt/fr) or kokoro (English, faster)
KOKORO_ONNX unset Force the Kokoro ONNX backend on Apple Silicon
SUPERTONIC_ONNX unset Force the Supertonic ONNX backend on Apple Silicon
SUPERTONIC_MLX_REPO typomonster/supertonic-2-mlx HF repo for the Supertonic MLX checkpoint
SUPERTONIC_ONNX_REPO Supertone/supertonic-2 HF repo for the Supertonic ONNX checkpoint

TTS engines

Parlor Jarvis ships with two interchangeable TTS backends, selected at runtime via TTS_ENGINE:

Engine Languages Apple Silicon Linux / x86
supertonic (default) en, ko, es, pt, fr mlx-audio fork1 (MLX) Supertonic ONNX Runtime
kokoro English only mlx-audio (MLX) kokoro-onnx

Force ONNX instead of MLX on macOS with SUPERTONIC_ONNX=1 or KOKORO_ONNX=1. Language is selected automatically from the frontend's active locale (Supertonic only — Kokoro ignores it). Set TTS_ENGINE=kokoro if you want the lighter English-only engine.

Supported models

Model HF_REPO HF_FILENAME
Supergemma4-E4B (abliterated) (default — strong multilingual, Korean) typomonster/supergemma4-e4b-abliterated-litert-lm supergemma4-e4b-abliterated.litertlm
Gemma 4 E2B (smallest, fastest) litert-community/gemma-4-E2B-it-litert-lm gemma-4-E2B-it.litertlm
Gemma 4 E4B (upstream base) litert-community/gemma-4-E4B-it-litert-lm gemma-4-E4B-it.litertlm

Switch models by setting both env vars, e.g.:

HF_REPO=litert-community/gemma-4-E2B-it-litert-lm \
HF_FILENAME=gemma-4-E2B-it.litertlm \
uv run server.py

Frontend (web/)

Variable Default Description
BACKEND_URL http://localhost:8000 Target for the /ws proxy in dev/build

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

parlor-jarvis/
├── src/                       # Python backend
│   ├── server.py              # FastAPI WebSocket server + Gemma 4 inference
│   ├── tts.py                 # Platform-aware TTS (MLX on Mac, ONNX on Linux)
│   ├── pyproject.toml         # Python dependencies
│   └── benchmarks/
│       ├── bench.py           # End-to-end WebSocket benchmark
│       └── benchmark_tts.py   # TTS backend comparison
└── web/                       # Next.js frontend (TypeScript + Tailwind + shadcn/ui)
    ├── app/
    │   ├── page.tsx           # Main UI — VAD, camera, audio playback
    │   ├── layout.tsx
    │   └── globals.css        # App styles + Tailwind tokens
    ├── components/ui/         # shadcn/ui components
    └── next.config.ts         # /ws rewrite → FastAPI

Acknowledgments

Our open source contributions

To make Parlor Jarvis possible, we ported and packaged a couple of upstream models for on-device use and shared everything back:

License

Apache 2.0

Footnotes

  1. mlx-audio @ git+https://github.com/typomonster/mlx-audio — the Supertonic-MLX support is pinned to this fork until it's upstreamed.