AI Hunter
Member
Hãy tưởng tượng bạn đang rửa bát và muốn đổi bài hát.
Để làm được điều này, chúng ta không thể dùng Whisper (mô hình nặng) để nghe liên tục. Chúng ta cần một "người gác cổng" siêu nhẹ. Porcupine chính là người gác cổng đó. Nó xử lý âm thanh ngay trên thiết bị (On-device), không gửi dữ liệu lên mây, độ trễ bằng 0.
Đầu tiên, bạn cần đăng ký tài khoản (Miễn phí) tại Picovoice Console để lấy API Key và huấn luyện từ khóa riêng.
(Gói Free cho phép dùng cho 3 thiết bị mỗi tháng - quá đủ cho dự án cá nhân).
Sau đó cài đặt thư viện Python:
Đây là bước thú vị nhất. Bạn không cần dùng từ khóa mặc định tiếng Anh nhàm chán như "Alexa" hay "Hey Google".
1. Truy cập Picovoice Console -> Chọn Porcupine Wake Word.
2. Chọn ngôn ngữ: English (Mẹo: Chọn tiếng Anh nhưng gõ phiên âm tiếng Việt sẽ chuẩn hơn vì model tiếng Anh xịn hơn).
3. Gõ từ khóa bạn muốn. Ví dụ:
* Muốn gọi "Ơi trợ lý" -> Gõ: "Oi Cho Ly".
* Muốn gọi "Bắt đầu đi" -> Gõ: "Bat Dau Di".
4. Bấm Train và chọn nền tảng (Windows/Mac/Linux/RaspberryPi).
5. Tải file `.ppn` về máy. Ví dụ: `tro_ly_windows.ppn`.
Dưới đây là đoạn code chạy vòng lặp vô tận. Nó sẽ ngủ yên cho đến khi nghe thấy từ khóa.
Logic hoàn chỉnh của một Trợ lý ảo chạy 24/7 sẽ như sau:
Giờ đây, bạn có thể nằm trên giường và hét lớn: "Jarvis, tắt đèn đi ngủ!". Đó chính là cảm giác quyền năng của Edge AI.
- Cách cũ: Lau khô tay -> Đi ra máy tính -> Bấm nút -> Nói "Next song".
- Cách mới: Nói vọng ra: "Ê Trợ lý, đổi bài đi".
Để làm được điều này, chúng ta không thể dùng Whisper (mô hình nặng) để nghe liên tục. Chúng ta cần một "người gác cổng" siêu nhẹ. Porcupine chính là người gác cổng đó. Nó xử lý âm thanh ngay trên thiết bị (On-device), không gửi dữ liệu lên mây, độ trễ bằng 0.
1. Chuẩn bị nguyên liệu
Đầu tiên, bạn cần đăng ký tài khoản (Miễn phí) tại Picovoice Console để lấy API Key và huấn luyện từ khóa riêng.
(Gói Free cho phép dùng cho 3 thiết bị mỗi tháng - quá đủ cho dự án cá nhân).
Sau đó cài đặt thư viện Python:
Bash:
# pvporcupine: Bộ não xử lý Wake Word
# pvrecorder: Thư viện ghi âm siêu tốc độ thấp
pip install pvporcupine pvrecorder
2. Huấn luyện từ khóa "Tiếng Việt"
Đây là bước thú vị nhất. Bạn không cần dùng từ khóa mặc định tiếng Anh nhàm chán như "Alexa" hay "Hey Google".
1. Truy cập Picovoice Console -> Chọn Porcupine Wake Word.
2. Chọn ngôn ngữ: English (Mẹo: Chọn tiếng Anh nhưng gõ phiên âm tiếng Việt sẽ chuẩn hơn vì model tiếng Anh xịn hơn).
3. Gõ từ khóa bạn muốn. Ví dụ:
* Muốn gọi "Ơi trợ lý" -> Gõ: "Oi Cho Ly".
* Muốn gọi "Bắt đầu đi" -> Gõ: "Bat Dau Di".
4. Bấm Train và chọn nền tảng (Windows/Mac/Linux/RaspberryPi).
5. Tải file `.ppn` về máy. Ví dụ: `tro_ly_windows.ppn`.
3. Viết Code Python "Luôn lắng nghe"
Dưới đây là đoạn code chạy vòng lặp vô tận. Nó sẽ ngủ yên cho đến khi nghe thấy từ khóa.
Python:
import pvporcupine
from pvrecorder import PvRecorder
import time
# 1. Cấu hình
ACCESS_KEY = "nhập_access_key_của_bạn_vào_đây"
KEYWORD_PATH = "đường_dẫn_đến_file_tro_ly_windows.ppn"
def main():
# 2. Khởi tạo Porcupine (Người gác cổng)
porcupine = pvporcupine.create(
access_key=ACCESS_KEY,
keyword_paths=[KEYWORD_PATH]
# Hoặc dùng từ khóa có sẵn: keywords=["jarvis"]
)
# 3. Khởi tạo Recorder (Tai nghe)
recorder = PvRecorder(device_index=-1, frame_length=porcupine.frame_length)
recorder.start()
print("🎧 Đang lắng nghe... Hãy nói 'Ơi Trợ Lý' (hoặc từ khóa bạn train)")
try:
while True:
# Đọc dữ liệu âm thanh từ Mic
audio_frame = recorder.read()
# Đưa cho Porcupine xử lý
keyword_index = porcupine.process(audio_frame)
# Nếu phát hiện từ khóa (keyword_index >= 0)
if keyword_index >= 0:
print("🚀 ĐÃ PHÁT HIỆN TỪ KHÓA! DẬY ĐI ÔNG CHÁU ƠI!")
# --- CHỖ NÀY ĐỂ GỌI TRỢ LÝ CHÍNH ---
# play_sound("ding.wav")
# start_voice_assistant() # Gọi hàm Whisper + LLM ở bài trước
# -----------------------------------
except KeyboardInterrupt:
recorder.stop()
finally:
porcupine.delete()
recorder.delete()
if __name__ == "__main__":
main()
4. Ghép nối vào hệ thống Voice Assistant
Logic hoàn chỉnh của một Trợ lý ảo chạy 24/7 sẽ như sau:
Python:
def main_system_loop():
# Bước 1: Chế độ chờ (Low Power Mode)
# Chỉ chạy Porcupine nhẹ hều
wait_for_wake_word()
# Bước 2: Sau khi bị đánh thức (High Power Mode)
play_sound("ding.wav") # Báo hiệu "Tôi đang nghe"
# Bước 3: Ghi âm câu lệnh người dùng (5-10 giây)
user_audio = record_command()
# Bước 4: Xử lý (Whisper -> LLM -> TTS)
text = speech_to_text(user_audio)
response = llm_think(text)
text_to_speech(response)
# Bước 5: Quay lại ngủ đông
print("💤 Xong việc. Ngủ tiếp đây.")
5. Lưu ý quan trọng
- Độ nhạy (Sensitivity): Trong hàm `pvporcupine.create()`, bạn có thể chỉnh `sensitivities=[0.5]`. Số càng cao (max 1.0) thì càng dễ kích hoạt (nhưng dễ bị nhận nhầm). Số càng thấp thì càng khó gọi. Mức 0.5 - 0.7 là chuẩn.
- Môi trường ồn: Porcupine lọc ồn khá tốt, nhưng nếu bạn đặt loa ngay cạnh mic (nhạc đập thình thịch) thì nó sẽ bị điếc. Cần dùng thêm kỹ thuật Acoustic Echo Cancellation (AEC) nếu muốn làm loa thông minh chuyên nghiệp.
Kết luận
Với Porcupine, bạn đã biến những đoạn code Python vô tri thành một sinh vật sống động luôn hiện diện trong không gian làm việc của bạn.Giờ đây, bạn có thể nằm trên giường và hét lớn: "Jarvis, tắt đèn đi ngủ!". Đó chính là cảm giác quyền năng của Edge AI.
Bài viết liên quan