สร้าง Google Home ฉบับ DIY ด้วย Raspberry Pi (โปรเจกต์ GooglePi)

GooglePi - Google Assistant on Raspberry Pi

สวัสดีครับสาย Smart Home ทุกคน! วันนี้เราจะมาทำโปรเจกต์เปลี่ยนบอร์ด Raspberry Pi ธรรมดาๆ ให้กลายเป็นลำโพงอัจฉริยะ Google Assistant (หรือที่เราคุ้นกันในชื่อ Google Home) แบบ DIY กันครับ

โปรเจกต์นี้จะพาคุณเจาะลึกตั้งแต่การเข้าไปขอ API จากระบบหลังบ้านของ Google Cloud แล้วนำมาติดตั้งลงในบอร์ด เพื่อให้มันสามารถฟังเสียงเราและตอบโต้กลับมาได้เหมือนลำโพงหลักพันเลยทีเดียว ลองดูวิดีโอสาธิตการทำงานด้านล่างนี้ได้เลยครับ!

อุปกรณ์ที่ต้องใช้ (Things You Need)

โปรเจกต์นี้ใช้ของน้อยมากครับ ใครมีบอร์ดอยู่ที่บ้านแล้วก็เตรียมลุยได้เลย (แต่ถ้าใครยังไม่มีบอร์ด ไมโครโฟน ลำโพงจิ๋ว หรือกำลังหา เส้นพลาสติก 3D Print เกรดพรีเมียม เพื่อเอาไปปริ้นท์เคสใส่ลำโพง Google Home ในสไตล์ของตัวเอง แวะไปช้อปอุปกรณ์สายคราฟต์ได้ที่ Globalbyte เลยครับ ครบจบแน่นอน!)

  • Raspberry Pi 3 Model B (หรือรุ่นที่ใหม่กว่า) จำนวน 1 บอร์ด
  • ชุดคิท Google AIY Voice จำนวน 1 ชุด (ถ้าไม่มี สามารถใช้ไมค์และลำโพงแยกได้)
  • บัญชี Google Account
  • ลำโพง (สามารถลองทำแอมป์เองได้จากโปรเจกต์ DIY Audio Amplifier)
  • ไมโครโฟน (ในโปรเจกต์นี้ผู้เขียนใช้กล้อง Webcam ที่มีไมค์ในตัวครับ)

Step 1: เตรียมความพร้อม Raspberry Pi

ก่อนจะเริ่มลงโปรแกรม เราต้องตั้งค่าให้บอร์ดพร้อมใช้งานซะก่อน แนะนำให้เปิดการเชื่อมต่อระยะไกลแบบ VNC จะได้ไม่ต้องต่อจอมอนิเตอร์ให้วุ่นวายครับ สามารถทำตามบทความ Setting VNC Server in Raspberry Pi ได้เลย

Step 2: ขอ API จาก Google Cloud Platform

ขั้นตอนนี้เราจะไปสร้างโปรเจกต์ในฝั่งของ Google เพื่อขอสิทธิ์การใช้งาน Google Assistant API ครับ ค่อยๆ ทำตามไปทีละสเตปนะครับ

  1. เปิดเบราว์เซอร์ใน Raspberry Pi แล้วเข้าไปที่ Google Cloud Resource Manager
  2. คลิก CREATE PROJECT เพื่อสร้างโปรเจกต์ใหม่
  3. ตั้งชื่อโปรเจกต์ของคุณ (เช่น googlepi)
  4. คลิกที่ชื่อโปรเจกต์ที่เพิ่งสร้างเพื่อเปิดเข้าไป
  5. ไปที่เมนู API Manager => Dashboard แล้วคลิกปุ่ม ENABLE API
  6. เลือก Library แล้วค้นหาคำว่า Google Assistant จากนั้นกดปุ่ม Enable เพื่อเปิดใช้งาน
  7. ไปที่เมนู Credentials แล้วเลือก OAuth Consent screen กรอกชื่อโปรเจกต์แล้วกด Save
  8. กลับมาที่ Credentials อีกครั้ง คลิก OAuth Client ID
  9. เลือกประเภทเป็น Other ตั้งชื่อ แล้วกดปุ่ม Create
  10. ตอนนี้คุณจะได้ Authentication Key มาแล้วครับ ให้กดดาวน์โหลดไฟล์ JSON (Credential file) เก็บไว้ในเครื่องเลย
Create Project
Name Project Open Project API Dashboard Enable API Search Google Assistant Enable Assistant OAuth Consent Credentials OAuth Client ID Create Client ID Download JSON

Step 3: ติดตั้ง Google Assistant ลงบน Raspberry Pi

เปิดโปรแกรม Terminal ขึ้นมา แล้วพิมพ์คำสั่งเพื่อสร้าง Python Virtual Environment และดาวน์โหลดไลบรารีที่จำเป็นครับ

Terminal (Setup Environment & Dependencies)
sudo apt-get install python3-dev python3-venv
sudo apt-get install portaudio19-dev libffi-dev libssl-dev
python3 -m venv env
env/bin/pip install setuptools --upgrade
source env/bin/activate

เมื่อรันคำสั่ง source env/bin/activate เสร็จ สังเกตที่หน้าบรรทัดคำสั่งจะมีคำว่า (env) โผล่ขึ้นมา แปลว่าเราเข้ามาอยู่ใน Virtual Environment แล้วครับ จากนั้นให้ลง Google Assistant SDK ต่อเลย

Terminal (Install Google Assistant SDK)
python -m pip install google-assistant-sdk[samples]

# For new version (Updated SDK)
pip install --upgrade google-auth-oauthlib[tool]

การยืนยันตัวตนด้วย Credentials:
ให้รันคำสั่งด้านล่างนี้เพื่อเชื่อมบอร์ดเข้ากับบัญชี Google ของเรา (ข้อควรระวัง: อย่าลืมเปลี่ยน path หรือชื่อไฟล์ client_secret_XXXXX.json ให้ตรงกับไฟล์ที่คุณดาวน์โหลดมาใน Step 2 นะครับ)

Terminal (Auth Setup)
# Original SDK command:
python -m googlesamples.assistant.auth_helpers --client-secrets /home/pi/Downloads/xxx

# For Updated SDK use:
google-oauthlib-tool --client-secrets path/to/client_secret_XXXXX.json --scope https://www.googleapis.com/auth/assistant-sdk-prototype --save --headless

หลังจากรันคำสั่งนี้ ระบบจะมีลิงก์โผล่มาให้เราก๊อปปี้ไปเปิดในเบราว์เซอร์ เพื่อกดยอมรับสิทธิ์ (Allow) เมื่อกดยอมรับเสร็จแล้ว หน้าจอ Terminal จะขึ้นข้อความแจ้งว่าการยืนยันตัวตนสำเร็จครับ!

Allow Permission
Auth Completed

Step 4: ทดสอบการทำงาน! (Let's Test)

มาถึงตอนสนุกแล้วครับ! เช็คให้ชัวร์ว่าเสียบไมโครโฟนและลำโพงเข้ากับบอร์ดเรียบร้อยแล้ว จากนั้นรันคำสั่งเพื่อเรียกผู้ช่วยของเราขึ้นมาเลย

Terminal (Run Assistant)
# Original SDK command:
python -m googlesamples.assistant

# For Updated SDK use:
python -m googlesamples.assistant.grpc.pushtotalk

เมื่อรันคำสั่งแล้ว คุณจะเห็นข้อความบอกว่าระบบพร้อมรับฟัง กดปุ่ม Enter ใน Terminal แล้วลองถามอะไรก็ได้เลยครับ (เช่น "What's the weather today?" หรือเล่ามุกตลกให้ฟังหน่อย)

Terminal Listening

ลองดูวิดีโอทดสอบการถาม-ตอบ 2 คลิปนี้เป็นตัวอย่างได้เลยครับ เพลินสุดๆ ไปเลยกับ Google Home ฉบับ DIY ของคุณเอง!

อ้างอิงข้อมูลจาก: Globalbyteshop Blog

ต้นฉบับโปรเจกต์โดย: Salmanfarisvp | Original Link

*คำเตือน: เนื้อหานี้เป็นการสรุปและเรียบเรียงจากบทความโปรเจกต์ต้นฉบับภาษาอังกฤษ ข้อมูลฉบับภาษาไทยและขั้นตอนบางส่วนอาจมีการปรับแต่งเพื่อให้เข้าใจง่าย หากต้องการตรวจสอบคำสั่ง Terminal หรือกระบวนการตั้งค่าเชิงลึก สามารถตรวจสอบได้ที่ ต้นฉบับภาษาอังกฤษ

 

แท็ก


Blog posts

เข้าสู่ระบบ

ลืมรหัสผ่านใช่ไหม?

ยังไม่มีบัญชีใช่ไหม?
สร้างบัญชี