Parlor: AI Đa Phương Thức Trên Thiết Bị
Parlor cho phép bạn trò chuyện qua giọng nói và hình ảnh với AI mà không cần kết nối máy chủ ngoài. Ứng dụng này chạy hoàn toàn trên máy của bạn, sử dụng Gemma 4 E2B để hiểu giọng nói và hình ảnh, và Kokoro để chuyển văn bản thành giọng nói.
Nghiên cứu sơ bộ: Đây là một trải nghiệm ban đầu với nhiều cải tiến trong tương lai.
Lý do phát triển
Parlor được phát triển để hỗ trợ học tiếng Anh với chi phí thấp. Bằng cách chạy tất cả trên thiết bị, ứng dụng loại bỏ chi phí server và có khả năng chạy trên các thiết bị có hiệu suất thấp hơn.
Cách hoạt động
Trình duyệt (mic + camera)
│
│ WebSocket (audio PCM + JPEG frames)
▼
FastAPI server
├── Gemma 4 E2B via LiteRT-LM (GPU) → hiểu giọng nói + hình ảnh
└── Kokoro TTS (MLX trên Mac, ONNX trên Linux) → phản hồi lại
│
│ WebSocket (luồng âm thanh)
▼
Trình duyệt (phát âm + bản dịch)
- Phát hiện Hoạt động Giọng nói: Sử dụng Silero VAD trong trình duyệt để hoàn toàn rảnh tay.
- Ngắt lời: Có thể ngắt lời AI khi đang nói.
- Phát âm TTS theo câu: Phát âm bắt đầu trước khi câu trả lời đầy đủ được tạo ra.
Yêu cầu
- Python 3.12+
- macOS với Apple Silicon hoặc Linux với GPU hỗ trợ
- Khoảng 3 GB RAM trống cho mô hình
Bắt đầu nhanh
git clone https://github.com/fikrikarim/parlor.git
cd parlor
# Cài đặt uv nếu chưa có
curl -LsSf https://astral.sh/uv/install.sh | sh
cd src
uv sync
uv run server.py
Mở http://localhost:8000, cho phép truy cập camera và micro, và bắt đầu trò chuyện.
Cấu hình
| Biến | Mặc định | Miêu tả |
|---|---|---|
MODEL_PATH | Tự động tải từ HuggingFace | Đường dẫn tới tệp gemma-4-E2B-it.litertlm |
PORT | 8000 | Cổng server |
Hiệu năng (Apple M3 Pro)
| Giai đoạn | Thời gian |
|---|---|
| Hiểu giọng nói + hình ảnh | ~1.8-2.2s |
| Tạo phản hồi (~25 tokens) | ~0.3s |
| Chuyển văn bản thành giọng nói (1-3 câu) | ~0.3-0.7s |
| Tổng thời gian | ~2.5-3.0s |
Cấu trúc dự án
src/
├── server.py # FastAPI WebSocket server + Gemma 4 inference
├── tts.py # TTS sao cho phù hợp với nền tảng
├── index.html # Giao diện UI
├── pyproject.toml # Dependencies
└── benchmarks/
├── bench.py # Đo hiệu năng WebSocket end-to-end
└── benchmark_tts.py # So sánh tts backend
Cám ơn
- Gemma 4 bởi Google DeepMind
- LiteRT-LM bởi Google AI Edge
- Kokoro của Hexgrad
- Silero VAD cho phát hiện hoạt động giọng nói trong trình duyệt