Dunia Internet of Things (IoT) berubah secara pesat dengan diperkenalkannya kecerdasan buatan dalam segala hal. Berkat kemajuan AI dan layanan cloud, mikrokontroler sederhana, bersama dengan sensor dan aktuator standar, dapat diintegrasikan ke dalam berbagai hal untuk membuat perangkat cerdas interaktif. Dalam postingan ini, kami akan mengeksplorasi cara developer IoT bisa memanfaatkan Gemini REST API untuk membuat perangkat yang memahami dan bereaksi terhadap perintah ucapan khusus, menjembatani kesenjangan antara dunia digital dan fisik untuk memecahkan masalah praktis dan permasalahan yang sebelumnya sulit dipecahkan.
Untuk menjaga semuanya tetap sederhana, postingan ini akan tetap berpegang pada konsep tingkat tinggi, tetapi Anda bisa melihat contoh kode selengkapnya dan skema perangkat yang memanfaatkan mikrokontroler ESP32 di GitHub.
Secara tradisional, mengintegrasikan pengenalan ucapan ke dalam perangkat IoT, terutama yang memiliki memori terbatas, merupakan tugas kompleks. Meskipun solusi seperti LiteRT untuk Mikrokontroler memungkinkan Anda menjalankan model dasar untuk mengenali kata kunci, bahasa manusia merupakan input yang jauh lebih luas dan lebih bernuansa yang bisa digunakan oleh developer untuk keuntungan mereka. Gemini API menyederhanakan hal ini dengan menyediakan solusi kuat berbasis cloud yang memahami berbagai bahasa yang diucapkan, bahkan antar bahasa yang berbeda, semuanya dari satu alat, sekaligus menentukan tindakan yang harus dilakukan oleh perangkat tersemat berdasarkan input pengguna.
Kemampuan ini bergantung pada kemampuan Gemini API untuk memproses dan menginterpretasikan data audio dari perangkat IoT, serta menentukan langkah berikutnya yang harus diambil perangkat, dengan mengikuti proses ini:
1. Tangkapan audio: Perangkat IoT, yang dilengkapi dengan mikrofon, menangkap kalimat yang diucapkan.
2. Encoding audio: Ucapan dienkode ke dalam format untuk transmisi internet. Dalam contoh resmi yang disebutkan di atas, kami mengonversi sinyal analog ke audio berformat WAV, lalu ke string yang dienkode base64 untuk Gemini API.
3. Permintaan API: Audio yang dienkode dikirim ke Gemini API melalui panggilan REST API. Panggilan ini mencakup petunjuk, seperti meminta teks perintah yang diucapkan, atau mengarahkan Gemini untuk memilih fungsi khusus yang telah ditentukan sebelumnya (mis., menyalakan lampu). Jika menggunakan fitur panggilan fungsi Gemini API, Anda harus memberikan definisi fungsi, termasuk nama, deskripsi, dan parameter, dalam JSON permintaan Anda.
4. Pemrosesan: Model AI Gemini API menganalisis audio yang dienkode dan menentukan respons yang tepat.
5. Respons: API menampilkan informasi ke perangkat IoT, seperti transkrip audio, fungsi berikutnya yang harus dipanggil, atau respons teks dengan petunjuk lebih lanjut.
Sebagai contoh, anggap saja kita mengontrol LED dengan perintah suara untuk menyalakan atau mematikannya dan mengubah warnanya. Kita bisa menetapkan dua fungsi: satu untuk menyalakan dan mematikan LED dan satu lagi untuk mengubah warnanya. Alih-alih membatasi warna pada kisaran tertentu, kita bisa mengizinkan nilai RGB apa pun dari 0 hingga 255, menawarkan lebih dari 16 juta kemungkinan kombinasi.
Permintaan berikut, termasuk string audio yang dienkode base64 ($DATA
), menunjukkan hal ini:
{
"contents": [
{
"parts": [
{
"text": "Trigger a function based on this audio input."
},
{
"inline_data": {
"mime_type": "audio/x-wav",
"data": "$DATA"
}
}
]
}
],
"tools": [
{
"function_declarations": [
{
"name": "changeColor",
"description": "Change the default color for the lights in an RGB format. Example: Green would be 0 255 0",
"parameters": {
"type": "object",
"properties": {
"red": {
"type": "integer",
"description": "A value from 0 to 255 for the color RED in an RGB color code"
},
"green": {
"type": "integer",
"description": "A value from 0 to 255 for the color GREEN in an RGB color code"
},
"blue": {
"type": "integer",
"description": "A value from 0 to 255 for the color BLUE in an RGB color code"
}
},
"required": [
"red",
"green",
"blue"
]
}
},
{
"name": "toggleLights",
"description": "Turn on or off the lights",
"parameters": {
"type": "object",
"properties": {
"toggle": {
"type": "boolean",
"description": "Determine if the lights should be turned on or off."
}
},
"required": [
"toggle"
]
}
}
]
}
]
}
Meskipun ini adalah contoh yang sangat disederhanakan, tetapi contoh ini menyoroti banyak manfaat praktis untuk pengembangan IoT:
Dengan menggabungkan panggilan fungsi dan input audio dengan Gemini API, developer bisa menciptakan perangkat IoT yang secara cerdas merespons perintah yang diucapkan.
Meskipun audio dan panggilan fungsi adalah alat penting untuk menyempurnakan perangkat IoT dengan AI, masih banyak yang bisa digunakan untuk menciptakan perangkat cerdas yang luar biasa dan berguna. Beberapa area potensial yang dapat dieksplorasi antara lain:
Kami sangat antusias melihat semua hal hebat yang Anda bangun dengan Gemini API! Aplikasi Anda bisa mentransformasi cara kita berinteraksi dengan dunia sekitar dan memecahkan masalah di dunia nyata dengan kekuatan AI. Silakan bagikan project Anda dengan kami di Google AI for Developers di LinkedIn dan Google AI Developers di X.