Ở bài trước, chúng ta đã hiểu tổng thể về hệ thống Voice Assistant offline tiếng Việt. Trong bài này, chúng ta sẽ bắt đầu bước đầu tiên nhưng cực kỳ quan trọng:
Làm cho Raspberry Pi “nghe được” bạn nói
Nếu audio input không ổn định, toàn bộ phần nhận diện giọng nói phía sau (Vosk, command parser…) sẽ hoạt động kém hoặc sai hoàn toàn. Vì vậy, bài này tập trung vào:
- kết nối micro
- kiểm tra thiết bị audio
- chọn đúng input device
- thu âm và test local
1. Bạn sẽ làm được gì sau bài này
Sau khi hoàn thành bài này, bạn sẽ:
- Cắm micro vào Raspberry Pi và nhận diện được thiết bị
- Biết cách kiểm tra danh sách audio input
- Chọn đúng micro để sử dụng
- Thu âm giọng nói và phát lại để kiểm tra chất lượng
2. Chuẩn bị phần cứng
Thiết bị cần có
- Raspberry Pi (khuyên dùng Pi 4 / Pi 5)
- Microphone USB (khuyên dùng)
- Hoặc USB sound card + micro 3.5mm
💡 Khuyến nghị:
- Tránh dùng micro analog cắm trực tiếp (trừ khi có sound card)
- Micro USB sẽ đơn giản và ổn định hơn rất nhiều
Bước 1: Kết nối micro với Raspberry Pi
Chỉ cần cắm micro USB vào Raspberry Pi:
- Không cần driver thủ công
- Linux (Raspberry Pi OS) sẽ tự nhận thiết bị
Sau khi cắm xong, kiểm tra nhanh bằng lệnh:
lsusb
Bạn sẽ thấy thiết bị dạng:
Bus 001 Device 004: ID xxxx:xxxx USB Microphone
Bước 2: Kiểm tra danh sách audio devices
Raspberry Pi sử dụng ALSA (Advanced Linux Sound Architecture) để quản lý audio.
Liệt kê thiết bị input
arecord -l
Ví dụ kết quả:
card 1: Device [USB Audio Device], device 0: USB Audio
👉 Ý nghĩa:
card 1→ ID của sound carddevice 0→ device index
Bước 3: Chọn đúng micro input
Đây là bước quan trọng nhất.
Giả sử bạn có:
card 1, device 0
Thì input device sẽ là:
hw:1,0
Bước 4: Thu âm thử bằng terminal
Chúng ta sẽ test trực tiếp bằng lệnh:
arecord -D hw:1,0 -f cd -d 5 test.wav
Giải thích:
-D hw:1,0→ chọn device-f cd→ chất lượng CD (44100Hz)-d 5→ thu 5 giâytest.wav→ file output
👉 Khi chạy lệnh:
- nói thử vào micro
- chờ 5 giây
Bước 5: Phát lại audio
Sau khi thu xong:
aplay test.wav
Nếu bạn nghe rõ giọng nói của mình → ✅ OK
Kiểm tra chất lượng micro
Bạn nên test vài lần với các điều kiện khác nhau:
1. Khoảng cách
- 10–20cm → tốt nhất
- quá xa → nhỏ, khó nhận diện
2. Tiếng ồn môi trường
- phòng yên tĩnh → tốt
- có quạt, TV → cần lọc hoặc nói rõ hơn
3. Tốc độ nói
- nói chậm, rõ → nhận diện tốt hơn
- nói nhanh → dễ sai
Bước 6: (Tuỳ chọn) Cài alsamixer để chỉnh volume
Cài đặt:
sudo apt install alsa-utils
Mở mixer:
alsamixer
Chọn sound card (nhấn F6)
👉 Tăng giảm:
- Mic volume
- Capture level
💡 Nếu âm thanh nhỏ → tăng gain tại đây
Bước 7: Test audio bằng Python (chuẩn bị cho Vosk)
Cài thư viện:
pip install sounddevice scipy
Code test đơn giản
import sounddevice as sd
from scipy.io.wavfile import write
fs = 16000 # sample rate
seconds = 5
print("Recording...")
audio = sd.rec(int(seconds * fs), samplerate=fs, channels=1)
sd.wait()
write("output.wav", fs, audio)
print("Saved to output.wav")
Chạy:
python test_mic.py
Sau đó:
aplay output.wav
3. Các lỗi thường gặp
❌ Không thấy thiết bị trong arecord -l
Nguyên nhân:
- micro chưa nhận
- lỗi USB
Cách xử lý:
- rút ra cắm lại
- đổi cổng USB
- reboot Pi
❌ Thu được nhưng không có tiếng
Nguyên nhân:
- sai device
- mic bị mute
Cách xử lý:
- kiểm tra lại
hw:x,y - dùng
alsamixer
❌ Âm thanh rất nhỏ
Nguyên nhân:
- gain thấp
- micro chất lượng kém
Cách xử lý:
- tăng volume trong alsamixer
- đổi micro
❌ Nhiễu / rè
Nguyên nhân:
- nguồn điện
- micro rẻ
Cách xử lý:
- dùng USB sound card tốt hơn
- dùng micro có lọc noise
4. Kết nối với các bài tiếp theo
Sau bài này, bạn đã có:
✅ Micro hoạt động
✅ Audio input ổn định
✅ Thu âm và playback OK
👉 Đây là nền tảng để bước sang bài quan trọng tiếp theo:
➡️ Nhận diện lệnh tiếng Việt bằng Vosk với bộ từ vựng giới hạn
Ở đó, chúng ta sẽ:
- cài Vosk
- load model tiếng Việt
- biến audio thành text
- bắt đầu “hiểu lệnh”


