Hướng dẫn chi tiết
Bài 1: Tổng quan Voice Assistant offline tiếng Việt trên Raspberry Pi
Hiểu bài toán thực tế, lý do chọn giải pháp offline, kiến trúc hệ thống, và danh sách phần cứng + phần mềm cần chuẩn bị.
Cập nhật 01/03/2026
Bài toán thực tế
Hệ thống nhà thông minh cần nhận lệnh giọng nói tiếng Việt để điều khiển thiết bị (đèn, quạt, điều hòa, ổ cắm) mà không phụ thuộc internet.
- Độ trễ thấp — lệnh được xử lý ngay trên thiết bị (<200 ms)
- Riêng tư — âm thanh không rời khỏi mạng nội bộ
- Hoạt động ổn định khi mất mạng internet
- Chi phí thấp — không cần trả phí cloud API
Kiến trúc hệ thống
Mic USB → Raspberry Pi (Vosk) → Parse lệnh
├── GPIO → Relay → Thiết bị
├── MQTT → ESP32 / Node-RED
└── espeak-ng → Loa (phản hồi)
Vì sao chọn Vosk?
Vosk là thư viện nhận dạng giọng nói offline mã nguồn mở, hỗ trợ tiếng Việt. Ưu điểm:
- Model tiếng Việt nhỏ chỉ ~45 MB
- API Python đơn giản
- Hỗ trợ grammar giới hạn — chỉ nhận dạng từ vựng định sẵn → độ chính xác >95%
- Chạy tốt trên Raspberry Pi 4 (4 GB RAM)
Danh sách lệnh hỗ trợ
COMMANDS = [
"bật đèn", "tắt đèn",
"bật quạt", "tắt quạt",
"bật điều hòa","tắt điều hòa",
"bật ổ cắm", "tắt ổ cắm",
]
Phần cứng cần chuẩn bị
- Raspberry Pi 4 (4 GB RAM trở lên)
- MicroSD 32 GB Class 10
- Nguồn 5V 3A USB-C
- Mic USB (có noise cancellation càng tốt)
- Module relay 4 kênh 5V
- Loa USB hoặc 3.5mm (tùy chọn)
Cấu trúc thư mục dự án
voice-assistant/
├── main.py # Entry point
├── listener.py # Vosk speech recognition
├── gpio_controller.py # GPIO / relay control
├── mqtt_client.py # MQTT publisher
├── command_parser.py # Parse text → action + device
├── tts.py # Text-to-speech (espeak-ng)
├── config.py # Hằng số cấu hình
├── requirements.txt
└── models/
└── vosk-model-small-vn-0.4/