89 lines
1.7 KiB
Markdown
89 lines
1.7 KiB
Markdown
# 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
|
|
}
|
|
}
|
|
```
|