Wake Word nào tốt hơn? So sánh microWakeWord, Google và Alexa
So sánh wake word microWakeWord, Google Assistant và Alexa theo kiến trúc, quyền kiểm soát, độ riêng tư, phần cứng và khả năng dùng trên ESP32-S3.
Chia sẻ

Nếu bạn đang làm một thiết bị có microphone, sớm muộn bạn cũng gặp câu hỏi: nên dùng microWakeWord, Google hay Alexa để phát hiện câu đánh thức?
Tên gọi khiến chúng giống ba lựa chọn ngang hàng. Thực tế thì không hẳn. microWakeWord là một framework/model chạy trên thiết bị nhỏ; Google kiểm soát hotword trong hệ sinh thái của họ; còn Alexa thường là một dịch vụ voice đi cùng một wake-word engine có thể tích hợp.
Nếu bạn muốn xem riêng cách xây wake word local trên ESP32-S3, hãy đọc thêm bài Phát hiện wake word cho thiết bị luôn lắng nghe.
Vì vậy, bài này không cố xếp hạng bằng một con số accuracy duy nhất. Con số đó chỉ có ý nghĩa khi cùng microphone, khoảng cách, tiếng ồn và bộ test. Mình muốn so sánh thứ ảnh hưởng thật đến quyết định thiết kế: bạn kiểm soát được gì, audio đi đâu, và nền tảng nào hợp với phần cứng nào.
Tóm tắt nhanh

Ba cái tên nghe giống nhau, nhưng quyền kiểm soát model và cách audio đi qua hệ thống rất khác nhau.
| Tiêu chí | microWakeWord | Alexa | |
|---|---|---|---|
| Bản chất | Framework và model cho thiết bị hạn chế tài nguyên | Hotword stack tích hợp trong hệ sinh thái Google | Voice service + wake-word engine/client |
| Nơi phát hiện | Local trên MCU nếu bạn triển khai đúng | Thường local trong thiết bị được hỗ trợ | Engine thường chạy trên thiết bị; AVS xử lý phiên voice |
| Tự tạo wake word | Có, nhưng cần tự train và test | Không phải hướng mở cho thiết bị tuỳ ý | Phụ thuộc engine và chương trình tích hợp |
| Tự kiểm soát dữ liệu | Cao | Phụ thuộc thiết bị và dịch vụ Google | Phụ thuộc client, engine và AVS |
| Hợp với ESP32-S3 | Rất hợp | Không phải lựa chọn thực tế cho firmware tự viết | Không hợp nếu chỉ cần detector local nhỏ |
| Đánh đổi chính | Bạn tự chịu trách nhiệm về model và tuning | Ít quyền kiểm soát nhưng UX hoàn thiện | Hệ sinh thái mạnh nhưng tích hợp phức tạp |
1. microWakeWord: lựa chọn thực dụng cho ESP32-S3
Repo microWakeWord mô tả đây là thư viện open source để phát hiện wake word trên thiết bị công suất thấp và tạo model phù hợp với TensorFlow Lite for Microcontrollers. Model không cần Linux computer hay cloud API để chạy.
Pipeline khá dễ hình dung:
- Microphone đưa audio stream vào firmware.
- Audio được chuyển thành đặc trưng phổ; repo mô tả 40 spectrogram features mỗi 10 ms.
- Model streaming trả về xác suất cho từng cửa sổ.
- Nhiều cửa sổ liên tiếp được dùng để quyết định có thật sự nghe thấy wake word hay không.
ESPHome đã có component Micro Wake Word để chạy logic này trên thiết bị. Bạn có thể cấu hình `probability_cutoff`, `sliding_window_size`, VAD và model từ repo model chính thức.
```yaml micro_wake_word: microphone: microphone: i2s_mic channels: 0 gain_factor: 4 vad: models:
- model: okay_nabu id: wake_model probability_cutoff: 97% sliding_window_size: 5 ```
Điểm mình thích là ranh giới dữ liệu rõ: trước khi phát hiện, audio có thể được xử lý và ghi đè ngay trên ESP32-S3. Nhưng open source không đồng nghĩa với “đã chính xác sẵn”. Tài liệu repo cũng lưu ý train model tốt vẫn khó; bạn cần sample dương đa dạng, negative dataset, augmentation cho noise/reverb và test trên những người không có trong tập train.
microWakeWord nằm gọn trên MCU; Google đóng stack trong nền tảng; Alexa tách engine khỏi phiên AVS.
2. Google: hotword tốt, nhưng không phải thư viện để bê vào ESP32
Google Assistant dùng “Hey Google” và “OK Google”. Hotword detection được tối ưu sâu trong Android, điện thoại và các thiết bị Google được hỗ trợ. Nó thường nằm local trước khi phiên Assistant bắt đầu, nhưng model, dữ liệu train và cách tuning không phải là stack mở để tải xuống rồi biên dịch cho ESP32-S3.
Google có các repo và nghiên cứu mở về keyword spotting, chẳng hạn Google Coral project-keyword-spotter, nhưng repo nghiên cứu/demo không phải model “Hey Google” chính thức. Nghiên cứu của Google về keyword spotting cho Assistant cũng cho thấy bài toán thực tế cần xử lý false accept và false reject ở nhiều tầng.
Nếu bạn làm ứng dụng Android hoặc thiết bị Google được hỗ trợ, chọn Google có lý do: wake word, UX và Assistant cùng một hệ sinh thái. Nếu bạn viết firmware ESP-IDF cho ESP32-S3, Google không phải lựa chọn “cài thêm thư viện là xong”. Mình sẽ dùng push-to-talk hoặc detector local riêng cho lớp đầu vào, rồi kết nối dịch vụ ở lớp sau nếu sản phẩm thật sự cần.
3. Alexa: đừng nhầm AVS với wake-word engine
Alexa Voice Service Device SDK là client SDK để thiết bị giao tiếp với Alexa Voice Service. Phần wake word có một ranh giới riêng. Trong hệ sinh thái AVS, wake-word engine được tích hợp qua interface; các ví dụ cũ trên Raspberry Pi dùng engine bên thứ ba như Sensory.
Nói ngắn gọn: Alexa/AVS giúp xây thiết bị kết nối với Alexa, nhưng không biến “Alexa” thành model open source để chạy tự do trên mọi vi điều khiển. Wake-word engine vẫn là dependency có yêu cầu nền tảng, license và tài nguyên riêng.
Amazon cũng nói trong Alexa Auto SDK rằng SDK cung cấp hook để kết nối wake word engine. Khi đánh giá Alexa, mình sẽ hỏi:
- Engine phát hiện wake word là của ai và license thế nào?
- Audio sau khi phát hiện được gửi tới AVS ra sao?
- Thiết bị có đủ RAM, storage, TLS, network và audio front-end cho client không?
Nếu mục tiêu là sản phẩm Alexa Built-in, hệ sinh thái này đáng xem. Nếu mục tiêu chỉ là ESP32-S3 nói chuyện local với Home Assistant, đây là một chuỗi phụ thuộc khá lớn.
So sánh theo đúng bài toán
Khi bạn cần riêng tư và chạy local
microWakeWord thắng về quyền kiểm soát. Bạn biết model nào chạy, threshold nào được dùng và có thể thiết kế để audio trước wake word không rời khỏi thiết bị. Google và Alexa có thể có bước hotword local, nhưng toàn bộ voice experience vẫn gắn với platform/dịch vụ tương ứng.
Mình vẫn sẽ thêm LED báo trạng thái và công tắc vật lý ngắt microphone. “Local” là thuộc tính của cả mạch, firmware, log và network policy, không chỉ là câu mô tả trong README.
Khi bạn cần trải nghiệm hoàn thiện
Google và Alexa có lợi thế về wake phrase, UX, account, intent và backend. Bạn đổi lại bằng ít quyền kiểm soát model hơn và phụ thuộc nền tảng nhiều hơn.
microWakeWord cho bạn detector nhỏ, không cho sẵn trợ lý hoàn chỉnh. Bạn vẫn phải lo command capture, STT, intent và TTS — chẳng hạn ghép với Home Assistant Assist local.
Khi bạn cần wake word riêng
microWakeWord là hướng phù hợp nhất trong ba lựa chọn, nhưng “custom” không đồng nghĩa với “dễ”. Câu đánh thức cần khác biệt, dễ lặp lại, ít xuất hiện trên TV/hội thoại và ổn với nhiều giọng. Với tiếng Việt, mình sẽ test giọng vùng miền và cách nhấn âm khác nhau, không chỉ một bộ audio tổng hợp.
Test thực tế: đừng dùng một file sạch để kết luận
Wake word là đặc tính của cả căn phòng, không chỉ của model. Bài test tối thiểu của mình:
- Nói câu đánh thức ở 0,5 m, 2 m và 4 m.
- Nói nhỏ, nói bình thường và gọi từ phòng bên.
- Chạy TV, podcast, nhạc, quạt và tiếng bếp trong nhiều giờ.
- Thử nhiều người nói, accent và cách phát âm.
- Cho thiết bị tự phát tiếng trả lời để kiểm tra echo re-trigger.

Wake word là đặc tính của cả căn phòng, vì vậy hãy test khoảng cách, tiếng TV, nhạc, quạt và giọng thật.
Hãy ghi số lần nhận đúng, false reject, false accept mỗi giờ, độ trễ và điều kiện môi trường. Đừng chỉ ghi “accuracy = 95%”; một thiết bị kích hoạt nhầm hai lần mỗi đêm có thể khó chịu hơn một thiết bị đôi khi bỏ sót câu gọi.
Mình sẽ chọn gì?
Nếu phần cứng là ESP32-S3 và mục tiêu là thiết bị voice local, mình chọn microWakeWord cho lớp wake word, sau đó dùng push-to-talk làm đường dự phòng. Đây là lựa chọn cân bằng giữa tài nguyên, riêng tư và khả năng debug.
Mình chọn Google khi sản phẩm đã nằm trong hệ sinh thái thiết bị được Google hỗ trợ và UX có sẵn quan trọng hơn quyền kiểm soát model. Mình chọn Alexa khi sản phẩm cần Alexa Built-in/AVS và đội ngũ chấp nhận bài toán SDK, cloud, account và wake engine.

Threshold chỉ có ý nghĩa khi được tuning trên đúng microphone, vỏ, loa và vị trí lắp cuối cùng.
Kết luận ngắn: microWakeWord là lựa chọn để bạn xây và kiểm soát detector; Google là lựa chọn nền tảng; Alexa là lựa chọn hệ sinh thái voice có wake engine tích hợp. So sánh đúng như vậy giúp bạn tránh mua nhầm phần cứng hoặc hứa quá nhiều về quyền riêng tư.
Nguồn tham khảo
Chia sẻ
Tiếp tục khám phá
Đọc tiếp
Bài viết liên quan
Phát hiện wake word: thiết bị thông minh luôn lắng nghe
Góc nhìn thực tế về wake word cục bộ trên ESP32-S3: chia frame âm thanh, microWakeWord, chỉnh ngưỡng, kích hoạt nhầm, công tắc micro và quyền riêng tư.
TinyML trên ESP32: Chạy AI ngay tại thiết bị
Cách mình chạy một model nhận diện người ngay trên ESP32 bằng TensorFlow Lite Micro và ESP-NN, từ giới hạn bộ nhớ đến cách thử ví dụ person_detection.
ESP32 IoT Project Roadmap: Lộ trình từ LED đến sản phẩm
Roadmap tương tác giúp bạn học ESP32 qua project: từ LED và nút nhấn, sensor kết nối cloud, TinyML tại edge đến OTA và bảo mật cho thiết bị thật.