KLASTERISASI SINYAL SUARA MENGGUNAKAN METODE PARTICLE SWARM OPTIMIZATION PADA PENGEMBANGAN SISTEM PENGENALAN INDIVIDU BERBASIS SUARA UCAPAN Nama: Moh. Bagus Hadi S (Nrp 1205 100 037) Dosen Pembimbing: Drs. Nurul Hidayat M.Kom Jurusan Matematika Fakultas Matematika dan Ilmu Pengetahuan Alam Institut Teknologi Sepuluh Nopember Surabaya 2010 Email:
[email protected] Abstrak
Biometrika merupakan cabang dari matematika terapan yang membahas tentang identifikasi individu berdasarkan ciri-ciri biologis yang bersifat unik. Ciri-ciri tersebut tidak mudah dikenali oleh komputasi sehingga perlu dicari suatu metode yang tepat untuk menggali informasi dari ciri-ciri tersebut. Salah satu bidang dari biometrika adalah pengenalan suara. Penelitian ini menggunakan metode klasterisasi Particle Swarm Optimization (PSO) pada tahap pengelompokan ciri sistem pengenalan suara. Data yang akan dilakukan proses klasterisasi adalah data magnitude hasil proses estimasi Trispektrum. Proses klasterisasi bertujuan untuk mencari data magnitude pewakil dari masing-masing klaster untuk dijadikan masukan pada lapis input dari Jaringan Syaraf Tiruan Learning Vector Quantization (JST-LVQ) pada tahap klasifikasi. Dari uji coba yang dilakukan, adanya perbedaan jumlah klaster tidak mempengaruhi hasil pengenalan secara signifikan. Perubahan tingkat pengenalan yang cukup signifikan terjadi pada saat adanya penambahan jumlah referensi di dalam proses pembelajaran. Semakin banyak jumlah referensi suara yang dilakukan proses pembelajaran, semakin meningkat pula hasil pengenalan sistem. Uji coba dilakukan terhadap 10 kata dari pembicara yang sama, 1 kata dari 20 pembicara yang berbeda, dan 20 kata dari pembicara yang berbeda. Dengan mengambil lima referensi untuk masing-masing kata, metode Particle Swarm Optimization mampu mengenali kata yang di ucapkan hingga 81% Kata Kunci: Trispektrum, Particle Swarm Optimization, Learning Vector Quantization yang berhubungan dengan pengendalian dan pengontrolan kerja sumber daya. Dalam melakukan pengendalian kerja, cara ini lebih memeberikan kemudahan jika dibandingkan dengan cara yang lain, misalnya dengan mengetikkan perintah dari keyboard. Hal ini dikarenakan suara merupakan alat komunikasi yang sangat sederhana dan bersifat alami sehingga memudahkan manusia dalam memberikan perintah. Suara dapat dijadikan sebagai penanda individu, karena setiap individu mempunyai karakteristik suara yang spesifik. Hal itu disebabkan oleh adanya perbedaan spektrum suara, perbedaan frekuensi dan amplitudo diantara individu. Dalam membangun sistem
1. Pendahuluan Sistem pengenalan suara adalah bagian dari biometrika yang merupakan cabang matematika terapan yang muncul dan berkembang pada era globalisasi. Bidang garap biometrika adalah mengidentifikasi individu berdasarkan ciri-ciri fisiologis dan tingkah laku yang dimiliki oleh individu tersebut. Salah satu ciri yang dapat digunakan untuk mengidentifikasi individu adalah melalui suara ucapan. Saat ini, aplikasi dari system pengenalan suara sudah banyak dipasarkan secara komersial. Aplikasi ini membantu manusia dalam melakukan pekerjaan khususnya
1
pengenalan suara, secara umum terdapat empat tahapan yang harus dilakukan (Amin, 2006), yaitu akuisisi data suara, estimasi sinyal suara, pengelompokan ciri, serta klasifikasi sinyal suara. Data sinyal suara diperoleh dengan bantuan alat perekam seperti mikrofon (sinyal analog) dan kemudian diubah menjadi sinyal digital dengan bantuan sound card pada Personal Computer (PC) (Adipranata,1999). Pada tahap pra pengolahan, dilakukan proses estimasi sinyal suara yang kemudian menghasilkan data magnitude dan fase. Dengan adanya magnitude dan fase sinyal suara, maka pola atau karakteristik dari kata yang diucapkan dapat diketahui. Proses estimasi sinyal suara dengan menggunakan estimasi Bispektrum dan Trispektrum serta analisisnya sudah diteliti dan diimplementasikan (Riduwan,2007). Dari hasil yang diperoleh pada penelitian tersebut, menunjukkan bahwa estimasi trispektrum mempunyai presentase pengenalan yang lebih bagus jika dibandingkan dengan estimasi bispektrum pada pengenalan individu. Dalam proses klasifikasi suara, data yang digunakan merupakan data magnitude hasil prapengolahan dengan estimasi trispektrum. Mengingat bahwa data yang didapatkan dari hasil prapengolahan masih berada dalam jumlah yang banyak, maka hal ini sangat berpengaruh terhadap lamanya proses klasifikasi. Untuk itu, diperlukan suatu metode klasterisasi untuk mendapatkan data magnitude pewakil dari masing-masing kelompok (klaster) sehingga diperoleh data yang lebih sedikit untuk dilakukan proses klasifikasi. Pada tugas akhir ini, dikembangkan perangkat lunak pengidentifikasi individu berbasis suara ucapan dengan menggunakan metode klasterisasi Particle Swarm Optimization (PSO) pada tahap klasterisasinya. Hasil klasterisasi yang diperoleh dari metode tersebut akan digunakan sebagai inputan pada tahap klasifikasi menggunakan Jaringan Saraf Tiruan Lerning Vektor Quantization (JSTLVQ). Manfaat yang didapat dari tugas akhir ini antara lain, dapat digunakan : 1. Untuk membangun sistem keamanan menggunakan pengenalan individu berbasis suara ucapan. 2. Untuk membuat peralatan elektronik otomatis yang cara kerjanya berdasarkan suara ucapan. 3. Untuk mengembangkan robot yang bisa dikontrol menggunakan suara ucapan.
4.
Sebagai referensi dan sarana informasi dalam melakukan klasterisasi data menggunakan metode PSO.
Sedangkan batasan masalah yang digunakan sebagai acuan, antara lain : 1. Pengucapan kata satu persatu dan dilakukan dengan suara normal. 2. Keadaan ruangan untuk pengambilan ucapan dalam keadaan normal dan dianggap tidak ada noise. 3. Data yang diproses adalah data estimasi yang diperoleh dari hasil proses estimasi trispektrum terhadap data akusisi sinyal suara. 4. Proses perekaman dan estimasi sinyal suara akan memanfaatkan hasil yang sudah dikerjakan oleh Amin, (2006) dan Riduwan, (2007). 2. Estimasi Trispektrum Estimasi Trispektrum merupakan proses estimasi sinyal suara yang didasarkan pada korelasi tiga parameter frekuensi yaitu f 1 , f 2 , dan f 3 . Daerah estimasi Trispektrum merupakan ruang tiga dimensi yang dibentuk oleh vektor frekuensi f 1 , f 2 dan f 3 . Pada setiap koordinat ( f 1 , f 2 , f 3 ) tersebut terdapat nilai trispektrumnya, sehingga hasil estimasi trispektrum dapat dikatakan berada dalam ruang empat dimensi. Hasil estimasi Trispektrum tersebut berupa magnitude dan fase yang merupakan hasil transformasi dari hasil estimasi trispektrum itu sendiri yang berbentuk kompleks dalam koordinat kartesius, kedalam koordinat kutub yang berbentuk besaran magnitude dan fase. Nilai magnitude hasil estimasi trispektrum selanjutnya dilakukan proses klasterisasi, dengan format keluaran dari hasil estimasi adalah ( f 1 , f 2 , f 3 , Magnitude). 3. Particle Swarm Optimization (PSO) Dalam klasterisasi PSO, satu particle dalam swarm menunjukkan suatu solusi yang mungkin dalam klasterisasi. Oleh karena itu, swarm merupakan kumpulan solusi yang mungkin dalam klasterisasi untuk sekumpulan data. Jarak rata-rata suatu data ke pusat klaster digunakan sebagai fitness value untuk mengevaluasi solusi yang diberikan oleh tiap partikel.
2
kemudian masukkan data magnitude tersebut kedalam pusat klaster terdekatnya. IF d (Ci 1 , m j ) < d (Ci , m j ) THEN
Jarak rata-rata suatu data ke pusat klaster pada metode klasterisasi PSO memenuhi persamaan sebagai berikut (Cui, 2004):
pi d (Ci , mij ) Nc j 1 Pi i 1 f Nc
mi 1, j Else
mi , j
dm
(m k 1
pk
m jk ) 2 / d m
dan
pi X i -Global Best
Pi = Jumlah data yang dimiliki tiap klaster.
g set f ( p0 ) = f ( X i terbaik)
d (Ci , mij ) = Jarak antara pusat klaster dengan
M {m1 , m2 , m3 ,..., m p } X = Himpunan pusat klaster X {C1 , C2 , C3 ,..., Ci }
f ( pi ) f ( X i )
set
dengan: N c = Jumlah klaster
data objek d m = Dimensi ruang vektor Himpunan data M=
m (2.1)j
END IF 3. Hitung nilai fitness untuk tiap partikel f (Xi ) . 4. Dapatkan Local Best dan Global Best (2.2) -Local Best
Sedangkan untuk jarak suatu data ke pusat klaster, memenuhi persamaan berikut:
d (m p , m j )
mj
dan p0 X i terbaik B. Optimasi g
objek,
1. Update velocity pusat klaster
tiap
vki 1 w*vki c1*rnd* pi xki c2*rnd* pkg xki
(Partikel),
2. Update posisi tiap pusat klaster
Algoritma Klaterisasi PSO adalah sebagai berikut : A. Inisialisasi
xki 1 xki vki 1 3. Hitung kembali jarak tiap data magnitude terhadap seluruh pusat klaster, kemudian masukkan data magnitude tersebut kedalam pusat klaster terdekatnya. IF d(Ci1,mj ) < d (Ci , m j ) THEN
1. Tahap inisialisasi Partikel dan Velocity awal: a) Cari nilai maksimum dan minimum dari data data magnitude. max max(M), min min(M) b) Inisialisasi nilai awal klaster sebanyak Nc. Ci random*(max – min) X Ci c) Inisialisasi nilai awal velocity sebanyak Nc. Vi random*(max – min) Y Vi Set nilai inertia factor (W), self confidence (C1), swarm confidence (C2). 2. Hitung jarak tiap data magnitude terhadap seluruh pusat klaster,
mi 1, j
mj
mi , j
mj
Else END IF 4. Hitung untuk
nilai tiap
fitness partikel
f (Xi ) 5. Update Local Global Best -Local Best
Best
Dan
i IF f (Ck ) f ( p ) THEN
f ( pi ) f (Ck )
3
pi Ck
Arsitektur jaringan syaraf tiruan yang digunakan dalam penelitian ini dpat dilihat pada Gambar 4.1
END IF -Global Best g IF f (Ck ) f ( pk ) THEN
f ( pkg ) f (Ck ) pkg Ck END IF 6. Langkah Optimasi Di ulang hingga kriteria kekonvergenan terpenuhi atau jumlah iterasi maksimal terlampaui. Gambar 4.1 Arsitektur JST-LVQ 4. Arsitektur JST-LVQ
5.Metode Penelitian
Pada tahapan klasifikasi, data klaster diklasifikasi kedalam kelas-kelas yang sudah ditentukan dengan menggunakan metode Learning Vector Quantization (LVQ). Data suara yang akan diklasifikasi, data klasternya harus mempunyai ukuran yang sama sehingga proses klasifikasi dapat dilakukan. Algoritma pembelajaran LVQ tersebut adalah sebagai berikut (Fausett, 1994) :
Penelitian yang dilakukan ini memfokuskan pada pengembangan sistem pengenalan suara pada tahap pengelompokan ciri atau klasterisasi. Secara umum sistem pengenalan suara yang akan dibuat dalam penelitian ini dapat diliha pada diagram alir Gambar 5.1
x T
vektor training (x1, x2, ..., xn) kategori/target yang benar untuk vektor training wj vektor bobot untuk unit output ke j (w1j, ..., wij, ..., wnj) Cj kategori/kelas hasil komputasi oleh unit output j ||x - wj|| jarak Euclid antara vektor input dengan (vektor bobot) unit output ke j Step 0. Inisialisasi vektor referensi. Inisialisasi learning rate (0). Step 1. Bila kondisi STOP belum dipenuhi, kerjakan Step 2 – 6. Step 2. Untuk setiap vektor input training x, kerjakan step 3 – 4. Step 3. Dapatkan j sedemikian hingga ||x wj|| minimum. Step 4. Update wj sebagai berikut jika T = Cj maka wj (baru) = wj (lama) + (x - wj(lama)) jika T Cj maka wj (baru) = wj (lama) - (x - wj(lama)) Step 5. Reduksi learning rate Step 6. Tes kondisi STOP. Misal: 1. Dengan membatasi jumlah iterasi 2. Setelah mencapai nilai toleransi
Gambar 5.1 Bagan Alir Metode Penelitian 6. Uji Coba dan Pembahasan Dalam melakukan uji coba perangkat lunak, digunakan sebuah notebook dengan spesifikasi Processor AMD Turion 64 X2 TL60 2.0 Ghz, Memory DDR2 1968 MB, VGA NVIDIA GeForce 7000M, Monitor 14,1”WXGA Crystal Brite LCD, Microphone SONICGEAR dan Loudspeaker Realtek HD Audio Output. Sedangkan untuk perangkat lunak yang digunakan adalah sistem oprasi Windows XP Profesional, Visual Basic 6.0 sebagai tool untuk membuat perangkat lunak.
4
Proses-proses yang ada dalam perangkat lunak pengenalan suara diantaranya adalah proses perekaman, estimasi trispektrum, klasterisasi PSO, klasifikasi, testing dan ploting .Uji coba yang dilakukan pada sistem ini menggunakan sampel chunk sebesar 128 pada proses estimasinya. Pada proses klasterisasi digunakan jumlah klaster yaitu 8, 16, dan 32. Dan untuk proses klasifikasinya menggunakan metode JST-LVQ dengan jumlah epoch 100 dengan menggunakan referensi sebanyak 1, 3, dan 5 referensi suara dan nilai learning rate sebesar 0.01. Gambar 6.3 Plotting data estimasi dan klaster PSO untuk kata ‘BUKA’ dengan sample chunk 128 klaster 16
6.1 Proses Kasterisasi Data Estimasi Pada proses klasterisasi, data hasil estimasi tripsektrum yang disimpan dalam bentu file dilakukan proses klasterisasi. Proses klasterisasi dapat dilakukan terhadap beberapa data sekaligus. Gambar 6.1 merupakan contoh program untuk melakukan proses klasterisasi terhadap data hasil estimasi trispektrum.
Gambar 6.4 Plotting data estimasi dan klaster PSO untuk kata ‘BUKA’ dengan sample chunk 128 klaster 8. 6.2 Proses Pembelajaran Data hasil klasterisasi kemudian dilakukan proses pembelajaran (training) untuk mencari bobot yang akan digunakan sebagai referensi pada proses testing. Gambar 6.5 dan Gambar 6.6 merupakan tampilan program yang digunakan untuk proses pembelajaran.
Gambar 6.1 Proses Klasterisasi Data Berikut ini diberikan gambar-gambar hasil proses klasterisasi.
Gambar 6.2 Plotting data estimasi dan klaster PSO untuk kata ‘BUKA’ dengan sample chunk 128 klaster 32
Gambar 6.5 Proses Penetapan Data Target
5
Gambar 6.8 Diagram Prosentase Pengenalan Sistem Untuk Masing-masing Kata; Chunk 128, Epoch 100 dan Klaster 16
Gambar 6.6 Proses Klasifikasi Data Dalam melakukan klasifikasi, data hasil klasterisasi digunakan untuk menginisialisasi nilai bobot dari JST-LVQ. Parameter yang digunakan dalam pembelajaran ini adalah nilai maksimum epoch dan nilai learning rate.
Gambar 6.9 Diagram Prosentase Pengenalan Sistem Untuk Masing-masing Kata; Chunk 128, Epoch 100 dan Klaster 32 6.4 Uji Pengenalan Individu Dalam pengujian ini, sampel yang diestimasi dan dilakukan pengenalan diperoleh dari sebuah kata yaitu kata “BUKA” yang diucapkan oleh duapuluh individu yang berbeda. Setiap individu mengucapkan kata “BUKA” sebanyak limapuluh kali. Pada pengujian ini, pemberi sampel berasal dari jenis kelamin laki-laki dan perempuan dengan usia yang berbeda beda. Berikut ini adalah tabel informasi individu yang memberikan sampel untuk digunakan pada uji pengenalan individu.
6.3 Uji pengenalan Suara Dalam uji pengenalan suara, pengujian dilakukan terhadap sepuluh jenis kata yang berbeda, yaitu “ATAS”, “BAWAH”, “BUKA”, ”KANAN”, ”KIRI”, ”MAJU”, “MUNDUR”, “NAIK”, “TURUN”, “TUTUP”. Sepuluh jenis kata tersebut diperoleh dari satu individu. Setiap jenis kata diambil sebanyak sepuluh kali. Dalam pengujian ini, pemberi sampel adalah penulis. Hasil dari proses uji pengenalan suara diberikan dalam diagarm berikut.
Tabel 4.1 Informasi Individu Pemberi Sampel Suara No. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
Gambar 6.7 Diagram Prosentase Pengenalan Sistem Untuk Masing-masing Kata; Chunk 128, Epoch 100 dan Klaster 8
6
Nama Ali Anisa Asworo Bagus Cgyp Daril Ganang Ipin Irvan Mawa Nila Norma Nove Paul Ratna Santi Septiyan
Kelamin L P L L P L L L L P P P P L P P L
Usia 24 18 22 23 21 21 20 19 21 22 20 21 21 20 20 21 20
18 19 20
Suci Ugix Ulin
P L P
kali. Dalam pengujian ini, pemberi sampel berasal dari jenis kelamin laki-laki dan perempuan dengan usia yang berbeda beda. Berikut ini adalah tabel informasi individu yang memberikan sampel untuk digunakan pada uji pengenalan nama individu. Tabel 4.2 Informasi Individu Pemberi Sampel
19 22 19
Pada percobaan ini digunakan sampel chunk 128 dan epoch 100 serta jumlah klaster masing-masing 32 klaster dan 16 klaster. Berikut adalah hasil dari uji pengenalan individu.
Suara
No. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Gambar 6.10 Diagram Prosentase Pengenalan Sistem Untuk Uji Pengenalan Individu; Chunk 128, Epoch 100 dan Klaster 16
Nama Ajeng Apang Asworo Bagus Cgyp Daril Ganang Ipin Iwan Nila Norma Nove Paul Riky Santi Septiyan Satria Ugix Ulin Vina
Kelamin P L L L P L L L L P P P L L P L L L P P
Usia 20 21 22 23 21 21 20 19 22 20 21 21 20 19 21 20 19 22 19 20
Pada percobaan ini digunakan sampel chunk 128 dan epoch 100 serta jumlah klaster masing-masing 32 klaster dan 16 klaster. Berikut adalah hasil dari uji pengenalan nama.
Gambar 6.11 Diagram Prosentase Pengenalan Sistem Untuk Uji Pengenalan Individu; Chunk 128, Epoch 100 dan Klaster 32 Dari diagarm diatas dapat dilihat bahwa untuk uji pengenalan individu, metode Partcle Swarm Optimization memilik rata-rata pengenalan dengan nilai prosentase pengenalan hanya 55% untuk uji coba dengan 5 referensi 46% untuk uji coba dengan 3 referensi dan 41% untuk uji coba dengan 1 referensi untuk klaster 32. Sedangkan untuk klaster 16 rata-rata pengenalannya masing-masing 54% , 41% dan 34% untuk uji coba dengan 5, 3 dan 1 referensi.
Gambar 6.12 Diagram Prosentase Pengenalan Sistem Untuk Uji Pengenalan Nama; Chunk 128, Epoch 100 dan Klaster 32
6.5 Uji Pengenalan Nama Pengujian ini menggunakan sampel nama yang diperoleh dari suara duapuluh individu yang berbeda. Setiap individu mengucapkan namanya sebanyak limapuluh
7
1. Untuk menghasilkan klaster yang lebih optimal, perlu dikembangkan dengan melakukan penggabungan metode klasterisasi. 2. Untuk menghasilkan tingkat pengenalan yang lebih bagus, perlu dikembangkan untuk memakai metode Jaringan Syaraf Tiruan yang lain.
DAFTAR PUSTAKA Gambar 6.13 Diagram Prosentase Pengenalan Sistem Untuk Uji Pengenalan Nama; Chunk 128, Epoch 100 dan Klaster 32
Adipranata, R. 1999. Pengenalan suara manusia dengan metode jaringan saraf tiruan back propagation berbasis PC. Universitas Kristen Petra. Amin, M.S. 2006. Pengelompokan Ciri dan Klasifikasi Sinyal Suara Menggunakan Metode Kuantisasi Vektor MSA-RLS dan Jaringan Syaraf Tiruan LVQ. Surabaya: Jurusan Matematika, Institut Teknologi Sepuluh Nopember. Cui, X., Potok, T.E. Document Custering using Particle Swarm Optimization. Oak Ridge : Applied Software Enginering Research Group Computational Sciences and Enginering Division, Oak Ridge National Laboratory. TN 37831-6085 Faradisa, R. 2007. Perbandingan Hasil Optimasi Particle Swarm Optimization (PSO) dan Genetic Algorithm (GA) Pada Fungsi Rosenbrock (BANANA FUNCTION). Surabaya : Jurusan Matematika, Institut Teknologi Sepuluh Nopember. Fausett, L. 1994. Fundamentals of Neural Networks: Architectures, Algorithms, and Applications. Prentice Hall International, Inc. Jumadi, A. 2008. Perbandingan Antara Metode Klasterisasi RLS dan Fuzzy Clustering pada Sistem Pengenalan Individu Berbasis Suara Ucapan. Surabaya : Jurusan Matematika, Institut Teknologi Sepuluh Nopember. Riduwan, M.A. 2007. Pembuatan Perangkat Lunak Pengestimasi Sinyal Suara Berbasis Visual. Surabaya: Jurusan Matematika, Institut Teknologi Sepuluh Nopember.
Dari uji coba diatas, didapat informasi bahwa untuk uji pengenalan nama, metode Partcle Swarm Optimization memilik rata-rata pengenalan dengan nilai prosentase pengenalan hanya 66% untuk ujicoba dengan 5 referensi dan 46% untuk uji coba dengan 3 referensi dan 38% untuk uji coba dengan 1 referensi untuk klaster 32. Sedangkan untuk klaster 16 rata-rata pengenalannya masing-masing 59%, 43% dan 41% untuk uji coba dengan 5, 3 dan 1 referensi. 7. Penutup 7.1. Kesimpulan Dari hasil uji coba yang dilakukan, dapat diambil kesimpulan sebagai berikut. 1. Algoritma Particle Swarm Optimization telah dirancang dan diimplementasikan ke dalam bentuk perangkat lunak yang mampu melakukan proses klasterisasi data suara hasil estimasi. 2. Rancangan algoritma klasifikasi telah berhasil diimplementasikan ke dalam bentuk perangkat lunak yang mampu melakukan proses klasifikasi data suara hasil klasterisasi. 3. Sebuah sistem perangkat lunak pengidentifikasi suara telah berhasil dibuat dari hasil integrasi program mulai dari proses perekaman hingga klasifikasi dengan menggunakan Visual Basic 6.0 4. Penggunaan metode Particle Swarm Optimization untuk klasterisasi dan JSTLVQ untuk klasifikasi memberikan hasil pengenalan yang relativ bagus. Dengan hasil rata-rata pengenalan mencapai 81%. 7.2 Saran Berdasarkan hasil yang sudah dicapai pada penelitian ini, terdapat beberapa hal yang perlu dipertimbangkan untuk pengembangan penelitian ini, antara lain sebagai berikut
8