Site icon TAPIT

Điều khiển thiết bị điện bằng giọng nói sử dụng Google Assistant và ESP8266 (P4)

Trong phần trước, mình đã hướng dẫn các bạn cách xây dựng một cuộc hội thoại ngắn với chức năng điều khiển Light và Fan sử dụng nền tảng Dialogflow, chúng ta đã biết agent có thể nhận biết được mục đích yêu cầu của người dùng thông qua các intents và trích xuất được dữ liệu chi tiết từ yêu cầu của người dùng thông qua các entities. Phần này mình sẽ hướng dẫn các bạn cách liên kết với trợ lý ảo Google Assistant bằng công cụ Integrations để chạy mô phỏng kết quả và sau đó triển khai ứng dụng trên smartphone hoặc các thiết bị có hỗ trợ Google Assistant.

Xem lại phần 1: Giới thiệu Actions on Google
Xem lại phần 2: Giới thiệu nền tảng Dialogflow và tạo Action đầu tiên
Xem lại phần 3: Thiết kế hội thoại với Dialogflow

Phần 4: Mô phỏng và triển khai ứng dụng với Actions on Google Integration

Như đã giới thiệu ở phần 2, sau khi xây dựng xong các ứng dụng hội thoại thông qua các agents, Dialogflow còn cung cấp tính năng Integration giúp nhà phát triển có thể tích hợp vào các nền tảng khác nhau như Facebook, Twitter, Slack hay có thể kết nối với các trợ lý ảo Amazon Alexa, Microsoft Cortana, Google Assistant.

Để kết nối agent của chúng ta với trợ lý ảo Google Assistant trên smartphone hoặc các thiết bị Google Home, Google Home Mini,… ta sẽ sử dụng Actions on Google Integration như sau:

Lúc này sẽ hiện lên một cửa sổ thông báo để chúng ta chỉ định các action. Nội dung ở ô Explicit invocation là tên của intent mặc định sẽ được gọi khi người dùng kích hoạt trợ lý ảo Google bằng Invocation Name, chúng ta để mặc định là Default Welcome Intent. Sau đó chọn MANAGE ASSISTANT APP.

Sau đó được chuyển đến giao diện Google Console, chọn Invocation ở thanh menu bên trái. Ở mục Display Name chính là tên chúng ta có thể đặt để kích hoạt Google Assistant (Lưu ý: nên đặt những tên dễ đọc và dễ nhận dạng như: my home, my room,… nếu không sẽ bị báo lỗi lúc chạy mô phỏng nhé). Để kích hoạt Google Assistant, có thể dùng nhiều cấu trúc lệnh khác nhau như:

Còn ở mục Google Assistant voice là các giọng trợ lý khác nhau các bạn có thể chọn tùy ý, sau đó chọn SAVE ở góc trên bên phải để lưu thiết lập.

Chọn Simulator ở thanh menu bên trái, đây là giao diện dùng để mô phỏng kết quả ứng dụng của chúng ta sau khi xây dựng xong và thường dùng để kiểm tra xem quá trình thực thi có lỗi gì hay không trước khi triển khai thực tế, chọn Talk to my home được gợi ý sẵn hoặc có thể gõ trực tiếp để kích hoạt trợ lý sau đó thử nghiệm các kịch bản hội thoại chúng ta đã xây dựng:

Như vậy là ứng dụng Dialogflow đã liên kết thành công với Google Assistant, bây giờ chúng ta có thể sử dụng smartphone để chạy thử, Google Assistant hiện có hỗ trợ cho cả các thiết bị Android và iOS. Đối với Android, mặc dù Google thông báo đã hỗ trợ cho hầu hết các smartphone chạy Android 6.0 trở lên nhưng thực thế nhận thấy một vài smartphone đời cũ vẫn chưa tự động update (vì mình thử trên Samsung Galaxy S7 edge thì thấy vẫn chưa có), trong trường hợp này có thể tự update thủ công theo hướng dẫn tại đây. Còn đối với iOS thì Google Assistant mới chỉ xuất hiện trên store Mỹ, nên các bạn có thể phải tạo một tài khoản Mỹ thì mới tải về được nhé, có thể tham khảo các hướng dẫn trên mạng.

Bây giờ hãy thử gọi “Hey Google, talk to my home” sẽ nhận được phản hồi giống như kết quả mô phỏng ở công cụ Simulation trên giao diện Google Console:

Và đây là kết quả:

Lưu ý:  Nếu đã chắc chắn điện thoại có hỗ trợ Google Assistant nhưng khi gọi “Hey Google” mà không thấy phản hồi gì hoặc kích hoạt action bằng Invocation Name không được thì lý do có thể là bạn chưa đăng nhập đúng tài khoản và chưa enable tính năng kích hoạt Google Assistant bằng giọng nói, sửa lỗi này như sau:

Sau đó thử lại xem có còn bị lỗi không nhé, tương tự nếu các bạn có Google Home hoặc Google Home Mini thì cũng thể chạy thử ứng dụng vừa xây dựng. Ở phần kế tiếp mình sẽ hướng dẫn các bạn xây dựng fulfillment để thực thi Webhook response.

Phần 5: Xây dựng Fulfillment và triển khai lên Cloud Functions for Firebase 
Xem thêm:  Tổng hợp hướng dẫn Internet of Things với NodeMCU ESP8266 và ESP32

Nhóm TAPIT IoTs