- Studi kasus yang merangkum langkah demi langkah proses membangun asisten suara sepenuhnya lokal berbasis Home Assistant setelah lepas dari Google Home
- Menggunakan llama.cpp dan arsitektur local-first untuk mencapai respons cepat dan perlindungan privasi tanpa ketergantungan pada cloud
- Menguji beragam kombinasi GPU, model, STT, dan TTS sambil membandingkan performa serta kualitas untuk menemukan konfigurasi optimal
- Mewujudkan fungsi kehidupan nyata seperti cuaca, pencarian, dan pemutaran musik melalui desain prompt dan skrip otomasi
- Hasil akhirnya adalah lingkungan asisten suara lokal yang andal sambil tetap menjamin privasi
Konfigurasi perangkat keras
- Home Assistant dijalankan di UnRaid NAS, sementara server suara menggunakan Beelink MiniPC dengan dukungan USB4 dan enklosur eGPU
- GPU yang diuji mencakup berbagai model seperti RTX 3050~3090 dan RX 7900XTX
- RTX 3090 dan RX 7900XTX memberikan respons 1~2 detik, sedangkan RTX 3050 sekitar 3 detik
- Perangkat keras suara terdiri dari HA Voice Preview Satellite, 2 unit Satellite1 Small Squircle Enclosure, dan Pixel 7a
Model dan performa
- Menguji berbagai model seperti GGML GPT-OSS:20B, Unsloth Qwen3 series, dan GLM 4.7 Flash (30B)
- Semua model mendukung fitur dasar tool calling
- Kriteria evaluasi mencakup kontrol multi-perangkat, pemahaman konteks, penanganan perintah yang salah dikenali, dan kemampuan mengabaikan input yang keliru
Perangkat lunak server suara
- llama.cpp direkomendasikan sebagai runtime model
- Input suara (STT)
- Wyoming ONNX ASR (Nvidia Parakeet V2, cabang OpenVINO): waktu inferensi CPU sekitar 0,3 detik
- Rhasspy Faster Whisper: berbasis ONNX CPU dan relatif lebih lambat
- Output suara (TTS)
- Kokoro TTS: mendukung berbagai kombinasi suara dan unggul dalam pemrosesan teks
- Piper (CPU): mendukung beragam suara, tetapi lemah dalam menangani angka dan alamat
- Integrasi Home Assistant LLM
- LLM Conversation: meningkatkan kualitas percakapan dasar
- LLM Intents: menyediakan alat seperti pencarian web, pencarian tempat, dan prakiraan cuaca
Transisi dari Google Assistant ke asisten lokal
- Google Assistant makin menurun dalam akurasi respons dan fungsionalitas, sehingga kebutuhan pengganti makin terasa
- Masalah privasi dan ketidakmampuan mengontrol saat cloud mengalami gangguan juga menjadi faktor utama perpindahan
Percobaan awal dan peningkatan model
- Pada awalnya menggunakan model bawaan Ollama, tetapi sering gagal dalam tool calling
- Performa meningkat drastis setelah memakai model GGUF presisi tinggi dari HuggingFace
- Karena Wi-Fi tidak stabil, konfigurasi streaming dan jaringan IoT khusus diterapkan agar output suara dapat diproses tanpa terputus
Perluasan fitur dan desain prompt LLM
- Asisten suara dikonfigurasi agar dapat menjalankan cuaca, jam operasional, pengetahuan umum, dan pemutaran musik
- Fungsionalitas diperluas melalui integrasi llm-intents, tetapi hasil awal masih terbatas
- Desain prompt menjadi elemen kunci
- Menambahkan bagian
# per layanan dan daftar instruksi yang spesifik untuk meningkatkan akurasi tool calling pada LLM
- Menghapus seruan dan emoji yang tidak perlu untuk mendapatkan format respons yang ramah TTS
- Prompt terus disempurnakan secara berulang dengan bantuan ChatGPT
Menyelesaikan masalah lewat otomasi
- Karena fitur pemutaran musik tidak bisa dijalankan langsung oleh LLM, hal itu dilengkapi dengan skrip otomasi Home Assistant
- Perintah “Play {music}” digunakan sebagai pemicu untuk memutar musik pada media_player yang sesuai dengan perangkat satelit yang meminta
- Perintah “Stop playing” dapat digunakan untuk menghentikan pemutaran
- Dalam pembaruan berikutnya, LLM sudah bisa melakukan pencarian dan pemutaran musik secara alami, tetapi otomasi tetap merupakan pendekatan yang berguna
Pelatihan wake word kustom
- Menggunakan “Hey Robot” alih-alih wake word bawaan
- Dilatih selama sekitar 30 menit dengan microWakeWord-Trainer-Nvidia-Docker
- Tingkat false positive setara Google Home, dan masih bisa ditingkatkan dengan fitur auto-mute
Hasil akhir
- Meski agak rumit bagi pengguna rata-rata, lingkungan asisten suara lokal yang bisa diatur secara rinci berhasil diwujudkan
- Memungkinkan perlindungan privasi, kontrol yang stabil, dan penyesuaian performa sesuai kebutuhan pengguna
- Sebagai asisten suara yang sepenuhnya independen dari cloud, sistem ini berhasil menghadirkan keandalan dan kenyamanan
Belum ada komentar.