Human Voice Recognition by Using Hebb Artificial Neural Network Method
on
Human Voice Recognition by Using Hebb Artificial Neural Network Method
(Krisnawan, dkk)
Pengenalan Suara Manusia dengan Menggunakan Metode Jaringan Syaraf Tiruan Hebb
Human Voice Recognition by Using Hebb Artificial Neural Network Method
I Komang Krisnawan Gapar1, I Gusti Agung Widagda2, Komang Ngurah Suarbawa3
1, 2, 3Department of Physics, Faculty of Mathematics and Natural Sciences, Udayana University, Kampus Bukit Jimbaran, Badung, Bali, Indonesia 80361
1komanggapar@gmail.com; 2widagda@unud.ac.id; 3suarbawa@unud.ac.id
Abstrak – Telah dibuat sebuah program untuk mengenali suara manusia menggunakan metode jaringan syaraf tiruan (JST). Metode JST yang digunakan adalah JST Hebb. JST Hebb dipilih karena merupakan JST yang paling sederhana sehingga proses pelatihan dan pengujiannya lebih cepat dibandingkan metode yang lain. Perancangan program dimulai dari perancangan arsitektur JST Hebb dan perancangan GUI (Graphical User Interface) menggunakan Matlab R2009a. Perancangan arsitektur JST Hebb terdiri dari 4500 masukan dan 3 keluaran. Perancangan GUI program terbagi menjadi tiga bagian utama, yaitu panel rekam untuk merekam suara sampel, panel pelatihan untuk menentukan nilai bobot dan bias hasil pelatihan sesuai algoritma pelatihan JST Hebb, dan panel pengujian untuk menguji suara uji sesuai algoritma pengujian JST Hebb. Setelah perancangan program, dilanjutkan dengan pengujian program. Pengujian program dimulai dengan perekaman suara sampel dari 8 orang yang berbeda menggunakan panel rekam. Masing-masing orang diambil 1 sampel suara untuk data pelatihan, kemudian dilanjutkan dengan proses pelatihan JST Hebb menggunakan panel pelatihan, nilai bobot dan bias ditampilkan pada panel pelatihan. Setelah nilai bobot dan bias didapat, dilanjutkan dengan proses pengujian JST Hebb menggunakan 16 data suara uji yang tersusun atas 8 data suara yang sama dengan data pelatihan dan 8 data suara yang berisikan noise. Dari proses pengujian program diperoleh hasil sebesar 100% untuk tingkat pengenalan data suara yang sama dengan data pelatihan dan untuk data suara yang berisikan noise tingkat pengenalannya sebesar 87,5%.
Kata kunci: jaringan syaraf tiruan, pengenal suara manusia, Hebb, GUI Matlab, noise
Abstract – It has been created a program to recognize human voice by using artificial neural network (ANN). The ANN method used is Hebb. Hebb was chosen because it is the simplest ANN so the training and testing process is faster than other methods. Designing the program is started by designing Hebb’s architecture and design of GUI (Graphical User Interface) using Matlab R2009a. The design of Hebb's architecture consists of 4500 inputs and 3 outputs. The GUI design of the program consists of three main sections: recording panels to record sample sounds, training panels to determine the weighted value and bias of the training results according to the Hebb training algorithm, and the testing panel to test the test sounds according to the Hebb testing algorithm. After program design, proceed with the testing of the program. Testing of the program starts with the sound recording of samples from 8 different people using the record panel. Each person has 1 voice sample for training data. Then proceed with the Hebb training process using the training panel, weight and bias value displayed on the training panel. After the weight and bias values are obtained, proceed with the Hebb testing process using 16 test sound data consisting of 8 sound data equal to training data and 8 noise data. From the testing program process obtained a result of 100% for the level of recognition of the same voice data with training data and for noise data has a recognition rate of 87.5%.
Key words: artificial neural network, human voice recognition, Hebb, GUI Matlab, noise
Suara merupakan salah satu cara manusia untuk berkomunikasi. Selain itu, suara juga dapat digunakan untuk mengenali sang pemilik suara melalui proses pengenalan suara. Proses pengenalan suara ini kemudian dijadikan sebagai acuan untuk membuat suatu rancang bangun program atau aplikasi yang mampu mengenali suara manusia dengan menggunakan teknik Jaringan Syaraf Tiruan (JST) dan ekstraksi ciri [1]. Secara umum, eksperimen tentang pengenalan suara yang pernah
dilakukan sebelumnya menggunakan ekstraksi ciri melalui transformasi data suara dari data analog menjadi data digital yang diambil cirinya berdasarkan metode yang digunakan. Proses ekstraksi ciri ini membutuhkan waktu yang panjang dan prosesnya rumit, serta sebaran data yang didapat berupa data acak sehingga metode JST yang digunakan tidak sederhana. Selain itu, pada proses pembelajarannya memerlukan waktu komputasi yang lama dan arsitektur jaringan yang rumit untuk mendapatkan hasil eksperimen yang baik. Kendala-
kendala dalam eksperimen sebelumnya dapat diatasi dengan menggunakan ekstraksi ciri melalui transformasi rekaman suara menjadi citra dua dimensi dan untuk proses pembelajaran sistem dengan menggunakan metode JST Hebb.
Hebb merupakan metode JST yang paling sederhana dibandingkan dengan metode yang lain sehingga proses pembelajarannya lebih cepat dan sederhana. Pada eksperimen ini akan diteliti unjuk kerja JST Hebb dalam mengenali suara manusia, baik suara yang tanpa noise maupun suara dengan noise.
Identifikasi pengenalan suara akan lebih mudah diteliti jika menggunakan Graphical User Interface (GUI) karena ekstraksi ciri yang digunakan berupa citra. GUI identifikasi pengenalan suara dibuat dengan menggunakan program aplikasi Matlab [2].
Metode untuk mengenal/mengidentifikasi suara agar dapat dipergunakan dalam berbagai aplikasi disebut dengan istilah pengenalan suara. Pengenalan suara dapat dibagi menjadi dua tahapan. Kedua tahapan tersebut adalah tahap pembelajaran pola dan tahap pengenalan suara lewat perbandingan pola [3].
JST merupakan suatu sistem pengolahan informasi dengan sifat tertentu yang memiliki cara kerja yang mirip dengan jaringan syaraf biologis. JST dikenal pula sebagai salah satu wujud otak manusia buatan yang selalu berusaha untuk memperagakan proses belajar dalam otak manusia itu sendiri [4].
Sebagaimana pada otak manusia, JST juga terbentuk atas banyak neuron. Secara garis besar, neuron dibagi tiga yaitu dendrites, cell body, dan axon. Dendrites adalah bagian syaraf yang berfungsi sebagai tempat masuknya sinyal (unit masukan), cell body bertugas sebagai pemroses sinyal yang masuk, sedangkan axon berfungsi sebagai unit keluaran dari hasil pemrosesan sinyal oleh cell body. Kaitan antara neuron yang satu dengan neuron lainnya dihubungkan melalui sinapsis [5].
Jaringan neuron akan meneruskan segala informasi yang telah diterima lewat sinapsis ke jaringan neuron lainnya. Pada JST, hubungan tersebut disebut dengan istilah bobot. Informasi yang masuk kemudian disimpan dalam bobot dengan nilai tertentu. Struktur neuron dalam JST ditunjukkan oleh Gambar 1.
Gambar 1. Struktur neuron JST.
Hebb merupakan suatu teknik pembelajaran pelatihan terawasi yang paling sederhana dan sangat berguna dalam menangani permasalahan terutama pengenalan pola-pola rumit. Jaringan Hebb menggunakan arsitektur lapisan tunggal yang terdiri atas satu lapisan masukan dan satu lapisan keluaran.
Pada jaringan Hebb, semua unit yang berada di lapisan masukan terangkai pada semua unit yang terdapat pada lapisan keluaran dengan suatu bobot keterhubungan (w), tetapi neuron-neuron pada lapisan yang sama tidak saling berhubungan. Saat jaringan dikenalkan pada pola masukan sebagai pola pelatihan jaringan, pola tersebut kemudian diteruskan ke unit-unit pada lapisan keluaran. Selanjutnya, semua unit lapisan keluaran akan menanggapinya sebagai keluaran JST. Ketika hasil keluaran tidak seperti yang diinginkan, maka dilakukan perubahan bobot pada tahap pelatihan.
Untuk jaringan dengan satu keluaran, nilai bobot yang baru (wi (baru)) didapat dari penambahan nilai bobot yang lama (wi (lama)) dengan nilai perubahan bobot (Δwi), atau dapat dituliskan sebagai:
sedangkan nilai perubahan bobot didapat dari
dengan xi adalah nilai masukan ke-i dan y adalah nilai keluaran. Perubahan bias (∆b) adalah
Jika proses pelatihan telah selesai, proses kemudian dilanjutkan ke fase pengujian [6].
Suatu cara pengolahan gambar agar diperoleh gambar tertentu yang sesuai keinginan pembuatnya sering dikenal dengan istilah pengolahan citra. Secara umum, pengolahan citra terdiri atas tiga bagian yang masing-masing merupakan praproses pada keseluruhan program. Ketiga bagian praproses tersebut masing-masing adalah pembagi gambar (segmentasi), pencari tepi karakter (deteksi tepi), dan pengambilan ciri (ekstraksi). Ketiga proses tersebut harus didahului dengan sebuah proses yang dikenal dengan proses loading data [7].
Ekstraksi ciri adalah penghimpun ciri-ciri yang ada dalam obyek lewat beberapa proses tertentu. Dalam suatu obyek, ciri-ciri tersebut dapat dihimpun
berdasarkan ciri best-ellips, bounding circle, dan bounding rectangle. Ciri lainnya yang dapat dihimpun adalah ciri momen, yaitu berupa luas, pusat massa, orientasi, dan momen invarian. Pengelompokan dapat dikerjakan melalui informasi dari semua ciri obyek yang telah diperoleh [8].
Tahapan dalam eksperimen ini meliputi perancangan arsitektur JST Hebb, algoritma pelatihan dan pengujian JST Hebb dan perancangan aplikasi. Masing-masing tahapan dijabarkan sebagai berikut.
Arsitektur JST Hebb yang diterapkan dalam eksperimen ini tersusun atas dua lapisan yaitu lapisan masukan dan lapisan keluaran. Lapisan masukan terdiri dari 4500 node yang merupakan hasil perkalian dari ukuran pixel citra (n), sedangkan lapisan keluaran terdiri dari 3 node. Arsitektur JST seperti ini dapat disebut dengan pola (4500-3) sebagaimana terlihat pada Gambar 2.
Gambar 2. Arsitektur JST Hebb.
-
a. Algoritma pelatihan JST Hebb
Pada proses pelatihan akan didapatkan nilai bobot dan bias. Algoritma pelatihan JST Hebb mengikuti tahap-tahap berikut:
Tahap 0: Pemberian nilai awal bias dan bobot:
bj = 0
wij = 0 (i = 1,…, n dan j = 1,…, m) (4)
Tahap 1: Untuk setiap pasangan masukan dan
sasaran (target) (s : t), kerjakan Tahap 2-4:
Tahap 2: Tentukan nilai aktivasi unit masukan:
xi = si (i = 1, …, n) (5)
Tahap 3: Tentukan nilai aktivasi unit keluaran:
yj = tj. (j = 1, …, m) (6)
Tahap 4: Perbaiki nilai bobot:
wij (baru) = wij(lama) + xiyj
Perbaiki nilai bias:
bj (baru) = bj (lama) + yj
-
b. Algoritma pengujian JST Hebb
Pada proses pengujian didapatkan nilai keluaran dengan menggunakan nilai bobot dan bias yang dihasilkan dari proses pelatihan. Algoritma pengujian JST Hebb mengikuti tahap-tahap berikut: Tahap 0: Pemberian nilai awal bobot (wij) dan bias (bj) dengan nilai-nilai yang diperoleh dari proses pelatihan
Tahap 1: Untuk setiap pasangan masukan dan sasaran (target) (s : t), kerjakan Tahap 2-3:
Tahap 2: Tentukan nilai aktivasi unit masukan
xi = si dimana i = 1, 2, …, n
Tahap 3: Hitung masukan jaringan ke unit keluaran yin j dengan persamaan:
Vinj =bj +∑r=1XiWj y j = f (y in j)
(7)
(8)
Keterangan:
-
• x1 – xn
-
• b, b1 – b3
-
• y1 – y3
-
• w11 – wn3
adalah unit lapisan masukan adalah bias pada lapisan keluaran adalah unit lapisan keluaran adalah bobot pada lapisan keluaran
Secara umum, diagram blok perancangan aplikasi JST Hebb dapat dilihat pada Gambar 3. Ada dua tahapan dalam aplikasi JST Hebb yaitu pelatihan dan pengujian. Diagram alir dari kedua tahapan tersebut digambarkan secara berturut-turut dalam Gambar 4 dan Gambar 5.

Gambar 3. Diagram blok pembuatan program pengenal suara manusia.

Gambar 4. Diagram alir tahap pelatihan JST Hebb.

Gambar 5. Diagram alir tahap pengujian JST Hebb.
Hasil eksperimen yang didapatkan adalah program pengenal suara manusia dengan menggunakan metode JST Hebb. Program ini terdiri dari beberapa bagian utama yaitu panel rekam, panel pelatihan dan panel pengujian seperti yang disajikan dalam Gambar 6.

Gambar 6. Tampilan program pengenal suara manusia dengan menggunakan metode JST Hebb.
Panel rekam (1), berfungsi sebagai perekam suara sampel yang terdiri dari durasi rekam dalam satuan detik, frekuensi cuplik dalam satuan Hertz, pushbutton rekam, pushbutton simpan, pushbutton mainkan, dan pushbutton keluar. Panel pelatihan (2), berfungsi untuk melakukan proses pelatihan JST yang terdiri dari pushbutton open, axes, pushbutton mulai pelatihan, listbox, dan pushbutton buka bobot dan bias. Panel pengujian (3), berfungsi sebagai penguji sampel suara yang terdiri dari pushbutton buka file, axes, pushbutton mainkan, dan pushbutton mulai pengujian.
Sebelum program pengenal suara manusia dengan menggunakan metode JST Hebb dapat digunakan, dilakukan proses pengenalan terhadap sampel-sampel suara yang akan diuji, maka dilakukan proses pelatihan JST. Pelatihan jaringan dimulai dengan melatih JST tersebut dengan menggunakan masukan dan target dari sampel suara yang sudah direkam sebagaimana yang tersaji dalam Tabel 1.
Pada proses pelatihan, nilai bobot dan bias awal ditentukan dengan mengambil nilai 0, nilai ini akan berubah-ubah, nilai perubahan bobot didapat dari perkalian antara nilai masukan dengan nilai target, sementara nilai perubahan bias didapat dari nilai target. Nilai bobot baru didapat dari hasil penjumlahan nilai bobot lama dengan nilai perubahan bobot, sementara nilai bias baru didapat dari hasil penjumlahan nilai bias lama dengan nilai
perubahan bias. Proses perubahan nilai bobot dan bias ini berlangsung sebanyak jumlah dari spektrum
Tabel 1. Masukan pelatihan sampel suara.
No Nama file Bentuk Target
(.jpeg) Spektrum t1 t2 t3
1 |
Wav1 |
1 1 1 |
2 |
Wav2 |
-1 1 1 |
3 |
Wav3 |
I y I 1 -1 1 1 -1 1 |
4 |
Wav4 |
-1 -1 1 |
5 |
Wav5 |
1 1 -1 |
6 |
Wav6 |
wTl -1 1 -1 |
7 |
Wav7 |
d 1 -1 -1 M |
8 |
Wav8 |
CU -1 -1 -1 PmP |
yang dilatih, sehingga didapatkan nilai bobot dan bias akhir. Dari hasil pelatihan, didapatkan nilai bias dan nilai bobot baru seperti tercantum dalam Tabel 2 dan Tabel 3.
Tabel 2. Bias hasil pelatihan JST Hebb.
bj |
Nilai | ||||
b1 |
0 | ||||
b2 |
0 | ||||
b3 |
0 | ||||
Tabel 3. |
Bobot hasil pelatihan JST Hebb. | ||||
Bobot (wij) |
Nilai |
Bobot (wij) |
Nilai |
Bobot (wij) |
Nilai |
w11 |
0 |
w12 |
0 |
w13 |
0 |
w21 |
0 |
w22 |
0 |
w23 |
0 |
w15611 |
0 |
w15612 |
0 |
w15613 |
0 |
w15621 |
0 |
w15622 |
0 |
w15623 |
0 |
w15631 |
-1 |
w15632 |
-1 |
w15633 |
-1 |
w15641 |
0 |
w15642 |
0 |
w15643 |
0 |
w15651 |
-1 |
w15652 |
1 |
w15653 |
-1 |
w15661 |
0 |
w15662 |
0 |
w15663 |
-2 |
w15671 |
0 |
w15672 |
0 |
w15673 |
0 |
w15681 |
0 |
w15682 |
0 |
w15683 |
0 |
w15691 |
-1 |
w15692 |
1 |
w15693 |
-1 |
w15701 |
0 |
w15702 |
0 |
w15703 |
0 |
w44991 |
0 |
w44992 |
0 |
w44993 |
0 |
w45001 |
0 |
w45002 |
0 |
w45003 |
0 |
Pengujian jaringan dilakukan setelah didapatkan nilai bias dan bobot akhir pada proses pelatihan. Pada proses pengujian, nilai aktivasi unit keluaran ditentukan dengan separabilitas linier. Nilai aktivasi unit keluaran yang didapat kemudian dicocokkan dengan nilai target pada masing-masing spektrum saat proses pelatihan. Jika nilai aktivasi unit keluaran cocok dengan nilai target salah satu spektrum, maka pada program ditampilkan spektrum target. Suara dari spektrum target juga dapat diperdengarkan.
Jika spektrum target dan file suara dari spektrum target sesuai dengan spektrum uji dan file suara uji maka dikatakan jaringan mampu mengenali suara yang dilatih.
Hasil pengujian dengan menggunakan suara sampel tanpa noise selengkapnya ditampilkan pada Tabel 4. Dari data hasil pengujian menunjukkan bahwa tingkat pengenalan suara tanpa noise sebesar 100%
hal ini berarti jaringan sudah mampu mengenali sampel suara dengan baik. Nilai aktivasi unit keluaran yang dihasilkan sesuai dengan nilai target yang diberikan pada masing-masing spektrum suara saat proses pelatihan, hal ini disebabkan karena sampel suara yang digunakan saat pengujian adalah sama dengan sampel suara yang digunakan saat proses pelatihan.
Tabel 4. Hasil uji sampel suara tanpa noise.
No |
Suara Uji |
Suara Hasil Uji |
Ket. | ||
Nama File |
Bentuk Spektrum |
Nama File |
Hasil Spektrum | ||
1 |
Wav1 |
Wav1 |
Cocok | ||
2 |
Wav2 |
Wrt |
Wav2 |
Wrt |
Cocok |
3 |
Wav3 |
Wav3 |
Cocok | ||
4 |
Wav4 |
Wav4 |
Cocok | ||
5 |
Wav5 |
Wav5 |
Cocok | ||
6 |
Wav6 |
Wav6 |
Cocok | ||
7 |
Wav7 |
M |
Wav7 |
M |
Cocok |
8 |
Wav8 |
wrt |
Wav8 |
Wrt |
Cocok |
Dengan demikian, JST Hebb memiliki kemampuan untuk mengingat sampel suara pelatihan yang sudah dilatihkan kepada JST tersebut.
Pengujian dilanjutkan dengan sampel suara yang berisikan noise. Sampel suara yang digunakan adalah sampel suara wav1 sampai dengan wav8. Sementara, noise yang digunakan berupa suara ketukan meja dan diberi nama noise1. Kemudian sampel suara yang dipilih digabung dengan noise1 sehinga menghasilkan 8 suara uji seperti yang ditampilkan pada Tabel 5.
Hasil pengujian dengan menggunakan suara sampel dengan noise selengkapnya tersaji dalam Tabel 6. Dari hasil pengujian terlihat bahwa jaringan mampu mengenali 7 dari 8 suara uji atau dengan tingkat pengenalan sebesar 87,5%, hal ini dikarenakan pada masukan yang tidak dikenali,
Tabel 5. Hasil gabungan sampel suara dengan noise.
N Suara Sampel Suara Noise Suara Uji
o
Nama File |
Bentuk Spektrum |
Nama File |
Bentuk Spektrum |
Nama File |
Bentuk Spektrum |
1 Wav1 |
Noise 1 |
Wav1 noise 1 | |||
2 Wav2 |
^ |
Noise 1 |
S! |
Wav2 noise 1 |
⅜/ |
3 Wav3 |
Noise 1 |
S! |
Wav3 noise 1 | ||
4 Wav4 |
Noise 1 |
%/ |
Wav4 noise 1 |
r □ |
Wav5 noise 1
Wav6 noise 1


Wav7 noise 1
Wav8 noise 1

Tabel 6. Hasil uji sampel suara dengan noise.
N Suara Uji Suara Hasil Uji Ket.

persentase noise-nya besar, atau dilihat dari bentuk spektrum suaranya secara tampak mata memang sulit untuk dikenali. Untuk kasus kesalahan pemilihan keluaran, jaringan menganggap bahwa masukan yang dimasukkan lebih cenderung ke karakter lain atau kemampuan generalisasi jaringan lebih memilih keluaran ke arah karakter lain berdasarkan pola penyebaran noise pada bentuk spektrum suara masukan.
Dari eksperimen yang telah dilakukan dapat disimpulkan bahwa untuk pengenalan data suara yang sama dengan data pelatihan, JST Hebb dapat mengenali suara manusia dengan tingkat 100%. Sedangkan untuk suara manusia yang mengalami noise, JST Hebb dapat mengenali pada tingkat pengenalan sebesar 87,5%.
PUSTAKA
-
[1] Faizin, A.S Wahid, Pengenalan Suara, UIN
Sunan Kalijaga Yogyakarta, 2014.
-
[2] Warman, Rahmat Aditya, Rancang Bangun Model Perangkat Lunak Pengenal Suara Manusia Menggunakan Jaringan Saraf Tiruan Berbasis GUI (Graphic User Interface) Matlab 6.1, Skripsi, Universitas Negeri Yogyakarta, 2010.
-
[3] Setiawan Angga, Achmad Hidayatno dan R. Rizal Isnanto, Aplikasi Pengenalan Ucapan dengan Ekstraksi Mel-Frequency Cepstrum Coefficients (MFCC) Melalui Jaringan Syaraf Tiruan (JST) Learning Vector Quantization (LVQ) untuk Mengoperasikan Kursor Komputer, Jurnal TRANSMISI, vol. 13, no. 3, 2011, pp. 82-86.
-
[4] Kanti, Maya Dewi Roro. Pengenalan Karakter Angka Numerik Hasil Tulisan Tangan dengan Konsep Jaringan Syaraf Tiruan, Skripsi, Universitas Ilmu Komputer, Bandung, 2005.
-
[5] Widagda, I.G.A, Pengenalan Pola Dua Dimensi Sederhana dengan Jaringan Syaraf Tiruan Hebb, Universitas Udayana, Jimbaran, 2016.
-
[6] Erlina, Jaringan Syaraf Tiruan Hebb Rule, Universitas Gunadharma, 2011.
-
[7] Derry, Deteksi Tepi Berbasis Metode Sobel untuk Peningkatan Kualitas Citra Medis.
Skripsi, Universitas Dian Nuswantoro, Semarang, 2016.
-
[8] Adipranata, Rudy dan Resmana, Pengenalan Suara Manusia Dengan Metode LPC Dan Jaringan Saraf Tiruan Propagasi Balik, Prosiding Seminar Nasional I Kecerdasan Komputasional, vol. 1, Juli 199.
22
Discussion and feedback