METODE PENELITIAN
38
dan toolset lainnya. Sedangkan laptop/PC yang digunakan yaitu laptop Lenovo
U430P dengan spesifikasi processor Intel(R) Core(TM) i5-4200U CPU @ 1.60GHz
2.30 GHz dengan RAM 8 GB serta NVIDIA GeForce GT 730M.
39
3.2 Proses Perekaman Suara
Proses pertama yang dilakukan dalam penelitian ini adalah melakukan
perekaman suara pada subjek yang telah ditentukan. Hal ini bertujuan untuk
menghasilkan rekaman suara yang sesuai dengan keinginan, adapun alat dan bahan
yang digunakan dalam proses perekaman diantaranya microphone, PC/Laptop,
aplikasi Sound Recorder Pro dan Android. Adapun perintah yang direkam adalah
perintah maju, mundur, kanan, kiri, stop. Sebelum dilakukan proses perekaman
suara, terlebih dahulu banyak subjek, variabel-variabel yang akan direkam. Untuk
lebih mudahnya dalam memahami proses ini, metode persiapan perekaman yang
dilakukan dapat dilihat pada tabel 3.1 berikut.
Tabel 3.1 Parameter Perekaman Suara
No Variabel Keterangan
1 Jenis Data Suara (Maju, Mundur, Kiri, Kanan, Stop)
2 Jumlah Subjek 3 Orang
3 Jumlah Sampel 1000 / Kata
4 Lama Perekaman Disesuaikan
5 Ruang Perekaman Tertutup dan Terbuka
Dari tabel diatas, jenis data yang kita rekam berupa suara dengan 5 perintah
berbeda. Perekaman dilakukan pada 3 subjek yang berbeda pada ruang tertutup dan
hingga ruang terbuka. Karena ada 3 subjek, maka tiap subjek merekam suara
sebanyak maka setiap subjek memiliki 5.000 data. Setiap perintah suara sebanyak
1.000 data. Untuk memperjelas proses perekaman suara yang dilakukan, gambar
3.3 berikut adalah gambaran secara singkat dari proses perekaman yang peneliti
lakukan.
40
Gambar 3.3 Jumlah data perekaman pada tiap subjek
41
Gambar 3.4 Tampilan setting pada aplikasi sound recorder pro
Yang perlu kita ketahui adalah dalam proses ini, merupakan tahap awal untuk
melakukan perekaman suara, dimana peralatan dan aplikasi seperti mikrofon,
aplikasi sound recorder pro dan android, merupakan satu kesatuan dalam proses
perekaman suara. Setelah semua perangkat di setting dan dipersiapkan, maka proses
perekaman suara siap dilakukan. Adapun suara yang direkam yaitu, maju, mundur,
kiri, kanan dan stop, dimana masing-masing perintah suara tersebut dilakukan
perekaman sebanyak 1.000 kali, dengan waktu per suara berkisar antara 1 – 2 detik.
Namun untuk mempermudah mengakses hasil suara yang direkam dan juga agar
hasil rekaman tidak terlalu banyak dan menumpuk pada aplikasi Sound Recorder
Pro, alangkah baiknya pada saat 1 perintah suara selesai, disimpan di folder pada
PC/Laptop. Gambar 3.5 berikut adalah proses perekaman dan hasil suara
menggunakan aplikasi Sound Recorder Pro. Proses perekaman suara dilakukan
pada subjek yang berbeda dengan intonasi berbeda, ini bertujuan untuk
mendapatkan jumlah sampel dan variasi yang suara yang berbeda, sehingga proses
pengenalan suara menggunakan CNN-LSTM diharapkan lebih akurat dengan
banyaknya sampel yang direkam.
42
Gambar 3.5 Proses dan hasil perekaman suara
Kalau kita lihat, nama file data diatas hanya berbentuk angka, sehingga kita
tidak mengetahui perintah apa, untuk mempermudah pengenalannya, kita bisa
merubah nama pada data tersebut, misal seperti kanan, kiri, maju, mundur ataupun
stop menggunakan aplikasi Bulk Rename Utility. Setelah nama dirubah, langkah
berikutnya adalah proses untuk mendapatkan ukuran data yang sama, yang disebut
sebagai proses awal pengolahan data (pre-proses) sebelum nantinya dijadikan data
siap pakai.
43
Gambar 3.6 Ilustrasi trim dan padding suara
44
Gambar 3.7 Plot gelombang perintah kanan, kiri, maju, mundur, stop
Yang perlu kita perhatikan adalah data kita dalam format WAV, dimana variabel
ini merupakan vektor dan amplitudo pada satuan waktu. Untuk mempresentasikan
kata dalam bentuk vektor atau matriks disebut embedding seperti diilustrasikan
pada gambar 3.8. Dengan metode ini, kata-kata yang dirubah dalam bentuk matriks
/ vektor akan berisikan angka-angka dengan ukuran yang sangat kecil sehingga
informasi yang terkandung lebih banyak.
Langkah selanjutnya adalah penambahan noise pada data serta merubah data
kedalam bentuk pickle.
3.5.1 Menambahkan Noise (SNR)
Langkah-langkah dalam menambahkan noise yaitu kita import library yang di
butuhkan, pada hal ini peneliti menggunakan jupyter notebook. Selanjutnya file
45
yang akan di tambahkan noise di ambil/ dibaca dengan membuat program
filepath_list = glob.glob('dataori/*/*', recursive=True). Kemudian kita tinggal
memasukkan tingkat SNR yang di inginkan, pada penelitian ini yaitu 0 dB, 10 dB,
20 dB, dan 30 dB. Selanjutnya kita buat folder baru untuk menyimpan hasil
penambahan noise. Untuk lebih lengkapnya, program tersedia pada lampiran.
Berikut adalah plot perubahan data suara sebelum dan sesudah di tambahkan noise.
46
3.6 Feature Extraction
Setelah praproses dilakukan, langkah selanjutnya adalah ekstraksi sinyal suara
untuk mendapatkan fitur dari suara tersebut menggunakan MFCC. Adapun tahapan
dalam MFCC terdiri dari 5 tahapan yaitu Frame Blocking, Windowing, FFT, Mel
Frequency Wrapping dan Cepstrum. Sample rate pada sinyal suara yaitu 16 KHz
dengan panjang gelombang 1 detik. Proses MFCC ini akan mengonversi sinyal
suara menjadi beberapa vektor yang nantinya berguna dalam proses pengenalan.
Vektor fitur yang diperoleh dari proses MFCC kemudian dibandingkan dengan
vektor fitur yang disimpan dalam dataset. Gambar 3.11 dibawah merupakan sinyal
suara yang sudah di ekstraksi fitur menggunakan MFCC.
47
Gambar 3.12 Arsitektur CNN-LSTM yang dibangun
Arsitektur CNN-LSTM yang diusulkan pada penelitian ini, terdiri dari input, 3 layer
konvolusi, 3-layer pooling, dropout, activation, layer LSTM dan parameter
lainnya. Arsitektur tersebut diperoleh setelah melakukan banyak percobaan. Model
CNN-LSTM dibuat menggunakan bahasa pemrograman python dengan Keras.
Metode yang diajukan merupakan kombinasi antara CNN dan LSTM. Dimana tiap
metode ada arsitektur dan parameter sendiri. Berikut adalah penjelasan dari CNN-
LSTM yang dibangun.
48
dinamis. Ada beberapa variabel pengujian yang dilakukan untuk mendapatkan
tingkat akurasi tinggi, sehingga kursi roda elektrik yang sudah terintegrasi dengan
sistem dapat bergerak sesuai dengan perintah yang di ucapkan oleh pengguna.
Berikut variabel dalam pengujian:
3.8.1 Tingkat Akurasi
Pengujian yang dilakukan adalah tingkat akurasi dari classifier CNN-LSTM.
Tingkat akurasi diukur dalam satuan persen (%) dimana untuk dapat mengetahui
besar hasil klasifikasi dari CNN-LSTM dapat diperoleh pada saat telah melakukan
proses training ataupun pada saat testing. Pada tahap pengujian ini, peneliti akan
membandingkan hasil pengklasifikasian dari beberapa subjek dengan tingkat noise
berbeda untuk mengetahui tingkat akurasi menggunakan metode CNN-LSTM.
3.8.2 Kecepatan Training Data
Kecepatan dalam proses data memang salah satu tujuan yang akan dicapai,
pada tahap ini peneliti akan menguji kecepatan pada proses pengolahan data suara
saat melakukan training pada classifier yang diterapkan. Data suara dengan
berbagai tingkat noise yang berbeda dengan jumlah yang sama pada subjek akan di
uji yang kemudian akan di bandingkan waktu proses training data sampai diperoleh
nilai error yang sangat kecil.
3.8.3 Ketepatan Input/output
Cepat dalam proses training, tidak menjadi acuan untuk menghasilkan
ketepatan output yang diinginkan. Ini bisa terjadi dikarenakan data yang ada terlalu
sedikit atau faktor lainnya sehingga menghasilkan tingkat akurasi yang rendah.
Ketepatan yang dimaksud adalah kesesuaian antara input dan output, terkadang
masih terjadi perbedaan antara keduanya, sehingga butuh proses yang lebih lagi
seperti dengan adanya penambahan data. Untuk mempermudah dalam memahami
proses training dan testing, dapat dilihat pada gambar 3.13 berikut.
49
Gambar 3.13 Proses training data suara
Pada gambar diatas, pada setiap subjek dilakukan training dan testing dengan
tingkat kebisingan/SNR masing-masing, hal ini bertujuan untuk mengetahui tingkat
akurasi tiap subjek, setelah semua dilakukan training dan testing, maka data
tersebut dikelompokkan menjadi satu dengan mengambil beberapa sampel pada
masing-masing tingkatan noise. Data inilah yang nantinya akan digunakan untuk
melakukan pengujian secara real/online, tetapi perlu beberapa kali pengujian untuk
mendapatkan tingkat akurasi yang baik.
50
dijadikan satu dalam sebuah folder. Kita akan menggunakan data ini untuk
menyintesis kumpulan data yang akan melatih model. Data yang direkam berdurasi
1-2 detik, kecuali data background dengan durasi 10 detik di lingkungan yang
berbeda. Sample rate/ frekuensi sampling audio yang digunakan yaitu 44100 Hz,
yang berarti microphone akan memberikan 44.100 angka per detik.
Setelah membuat dataset, langkah selanjutnya membangun model untuk
trigger word detection menggunakan GRU (Gated Recurrent Unit) Model yang
digunakan yaitu 1D convolutional layers, GRU layer dan dense layers. Berikut
adalah arsitektur GRU yang akan dibangun.
Salah satu kunci dari proses ini yaitu menggunakan 1D convolutional layer dengan
input spectrogram 5511 dan output 1375 yang kemudian di proses dengan beberapa
layer untuk mendapatkan keluaran akhir 1375. Layer ini memiliki peranan penting
yang mirip dengan 2D convolutional layer, yaitu dengan mengekstrak fitur tingkat
51
rendah dan memungkinkan menghasilkan output dengan dimensi yang lebih kecil.
Secara komputasi, lapisan 1D sangat membantu mempercepat model karena model
GRU sekarang memproses 1375 dari 5511. Dua lapisan GRU membaca urutan
input dari kiri ke kanan, kemudian menggunakan lapisan dense dan aktivasi
sigmoid untuk membuat prediksi. Karena hasil bernilai biner (0 dan 1), kami
menggunakan output menggunakan aktivasi sigmoid pada lapisan terakhir untuk
memprediksi kemungkinan output menjadi 1, sesuai dengan kata aktivasi yang di
ucapkan oleh pengguna yaitu ‘M’. Trigger word ini menggunakan uni-directional
RNN daripada menggunakan bi-directional RNN. Hal ini sangat penting untuk
deteksi kata kunci, karena kita menginginkan kata kunci dapat dideteksi segera
setelah mengucapkan kata kunci tersebut. Bila menggunakan bi-directional RNN
maka kita harus menunggu selama 10 detik audio direkam setelah mengucapkan
kata kunci pada detik pertama.
Pada gambar 3.14 diatas, arsitektur yang dibangun terdiri dari beberapa
tahapan, tahap 1 yaitu convolutional layer menggunakan convolutional 1D dengan
128 filter. Dengan ukuran filter/kernel size = 15 dan stride = 4. Tahap 2 yaitu
lapisan GRU layer pertama dengan jumlah hidden unit 128. Atur
return_sequences=True, untuk memastikan bahwa semua status tersembunyi GRU
diumpankan ke lapisan berikutnya, dan juga ditambah dengan dropout = 0.2 dan
Batch Normalization. Tahap 3 yaitu lapisan ke 2 GRU dengan parameter sama
seperti GRU pada tahap 2. Tahap 4 yaitu membuat lapisan time-distributed dense
layer dengan menggunakan fungsi aktivasi sigmoid. Pada dense layer
menggunakan fungsi aktivasi sigmoid agar parameter yang digunakan pada dense
layer selalu sama pada setiap proses.
52
testing memiliki kecepatan belajar yang lebih baik dibandingkan dengan online
testing. Pada penelitian ini, pengujian online dilakukan untuk membuktikan tingkat
akurasi yang sudah di capai pada saat offline testing. Pengujian online ini akan
dibagi menjadi dua tapa. Tahap pertama yaitu melakukan pengujian langsung
terhadap model yang sudah dibangun dengan melibatkan 5 responden. Selanjutnya
yaitu pengujian realtime pada kursi roda untuk mengetahui seberapa akurasi sistem
yang dibangun. Pada pengujian online menggunakan 2 skenario yaitu
menggunakan tombol dan menggunakan kata aktivasi (trigger word).
53
Gambar 3.15 Flowchart kerja sistem kursi roda
54