Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Android SDK

Android Things: Menambahkan Google Asisten

by
Difficulty:IntermediateLength:LongLanguages:

Indonesian (Bahasa Indonesia) translation by AaliyaA (you can also view the original English article)

Dengan pertumbuhan Internet of Things (IoT), pengembang dan teknisi harus memikirkan kembali bagaimana pengguna berinteraksi dengan perangkat setiap hari.

Sementara layar bekerja dengan baik untuk situs web dan aplikasi kebanyakan, perangkat yang berinteraksi dengan dunia nyata bisa menjadi sedikit lebih membosankan jika anda harus menggunakan beberapa tombol atau layar untuk berfungsi. Salah satu cara sekitar ini adalah dengan mengaktifkan kontrol suara pada perangkat anda.

Dalam tutorial ini anda akan belajar tentang Google Asisten dan bagaimana anda dapat menambahkannya ke perangkat Android IoT hal anda.

Jika Anda memerlukan sedikit latar belakang pada hal-hal Android sebelum anda mulai, lihat beberapa posting saya yang lain di sini di Envato Tuts+.

Asisten SDK

SDK Google Asisten memungkinkan anda menambahkan kontrol suara dengan deteksi kata kunci, pemrosesan bahasa alami, dan fitur pembelajaran mesin lainnya ke perangkat IoT anda. Ada banyak hal yang bisa dilakukan dengan Asisten SDK, tapi di tutorial ini hanya akan fokus pada hal-hal mendasar: bagaimana anda bisa memasukkannya ke perangkat Android Things anda untuk mengajukan pertanyaan, mendapatkan informasi, dan berinteraksi dengan standar "di luar kotak "Asisten fungsionalitas.

Sejauh persyaratan perangkat keras, anda memiliki beberapa pilihan. Anda dapat menggunakan Raspberry Pi yang melintas dengan Android Things dengan AIY Voice Kit.

Atau anda dapat menggunakan speaker standar dengan konektor AUX dan USB mikrofon.

Selain itu, anda dapat menggunakan konfigurasi perangkat keras I²S lainnya. Meskipun kami tidak akan membahas I²S secara rinci dalam tutorial ini, perlu dicatat bahwa Voice Kit akan menggunakan protokol ini. Begitu anda memasang mikrofon dan speaker, anda juga perlu menambahkan tombol ke perangkat anda. Tombol ini akan perlu untuk melacak dua status: ditekan dan dilepaskan. Anda dapat mencapai ini dengan arcade multi-cabang tombol atau tombol standar dengan sebuah resistor tarik-turun yang melekat pada salah satu tiang.

Kredensial

Setelah anda menghubungkan perangkat keras anda, sekarang saatnya menambahkan Asisten SDK ke perangkat anda. Pertama, anda perlu membuat file kredensial baru untuk perangkat anda. Anda dapat menemukan petunjuk untuk hal ini di dokumen Google Asisten. Setelah anda memiliki file credentials.json anda, anda perlu memasukkannya ke direktori res/raw dari modul Android Things Anda.

credentialsjson file in the resraw directory

Setelah kredensial anda dibuat dengan Google, anda harus menyatakan beberapa izin untuk aplikasi anda. Buka file AndroidManifest.xml dan tambahkan baris berikut di dalam tag manifest, namun sebelum tag application.

Perlu dicatat bahwa anda perlu me-restart perangkat anda setelah menginstal aplikasi dengan izin ini agar bisa diberikan.

Selanjutnya anda perlu menyalin modul gRPC ke aplikasi anda untuk berkomunikasi dengan perangkat rumah. Ini menjadi sedikit rumit, jadi tempat terbaik untuk mendapatkannya adalah dari contoh aplikasi Google Asisten Android Things, yang dapat ditemukan di akun Android Things GitHub. Anda kemudian perlu memperbarui file settings.gradle anda untuk mencerminkan modul baru.

Setelah memperbarui settings.gradle, sertakan modul sebagai dependensi pada modul hal-hal anda dengan menyertakan baris berikut dalam file modul build.gradle dan termasuk driver tombol Google (anda memerlukan ini untuk mengaktifkan mikrofon) dan driver Voice Hat opsional jika anda menggunakan perangkat keras itu.

Anda juga harus menyertakan protobuf sebagai depedensi di file build.gradle tingkat proyek anda.

Selanjutnya, mari sertakan library oauth2 di proyek kita dengan membuka modul things file build.gradle dan menambahkan hal-hal berikut di bawah dependencies node:

Anda mungkin mengalami konflik di sini jika proyek anda memiliki dependensi Espresso, dengan pesan kesalahan serupa dengan ini:

Jika demikian, hapus saja dependensi Espresso dari build.gradle.

Setelah mensinkronisasi proyek anda, buat class baru bernama Credentials.java untuk mengakses kredensial Anda.

Class Assistant Helper Bawaan

Begitu class Credentials.java anda dibuat, sekarang saatnya membuat class baru bernama EmbeddedAssistant.java. Ini adalah class pembantu yang pada awalnya ditulis oleh para insinyur di Google untuk dengan mudah membungkus Asisten Google untuk Android Things. Meskipun class ini cukup mudah digunakan hanya dengan memasukkannya ke dalam proyek anda, kami ingin mendalaminya dan memahami bagaimana cara kerja sebenarnya.

Hal pertama yang anda akan lakukan adalah membuat dua class abstrak inti yang akan digunakan untuk menangani callback dalam percakapan dan permintaan ke API asisten.

Setelah dua class inti anda ditulis, lanjutkan dan tentukan serangkaian nilai global berikut di bagian atas kelas anda. Sebagian besar ini akan diinisialisasi nanti dalam file ini. Nilai ini digunakan untuk melacak status perangkat dan interaksi dengan API asisten.

Penanganan Respon API

Sementara di atas mempunyai objek StreamObserver<Conserve Request> untuk permintaan ke Asisten API, anda juga memerlukan satu untuk tanggapan. Objek ini akan terdiri dari pernyataan switch yang memeriksa keadaan respons dan kemudian menanganinya sesuai dengan itu.

Kasus pertama periksa sampai akhir pengguna berbicara dan gunakan ConversationCallback untuk membiarkan seluruh class tahu bahwa sebuah respon akan segera terjadi.

Kasus selanjutnya akan memeriksa dan perbarui percakapan, volume, dan mikrofon negara.

Kasus ketiga akan mengambil hasil audio dan memainkannya kembali untuk pengguna.

Kasus akhir hanya akan meneruskan kesalahan yang terjadi selama proses percakapan.

Dua metode terakhir dalam urutan ini menangani keadaan kesalahan dan pembersihan saat menyelesaikan hasil percakapan.

Streaming Audio

Selanjutnya, anda perlu membuat Runnable yang akan menangani streaming audio pada thread yang berbeda.

Menciptakan Asisten

Setelah nilai global anda ditetapkan, saatnya untuk membahas framework untuk menciptakan EmbeddedAssistant. Anda harus dapat mengambil kredensial untuk aplikasi anda menggunakan class Credentials.java yang telah dibuat sebelumnya.

Agar bisa instantiate sendiri, class ini menggunakan private constructor dan builder pattern.

Class Builder inti berisi beberapa metode untuk menginisialisasi nilai dalam class EmbeddedAssistant, seperti sample rate, volume, dan kredensial pengguna. Setelah metode build() dipanggil, semua nilai yang ditetapkan akan ditetapkan pada EmbeddedAssistant, objek global yang diperlukan untuk operasi akan dikonfigurasi, dan kesalahan akan dibuang jika ada data yang diperlukan hilang.

Menghubungkan ke API Asisten

Setelah EmbeddedAssistant telah dibuat, metode connect() perlu dipanggil untuk terhubung ke Asisten API.

Setelah tersambung ke API, anda akan menggunakan dua metode untuk memulai dan menghentikan percakapan. Metode ini akan memposting objek Runnable ke mAssistantHandler untuk melewati objek percakapan ke urutan permintaan dan respons.

Mematikan

Akhirnya, metode destroy() akan digunakan untuk teardown saat aplikasi Anda ditutup dan tidak perlu lagi mengakses Asisten API.

Menggunakan Asisten

Begitu class pembantu anda selesai, saatnya untuk menggunakannya. Anda akan melakukan ini dengan mengedit class MainActivity Android untuk berinteraksi dengan EmbeddedAssistant dan perangkat keras untuk mengendalikan Asisten Google. Pertama, tambahkan antarmuka Button.OnButtonEventListener ke Activity Anda.

Selanjutnya anda perlu menambahkan variabel anggota dan konstanta yang akan dibutuhkan oleh aplikasi anda. Nilai-nilai ini akan mengontrol debounce tombol yang memicu Asisten, serta volume, format audio, class UserCredentials yang anda buat sebelumnya, dan perangkat keras untuk perangkat anda.

Setelah konstanta anda didefinisikan, anda perlu membuat beberapa objek callback yang akan digunakan untuk percakapan dan permintaan dengan asisten.

Dalam mConversationCallback, anda akan melihat bahwa kita menyimpan persentase perubahan volume dalam preferensi bersama. Ini memungkinkan volume perangkat anda tetap konsisten untuk pengguna anda, bahkan di reboot.

Sebagai asisten bekerja secara asinkron pada perangkat anda, anda akan menginisialisasi semuanya untuk menggunakan Asisten API di onCreate() dengan memanggil seperangkat metode pembantu yang akan kita definisikan di sisa tutorial ini.

Metode pembantu pertama adalah initVoiceHat(). Jika pelindung Voice Hat dilekatkan pada Raspberry Pi, metode ini akan menginisialisasi perangkat sehingga pengguna dapat menggunakan mikrofon dan speaker yang terpasang. Jika Voice Hat tidak terpasang, speaker AUX standar dan mikrofon USB dapat digunakan dan akan diarahkan secara otomatis. Voice Hat menggunakan I2S untuk menangani perangkat audio di bus, dan dibungkus oleh class driver yang ditulis oleh Google.

Asisten hanya akan merespon dalam sampel ini sementara tombol pemicu ditekan. Tombol ini diinisialisasi dan dikonfigurasi seperti ini:

Saat tombol ditekan, asisten akan mulai mendengarkan percakapan baru.

Anda dapat menemukan lebih banyak informasi tentang GPIO dan Android Things di my tutorial about input and output with Android Things.

Karena kita menyimpan informasi volume di SharedPreferences perangkat kita, kita dapat mengaksesnya secara langsung untuk menginisialisasi volume perangkat.

Asisten SDK memerlukan otentikasi untuk digunakan. Beruntung kita telah membuat sebuah metode di class EmbeddedAssistant tadi dalam tutorial ini khusus untuk situasi ini.

Metode pembantu terakhir yang dipanggil di onCreate() akan menginisialisasi objek EmbeddedAssistant dan menghubungkannya ke API.

Hal terakhir yang perlu anda lakukan adalah meruntuhkan perangkat anda dengan benar dengan memperbarui metode onDestroy() di Activity Anda.

Setelah semua ini, anda harus bisa berinteraksi dengan perangkat Android Things anda seolah-olah itu adalah Google Home!

Kesimpulan

Dalam tutorial ini, Anda belajar tentang Google Asisten dan bagaimana hal itu dapat ditambahkan ke aplikasi Android Things anda. Fitur ini memberi pengguna cara baru untuk berinteraksi dengan dan mengendalikan perangkat anda, serta akses ke banyak fitur yang tersedia dari Google. Ini hanya satu bagian dari fitur fantastis yang bisa masuk ke aplikasi Android Things dan memungkinkan anda membuat perangkat baru dan menakjubkan untuk pengguna anda.

Sementara anda di sini, lihat beberapa postingan saya yang lain tentang Android Things di Envato Tuts +!

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.