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

Như chúng ta đã biết, Internet of Things đang phát triển mạnh trong những năm gần đây, đi kèm với nó là sự phát triển của một loạt các công nghệ mới. Trợ lý ảo giọng nói (Voice Assistant) là một trong những công nghệ có tốc độ phát triển nhanh nhất, các trợ lý xuất hiện khắp mọi nơi từ các thiết bị loa thông minh, máy tính cá nhân, đồng hồ, tai nghe và cả trên các thiết bị điện thoại thông minh. Hiện nay trợ lý ảo Google Assitant các bạn có thể sử dụng được trên điện thoại android mà không cần phải mua các thiết bị Google Home hay Google Home Mini. 

Nhóm TAPIT – IoTs sẽ thực hiện series bài viết hướng dẫn các bạn các bước để xây dựng ứng dụng Internet of Things giúp quản lý các thiết bị trong nhà sử dụng trợ lý ảo Google Assistant, Dialogflow, Cloud Functions for Firebase, Firebase Realtime DB và ESP8266 Wireless MCU

Phần 1: Giới thiệu Actions on Google

1. Actions on Google là gì?

Actions on Google là nền tảng của Google cho phép các nhà phát triển có thể viết các phần mềm, tạo ra các ứng dụng nhằm mở rộng tính năng của trợ lý Google Assistant. Nghĩa là với nền tảng này, người dùng được hỗ trợ đầy các công cụ để xây dựng các cuộc trò chuyện tương tác với Google Assistant giúp hoàn thành các công việc tùy ý khác nhau thông qua giọng nói như đặt hàng online, đặt phòng khách sạn, điều khiển các thiết bị trong gia đình hay đơn giản là xây dựng các đoạn hội thoại trò chuyện thú vị.

Actions on Google bao gồm 2 actions, hay có thể hiểu đơn giản là 2 mô hình khác nhau: Smart home Actions Conversational Actions.

Smart home Actions: Đây là mô hình giúp nhà phát triển có thể xây dựng các ứng dụng để tương tác với các thiết bị Internet of Things thông qua trợ lý ảo Google Assistant. Đây là mô hình được các hãng sản xuất thiết bị thông minh sử dụng để tích hợp trợ lý ảo Google Assistant vào hệ sinh thái thiết bị của hãng như Sonoff, Phillip Hue,… Action này giúp người sử dụng có thể kết nối, truy vấn hoặc điều khiển các thiết bị với hạ tầng có sẵn của nhà sản xuất thiết bị. Smart home Actions được xây dựng dựa trên một nền tảng có tên Home Graph, là một cơ sở dữ liệu có thể lưu trữ và cung cấp các ngữ cảnh thực tế khác nhau về ngôi nhà, các phòng và các thiết bị có bên trong nó. Trợ lý ảo sẽ sử dụng những thông tin được lưu trữ ở Home Graph để thực thi những yêu cầu khác nhau của người dùng dựa trên những ngữ cảnh thích hợp.

Ưu điểm của mô hình này là nhà phát triển không cần tập trung vào việc xây dựng ngữ cảnh cũng như nội dung hội thoại để tương tác với trợ lý ảo mà chỉ cần tập trung vào phát triển phần cứng thiết bị và cơ chế xác thực Auth 2.0 cùng với cơ sở dữ liệu người dùng để xác thực người dùng. Còn nội dung hội thoại sẽ được hỗ trợ hoàn toàn bởi Google với các câu lệnh đơn giản được xây dựng sẵn tương ứng với các loại thiết bị khác nhau (được gọi là Types) và trạng thái khác nhau (được gọi là Traits). Cụ thể các Types và Traits hiện được Google hỗ trợ có thể tham khảo tại đây.

Ví dụ đối với bóng đèn được Google định nghĩa Types là Light và Traits gồm có OnOff, Brightness, ColorSpectrumColorTemperature; có thể sử dụng các câu lệnh đơn giản được xây dựng sẵn như: “Turn on the Light”, “Adjust my light to 65% brightness” hay “What is the color of bedroom light?”,…

Ưu điểm dễ nhận thấy nhất của mô hình này là sự tiện lợi và nhanh chóng, phù hợp cho các hãng sản xuất thiết bị thông minh, tuy nhiên Smart home Actions có nhược điểm là các câu thoại đơn giản tẻ nhạt, người sử dụng không thể có được trải nghiệm tự nhiên nhất với trợ lý ảo và không thể sử dụng những câu thoại khác nếu không được hỗ trợ sẵn bởi Google.

Conversational Actions: Khác với Smart home Actions, đây là mô hình giúp nhà phát triển có thể thoải mái xây dựng các ứng dụng tương tác trợ lý ảo với các hội thoại tùy ý, do đó các ngữ cảnh sẽ tự nhiên hơn. Người dùng chỉ cần gọi tên của Conversational Actions đã xây dựng thông qua trợ lý ảo bằng một vài cấu trúc câu đơn giản ví dụ như “OK Google, Talk to my home”, trợ lý lập tức sẽ bắt đầu cuộc hội thoại 2 chiều với người dùng cho đến khi nào kết thúc cuộc trò chuyện.

Trong chuỗi bài viết này mình sẽ tập trung hướng dẫn các bạn xây dựng ứng dụng IoTs với Google Assistant sử dụng Conversational Actions

2. Conversational Actions hoạt động như thế nào?

Google định nghĩa rằng action là đầu vào hay là điểm bắt đầu của một ứng dụng tương tác giữa người dùng và trợ lý ảo Google Assistant đã được xây dựng trước đó. Người dùng có thể yêu cầu thực thi action bất kỳ bằng giọng nói hoặc gõ chữ, ví dụ người dùng kích hoạt ứng dụng điều khiển thiết bị trong gia đình bằng câu nói: “Hey Google, Talk to my home to turn on the light”, ở đây “my home” được gọi là Invocation name của action đó, có thể hiểu đơn giản rằng mỗi action khi xây dựng sẽ đi kèm với một Invocation name chính là tên được dùng để kích hoạt action. Lúc này Google Assistant sẽ hiểu action cần thực hiện và phản hồi lại người dùng cho đến khi nào hoàn thành mục đích của action. Để hiểu rõ hơn các bạn có thể xem sơ đồ sau:

Quá trình diễn ra một Action khi người dùng kích hoạt

  • Người dùng kích hoạt action thông qua Invocation name và đưa ra yêu cầu với Google Assistant.
  • Ứng với yêu cầu của người dùng, Google Assistant sẽ ánh xạ yêu cầu đó với một mục đích tương ứng đã được định nghĩa sẵn (được gọi là Intent).
  • Ứng với mỗi Intent, thông tin từ yêu cầu người dùng sẽ được chuyển tiếp đến fulfillment service (một chương trình được triển khai dưới dạng webhook ở backend để tiếp nhận và xử lý các action từ người dùng).
  • Fulfillment sẽ xử lý và gửi phản hồi lại cho Assistant, sau đó chuyển tiếp đến người dùng. 

Trên đây mình đã giới thiệu đến các bạn nền tảng Actions on Google và quá trình hoạt động của một Action diễn ra như thế nào, những bài viết tiếp theo chúng ta sẽ tiếp tục tìm hiểu cụ thể cách xây dựng ứng dụng IoTs với Google Assistant nhé.
Xem tiếp P2: Giới thiệu nền tảng Dialogflow và tạo Action đầu tiên
Xem thêm:  Tổng hợp hướng dẫn Internet of Things với NodeMCU ESP8266 và ESP32

Nhóm TAPIT IoTs