MIF_E31231708/ml
1rHub e0839a7237 Menambahkan project TA 2026-08-06 15:22:07 +07:00
..
.ipynb_checkpoints Menambahkan project TA 2026-08-06 15:22:07 +07:00
.streamlit Menambahkan project TA 2026-08-06 15:22:07 +07:00
data Menambahkan project TA 2026-08-06 15:22:07 +07:00
models Menambahkan project TA 2026-08-06 15:22:07 +07:00
.gitignore Menambahkan project TA 2026-08-06 15:22:07 +07:00
.python-version Menambahkan project TA 2026-08-06 15:22:07 +07:00
README.md Menambahkan project TA 2026-08-06 15:22:07 +07:00
Untitled.ipynb Menambahkan project TA 2026-08-06 15:22:07 +07:00
api_app.py Menambahkan project TA 2026-08-06 15:22:07 +07:00
app.py Menambahkan project TA 2026-08-06 15:22:07 +07:00
audio_utils.py Menambahkan project TA 2026-08-06 15:22:07 +07:00
audio_utils_api.py Menambahkan project TA 2026-08-06 15:22:07 +07:00
database.py Menambahkan project TA 2026-08-06 15:22:07 +07:00
evaluasi_model.txt Menambahkan project TA 2026-08-06 15:22:07 +07:00
features.py Menambahkan project TA 2026-08-06 15:22:07 +07:00
migrate_sqlite_to_mysql.py Menambahkan project TA 2026-08-06 15:22:07 +07:00
predict.py Menambahkan project TA 2026-08-06 15:22:07 +07:00
predict_api.py Menambahkan project TA 2026-08-06 15:22:07 +07:00
requirements.txt Menambahkan project TA 2026-08-06 15:22:07 +07:00
train_model.py Menambahkan project TA 2026-08-06 15:22:07 +07:00

README.md

Project SVM Suara

Project ini mengklasifikasikan tingkat percaya diri dari file audio .wav menggunakan ekstraksi fitur suara dengan librosa dan model SVM.

Folder ml/ sekarang juga menjadi lokasi API prediksi untuk Flutter.

Gunakan Python 3.10 agar dependency audio seperti librosa, numba, dan llvmlite lebih mudah terpasang.

Struktur

project_svm_suara/
├── data/
├── models/
├── features.py
├── audio_utils.py
├── train_model.py
├── predict.py
├── app.py
└── requirements.txt

Format Dataset

Letakkan file .wav di folder data/.

  • Nama file mengandung _pd untuk kelas PD atau Percaya Diri.
  • Nama file mengandung _tpd untuk kelas TPD atau Tidak Percaya Diri.

Contoh:

a_pd.wav
a_tpd.wav

Cara Menjalankan

python3.10 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python train_model.py
python predict.py data/a_pd.wav
streamlit run app.py

Menjalankan API untuk Flutter

cd ml
../cv_app/.venv/bin/python -m uvicorn api_app:app --host 0.0.0.0 --port 8000

Endpoint:

POST /predict
GET /predictions
GET /model

Hasil prediksi disimpan ke MySQL/MariaDB agar bisa dilihat lewat phpMyAdmin:

database: confivoice
table: prediction_results

Jika MySQL memakai port/user/password berbeda, atur environment sebelum menjalankan API:

export CONFIVOICE_DB_DRIVER=mysql
export CONFIVOICE_MYSQL_HOST=127.0.0.1
export CONFIVOICE_MYSQL_PORT=3306
export CONFIVOICE_MYSQL_USER=root
export CONFIVOICE_MYSQL_PASSWORD=
export CONFIVOICE_MYSQL_DATABASE=confivoice

Aplikasi Streamlit menerima upload audio WAV, MP3, M4A, OGG, FLAC, WEBM, dan AAC. File akan disiapkan menjadi WAV mono 22050 Hz sebelum fitur suara diekstraksi.