Micro JARVIS dengan Modal $400
Berasa kayak Tony Stark dan AI-nya, si JARVIS? Sekarang sangat bisa! Dengan LLM dan teknologi open-source, modal $400 saja.
Apa aja yang harus ada?
ASR (automatic speech recognition)
TTS (text to speech)
LLM (large language model)
wakeword detector
Dari segi hardware, lagi-lagi saya berburu barang bekas dari Ebay, Craigslist, OfferUp dll. Kalau tidak bermukim di Amrik, bisa jadi lebih mahal.
AMD Ryzen 7 2700X: $80
MSI B450I Motherboard: $70
16 GB DDR4 RAM: $30
256 GB SSD: $20
EVGA GTX 1080 Ti : $150
Case + PSU: $50
Sekarang kita lihat softwarenya satu-satu.
Untuk software, LLM dijalankan secara lokal dengan llama.cpp. Model yang saya pilih adalah Qwen-2.5 3B dan Llama-3.2 3B. Dua-duanya sangat memadai, apalagi dengan GPU yang legendaris, GTX 1080 Ti.
Penasaran tentang LLM lokal? Berikut ulasan saya sebelumnya yang lebih rinci: Berkenalan dengan LLM.
Ketika mikrofon mendengar dan menerima ucapan, perlu diubah menjadi teks. Konversi ini sering disebut sebagai ASR (automatic speech recognition) atau juga STT (speech to text).
Yang saya pakai adalah Whisper, khususnya whisper.cpp. Bisa ditengok di reponya di github.com/ggerganov/whisper.cpp.
Bagaimana dengan jawaban yang lari ke speaker?
Untuk ini, namanya TTS (text to speech). Di sini saya menggunakan Piper (github.com/rhasspy/piper). Canggihnya Piper adalah bisa banyak bahasa! Tentu saja, model yang sesuai juga harus disediakan.
Kalau memperhatikan video di awal utas ini, saya bahkan menyuplai dua model berbeda untuk bahasa Inggris, untuk dua akses yang berbeda. Ada rasa yang lain kalau jawabannya British English!
Sistem yang saya beri nama Micro JARVIS ini akan "bangun", alias mulai memberikan respons, hanya kalau saya panggil "Hey JARVIS". Di sini kita perlu hotword detector yang akan mendeteksi panggilan tersebut.
Beruntunglah ada proyek open-source lain yang piawai untuk hal ini: github.com/dscripka/openWakeWord.
Jawaban dari LLM tidak selalu sesuai fakta terbaru, maka LLM-nya saya bekali dengan "web search" yang dikonsultasikan dulu.
Berikut tulisan saya sebelumnya tentang pentingnya "grounding" supaya pemikiran LLM lebih membumi: Membumikan LLM dan Menambatkan Informasi.
Walaupun Micro JARVIS ini belum saya jadikan open-source, prinsip kerjanya sudah bisa dipelajari dari proyek saya yang lain: github.com/ariya/gamal.
Nanti pelan-pelan tiap komponennya akan dirincikan.
Nah gimana, ada juga yang pengen jadi Tony Stark?
Sebuah utas di Threads sebelumnya sudah membahas rakitan ini.