Voice Assistant offline tiếng Việt với Raspberry Pi
Nâng cao✦ Nổi bật1/3/2026

Voice Assistant offline tiếng Việt với Raspberry Pi

Xây dựng trợ lý giọng nói offline hoàn chỉnh bằng Vosk + Raspberry Pi để điều khiển nhà thông minh không cần internet.

Raspberry PiVoskMQTTGPIOPythonVoiceIoT
0 lượt thích0 người đã làm5 giờ5 bước5 linh kiện
← Quay lại dự án
Hướng dẫn chi tiết

Bài 2: Cài đặt Raspberry Pi OS, môi trường Python và cấu hình âm thanh

Cài Raspberry Pi OS Lite, bật SSH, tạo virtual environment, cắm mic USB, cấu hình ALSA và kiểm tra chất lượng âm thanh trước khi tích hợp Vosk.

Cập nhật 02/03/2026

Bước 1: Cài Raspberry Pi OS Lite

Dùng Raspberry Pi Imager để flash OS vào microSD:

  1. Chọn: Raspberry Pi OS Lite (64-bit)
  2. Bật SSH, đặt username/password, cấu hình WiFi ngay trong Imager
  3. Flash và boot Raspberry Pi
sudo apt update && sudo apt upgrade -y
sudo apt install -y python3-pip python3-venv git espeak-ng     libportaudio2 portaudio19-dev mosquitto mosquitto-clients

Bước 2: Tạo môi trường Python

mkdir ~/voice-assistant && cd ~/voice-assistant
python3 -m venv .venv
source .venv/bin/activate

cat > requirements.txt << 'EOF'
vosk>=0.3.45
sounddevice>=0.4.6
RPi.GPIO>=0.7.1
paho-mqtt>=2.0.0
EOF

pip install -r requirements.txt

Bước 3: Kiểm tra mic USB

arecord -l

Kết quả mẫu:

card 1: Device [USB Audio Device], device 0: USB Audio [USB Audio]

Bước 4: Cấu hình ALSA (~/.asoundrc)

pcm.!default {
    type asym
    capture.pcm "mic"
    playback.pcm "speaker"
}
pcm.mic {
    type plug
    slave { pcm "hw:1,0" }
}
pcm.speaker {
    type plug
    slave { pcm "hw:0,0" }
}
Thay hw:1,0 bằng số card/device thực từ lệnh arecord -l.

Bước 5: Test thu âm và kiểm tra biên độ

arecord -D plughw:1,0 -f S16_LE -r 16000 -c 1 -d 5 test.wav
aplay test.wav
# test_audio.py
import wave, struct

with wave.open("test.wav","r") as wf:
    frames  = wf.readframes(wf.getnframes())
    samples = struct.unpack(f"{len(frames)//2}h", frames)
    max_amp = max(abs(s) for s in samples)
    print(f"Max amplitude: {max_amp}/32767")
    if max_amp < 2000:
        print("CẢNH BÁO: Âm thanh quá nhỏ!")
    else:
        print("OK — Mic hoạt động tốt.")

Bước 6: Test espeak-ng

espeak-ng -v vi -s 150 "Voice Assistant đã sẵn sàng."