ทําตามวิธีการต่อไปนี้เพื่อเรียกใช้โค้ดที่กําหนดเองในอุปกรณ์ใน การตอบสนองต่อคำสั่งจาก Google Assistant
เรียกใช้ตัวอย่าง
ตอนนี้คุณกำหนดลักษณะและอัปเดตโมเดลแล้ว อย่าลืมตรวจสอบว่า ตรวจสอบว่า Google Assistant กำลังส่งคำสั่งเปิด/ปิดกลับมาเพื่อให้ คำถาม
googlesamples-assistant-pushtotalk
กดปุ่ม Enter และลองใช้ข้อความค้นหาต่อไปนี้
เปิด
คุณควรเห็นข้อความต่อไปนี้ในเอาต์พุตของคอนโซล หากไม่เห็น โปรดดู วิธีการแก้ปัญหา
INFO:root:Recording audio request.
INFO:root:End of audio request detected
INFO:root:Transcript of user request: "turn on".
INFO:root:Playing assistant response.
INFO:root:Turning device on
INFO:root:Waiting for device executions to complete.
INFO:root:Finished playing assistant response.
คุณจะเห็นว่าใบแจ้งยอดเหล่านี้พิมพ์อยู่ที่ตำแหน่งใดในซอร์สโค้ด
ดูซอร์สโค้ด
ตอนนี้คุณพร้อมที่จะเริ่มโปรเจ็กต์ของตัวเองแล้ว:
git clone https://github.com/googlesamples/assistant-sdk-python
ค้นหาเครื่องจัดการคำสั่ง
ไฟล์ pushtotalk.py
ในโค้ดตัวอย่างใช้ SDK เพื่อส่งคำขอและ
รับคำตอบจาก Google Assistant
cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/grpc
nano pushtotalk.py
ค้นหาคำจำกัดความของตัวแฮนเดิลต่อไปนี้
device_handler = device_helpers.DeviceRequestHandler(device_id)
@device_handler.command('action.devices.commands.OnOff')
def onoff(on):
if on:
logging.info('Turning device on')
else:
logging.info('Turning device off')
โค้ดใน onoff()
จะจัดการคำสั่ง action.devices.commands.OnOff
ช่วงเวลานี้
เป็นส่วนหนึ่งของ OnOff
สคีมาของลักษณะเฉพาะ
ขณะนี้บันทึกคำจำกัดความของ onoff()
จะส่งออกไปยังคอนโซล ใช้ตัวช่วย
ใน device_helpers.py
เพื่อแยกวิเคราะห์ JSON การตอบสนองและจัดเก็บคำสั่ง
ในตัวแปรเพื่อให้ใช้งานได้ง่าย คุณสามารถแก้ไขโค้ดนี้เพื่อทำทุกอย่างได้
ที่ต้องการในโปรเจ็กต์
หากคุณมีชุดไฟ LED ให้อ่านต่อเพื่อดูวิธีเปิดไฟ LED เพื่อตอบสนอง ไปที่คำสั่ง OnOff หากไม่เป็นเช่นนั้น ให้ข้ามส่วนถัดไปเพื่อดูวิธี เพิ่มลักษณะและเครื่องจัดการเพิ่มเติม
ขั้นตอนถัดไป - Raspberry Pi
เมื่อทราบวิธีจัดการคำสั่งขาเข้าแล้ว ให้แก้ไขโค้ดตัวอย่าง เพื่อติดไฟ LED การดำเนินการนี้ต้องการฮาร์ดแวร์เพิ่มเติมหากคุณใช้ Raspberry Pi
นำเข้าแพ็กเกจ GPIO
เพื่อให้ซอฟต์แวร์เข้าถึง PIN สำหรับอินพุต/เอาต์พุตทั่วไป (GPIO) ได้ง่ายขึ้น Raspberry Pi ติดตั้ง RPi.GPIO ในสภาพแวดล้อมเสมือนจริง
pip install RPi.GPIO
แก้ไขตัวอย่าง
เปิดไฟล์ pushtotalk.py
cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/grpc
nano pushtotalk.py
ในไฟล์ pushtotalk.py
ให้นำเข้า RPi.GPIO
ในการควบคุมพิน GPIO บน Pi วางข้อความต่อไปนี้ไว้ใกล้กับ
คำชี้แจงอื่นๆ ของ import
:
import RPi.GPIO as GPIO
แก้ไขโค้ดเพื่อตั้งค่า PIN เอาต์พุตเป็นสถานะตรรกะต่ำในตอนแรก เมื่อ เมื่อได้รับคำสั่งแล้ว ให้ตั้งค่า PIN เป็นสถานะ High Logic เมื่อ ได้รับคำสั่ง off แล้ว ให้กำหนด PIN เป็นสถานะ Low Logic
device_handler = device_helpers.DeviceRequestHandler(device_id)
GPIO.setmode(GPIO.BCM)
GPIO.setup(25, GPIO.OUT, initial=GPIO.LOW)
@device_handler.command('action.devices.commands.OnOff')
def onoff(on):
if on:
logging.info('Turning device on')
GPIO.output(25, 1)
else:
logging.info('Turning device off')
GPIO.output(25, 0)
บันทึกการเปลี่ยนแปลงและปิดไฟล์
เรียกใช้ตัวอย่าง
เรียกใช้โค้ดตัวอย่างที่แก้ไข
python pushtotalk.py
ใช้คำค้นหาเดิม ไฟ LED ควรสว่างขึ้น
ข้อมูลข้างต้นเป็นเพียงแค่ส่วนหนึ่งเท่านั้น ดูวิธีเพิ่มลักษณะและเครื่องจัดการเพิ่มเติม