20 BAB 3
PERANCANGAN SISTEM
3.1
Rancangan Perangkat Keras
Sistem ini hanya menggunakan beberapa perangkat keras yang umum digunakan, seperti mikrofon, speaker (alat pengeras suara), dan seperangkat komputer (CPU). Dalam sistem ini, mikrofon berperan sebagai penerima input berupa sinyal suara yang selanjutnya akan diproses di dalam CPU, sedangkan speaker (alat pengeras suara) digunakan untuk mengeluarkan output berupa sinyal suara hasil pemrosesan. Pada subbab di bawah ini dijelaskan mengenai diagram blok sistem beserta cara kerja sistem.
3.1.1
Diagram Blok Sistem CPU
Speaker
Mikrofon
Program & User Interface Input Sinyal Suara
Output Sinyal Suara
Gambar 3.1 Diagram Blok Sistem
20
21 Fungsi-fungsi dari setiap blok di atas adalah sebagai berikut :
Mikrofon.
Mikrofon berfungsi untuk menerima input sinyal suara dan mengkonversinya menjadi nilai-nilai tegangan (besaran elektrik).
CPU.
CPU berperan untuk memproses data sinyal input dari mikrofon. Program di dalam CPU akan mengolah data-data tersebut guna menghasilkan output, baik berupa output sinyal suara, grafik, maupun decision logic.
Speaker.
Dalam sistem ini, speaker berguna untuk mengeluarkan output sinyal suara hasil pemrosesan. 3.1.2
Cara Kerja Sistem
Awalnya suara pengguna akan direkam menggunakan mikrofon dalam durasi waktu yang telah ditentukan oleh pengguna. Selama proses perekaman, mikrofon secara terus menerus mengkonversi input sinyal suara menjadi nilainilai tegangan. Program dalam CPU akan dapat beroperasi ketika proses perekaman selesai dan data telah diperoleh sepenuhnya. Setelah proses perekaman selesai, maka program akan dapat mengolah data-data input sinyal suara yang masuk. Data-data input tersebut akan diproses oleh program melalui 2 tahap awal, yaitu tahap pemotongan sinyal dan tahap discrete wavelet transform (DWT). Kedua tahap tersebut harus dilalui, baik dalam mode pelatihan (Training Mode) ataupun mode pengenalan (Recognition Mode). Tahap pemotongan sinyal
22 berguna untuk mendapatkan sinyal suara pengguna saja dan membuang bagian sinyal suara yang tidak diperlukan (silent). Dengan begitu akan didapatkan koefisien-koefisien sinyal suara dengan jumlah yang optimal. Dengan demikian proses perhitungan selanjutnya akan menjadi efektif dan efisien karena program tidak perlu memproses data yang tidak diperlukan. Sedangkan tahap DWT akan mengolah koefisien-koefisien sinyal suara hasil pemotongan menjadi sejumlah koefisien wavelet. Seperti yang telah dijelaskan pada bab 2 bahwa tahap DWT melibatkan Low Pass Filter (LPF) dan High Pass Filter (HPF) yang berguna untuk memperoleh Approximation Coefficients (cA) dan detail coefficients (cD). Koefisien-koefisien tersebutlah yang dimaksud dengan koefisien wavelet. Setelah kedua tahap awal tersebut, tahap selanjutnya akan bergantung pada mode program yang digunakan. Jika mode yang digunakan dalam program adalah mode pelatihan, maka koefisien wavelet yang telah diperoleh akan disimpan di dalam database. Sedangkan jika mode yang sedang aktif adalah mode pengenalan, maka program akan menjalankan tahap dynamic time warping (DTW). Tahap DTW berperan untuk menghitung jarak antara koefisien wavelet input yang diperoleh dengan setiap koefisien wavelet yang berada di dalam database. Setelah itu, program akan menghasilkan suatu decision logic berdasarkan hasil tahap DTW tersebut dan metode yang digunakan. Decision logic yang dihasilkan oleh program akan ditampilkan melalui tampilan user interface. Selain output berupa decision logic, program juga akan menghasilkan output berupa grafik dan sinyal suara. Output grafik akan
23 ditampilkan melalui user interface, sedangkan output sinyal suara akan dikeluarkan melalui speaker (alat pengeras suara). 3.2
Tampilan User Interface
Dalam sistem ini, pengguna dapat berinteraksi dengan program melalui sebuah tampilan user interface yang telah dirancang sedemikian rupa guna mempermudah pengguna dalam mengoperasikan sistem ini. Berikut merupakan gambar dari tampilan user interface yang digunakan dalam sistem pengenalan speaker ini :
11
10
1 5 12
2
13 6 3
14
7 4
8
15
17 9
16
Gambar 3.2 Tampilan User Interface dari sistem pengenalan speaker
24 User Interface yang digunakan pada sistem ini memiliki komponenkomponen seperti yang terlihat pada gambar di atas. Fungsi-fungsi dari setiap komponen-komponen tersebut adalah sebagai berikut : 1.
Panel “Add Sound”.
Gambar 3.3 Panel “Add Sound”
Panel ini berisi komponen untuk menentukan prosedur yang akan digunakan oleh pengguna sistem untuk menyediakan data input bagi program. Pengguna dapat menentukan mode pengoperasian sistem yang akan digunakan, apakah mode pengenalan atau mode pelatihan. Dalam panel ini juga terdapat 2 buah tombol, yaitu tombol “Record” yang digunakan apabila pengguna ingin menyediakan data input dengan cara melakukan perekaman (recording), dan tombol “File” jika pengguna ingin menyediakan data input dengan memilih sebuah file suara. 2.
Panel “Status”.
Gambar 3.4 Panel “Status”
25 Panel ini berfungsi untuk menampilkan status dari program. Proses-proses yang dilakukan oleh program dapat diamati melalui layar informasi status yang tersedia. Dalam panel ini terdapat tombol ”Reset Status” yang berguna untuk membersihkan layar informasi status. 3.
Panel “Database”.
Gambar 3.5 Panel “Database”
Panel ini berfungsi untuk memberikan informasi penting kepada pengguna sistem mengenai database yang digunakan oleh sistem ini. Informasi-informasi tersebut adalah jumlah data training (“Amount of data training”), jumlah jenis / kelompok data training (“Kinds of data training”), dan deskripsi dari database (“Database description”). Dalam panel ini terdapat 2 buah tombol, yaitu tombol “Delete training…” yang dapat digunakan pengguna untuk menghapus data training dari database, dan tombol “Refresh” untuk melakukan update informasi database terbaru.
26 4.
Panel “Parameter”.
Gambar 3.6 Panel “Parameter”
Panel ini berisi komponen-komponen yang dapat dipakai oleh pengguna sistem untuk mendefinisikan nilai dari parameter-parameter yang digunakan dalam program. Parameter-parameter tersebut adalah level dekomposisi wavelet (“Decomposition level”), batas ambang pemotongan sinyal (“Cutting margin”), parameter yang digunakan dalam algoritma KNN (“k”), dan jenis filter wavelet (“Wavelet filter”). Seluruh nilai komponen dalam panel “parameter” ini dapat diubah sesuai dengan keinginan pengguna sistem. 5.
Axes “The original WAV sound signal”.
Gambar 3.7 Axes “The original WAV sound signal”
27 Axes ini berfungsi untuk menampilkan data sinyal input asli (koefisien suara) dalam bentuk grafik. Tersedia 3 buah tombol, yaitu tombol “Save” untuk menyimpan data sinyal input ke dalam bentuk file WAV (tombol “Save” hanya aktif pada mode pelatihan), tombol “Play” untuk menampilkan data sinyal input dalam bentuk suara yang akan dikeluarkan melalui speaker (alat pengeras suara), dan tombol “Figr” untuk menampilkan grafik pada jendela (window) tersendiri. 6.
Axes “The signal after cutting”.
Gambar 3.8 Axes “The signal after cutting”
Axes ini berfungsi untuk menampilkan data sinyal input (koefisien suara) hasil pemotongan dalam bentuk grafik. Tersedia 2 buah tombol, yaitu tombol “Play” untuk menampilkan data sinyal input (koefisien suara) hasil pemotongan dalam bentuk suara yang akan dikeluarkan melalui speaker (alat pengeras suara), dan tombol “Figr” untuk menampilkan grafik pada jendela (window) tersendiri.
28 7.
Axes “The signal after waveleting (approximation)”.
Gambar 3.9 Axes “The signal after waveleting (approximation)”
Axes ini berfungsi untuk menampilkan data sinyal input hasil Discrete Wavelet Transform (koefisien wavelet) dalam bentuk grafik. Tersedia 2 buah tombol, yaitu tombol “Play” untuk menampilkan data sinyal input hasil Discrete Wavelet Transform (koefisien wavelet) dalam bentuk suara yang akan dikeluarkan melalui speaker (alat pengeras suara), dan tombol “Figr” untuk menampilkan grafik pada jendela (window) tersendiri. 8.
Axes “The spectrogram of cutted signal”.
Gambar 3.10 Axes “The spectrogram of cutted signal”
Axes ini berfungsi untuk menampilkan bentuk spectrogram dari data sinyal input hasil pemotongan. Tersedia 1 buah tombol, yaitu tombol
29 “Figr” untuk menampilkan spectrogram pada jendela (window) tersendiri. 9.
Tombol “Reset Axes”.
Gambar 3.11 Tombol “Reset Axes”
Tombol ini berguna untuk mengembalikan semua komponen axes menjadi seperti keadaan awal program. 10.
Panel “Listen WAV in database”.
Gambar 3.12 Panel “Listen WAV in database”
Panel ini berisi nama-nama file data training yang tersimpan dalam database. Pengguna sistem dapat mendengarkan file-file suara tersebut dengan cara memilih salah satu nama file suara yang ingin didengar. 11.
Ikon “Speaker Recognition System”.
Gambar 3.13 Ikon “Speaker Recognition System”
Simbol ikon dari program Speaker Recognition System ini.
30 12.
Panel “Result Parameter”.
Gambar 3.14 Panel “Result Parameter”
Panel ini berfungsi untuk menampilkan informasi nilai dari parameter-parameter yang digunakan hingga dihasilkannya hasil / result berupa decision logic yang telah ditampilkan pada bagian panel result (“K-nn Algorithm Result” dan “Average Algorithm Result”). Parameterparameter yang diinformasikan dalam panel ini sama dengan parameterparameter yang ada dalam panel “Parameter”, yaitu “Decomposition level”, “Cutting margin”, “Wavelet filter”, dan “k”. 13.
Panel “K-nn Algorithm Result”.
Gambar 3.15 Panel “K-nn Algorithm Result”
Panel ini berfungsi untuk menampilkan informasi output hasil yang diperoleh dari perhitungan program menggunakan algoritma KNN (k-NN Algorithm). Output hasil yang ditampilkan ialah Speaker (nama orang yang berbicara), Text (kata yang diucapkan pembicara), Surely
31 (persentase keyakinan algoritma KNN), dan k-nearest (deskripsi hasil perhitungan algoritma KNN yang menunjukkan sejumlah k data training yang memiliki nilai jarak terkecil). 14.
Panel “Average Algorithm Result”.
Gambar 3.16 Panel “Average Algorithm Result”
Panel ini berfungsi untuk menampilkan informasi output hasil yang diperoleh dari perhitungan program menggunakan algoritma Ratarata (Average Algorithm). Untuk algoritma Rata-rata, output hasil yang ditampilkan dalam panel ini ialah Speaker (nama orang yang berbicara), Text (kata yang diucapkan pembicara), Average ratio (perbandingan / rasio antara rata-rata jarak terkecil dengan jumlah keseluruhan rata-rata jarak) dan Average distance (jarak rata-rata untuk setiap kelompok data training dalam database). 15.
Panel “Compilation Result”.
Gambar 3.17 Panel “Compilation Result”
32 Panel ini berfungsi untuk menampilkan hasil kompilasi dari output hasil algoritma KNN dengan output hasil dari algoritma Rata-rata. Untuk mendapatkan hasil kompilasi dari kedua algoritma tersebut, program menggunakan logika AND sehingga hasil kompilasi akan menampilkan Speaker (nama orang yang berbicara) dan Text (kata yang diucapkan pembicara) apabila algoritma KNN dan algoritma Rata-rata menghasilkan output hasil yang sama untuk Speaker dan Text. Jika kedua algoritma tersebut menghasilkan output hasil yang berbeda, maka “Compilation Result” akan menginformasikan “Unknown“ kepada pengguna sistem. 16.
Tombol “Reset Result”.
Gambar 3.18 Tombol “Reset Result”
Tombol ini digunakan untuk membuat panel-panel result menjadi seperti keadaan awal program. 17.
Tombol “Exit”.
Gambar 3.19 Tombol “Exit”
Tombol ini digunakan bila pengguna ingin menghentikan pengoperasian program Speaker Recognition System ini.
33 Dengan perancangan user interface yang dilengkapi dengan komponenkomponen seperti yang telah dijelaskan di atas, pengguna dapat dengan mudah melakukan percobaan simulasi menggunakan sistem pengenalan speaker ini. 3.3
Rancangan Peranti Lunak
Kinerja dari sistem ini terpusat pada program (peranti lunak) dalam CPU. Pada sistem ini, program yang digunakan merupakan program yang melakukan fungsi-fungsi perhitungan dan perbandingan terhadap data-data yang diinputkan. Setiap program dalam sistem ini melakukan fungsi dan operasi tertentu. Untuk memudahkan memahami setiap program dalam sistem ini, maka dibuat diagram alir (flowchart) yang merepresentasikan alur kerja setiap program. 3.3.1
Perancangan Program Utama
Gambar 3.20 di bawah ini merupakan gambar diagram alir dari program utama sistem ini secara keseluruhan.
34
Feature Extraction
Pattern Matching
Gambar 3.20 Diagram Alir Program Utama
35 Program diawali dengan melakukan inisialisasi program. Pada tahap inisialisasi program, seluruh nilai-nilai default awal parameter yang dibutuhkan dalam pengoperasian sistem ini akan dideklarasikan, seperti nilai parameter wavelet decomposition level, wavelet filter, cutting margin, dan nilai k. Selain itu, pada tahap inisialisasi, program juga akan melakukan update informasi database, mulai dari jumlah data training, jumlah masing-masing group, hingga file-file suara apa saja yang terdapat dalam database. Selanjutnya program akan menunggu input dari pengguna apakah pengguna akan memilih cara “Record” atau cara “File” guna mendapatkan data sinyal input yang akan diproses oleh program. Sistem ini sangat memudahkan pengguna dalam hal menyediakan data sinyal input yang akan diproses. Pengguna dapat melakukannya dengan 2 cara, yaitu :
Record. Pengguna melakukan perekaman suara (recording) menggunakan mikrofon dengan durasi waktu yang dapat ditentukan oleh pengguna.
File. Pengguna memilih sebuah file suara untuk kemudian diproses oleh program.
Apabila pengguna memilih cara “Record”, maka pengguna harus mengisikan durasi waktu yang dirasa cukup untuk melakukan proses perekaman (recording). Sedangkan jika pengguna memilih untuk menggunakan cara “File”, maka pengguna harus memilih sebuah file suara yang ingin diproses oleh program. Setelah melalui tahap ini, maka program memiliki data sinyal input berupa
36 koefisien suara yang akan dapat digunakan dan diproses pada tahap-tahap selanjutnya. Kemudian data sinyal input berupa koefisien suara yang telah diperoleh harus melalui 2 tahap penting, yaitu tahap pemotongan sinyal dan tahap discrete wavelet transform. Tahap pemotongan sinyal berperan penting dalam melakukan seleksi bagian data sinyal input mana yang perlu diproses dan bagian mana yang tidak. Pada dasarnya tahap pemotongan ini membuang bagian sinyal suara saat pengguna tidak mengeluarkan suara (silent) sehingga ukuran data sinyal inputpun dapat dioptimalkan. Perlu diingat bahwa pengoptimalan ukuran data sinyal input juga memegang peranan penting dalam kinerja sistem, terutama dalam hal kecepatan pemrosesan. Setelah tahap pemotongan sinyal selesai dilakukan, maka data sinyal input tersebut harus melalui tahap discrete wavelet transform. Tahap ini merupakan tahap Feature Extraction dari sebuah sistem speaker recognition, dimana data sinyal input berupa koefisien suara dari tahap pemotongan
sinyal
akan
diekstrak
menjadi
koefisien
wavelet
yang
merepresentasikan karakteristik dari data sinyal input tersebut. Dengan melalui tahap discrete wavelet transform, data sinyal input yang ukurannya telah dioptimalkan pada tahap pemotongan sinyal sebelumnya akan kembali mengalami pengoptimalan ukuran data. Hal ini merupakan salah satu keuntungan menggunakan discrete wavelet transform. Setelah melalui 2 tahap penting tersebut, maka program memiliki 3 buah data sinyal input, yaitu :
Data sinyal input asli (original signal).
37 merupakan data sinyal input yang belum melalui tahap pemotongan sinyal dan tahap discrete wavelet transform. Data sinya input asli dapat disebut sebagai koefisien suara.
Data sinyal input hasil pemotongan (cutted signal). merupakan data sinyal input (koefisien suara) yang telah melalui tahap pemotongan sinyal.
Data sinyal input hasil DWT (waveleted signal). merupakan data input sinyal yang telah melalui tahap pemotongan sinyal dan tahap discrete wavelet transform. Data sinyal input hasil DWT dapat disebut sebagai koefisien wavelet.
Dalam pengoperasiannya, program akan menyimpan sementara ketiga buah data sinyal input tersebut ke dalam memori CPU guna keperluan selanjutnya. Kemudian program akan menampilkan output berupa grafik dan suara melalui user interface yang telah dirancang semudah mungkin bagi pengguna program. Program akan menampilkan 4 buah output grafik yang masing-masing merupakan representasi dari data sinyal input asli (koefisien suara), data sinyal input hasil pemotongan, data sinyal input hasil DWT (koefisien wavelet), dan spectrogram dari data sinyal input hasil pemotongan. Sedangkan untuk output berupa suara akan dikeluarkan oleh program melalui speaker (alat pengeras suara). Suara yang menjadi output dari sistem ini ada 3, yaitu sinyal suara asli, sinyal suara hasil pemotongan, dan sinyal suara hasil DWT. Pengguna dapat mendengarkan masing-masing output suara tersebut dengan menekan tombol yang telah disediakan pada tampilan user interface.
38 Selanjutnya program akan memeriksa mode yang sedang aktif. Dalam sistem ini terdapat 2 mode, yaitu :
Mode pelatihan (training mode). ialah mode dimana pengguna ingin melatih sistem agar dapat mengenali suara pengguna. Hal ini dilakukan dengan melakukan proses perekaman (recording) atau memilih sebuah file suara yang hasilnya akan disimpan di dalam database sebagai data training.
Mode pengenalan (recognition mode). ialah mode dimana pengguna ingin sistem ini melakukan pengenalan terhadap sinyal suara yang diinputkan oleh pengguna, baik dengan cara ”Record” atau ”File”.
Apabila pengguna memilih menggunakan mode pelatihan (training), maka sebuah tombol ”Save” akan aktif. Tombol tersebut berguna untuk menyimpan data sinyal suara input (koefisien suara) ke dalam database. Tentunya penyimpanan data sinyal suara input tersebut dilakukan atas persetujuan pengguna. Setelah data sinyal suara input tersebut berhasil disimpan ke dalam database, maka program akan melakukan update database guna memberikan informasi database terbaru kepada pengguna melalui tampilan user interface. Sedangkan jika pengguna memilih untuk menggunakan mode pengenalan (recognition), maka program akan segera melakukan perhitungan guna mendapatkan data jarak antara data sinyal input hasil DWT (koefisien wavelet input) dengan masing-masing data training (koefisien wavelet training) dalam database. Perhitungan data jarak pada program ini dilakukan dengan
39 menggunakan algoritma dynamic time warping (DTW). Setelah proses perhitungan data jarak selesai, maka program memiliki data jarak sejumlah data training yang berada dalam database. Perlu diingat bahwa data jarak yang diperoleh tersebut menggambarkan seberapa dekat atau seberapa jauh kemiripan antara karakter data sinyal input dengan masing-masing data training. Sejumlah data jarak telah diperoleh oleh program, maka selanjutnya program akan dapat menentukan hasil output berupa decision logic berdasarkan data jarak tersebut. Dalam menentukan decision logic, program menggunakan 2 buah metode, yaitu :
Algoritma k-NN (k-Nearest Neighbor Algorithm). Algoritma ini menentukan decision logic berdasarkan jumlah kemunculan data training terbanyak pada sejumlah k data jarak terkecil. Tentunya setiap data jarak harus terlebih dahulu diasosiasikan dengan data training yang bersangkutan.
Algoritma Rata-rata (Average Algorithm). Algoritma ini menentukan decision logic dengan menghitung nilai rata-rata dari masing-masing data training yang sama (kelompok data training). Lalu akan dipilih data training dengan nilai rata-rata terkecil.
Setelah program menjalankan kedua algoritma tersebut, maka program akan menampilkan output decision logic berupa nama pembicara (Speaker) dan kata yang diucapkannya (Text) melalui tampilan user interface. Program akan menampilkan output decision logic hanya bila mode yang aktif adalah mode pengenalan (recognition).
40 Program ini dapat digunakan terus-menerus, baik dalam mode pelatihan ataupun mode pengenalan, baik cara ”Record” ataupun cara ”File”. Keseluruhan pengoperasian sistem oleh pengguna dilakukan melalui sebuah tampilan user interface beserta komponen-komponen di dalamnya yang telah dirancang sedemikian rupa guna memudahkan pengguna. 3.3.2
Perancangan Program Pendukung
Dalam program utama yang telah dijelaskan pada subbab 3.3.1 terdapat beberapa program-program pendukung yang perlu dijelaskan lebih detail. Program-program pendukung tersebut ialah :
Program Pemotongan Sinyal Suara.
Program Discrete Wavelet Transform (DWT).
Program Dynamic Time Warping (DTW).
Program Algoritma k-Nearest Neighbor (k-NN).
Program Algoritma Rata-rata.
Perancangan program-program pendukung tersebut akan dibahas secara detail pada subbab ini. 3.3.2.1 Perancangan Program Pemotongan Sinyal Suara
Gambar 3.21 di bawah ini menggambarkan diagram alir dari prosedur program pemotongan sinyal suara. Prosedur ini digunakan untuk membuang bagian sinyal suara yang tidak diperlukan (silent) sehingga akan didapatkan data sinyal input dengan ukuran yang optimal.
41
Penyesuaian Batas Kiri
Penyesuaian Batas Kanan
Gambar 3.21 Diagram Alir Program Pemotongan Sinyal Suara
42 Prosedur pemotongan sinyal suara pada sistem ini diawali dengan tahap inisialisasi. Dalam tahap ini program akan menginisialisasi nilai ambang yang akan menjadi referensi pada tahap selanjutnya. Selain nilai ambang, program juga menentukan nilai variabel Batas_kiri = 1 dan Batas_kanan = length (Sinyal). Variabel Batas_kiri diberi nilai 1 menandakan pencarian batas potong kiri dimulai dari awal data sinyal input. Sedangkan variabel Batas_kanan diberi nilai sama dengan panjang sinyal input menandakan bahwa pencarian batas potong kanan dimulai dari akhir data sinyal input. Perlu diingat bahwa variabel Batas_kiri dengan Batas_kanan menunjukkan indeks data sinyal input. Selanjutnya program akan melaksanakan tahap penyesuaian batas kiri. Pada tahap ini program akan memeriksa nilai mutlak dari data yang indeksnya ditunjuk oleh Batas_kiri, apakah nilai tersebut lebih kecil atau sama dengan ambang. Jika nilainya lebih kecil atau sama dengan ambang maka program akan memeriksa apakah nilai variabel Batas_kiri masih lebih kecil dari nilai variabel Batas_kanan. Jika keadaan tersebut terpenuhi juga maka nilai dari variabel Batas_kiri akan ditambah 1 (increment) dan proses akan kembali melaksanakan tahap penyesuaian batas kiri hingga salah satu atau kedua kondisi tersebut tidak terpenuhi. Tahap selanjutnya disebut sebagai tahap penyesuaian batas kanan. Dalam tahap ini program akan memeriksa apakah nilai mutlak dari data yang indeksnya ditunjuk oleh Batas_kanan lebih kecil atau sama dengan nilai ambang. Jika kondisi tersebut terpenuhi, maka program akan memeriksa apakah nilai Batas_kanan masih lebih besar dari nilai batas_kiri. Jika kondisi ini terpenuhi
43 juga, maka nilai Batas_kanan dikurangi 1 (decrement) dan proses akan kembali melaksanakan tahap penyesuaian batas kanan hingga salah satu atau kedua kondisi tidak terpenuhi. Setelah penyesuaian batas kiri dan batas kanan, maka program memiliki nilai variabel Batas_kiri dan Batas_kanan sebagai referensi pemotongan sinyal. Dengan kata lain, program dapat mengetahui bagian sinyal mana yang diperlukan dan bagian sinyal mana yang tidak diperlukan. Kemudian program akan memeriksa apakah nilai variabel Batas_kiri sama dengan nilai variabel Batas_kanan.
Jika
kondisi
tersebut
terpenuhi,
maka
program
dapat
menyimpulkan bahwa tidak ada suara yang terdeteksi (no sound detected). Sedangkan jika nilai variabel Batas_kiri tidak sama dengan nilai variabel Batas_kanan, maka program dapat menyimpulkan ada suara terdeteksi dan program akan mengambil data sinyal input mulai dari indeks data yang ditunjuk oleh Batas_kiri hingga indeks data yang ditunjuk oleh Batas_kanan. Sebagai contoh, program memiliki data sinyal input sebagai berikut :
Data sinyal input : 0,00
0,02
0,06
0,07
0,03
0,10
0,05
0,01
Misalkan, pengguna menginisialisasikan nilai variabel ambang = 0,05, maka hasil pemotongan adalah sebagai berikut :
44 Variabel Batas_kiri akan bernilai : 3 Variabel Batas_kanan akan bernilai : 7 Data sinyal input hasil pemotongan : 0,06
0,07
0,03
0,10
0,05
Program pemotongan sinyal suara ini berperan mengoptimalkan ukuran data sinyal input.
3.3.2.2 Perancangan Program Discrete Wavelet Transform (DWT)
Gambar 3.22 di bawah ini menggambarkan diagram alir dari prosedur program discrete wavelet transform (DWT). Prosedur program DWT ini menjelaskan tahap-tahap bagaimana data sinyal input (koefisien suara) hasil pemotongan ditransformasikan menjadi koefisien wavelet.
45
Tahap Dekomposisi Wavelet level-n
Gambar 3.22 Diagram Alir Program Discrete Wavelet Transform (DWT)
46 Prosedur program discrete wavelet transform (DWT) ini diawali dengan menginisialisasi variabel-variabel yang diperlukan, antara lain :
level_dec. Variabel level_dec menunjukkan jumlah level dekomposisi DWT. Pada sistem ini secara default, level_dec bernilai 3. tetapi sistem ini memungkinkan pengguna untuk mengatur nilai level_dec sesuai dengan keinginan.
w_filter. Variabel w_filter merupakan variabel string yang menunjukkan jenis wavelet filter yang akan digunakan pada proses DWT. Jenis wavelet filter yang dipilih menentukan koefisien-koefisien dari LPF dan HPF yang digunakan.
n Variabel n digunakan sebagai variabel bantuan guna memeriksa apakah proses DWT sudah dilakukan sebanyak nilai level_dec.
cA(n) Variabel cA(n) merupakan variabel untuk menampung approximation coefficient dari proses DWT dengan dekomposisi wavelet level-n. Pada tahap inisialisasi, variabel cA(0) diisi dengan data sinyal input asli.
Variabel-variabel tersebut diperlukan dalam proses DWT. Hasil proses DWT berupa koefisien wavelet dapat berubah-ubah sesuai dengan level dekomposisi dan jenis wavelet filter yang digunakan. Setelah tahap inisialisasi, nilai variabel n ditambah 1 (increment) dan program akan melakukan tahap dekomposisi awal. Pada tahap dekomposisi ini,
47 data sinyal input yang terdapat di dalam variabel cA(0) akan difilter dengan LPF yang koefisien filternya tergantung pada jenis wavelet filter yang dipilih. Setelah melalui tahap pemfilteran, ukuran data sinyal output masih sama dengan ukuran data sinyal input. Guna mengoptimalkan ukuran data sinyal, maka dilakukan tahap down-sampling terhadap data sinyal hasil pemfilteran sebelumnya. Setelah tahap dekomposisi ini selesai, maka program memiliki koefisien wavelet baru dengan ukuran data yang lebih kecil. Kemudian program akan memeriksa nilai variabel n, apakah sama dengan nilai level_dec. Jika kondisi tersebut belum terpenuhi, maka nilai variabel n akan kembali ditambah 1 (increment) dan program kembali melakukan tahap dekomposisi hingga nilai n sama dengan nilai level_dec. Variabel cA(n) merupakan variabel yang menampung koefisien wavelet hasil tahap dekomposisi terakhir. Jadi jika pengguna menentukan level_dec bernilai 5, maka program akan mengambil variabel cA(5) sebagai koefisien wavelet yang akan digunakan pada tahap selanjutnya. 3.3.2.3 Perancangan Program Dynamic Time Warping (DTW)
Gambar 3.23 di bawah ini merupakan diagram alir dari program dynamic time warping (DTW). Sistem ini menggunakan program DTW untuk menghitung jarak antara koefisien wavelet input dengan masing-masing koefisien wavelet data training. Hasil jarak yang didapat menunjukkan seberapa dekat atau seberapa jauh kemiripan antara karakter data sinyal input dengan masing-masing data training.
48
Gambar 3.23 Diagram Alir Program Dynamic Time Warping (DTW)
49 Program dynamic time warping (DTW) diawali dengan melakukan inisialisasi. Pada tahap inisialisasi, program akan mendeklarasikan variabel r untuk menampung koefisien wavelet data training dan variabel t untuk menampung koefisien wavelet data input. Dengan demikian variabel r dan t merupakan variabel yang berbentuk vektor. Setelah tahap inisialisasi, program akan memeriksa apakah vektor r berbentuk vektor kolom, jika tidak maka vektor r akan di-transpose sehingga menjadi berbentuk vektor kolom. Lalu program akan memeriksa apakah vektor t merupakan vektor kolom, jika ya maka vektor t akan di-transpose sehingga vektor t menjadi berbentuk vektor baris. Program akan menyimpan jumlah / panjang data vektor r dalam variabel M dan jumlah / panjang data vektor t dalam variabel N untuk keperluan proses selanjutnya. Setelah memperoleh vektor kolom r dan vektor baris t, maka program akan melakukan replikasi vektor r sebanyak N kali secara horizontal dan replikasi vektor t sebanyak M kali secara vertical. Masing-masing hasil replikasi vektor tersebut akan menghasilkan sebuah matriks yang disimpan dalam variabel r_repmat untuk matriks hasil replikasi vektor r dan variabel t_repmat untuk matriks hasil replikasi vektor t. Untuk mempermudah pemahaman mengenai tahap ini, berikut disertai contoh penerapannya :
Andaikan vektor r = 1 2 1 1
vektor t = 2
1
3
50 maka akan diperoleh M = 4 Æ panjang data vektor r N = 3 Æ panjang data vektor t r_repmat =
1
1
1
2
2
1 1
t_repmat =
2
1
3
2
2
1
3
1
1
2
1
3
1
1
2
1
3
Selanjutnya akan dihitung jarak euclidean antara masing-masing elemen matriks r_repmat dengan matriks t_repmat yang hasilnya akan disimpan dalam variabel d. Formula dari perhitungan ini ialah sebagai berikut :
d = ( r_repmat – t_repmat ) .^2
Berdasarkan contoh sebelumnya, maka diperoleh d=
1
0
4
0
1
1
1
0
4
1
0
4
Kemudian program akan membuat variabel D dengan ukuran sama dengan matriks d. Elemen matriks D(1,1) diisi dengan nilai d(1,1) sehingga
51 D=
1
0
0
0
0
0
0
0
0
0
0
0
Untuk keperluan perhitungan selanjutnya, program perlu mendeklarasikan variabel m = 2 dan variabel n = 2. Setelah itu, program akan melakukan perulangan (looping) perhitungan untuk mengisi kolom pertama matriks D dengan formula seperti berikut :
D(m,1) = d(m,1) + D(m-1,1)
sehingga diperoleh D=
1
0
4
1
0
0
2
0
0
3
0
0
Setelah elemen-elemen kolom pertama matriks D telah terisi, program melakukan perulangan (looping) perhitungan untuk mengisi baris pertama matriks D dengan formula seperti berikut :
D(1,n) = d(1,n) + D(1,n-1)
52 sehingga diperoleh D=
1
1
5
1
0
0
2
0
0
3
0
0
Setelah elemen-elemen baris pertama matriks D telah terisi, program mengembalikan nilai variabel m = 2 dan variabel n = 2 untuk keperluan proses perulangan (looping) selanjutnya. Kemudian program akan melengkapi sisa-sisa elemen matriks D lainnya dengan formula seperti berikut :
D(m,n) = d(m,n) + min[ D(m-1,n), D(m-1,n-1), D(m,n-1) ]
sehingga diperoleh D=
1
1
5
1
2
2
2
1
5
3
1
5
Setelah diperoleh matriks D yang nilai elemen-elemennya telah dihitung, maka program dapat menentukan hasil output berupa jarak yang menunjukkan seberapa dekat atau seberapa jauh kemiripan antara data vektor r dan data vektor t. Program dapat menentukan nilai jarak berdasarkan formula berikut :
53 jarak = D(M,N)
sehingga diperoleh jarak = D (4,3) = 5
Program menghitung jarak dengan menggunakan algoritma dynamic time warping ini secara berulang-ulang sesuai dengan jumlah data training yang ada dalam database sehingga pada akhir proses, akan didapatkan data jarak sejumlah data training. Dengan berdasarkan data jarak yang diperoleh tersebut, maka sistem akan dapat menentukan hasil output akhir berupa decision logic pada tahap proses selanjutnya.
3.3.2.4 Perancangan Program Algoritma k-Nearest Neighbor (k-NN)
Gambar 3.24 di bawah ini menggambarkan diagram alir dari prosedur penggunaan algoritma k-NN. Prosedur penggunaan algoritma k-NN ini bertujuan untuk memperoleh output hasil dengan data jarak sebagai input dari prosedur ini.
54
Gambar 3.24 Diagram Alir Program Algoritma k-Nearest Neighbor (k-NN)
55 Prosedur penggunaan algoritma k-NN ini diawali dengan menginisialisasi jumlah data training dalam database, data jarak yang telah diperoleh dari tahap menghitung jarak dengan algoritma dynamic time warping, dan nilai k yang digunakan (nilai k dipengaruhi oleh jumlah data training). Setelah program melakukan inisisalisasi, data jarak akan diurutkan dari yang terkecil hingga yang terbesar (ascending). Kemudian proses ini diikuti dengan mengasosiasikan masing-masing data jarak dengan indeksnya. Tentu saja indeks yang dimaksud disini adalah indeks dari data jarak yang masih belum terurut. Sebagai contoh program memiliki sejumlah data jarak sebagai berikut :
Data jarak
:
23,125
19,305
27,596
26,382
…
Indeks data jarak
:
1
2
3
4
…
19,305
23,125
24,382
24,596
…
2
1
Data jarak (terurut) : Indeks data jarak
:
17
29
…
Kemudian program akan mengambil sejumlah k indeks dari sejumlah k data jarak terkecil. Misalnya nilai k yang digunakan adalah 3, maka :
3-data jarak terkecil : Indeks data jarak
:
19,305
23,125
24,382
2
1
17
56 Selanjutnya program akan mengasosiasikan masing-masing indeks tersebut dengan data training yang bersangkutan (Speaker dan Text). Misalnya program memiliki tabel asosiasi sebagai berikut : Tabel 3.1 Asosiasi data training dengan indeks data training Indeks Data Training / Data Jarak 1–5 6 – 10 11 – 15 16 – 20 21 – 25 26 – 30
Data Training (Speaker + Text) BIMA + OPEN BIMA + DATA DONNY + OPEN DONNY + DATA RICO + OPEN RICO + DATA
Berdasarkan tabel asosiasi di atas, maka program dapat menyimpulkan sebagai berikut :
Indeks data jarak : Data training
2
: BIMA + OPEN
1
17
BIMA + OPEN
DONNY + DATA
Setelah mendapatkan sejumlah data training berdasarkan indeks data jarak yang diperoleh, maka program akan menghitung jumlah kemunculan masing-masing data training.
Data training
: BIMA + OPEN
Jumlah kemunculan :
2
DONNY + DATA 1
Dari jumlah kemunculan yang diperoleh akan diperiksa apakah hanya ada 1 buah data training dengan jumlah kemunculan terbesar. Jika hanya ada 1 buah data
57 training dengan jumlah kemunculan terbesar, maka hasil yang diperoleh adalah data training dengan jumlah kemunculan besar tersebut. Dengan demikian hasil yang diperoleh akan memuat 2 buah parameter output, yaitu Speaker (orang yang berbicara) dan Text (kata yang diucapkan). Sebagai contoh :
Hasil = BIMA + OPEN Speaker = BIMA Text = OPEN
Tetapi apabila terdapat lebih dari 1 buah data training dengan jumlah kemunculan terbesar, maka nilai k akan dikurangi 1 dan program akan kembali mengambil sejumlah k indeks dari sejumlah k data jarak terkecil serta melakukan perhitungan ulang hingga program memperoleh hanya 1 buah data training dengan jumlah kemunculan terbesar. Data training dengan jumlah kemunculan terbesar itulah yang akan dijadikan output hasil oleh program dan ditampilan melalui tampilan user interface. 3.3.2.5 Perancangan Program Algoritma Rata-Rata
Guna memperoleh hasil berupa decision logic, selain menggunakan algoritma k-NN, program juga menggunakan algoritma Rata-rata. Gambar 3.25 di bawah ini merupakan diagram alir dari prosedur penggunaan algoritma Ratarata. Sama halnya dengan algoritma k-NN, prosedur penggunaan algoritma Ratarata juga bertujuan memperoleh output hasil dengan data jarak sebagai inputnya.
58
Gambar 3.25 Diagram Alir Program Algoritma Rata-Rata
Prosedur penggunaan algoritma Rata-rata guna memperoleh output hasil diawali dengan tahap inisialisasi. Pada tahap ini program akan menginisialisasi data jarak dan jumlah masing-masing data training dalam database serta hasil yang diperoleh dari algoritma k-NN sebelumnya. Selanjutnya perhitungan dilakukan dengan merata-ratakan data jarak untuk masing-masing kelompok data training. Sebagai contoh, program memiliki data jarak sebagai berikut :
Data jarak
:
Indeks data jarak :
15,435 1
12,716 2
17,515 3
25,333 4
25,987 5
18,434 6
59 Program juga memiliki tabel asosiasi sebagai berikut : Tabel 3.2 Asosiasi data training dengan data ratio-nya Indeks Data Training / Data Jarak 1–2 3–4 5–6
Data Training (Speaker + Text) BIMA + OPEN DONNY + OPEN RICO + OPEN
Ratio (min – max) 0,21 – 0,275 0,155 – 0,3 0,25 – 0,287
Berdasarkan tabel asosiasi di atas, maka program dapat menyimpulkan :
Data jarak
:
15,435
Indeks data jarak : Data training
:
12,716
1
2
2
25,333
3
BIMA + OPEN
Jumlah data training :
17,515
25,987
4
5
DONNY + OPEN 2
18,434 6
RICO + OPEN 2
Berdasarkan data-data tersebut, program dapat memperoleh nilai rata-rata dari masing-masing data training.
Data training
: BIMA + OPEN
Nilai rata-rata : (15,435+12,716)/2 Nilai rata-rata :
14,076
DONNY + OPEN
RICO + OPEN
(17,515+25,333)/2
(25,987+18,434)/2
21,424
22,211
Setelah diperoleh nilai rata-rata untuk setiap kelompok data training, maka program akan menentukan output hasil yang diperoleh adalah data training dengan nilai rata-rata kelompok terkecil. Hasil yang diperoleh tersebut memuat 2
60 buah parameter output, yaitu Speaker (orang yang berbicara) dan Text (kata yang diucapkan). Sebagai contoh :
Hasil = BIMA + OPEN Speaker = BIMA Text = OPEN
Kemudian program akan memeriksa apakah hasil yang diperoleh dengan algoritma Rata-rata ini sama dengan hasil yang diperoleh dari algoritma k-NN sebelumnya. Jika hasilnya berbeda, maka program langsung menetapkan identitas Speaker = Unknown dan Text = Unknown. Tapi jika hasil dari kedua algoritma tersebut ternyata sama, maka program akan melakukan perhitungan average ratio. Average ratio merupakan nilai perbandingan antara nilai rata-rata terkecil dengan jumlah seluruh nilai rata-rata. Dengan adanya average ratio, sistem dapat lebih selektif menampilkan output decision logic, dengan kata lain juga mengurangi kemungkinan kesalahan pengenalan.
Nilai rata-rata :
14,076
Nilai terkecil
14,076
:
21,424
Jumlah rata-rata :
57,711
Average ratio
14,076 / 57,711 = 0,243905
:
22,211
61 Selanjutnya program akan memeriksa apakah dengan nilai average ratio yang diperoleh, hasil boleh ditampilkan. Program akan memeriksa apakah nilai average ratio yang diperoleh tersebut berada diantara nilai ratio min dan ratio max yang diizinkan atau tidak. Jika ternyata nilai average ratio yang diperoleh di luar batas ratio, maka program langsung menetapkan identitas Speaker = Unknown dan Text = Unknown. Tapi jika ternyata nilai average ratio yang diperoleh berada dalam batas ratio, maka program akan menampilkan hasil identitas yang diperoleh sebagai Speaker dan Text melalui user interface.
Average ratio
:
0,243905
Batas ratio untuk BIMA + OPEN
:
0,21 – 0,275
Karena average ratio yang diperoleh masih berada di dalam batas ratio yang diizinkan, maka : Speaker
:
BIMA
Text
:
OPEN