Joannita Putri Maharani
Proyek ini bertujuan untuk mengembangkan dan menerapkan model NLP berbasis spektogram yang mampu mengenali dan memproses pola suara. Dengan memanfaatkan data spektogram sebagai input utama, sistem ini dapat mengenali kata, emosi, atau informasi penting lain yang terdapat dalam sinyal suara. Implementasi dilakukan di sisi backend dengan memanfaatkan teknik inferensi model, sehingga dapat berfungsi secara efisien pada aplikasi yang membutuhkan respons cepat dan real-time.
Model Natural Language Processing (NLP) berbasis spektrum suara, seperti spektogram, biasanya diterapkan pada sistem backend dengan memanfaatkan teknik inferensi untuk melakukan prediksi atau klasifikasi terhadap data suara yang diinputkan. Spektogram adalah representasi visual dari frekuensi suara dalam domain waktu. Hasilnya adalah sebuah gambar 2D yang menunjukkan intensitas frekuensi suara dalam rentang waktu tertentu.
Menghubungkan Google Drive ke Google Colab
Dengan perintah ini, Google Drive akan muncul sebagai direktori pada Colab, memungkinkan untuk mengakses, membaca, dan menulis file di dalamnya.
Mengimport Library
Kode di atas mengimpor berbagai pustaka dan modul yang diperlukan untuk memproses data, membangun model, dan mengevaluasi performanya dalam proyek berbasis visi komputer atau pengenalan pola. Berikut adalah penjelasan tiap bagian dari kode:
Memproses Dataset Gambar Spektogram
Kode ini melakukan pengambilan gambar dari folder dataset spektogram, mengubah ukuran gambar menjadi 70x70 piksel, dan menyimpan data gambar beserta labelnya ke dalam array NumPy. Data ini kemudian siap digunakan untuk pelatihan model, yang membutuhkan input berupa gambar.
Menghitung Jumlah Array X
Menghitung dan mengembalikan jumlah elemen dalam list atau array X. X adalah list yang berisi gambar-gambar spektogram yang telah diproses dan diubah ukurannya menjadi array NumPy.
Menampilkan Salah Satu Gambar
Kode ini bertujuan untuk memverifikasi bahwa gambar yang dimuat dari dataset telah diproses dengan benar.
Pre-Processing
Tujuan dari Preprocessing
Arsitektur Model
Kode ini mendefinisikan arsitektur CNN yang sederhana namun efektif untuk pengenalan pola dalam gambar, khususnya untuk tugas klasifikasi. Model ini siap untuk dilatih dengan data yang telah diproses sebelumnya.
Kompile Model
Kode ini menyusun model CNN untuk pelatihan dengan mengatur parameter penting seperti jumlah epoch, laju pembelajaran, dan memilih fungsi kehilangan yang sesuai. Dengan menggunakan optimizer SGD, model akan dilatih untuk mengenali pola dalam gambar spektogram dan mengklasifikasikannya ke dalam salah satu dari tiga kelas yang telah ditentukan. Ringkasan model yang ditampilkan memberikan gambaran yang jelas tentang arsitektur model dan parameter yang digunakan.
Training
Kode ini menyelesaikan proses pelatihan model CNN dengan menggunakan data pelatihan dan memvalidasinya dengan data pengujian. Setelah pelatihan selesai, model dievaluasi, dan akurasinya dicetak untuk memberikan gambaran tentang seberapa baik model dalam mengklasifikasikan gambar spektogram ke dalam tiga kelas yang telah ditentukan.
Prediksi
Untuk menerapkan model yang telah dilatih pada data pengujian, menghasilkan prediksi, dan menyiapkan langkah-langkah untuk menganalisis dan mengevaluasi kinerja model tersebut.
Iterasi X_test
Bertujuan untuk mengonversi hasil prediksi probabilitas dan label asli dari format probabilitas kategorikal menjadi format yang lebih sederhana dan mudah dipahami yaitu indeks kelas.
Klasifikasi
Bertujuan untuk memberikan analisis mendalam tentang kinerja model klasifikasi dengan cara yang terstruktur.
Menyimpan Model
Digunakan untuk menyimpan model yang telah dilatih ke dalam file dengan format HDF5 (.h5).
Aplikasi Flask yang digunakan untuk melakukan inferensi model deep learning pada gambar. Model deep learning yang digunakan adalah model klasifikasi gambar yang dimuat dari file model.h5. Aplikasi ini menyediakan endpoint /predict yang menerima file gambar melalui metode POST. Setelah menerima gambar, aplikasi melakukan preprocessing dengan mengubah gambar ke mode RGB, mengatur ukurannya menjadi 70x70 pixel (sesuai dengan input model), dan melakukan normalisasi. Setelah itu, gambar yang telah diproses diberikan ke model untuk menghasilkan prediksi. Respons yang dihasilkan mengandung kelas hasil prediksi (predicted_class) dan tingkat kepercayaan (confidence). Aplikasi ini berjalan di port 6000 dengan pengaturan debug aktif.