Cài đặt trợ lý ảo Google Assistant trên Raspberry Pi

Raspberry Pi Google Assistant

Trợ lý ảo Google Assistant này sẽ chủ động lắng nghe giọng nói và đáp ứng các yêu cầu của bạn, bạn chỉ cần nói “OK Google” hoặc “Hey Google”

Để làm được như vậy, bạn sẽ được hướng dẫn cụ thể từng bước, từ thiết lập âm thanh, đăng nhập vào Google Assistant API và làm thế nào để tải và cài đặt các ví dụ thực tế của Trợ lý ảo Google.

 Danh sách thiết bị

Yêu cầu cần có:

 Đăng ký tài khoản Google API

1. Đăng ký và cài đặt dự án trên Google Actions Console.

Bạn đến đây Google Console Actions dashboard, hoặc theo đường dẫn sau:

https://console.actions.google.com

2. Sau khi đăng nhập, bạn sẽ được thấy như hình dưới.

Chọn vào “Add/Import project

Pi Google Assistant Step 01

3. Một của sổ xuất hiện, bạn nhập tên dự án vào “Project Name” (1.)

Chọn tên quốc gia và ngôn ngữ ở mục số (2.)

Nhấn “Create Project” (3.)

4. Tạo một của sổ mới, đi tới  Google developers console và bật tính năng Google Embedded Assistant API.

  • Bạn nhấn vào đường dẫn liên kết ở (1.)
  • Sau đó tìm và nhấn vào nút “Enable” (2.)

Step 03 Pi Activate Google Assistant Api

5. Quay lại trang đầu tiên mà bạn tạo dự án, kéo xuống cuối trang, bạn sẽ thấy như hình dưới:

Tìm và chọn vào “Device Registration

Step 04 Pi Device Registration

6. Ở cửa sổ tiếp theo, chọn “Register Model”.

Step 05 Raspberry Pi Register Model

7. Một cửa sổ menu mới, chọn cần điền các thông tin về “Product Name“, “Manufacturer name” và “Device Type” (1.)

  • Tại “Product Name” bạn có thể đặt là “pi3 Google Assistant“.
  • Tại “Manufacturer name” có thể là  “Pi Viet Nam“.
  • Thiết lập “Device Type” là “Speaker
  • Chọn  “Device Model ID” ở mục (2.)
  • Cuối cùng, bạn chọn “Register Model” (3.)

Step 06 Pi Create Model

8. Sau khi đang ký xong, cửa số “Download credentials” xuất hiện.

Các công việc ở bước này sẽ cho phép Trợ lý ảo Google trên Raspberry Pi có thể truy cập vào máy chủ.

  • Bạn nhấn vào “Download OAuth 2.0 credentials” (1.) và lưu vào một nơi an toàn
  • Tiếp theo bạn nhấn vào  “Next” (2.)

Step 07 Download Credentials

9. Cuối cùng, bạn nhấn “Save Traits

Step 08 Pi Google Assistant Specify Traits

10. Sau khi mọi thứ hoàn tất, bạn thấy cửa sổ suất hiện như hình dưới.

Step 09 Pi Google Assistant Done Registering Device

11. Cuối cùng, bạn truy cập vào đường dẫn ở dưới để kích hoạt các tính năng được liệt kê để đảm bảo Google Assistant API hoạt động đúng.

  • Web & App Activity
  • Location History
  • Device Information
  • Voice & Audio Activity
https://myaccount.google.com/activitycontrols

 Thiết lập âm thanh cho Google Assistant

1. Google Assistant SDK cần phải được thiết lập âm thanh mới hoạt động.

Để cài đặt âm thanh cho Raspberry Pi, chúng ta làm theo các bước sau:

  • Xác định vị trí của USB microphone bằng cmd bên dưới. Ghi lại mã số card và mã số thiết bị
arecord -l
  • Xác định vị trí speaker (loa), ta sẽ sử dụng cmd bên dưới. Ghi lại mã số card và mã số thiết bị.

Lưu ý: Jack 3.5mm của Raspberry Pi thường là loại Analog hoặc bcm2835 ALSA, với ngõ ra từ cổng HDMI có ID là bcm2835 IEC958/HMDI

aplay -l

2. Sau khi bạn đã có được các mã số của các thiết bị và card microphone và speaker, bạn cần phải tạo tệp có tên: .asoundrc trong thư mục home.

Tệp .asoundrc sẽ giúp Pi định nghĩa các thiết bị âm thanh mà driver âm thanh sẽ sử dụng.

Dùng cmd trong terminal để tạo:

nano /home/pi/.asoundrc

3. Tạo nội dung trong tệp .asoundrc

Thay <card number> và <device number> mà bạn đã tìm trong Bước 1.

pcm.!default {
  type asym
  capture.pcm "mic"
  playback.pcm "speaker"
}
pcm.mic {
  type plug
  slave {
    pcm "hw:<card number>,<device number>"
  }
}
pcm.speaker {
  type plug
  slave {
    pcm "hw:<card number>,<device number>"
  }
}

4. Cuối cùng nhấn CTRL + X rồi Y và nhấn ENTER để Lưu và kết thúc.

 Thử loa và Mic với Trợ lý ảo Google

1. Kiểm tra âm thanh đã hoạt động đúng chưa bằng cách sử dụng cmd bên dưới. Trước khi kiểm tra, bạn nhớ cắm các thiết bị vào Raspberry Pi. Bạn sẽ nghe âm thanh tiếng người nói từ loa.

speaker-test -t wav

2. Bước tiếp theo là kiểm tra microphone với cmd ở dưới.

Dòng cmd này sẽ ghi âm trong trong vòng 5s:

arecord --format=S16_LE --duration=5 --rate=16000 --file-type=raw out.raw

 

3. Sau khi ghi âm kết thúc, bạn chạy cmd sau để phát lại:

aplay --format=S16_LE --rate=16000 out.raw

4. Nếu âm thanh hồi tiếp về quá to hoặc quá nhỏ, bạn cmd dưới để điều chỉnh âm lượng.

Thường bạn để tầm 70% để hoạt động, quay lại bước 1 để kiểm tra lại.

alsamixer

 Downloading and setting up Google Assistant

1. Để cài đặt Google Assistant API, bạn cần cấu hình và thiết lập một vài thứ.

Cập nhật Raspberry Pi:

sudo apt-get update

2. Sau khi cập nhật Raspberry Pi hoàn tất, ta cần xử lý mọi thứ để chạy được Google Assistant API.

Đầu tiên, bạn cần tạo nơi để lưu lại tệp chứng thực mà bạn đã tải về ở đầu bài hướng dẫn.

mkdir ~/googleassistant
nano ~/googleassistant/credentials.json

3. Copy nội dung tệp chứng thực đã tải và dán vào credentials.json

4. Nhấn  Ctrl + X rồi Y -> Enter.

5. Cài đặt Python3 và the Python 3 Virtual Environment trên Raspberry Pi.

sudo apt-get install python3-dev python3-venv

6. Enable python3

python3 -m venv env

7. Cài đặt pip and the setuptools

env/bin/python -m pip install --upgrade pip setuptools --upgrade

8. Tạo môi trường làm việc mới của Python

source env/bin/activate

9. Cập nhật các phiên bản mới nhất

python -m pip install --upgrade google-assistant-library
python -m pip install --upgrade google-assistant-sdk[samples]

 Ủy quyền Raspberry Pi cho Trợ lý ảo Google

1. Cài đặt công cụ ủy quyền Python.

python -m pip install --upgrade google-auth-oauthlib[tool]

2. Tạo đường dẫn URL để dùng trên trình duyệt

google-oauthlib-tool --client-secrets ~/googleassistant/credentials.json \
--scope https://www.googleapis.com/auth/assistant-sdk-prototype \
--scope https://www.googleapis.com/auth/gcm \
--save --headless

3. Lúc này, một đường dẫn xuất hiện, bạn copy và mở trên trình duyệt.

4. Cửa sổ đăng nhập tài khoản Google xuất hiện, bạn chọn tài khoản đã đăng ký API.

Sau đó một đoạn văn bản xuất hiện: “Please copy this code, switch to your application and paste it there

Sao chép mã xác thực và dán lại vào Terminal và nhấn enter.

Nếu xác thực được chấp nhận, bạn sẽ thấy dòng sau xuất hiện trên Terminal của mình:

credentials saved: /home/pi/.config/google-oauthlib-tool/credentials.json

5. Mở terminal mới và nhập cmd sau:

chromium-browser --disable-web-security --user-data-dir "/home/pi/"

6.  Xác nhận bước tiếp theo

Thay  <projectid> bằng ID của dự án

Nếu bạn không biết ID, bạn vào  Actions Console on Google, kích vào dự án bạn đã tạo, chọn Cog phía trên tay tái rồi “Project Settings“.

Thay  <deviceid> ID của thiết bị đã được hướng dẫn ở trên.

Nếu bạn không biết ID, bạn vào  Actions Console on Google, vào dự án bạn đã tạo và chọn “Device registration

googlesamples-assistant-pushtotalk --project-id <projectid> --device-model-id <deviceid> --display

7. Sau đó nhấn Enter, một tab mới xuất hiện

Kích chọn “Continue“.

Step 10 - Pi Meet Your Google Assistant

8. Kích chọn “I understand”.

Step 11 - Speaker To Google from your Raspberry Pi

9. Kích chọn “Allow”

Step 12 - Allow to share Raspberry Pi

10. Tới đây, bạn có thể chạy các ví dụ mẫu của Trợ lý ảo Google.

Bạn có thể gõ “What is the time” -> Enter, bạn sẽ nghe được kết quả trả về.

Các sử dụng Trợ lý ảo Google trên Raspberry Pi

1. Chọn môi trường làm việc cho Trợ lý ảo Google trên Raspberry Pi.

source env/bin/activate

2. Tiếp theo, (env) sẽ xuất hiện.

Bạn gõ:

googlesamples-assistant-pushtotalk

3.Mặc định, Trợ lý ảo sẽ lắng nghe “Ok Google”  làm từ khóa để khởi động.

Để bắt đầu, bạn gõ dòng lệnh dưới:

Thay deviceid bằng ID ở trên

googlesamples-assistant-hotword --device-model-id <deviceid>

4. Đến đây, bạn có thể nói “OK google ” để Trợ lý ảo Google bắt đầu làm theo yêu cầu của bạn.

Nếu có vấn đề sảy ra, bạn đến “Setting up your Audio for Google Assistant” vào phần “Testing your Audio for Google Assistant”.

 Cài đặt cho Trợ lý ảo Google khởi động cùng hệ thống

1. Đầu tiên bạn tạo tệp mới:

nano /home/pi/start_assistant.sh

2. Chép nội dung sao vào tệp trên với abcd là device id ở đầu bài hướng dẫn

#!/bin/bash

source /home/pi/env/bin/activate
googlesamples-assistant-hotword --device-model-id abcd

3. Nhấn CTRL + X  -> Y -> ENTER.

4. Tạo tệp script trên Raspberry Pi.

sudo nano /lib/systemd/system/assistant.service

5. Chép nội dung sao vào tệp trên

[Unit]
Description=Google Assistant
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
ExecStart=/bin/bash /home/pi/start_assistant.sh
Restart=on-abort
User=pi
Group=pi

[Install]
WantedBy=multi-user.target

6. Nhấn CTRL + X  -> Y -> ENTER.

7. Enable tệp

sudo systemctl enable assistant.service

8. Khởi động:

sudo systemctl start assistant.service

9. Bạn thử lại “Ok Google” xem đã chạy OK chưa.

Nếu vẫn chưa hoạt động, bạn kiểm tra lỗi với cmd sau:

sudo systemctl status assistant.service

10. Đến đây là đã kết thúc bài hướng dẫn. Hi vọng bạn sẽ thành công với lần thực hiện đầu tiên. Nếu chưa được, bạn hãy làm lại từng bước một thận cẩn thận.

Hãy bình luận các vấn đề bạn gặp phải bên dưới nhé.

Chúc bạn thành công.

Nguồn: PiUpMyLife