# ConfiVoice Mobile Flutter Android client untuk aplikasi ConfiVoice. Mobile app ini tidak menyimpan dataset atau model. Audio dipilih dari perangkat Android, lalu dikirim ke API prediksi. API tetap bertugas membaca model dari: ```text ../ml/models/svm_voice_confidence_model.joblib ``` Audio bisa berasal dari file yang dipilih dari perangkat atau dari fitur rekam suara langsung di halaman `Prediksi`. Rekaman disimpan sementara sebagai WAV mono 22050 Hz di storage aplikasi. ## Menjalankan di Emulator Jalankan API dari folder `cv_app`: ```bash cd ml uvicorn api_app:app --host 0.0.0.0 --port 8000 ``` Lalu jalankan mobile app: ```bash cd cv_app/mobile_app flutter pub get flutter run ``` Default endpoint di aplikasi: ```text http://10.0.2.2:8000/predict ``` `10.0.2.2` adalah alamat khusus emulator Android untuk mengakses `localhost` komputer. Alamat ini tidak bisa dipakai dari HP fisik. Saat prediksi, isi `Nama siswa/i` di halaman `Prediksi`. Nama dan hasil analisis akan disimpan oleh API ke database SQLite: ```text cv_web/data/confivoice.db ``` Admin dapat melihat hasil dari browser: ```text http://localhost:8001/admin ``` ## Menjalankan di HP Fisik Ganti endpoint pada menu `Model` menjadi alamat IP komputer yang menjalankan API, misalnya: ```text http://192.168.1.6:8000/predict ``` Pastikan HP dan komputer berada di jaringan yang sama. ## Build APK ```bash cd cv_app/mobile_app flutter build apk --release ``` Output APK biasanya berada di: ```text build/app/outputs/flutter-apk/app-release.apk ``` ## Format Response API Aplikasi mengharapkan JSON: ```json { "label": "PD", "description": "Percaya Diri", "confidence": 0.76, "probabilities": { "PD": 0.76, "TPD": 0.24 } } ```