Tutorial Membangun Voice Agent Standalone dengan Pomi di Perangkat Edge
AP
Adrian Prat

Dipublikasikan 31 Juli 2026

Tutorial Membangun Voice Agent Standalone dengan Pomi di Perangkat Edge

Pomi adalah voice agent standalone open source yang dirancang untuk berjalan pada perangkat edge seperti Rabbit R1. Dikembangkan oleh sidmohan0 di GitHub, Pomi memungkinkan developer untuk membangun asisten suara yang beroperasi penuh secara lokal tanpa bergantung pada layanan cloud besar. Artikel ini adalah panduan praktis membangun voice agent dengan Pomi, mulai dari persiapan hardware hingga deployment voice command kustom.

Apa Itu Pomi dan Mengapa Perangkat Edge Menarik

Voice agent berbasis cloud seperti Alexa, Siri, atau Google Assistant memerlukan koneksi internet konstan untuk memproses perintah suara. Pendekatan ini memunculkan masalah privasi, latency, dan ketergantungan pada infrastruktur eksternal. Pomi mengambil arah berbeda dengan menjalankan seluruh pipeline: wake word detection, speech-to-text, LLM inference, dan text-to-speech secara lokal di perangkat edge.

Rabbit R1 dipilih sebagai target utama karena form factor-nya yang kompak, harga terjangkau, dan hardware yang cukup kuat untuk menjalankan model optimized. Namun Pomi juga bisa di-port ke perangkat lain yang memiliki speaker, mikrofon, dan prosesor ARM minimal quad-core. Bagi developer Indonesia yang ingin bereksperimen dengan edge AI, Pomi adalah starting point yang sangat baik karena seluruh stack bersifat open source.

Persiapan Hardware dan Software

Untuk mengikuti tutorial ini, siapkan perangkat dan software berikut:

  • Rabbit R1 atau perangkat edge ARM64 dengan minimal 4GB RAM

  • MicroSD minimal 32GB untuk penyimpanan model dan data

  • Kabel USB-C untuk debugging dan flashing

  • Linux OS yang terpasang di perangkat target

  • Komputer development dengan Python 3.11+

Pomi menggunakan beberapa model neural network yang berjalan secara lokal. Model-model tersebut dikonversi ke format lightweight menggunakan teknik quantization agar bisa berjalan cepat di hardware terbatas. Pastikan perangkat target memiliki ruang penyimpanan yang cukup untuk model STT dan TTS.

Langkah 1: Clone Repository dan Setup Environment

Mulai dengan meng-clone repository Pomi ke komputer development-mu:

git clone https://github.com/sidmohan0/pomi.git
cd pomi

Repository ini terdiri dari beberapa modul utama. Folder src/ berisi kode Python untuk pipeline voice processing. Folder models/ menyimpan script download untuk model pretrained. Folder config/ berisi file YAML untuk mengatur behavior agent dan voice profile.

Buat virtual environment dan install dependensi:

python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

Dependensi utama meliputi onnxruntime untuk inference model, silero untuk text-to-speech, dan openai-whisper untuk speech-to-text. Jika kamu menemukan masalah kompatibilitas library audio di Linux, install system package portaudio19-dev dan libsndfile1 terlebih dahulu.

Langkah 2: Download Model Lokal

Pipeline Pomi membutuhkan tiga model utama untuk berjalan offline:

  1. Wake word model: Mendeteksi trigger phrase seperti "Hey Pomi"

  2. STT model: Mengubah audio input menjadi teks menggunakan Whisper tiny

  3. LLM model: Language model kecil seperti Phi-3 mini atau Gemma 2B untuk reasoning

Jalankan script download yang tersedia di repository:

python scripts/download_models.py --stt whisper-tiny --llm phi-3-mini --tts silero

Proses download bisa memakan waktu tergantung kecepatan internet, karena total ukuran model mencapai sekitar 2-3GB. Setelah selesai, model akan disimpan di folder models/pretrained/. Kamu bisa mengganti LLM dengan model lain yang tersedia di Hugging Face selama model tersebut mendukung format ONNX atau GGUF.

Langkah 3: Konfigurasi Voice Profile dan Command Kustom

Buka file config/voice_profile.yaml untuk menyesuaikan karakteristik suara dan personality agent. Berikut contoh konfigurasi yang bisa kamu modifikasi:

wake_word: "halo pomi"
language: "id"
tts_voice: "indonesia-female"
response_style: "friendly_concise"

custom_commands:
  - trigger: "nyalakan lampu"
    action: "mqtt_publish"
    topic: "home/livingroom/light"
    payload: "ON"
  
  - trigger: "berapa suhu ruangan"
    action: "api_call"
    endpoint: "http://localhost:8080/sensor/temperature"

Bagian custom_commands adalah fitur paling powerful dari Pomi. Kamu bisa menghubungkan voice agent ke smart home, internal API, atau bahkan database lokal tanpa menulis kode Python sama sekali. Setiap trigger di-map ke sebuah action yang dieksekusi setelah LLM memverifikasi intent pengguna. Ini adalah titik di mana Pomi berbeda dari voice assistant konvensional: LLM-nya tidak hanya menjawab, tapi juga bisa mengorkestrasi tindakan.

Langkah 4: Build dan Deploy ke Perangkat Edge

Setelah konfigurasi selesai, build package untuk deployment:

python scripts/build.py --target arm64 --output ./dist/pomi-edge.tar.gz

Transfer file hasil build ke perangkat edge menggunakan SCP atau USB:

scp dist/pomi-edge.tar.gz user@rabbit-r1.local:/home/user/
ssh user@rabbit-r1.local
# di perangkat target
tar -xzf pomi-edge.tar.gz
cd pomi-edge
./install.sh

Script install.sh akan mengatur systemd service agar Pomi berjalan otomatis saat boot. Setelah instalasi selesai, reboot perangkat dan uji dengan mengatakan wake word yang sudah dikonfigurasi. Jika pipeline berjalan dengan benar, kamu akan mendengar suara konfirmasi dan agent siap menerima perintah.

Langkah 5: Debugging dan Optimasi Performa

Voice agent di perangkat edge sering mengalami masalah latency atau akurasi. Berikut beberapa tips debugging yang berguna:

  • Audio input noise: Pastikan mikrofon tidak terlalu dekat dengan speaker untuk menghindari feedback loop. Gunakan noise suppression jika tersedia di hardware.

  • Latency tinggi: Periksa penggunaan CPU dan RAM saat inference berlangsung. Jika LLM memakan terlalu banyak resource, pertimbangkan untuk beralih ke model yang lebih kecil atau gunakan quantization 4-bit.

  • Wake word tidak terdeteksi: Latih wake word model dengan dataset suara-mu sendiri menggunakan script train_wake_word.py agar akurasi meningkat di accent lokal.

Log lengkap tersimpan di /var/log/pomi/pipeline.log. Analisis log ini untuk melihat waktu yang dihabiskan di setiap stage: audio capture, wake word detection, STT, LLM inference, dan TTS. Stage yang paling lambat biasanya adalah LLM inference, yang bisa dioptimasi dengan model swap atau KV-cache tuning.

Kesimpulan

Pomi membuka pintu bagi developer yang ingin membangun voice agent tanpa bergantung pada ekosistem cloud besar. Dengan menjalankan seluruh pipeline secara lokal di perangkat edge, kamu mendapatkan kontrol penuh atas privasi data, latency, dan behavior agent. Tutorial ini hanya menyentuh permukaan: dari sini, kamu bisa mengembangkan integrasi smart home, voice-controlled development tools, atau bahkan assistant untuk industri dengan konektivitas terbatas.

Sumber: Pomi di GitHub