Ikuti petunjuk ini untuk mengeksekusi kode khusus pada perangkat Anda dalam merespons perintah dari Asisten Google.
Menjalankan contoh
Setelah Anda menentukan ciri dan memperbarui model, periksa untuk memastikan Asisten Google mengirimkan kembali perintah Aktif/Nonaktif untuk kueri.
googlesamples-assistant-hotword --device-model-id my-model
Coba kueri berikut:
Ok Google, aktifkan.
Anda akan melihat pernyataan berikut di output konsol. Jika tidak, lihat petunjuk pemecahan masalah.
ON_RECOGNIZING_SPEECH_FINISHED:
{'text': 'turn on'}
ON_DEVICE_ACTION:
{'inputs': [{'payload': {'commands': [{'execution': [{'command': 'action.devices.commands.OnOff',
'params': {'on': True}}], 'devices': [{'id': 'E56D39D894C2704108758EA748C71255'}]}]},
'intent': 'action.devices.EXECUTE'}], 'requestId': '4785538375947649081'}
Do command action.devices.commands.OnOff with params {'on': True}
Anda akan menemukan tempat pernyataan ini dicetak dalam kode sumber.
Mendapatkan kode sumber
Sekarang Anda siap untuk memulai proyek Anda sendiri:
git clone https://github.com/googlesamples/assistant-sdk-python
Menemukan pengendali perintah
File hotword.py
dalam kode contoh menggunakan SDK untuk mengirim permintaan dan
menerima respons dari Asisten Google.
cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/library
nano hotword.py
Telusuri definisi pengendali berikut:
def process_event(event):
Saat ini, fungsi ini mencetak setiap nama peristiwa Tindakan Perangkat dan semua parameter dengan baris berikut:
print('Do command', command, 'with params', str(params))
Kode ini menangani perintah action.devices.commands.OnOff
. Ini
adalah bagian dari perintah OnOff
trait. Saat ini, kode ini hanya mencetak output ke konsol. Anda dapat
ubah kode ini untuk melakukan
apa pun yang Anda inginkan pada
proyek. Tambahkan blok berikut dengan perintah print
di process_event()
.
print('Do command', command, 'with params', str(params)) # Add the following: if command == "action.devices.commands.OnOff": if params['on']: print('Turning the LED on.') else: print('Turning the LED off.')
Jalankan kode sumber yang telah dimodifikasi secara langsung untuk melihat output.
python hotword.py --device-model-id my-model
Gunakan kueri yang sama seperti sebelumnya:
Ok Google, aktifkan.
Jika Anda menghubungkan LED ke Raspberry Pi, teruskan membaca untuk mempelajari cara menyalakan LED sebagai respons perintah {i>OnOff<i}. Jika tidak, lewati bagian berikutnya untuk mempelajari cara menambahkan lebih banyak ciri dan pengendali.
Langkah berikutnya - Raspberry Pi
Sekarang setelah Anda mengetahui cara menangani perintah yang masuk, ubah kode contoh untuk menyalakan LED. Proses ini membutuhkan beberapa perangkat keras tambahan jika Anda menggunakan {i>Raspberry Pi.<i}
Mengimpor paket GPIO
Untuk menyederhanakan akses software ke pin General Objective Input/Output (GPIO) di Raspberry Pi, instal paket RPi.GPIO virtual machine di lingkungan virtual.
pip install RPi.GPIO
Mengubah sampel
Buka file hotword.py
.
nano hotword.py
Dalam file hotword.py
, impor RPi.GPIO
modul ini untuk mengontrol
pin GPIO pada Pi. Tempatkan pernyataan berikut di dekat
pernyataan import
lainnya:
import RPi.GPIO as GPIO
Ubah kode untuk menyetel pin output di awal ke status logika rendah. Yang harus dilakukan
di fungsi main()
, sebelum memproses peristiwa:
with Assistant(credentials, device_model_id) as assistant: events = assistant.start() device_id = assistant.device_id print('device_model_id:', device_model_id) print('device_id:', device_id + '\n') GPIO.setmode(GPIO.BCM) GPIO.setup(25, GPIO.OUT, initial=GPIO.LOW) ...
Ubah kode yang Anda tambahkan di process_event()
. Ketika perintah {i>on<i} diterima,
setel pin ke status logika tinggi. Saat perintah off diterima, atur
pin ke status logika rendah.
if command == "action.devices.commands.OnOff": if params['on']: print('Turning the LED on.') GPIO.output(25, 1) else: print('Turning the LED off.') GPIO.output(25, 0)
Simpan perubahan Anda dan tutup file tersebut.
Menjalankan contoh
Jalankan kode contoh yang sudah dimodifikasi.
python hotword.py --device-model-id my-model
Gunakan kueri yang sama seperti sebelumnya. LED akan menyala.
Ini hanyalah langkah awal untuk Anda. Pelajari cara menambahkan lebih banyak karakteristik dan pengendali.