IoTLabs

Nghiên cứu, Sáng tạo và Thử nghiệm

Voice Assistant offline tiếng Việt với Raspberry Pi – Bài 2: Cài đặt micro và kiểm tra audio input

Ở 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 card
  • device 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ây
  • test.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”