Implementasi K-Means Clustering Dan Learning Vector Quantization Untuk Optimasi Pengenalan Suara

(1)

SKRIPSI

Diajukan untuk Menempuh Ujian Akhir Sarjana

MOHAMAD LUKMAN HAKIM NUGRAHA

10111507

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS TEKNIK DAN ILMU KOMPUTER

UNIVERSITAS KOMPUTER INDONESIA

2016


(2)

iii

Allah SWT atas segala nikmat kesehatan, tenaga, waktu dan pikiran sehingga penulis dapat menyelesaikan skripsi yang berjudul IMPLEMENTASI K-MEANS CLUSTERING DAN LEARNING VECTOR QUANTIZATION UNTUK OPTIMASI PENGENALAN SUARA untuk memenuhi salah satu syarat studi jenjang strata satu (S1) di Program Studi Teknik Informatika, Fakultas Teknik dan Ilmu Komputer, Universitas Komputer Indonesia.

Dikarenakan keterbatasan yang dimiliki penulis, penyusunan skripsi ini tidak akan terwujud tanpa adanya dukungan dari berbagai pihak. Untuk itu penulis melalui kata pengantar ini sangat menghargai dan berterima kasih yang sebesar-besarnya kepada:

1. Allah SWT atas segala nikmat kesehatan, tenaga, waktu dan pikiran yang telah diberikan sehingga penulis dapat menyelesaikan skripsi ini.

2. Kedua orang tua, ibu Siti Nurul Qomariyah dan bapak R. Subroto dan kakak-kakak yang telah memberikan doa dan dukungannya.

3. Ibu Ednawati Rainarli, S.Si., M.Si., selaku dosen wali IF-11/2011 dan dosen pembimbing Penulis, yang telah memberikan bimbingan, masukan, saran dan nasehatnya selama penyusunan skripsi ini.

4. Ibu Ken Kinanti Purnamasi, S.Kom., M.T., selaku dosen reviewer yang telah memberikan bimbingan, masukan dan saran kepada Penulis.

5. Ibu Kania Evita Devi, S.Pd., M.Si., selaku dosen penguji yang memberikan saran kepada Penulis.

6. Bapak dan Ibu dosen serta seluruh staf pegawai Universitas Komputer Indonesia yang telah membantu Penulis selama proses perkuliahan.

7. Teman-teman di Universitas Komputer Indonesia, khususnya kelas IF-11/2011 yang selalu memberikan semangat dan dukungan kepada Penulis selama penyusunan skripsi ini.


(3)

iv

kasih atas segala bentuk dukungan selama proses penyusunan skripsi ini.

Penulis menyadari bahwa penulisan skripsi ini masih jauh dari sempurna. Oleh karena itu Penulis mengharapkan saran dan masukan untuk pengembangan skripsi ini. Akhirnya, semoga skripsi ini dapat membantu semua pihak yang berkepentingan dan dapat berkontribusi dalam pengembangan ilmu dan pengetahuan bagi seluruh umat manusia.

Bandung, Februari 2016


(4)

v

DAFTAR ISI

ABSTRAK ... i

ABSTRACT ... ii

KATA PENGANTAR ... iii

DAFTAR ISI ... v

DAFTAR GAMBAR ... ix

DAFTAR TABEL ... xi

DAFTAR SIMBOL ... xiv

DAFTAR LAMPIRAN ... xviii

BAB 1 PENDAHULUAN ... 1

1.1 Latar Belakang Masalah ... 1

1.2 Rumusan Masalah ... 2

1.3 Maksud dan Tujuan ... 2

1.4 Batasan Masalah ... 3

1.5 Metodologi Penelitian ... 3

1.6 Sistematika Penulisan ... 6

BAB 2 LANDASAN TEORI ... 7

2.1 Pengenalan Suara... 7

2.2 Jenis Pengenalan Suara... 8

2.3 Teknik-teknik speech recognition ... 9

2.4 Produksi Suara ... 10

2.5 Klasifikasi sinyal eksitasi ... 11

2.6 Konversi Analog Menjadi Digital ... 12

2.7 Mel Frequency Cepstrum Coefficients ... 13

2.7.1 DC Removal ... 15

2.7.2 Pre Emphasize ... 15

2.7.3 Frame Blocking ... 17

2.7.4 Windowing ... 18

2.7.5 Fast Fourier Transform ... 19


(5)

vi

2.7.7 Discrete Cosine Transform ... 21

2.7.8 Cepstral Liftering... 22

2.8 K-Means Clustering... 23

2.9 Learning Vector Quantization ... 24

2.10 Euclidean Distance ... 25

2.11 K-Fold Cross Validation... 26

2.12 Confussion Matrix ... 26

2.13 Pemograman Berorientasi Objek ... 27

2.14 C# ... 29

2.15 Unified Modeling Language... 29

2.15.1 Use Case Diagram ... 29

2.15.2 Class Diagram ... 30

2.15.3 Sequence Diagram ... 31

2.15.4 Activity Diagram ... 31

2.16 Tools Pembangunan Perangkat Lunak ... 32

2.16.1 Microsoft Visual Studio ... 32

2.16.2 Basis Data ... 32

BAB 3 ANALISIS KEBUTUHAN ALGORITMA ... 35

3.1 Analisis Masalah ... 35

3.2 Analisis Proses... 36

3.3 Analisis Data Masukan ... 38

3.3.1 Analisis Data Masukan MFCC ... 38

3.3.2 Analisis Data Keluaran MFCC ... 41

3.3.3 Analisis Data Masukan K-Means Clustering ... 41

3.3.4 Analisis Data Keluaran K-Means Clustering ... 42

3.3.5 Analisis Data Masukan LVQ ... 42

3.3.6 Analisis Data Keluaran LVQ ... 42

3.4 Analisis Metode ... 43

3.4.1 Metode MFCC ... 43

3.4.2 K-Means Clustering... 57


(6)

vii

3.4.4 Euclidean Distance ... 74

3.5 Analisis Kebutuhan Non Fungsional ... 76

3.5.1 Analisis Kebutuhan Perangkat Keras ... 77

3.5.2 Analisis Kebutuhan Perangkat Lunak ... 77

3.5.3 Analisis Pengguna ... 77

3.6 Analisis Kebutuhan Fungsional ... 77

3.6.1 Use Case Diagram ... 78

3.6.2 Use Case Scenario ... 79

3.6.3 Activity Diagram ... 82

3.6.4 Class Diagram ... 86

3.6.5 Sequence Diagram ... 88

3.7 Perancangan Sistem ... 92

3.7.1 Perancangan Basis Data ... 92

3.7.2 Perancangan Struktur Menu ... 93

3.7.3 Perancangan Antarmuka ... 94

BAB 4 IMPLEMENTASI DAN PENGUJIAN ... 99

4.1 Implementasi ... 99

4.1.1 Implementasi Perangkat Keras ... 99

4.1.2 Implementasi Perangkat Lunak ... 99

4.1.3 Implementasi Basis Data ... 100

4.1.4 Implementasi Class ... 101

4.1.5 Implementasi Antarmuka ... 101

4.2 Skenario Pengujian ... 102

4.2.1 Skenario Pengujian Parameter LVQ ... 102

4.2.2 Skenario Pengujian K-Fold Cross Validation ... 103

4.3 Pengujian ... 103

4.3.1 Pengujian Parameter LVQ ... 103

4.3.2 Pengujian K-Fold Cross Validation... 111

4.4 Kesimpulan Hasil Pengujian ... 116

BAB 5 KESIMPULAN DAN SARAN ... 117


(7)

viii

5.2 Saran ... 117 DAFTAR PUSTAKA ... 119


(8)

119

[2] Andriana, A.D., Perangkat Lunak Untuk Membuka Aplikasi Pada

Komputer Dengan Perintah Suara Menggunakan Metode Mel Frequency Cepstrum Coefficients, Jurnal Ilmiah Komputer dan Informatika (KOMPUTA), Vol. 2. No. 1, Maret 2013.

[3] Setiawan,A., Hidayatno, A., Isnanto, R.R., Aplikasi Pengenalan Ucapan dengan Ekstraksi Mel-Frequency Cepstrum Coefficients (MFCC) Melalui Jaringan Syaraf Tiruan (JST) Learning Vector Quantization (LVQ) untuk Mengoperasikan Kursor Komputer", TRANSMISI, 2011.

[4] Sela, E., T., Hartati, S., Pengenalan Jenis Penyakit THT Menggunakan Jaringan Learning Vector Quantization STMIK AKAKOM Universitas Gajah Mada.

[5] Manunggal, H.S., Perancangan dan Pembuatan Perangkat Lunak Pengenalan Suara Pembicara dengan Menggunakan Analisa MFCC Feature Extraction, Surabaya : Universitas Kristen Petra, 2005.

[6] R. Kohavi, A Study of Cross-Validation and Bootstrap for Accuracy Estimation and Model Selection, International Joint Conference on Artificial Intelligence (IJCAI), 1995.

[7] Riyanto, E., dan Sutejo, Perbandingan Ekstraksi Ciri Suara MFCC, ZCPA dan LPC , STMIK HIMSYA.

[8] Anusuya, A & Katti, K. 2009. Speech Recognition by Machine. Volume 6, No. 3. Department of Computer Science and Engineering. India.

[9] Gaikwad, S.,K., Gawali, B.,W., Yannawar, P., A Review on Speech Recognition Technique , International Journal of Computer Applications, Volume 10 No.3, November 2010.

[10] Hartanto, B., Memahami Visual C#.Net Secara Mudah . Yogyakarta : Andi,


(9)

120

www2.cs.uregina.ca/~dbd/cs831/notes/confusion_matrix/confusion_matrix. html. [Diakses 29 December 2015].

[13] A.S. Rosa dan M. Shalahuddin, Modul Pembelajaran Rekayasa Perangkat Lunak (Terstruktur dan Berorientasi Objek), Bandung: Modula, 2013.

[14] Prasetyo, E., Data Mining Mengolah Data Menjadi Informasi Menggunakan Matlab , Yogyakarta: Andi, 2014.

[15] Wijayanto, I., dan Dwifebrianti, R., Jenis Tipe Jangkauan Suara pada Pria dan Wanita Menggunakan Metoda Mel-Frequency Cepstral Cefficient dan Jaringan Syaraf Tiruan Backpropagation , Insitut Teknologi Telkom Bandung.

[16] Ghassemian, M., Strange, K., Speaker Identification Features, Models and Robustness . Kongens Lyngby, Denmark : 2009.


(10)

1

1 BAB 1 PENDAHULUAN

1.1 Latar Belakang Masalah

Speaker verification adalah proses verifikasi seorang pembicara, dimana sebelumnya telah diketahui identitas pembicara tersebut berdasarkan data yang telah di inputkan. Untuk dapat melakukan speaker verification, data suara akan melalui proses ekstraksi ciri suara untuk mendapatkan informasi yang terkandung di dalam data suara. Penelitian sebelumnya melakukan perbandingan terhadap beberapa metode untuk ekstraksi ciri suara [7]. Pada penelitian tersebut metode Mel Frequency Cepstrum Coefficients (MFCC) mempunyai tingkat keakuratan tertinggi dengan tingkat pengenalan 85,3% dan waktu ekstraksi ciri tercepat dibandingkan dengan metode ekstraksi ciri yang lainnya, sehingga metode MFCC adalah metode yang baik untuk ekstraksi fitur dalam pengenalan suara.

Penelitian sebelumnya yang menerapkan metode MFCC dan berkaitan dengan speaker verification telah dilakukan oleh Darma dan Adi [1], pada penelitian tersebut digunakan metode MFCC untuk proses ekstraksi ciri suara dan DTW (Dynamic Time Warping) untuk proses pencocokan [1]. Hasil dari ekstraksi fitur menggunakan metode MFCC digunakan untuk proses pencocokan, dimana proses pencocokan ini akan membandingkan hasil ekstraksi fitur dari data uji dengan hasil ekstraksi fitur dari data latih yang terdapat pada database. Pencocokan suara menggunakan DTW memiliki kelemahan yaitu, sulit untuk mengevaluasi dua elemen dari dua sekuens yang berbeda dan kompleksitasnya tidak memuaskan, sehingga pada pengujian dari sistem verifikasi suara pada penelitian tersebut menghasilkan rata-rata akurasi sebesar 73,260%.

Pada saat dilakukan pencocokan, hasil filter pada MFCC yang tersebar tidak merata mempengaruhi banyaknya informasi yang diperoleh untuk mendapatkan karakter suara seseorang [15]. Clustering dapat mengelompokan data hasil filter MFCC berdasarkan kemiripan dari hasil filter MFCC tersebut, salah satunya dengan menggunakan k-mean clustering. K-means clustering digunakan untuk mempartisi vektor hasil ekstraksi fitur ke dalam (k) vektor pusat. Keuntungan


(11)

menggunakan k-means clustering yaitu dapat mengurangi storage memory yang digunakan untuk analisis informasi spektral dan mengurangi perhitungan yang digunakan untuk menentukan kemiripan dari vektor spektral [16]. Sebagai klasifikator digunakan jaringan syaraf tiruan Learning Vector Quantization (LVQ). LVQ adalah suatu metode untuk melakukan pembelajaran atau pelatihan pada lapisan kompetitif yang terawasi. LVQ melakukan pembelajaran terhadap hasil k-mean clustering yang merupakan vektor dari hasil filter MFCC. Hasil dari pembelajaran LVQ merupakan pattern yang akan disimpan pada basis pengetahuan di database yang akan digunakan untuk proses pencocokan suara. Proses pencocokan suara dapat dilakukan dengan pengukuran jarak terdekat menggunakan euclidean distance untuk mengetahui seberapa besar kemiripan suara dari data uji dengan data pattern yang ada di basis pengetahuan di database.

Berdasarkan uraian di atas, pada penelitian ini akan diterapkan K-Means Clustering dan Learning Vector Quantization untuk optimasi pada pengenalan suara. Pada tahap ekstraksi fitur menggunakan MFCC sebagai ekstraksi ciri suara yang berguna bagi proses pengenalan suara. K-Means Clustering digunakan untuk mempartisi hasil filter MFCC. LVQ digunakan sebagai klasifikator untuk mendapatkan model pattern dan untuk proses pencocokan menggunakan euclidean distance.

1.2 Rumusan Masalah

Berdasarkan penjelasan dari latar belakang ditemukan permasalahan yaitu bagaimana menerapkan K-Means Clustering dan Learning Vector Quantization untuk optimasi akurasi pada pengenalan suara.

1.3 Maksud dan Tujuan

Maksud dari penelitian ini adalah menerapkan K-Means Clustering dan Learning Vector Quantization untuk optimasi kasus pengenalan suara.

Tujuan yang ingin dicapai adalah untuk mengetahui seberapa besar akurasi dari penerapan K-Means Clustering dan Learning Vector Quantization pada pengenalan suara.


(12)

1.4 Batasan Masalah

Pembatasan masalah dilakukan agar penelitian yang dilakukan lebih terarah dan mencapai sasaran yang ditentukan, batasan masalah dalam penulisan skripsi ini yaitu sebagai berikut :

1. Pengenalan suara untuk memverifikasi pembicara berdasarkan identitasnya. 2. Kata yang diucapkan untuk perekaman suara adalah kata satu .

3. Perekaman dilakukan terhadap 4 orang. 4. Perekaman suara melalui microphone.

5. Perekaman suara dilakukan di lingkungan yang memiliki noise.

6. Perekaman suara dengan besar frekuensi 8000Hz, menggunakan 16 bit dan menggunakan channel mono.

7. Format berkas audio yang digunakan adalah .wav.

8. Pendekatan pembangunan perangkat lunak menggunakan pendekatan berorientasi objek.

1.5 Metodologi Penelitian

Metodologi penelitian untuk penyelesaian masalah yang dilakukan dalam penelitian ini dapat dilihat pada Gambar 1.1.


(13)

Start

Selesai Studi Literatur

Jurnal

Buku

Paper

Informasi Pendukung

Analisis

Masalah Analisis Data

Analisis Metode

Analisis Kebutuhan Fungsional Analisis

Proses

Implementasi dan Pengujian

Implementasi

Pengujian Akurasi

Perancangan perangkat lunak

Gambar 1.1 Langkah-Langkah Penelitian Berikut penjelasan lengkap dari Gambar 1.1:

1. Studi literatur

Pengumpulan data pada penelitian ini yaitu studi literatur, pengumpulan data dengan cara mengumpulkan referensi seperti jurnal, paper, buku referensi dan bacaan-bacaan yang ada kaitannya dengan pengenalan suara, metode Mel Frequency Cepstrum Coefficients, K-Means Clustering dan Learning Vector Quantization.


(14)

2. Analisis kebutuhan algoritma

Analisis yang dilakukan adalah sebagai berikut a. Analisis Masalah

Pada analisis masalah membahas suatu solusi untuk memecahkan masalah dalam pengenalan suara.

b. Analisis Proses

Pada analisis proses membahas tahapan yang dilakukan pada proses pengenalan suara.

c. Analisis Data

Pada analisis data terdapat data masukan dan data keluaran. Analisis data masukan membahas komponen-komponen yang menjadi data masukan pada proses pengenalan suara. Analisis data keluaran membahas komponen-komponen yang menjadi data keluaran pada proses pengenalan suara.

d. Analisis Metode

Pada analisis metode membahas metode yang digunakan meliputi MFFC,

K-Means Clustering dan LVQ.

e. Analisis Kebutuhan Fungsional

Pada analisis kebutuhan fungsional menggunakan pendekatan berorientasi objek terdiri dari use case diagram, use case scenario, activity diagram, class

diagram dan sequence diagram.

3. Perancangan perangkat lunak

Perancangan dilakukan untuk mengetahui rancangan dari basis data, struktur menu dan antarmuka.

4. Implementasi dan Pengujian

Pada langkah ini dilakukan implementasi dan pengujian sebagai berikut:

a. Dari hasil perancangan dilakukan implementasi ke dalam bahasa pemrograman untuk mulai dalam pembangunan perangkat lunak.

b. Pengujian untuk mengetahui seberapa besar akurasi yang dihasilkan oleh metode yang diterapkan pada pengenalan suara.


(15)

1.6 Sistematika Penulisan

Sistematika penulisan penelitian ini disusun untuk memberikan gambaran umum mengenai penelitian yang dikerjakan. Sistematika penulisan penelitian sebagai berikut:

BAB 1 PENDAHULUAN

Bab ini berisi penjelasan mengenai latar belakang permasalahan, rumusan masalah, maksud dan tujuan, batasan masalah, metodologi penelitian, serta sistematika penulisan dalam penelitian tentang penerapan K-Means Clustering dan Learning Vector Quantization.

BAB 2 LANDASAN TEORI

Bab ini berisi berbagai konsep dan teori-teori para ahli yang berkaitan dengan topik penelitian implementasi K-Means Clustering dan Learning Vector Quantization pada pengenalan suara.

BAB 3 ANALISIS KEBUTUHAN ALGORITMA

Bab ini berisi tahapan untuk menganalisis masalah, proses, data yang digunakan, algoritma dari K-Means Clustering dan Learning Vector Quantization pada pengenalan suara dan perancangan perangkat lunak.

BAB 4 IMPLEMENTASI DAN PENGUJIAN

Bab ini berisi implementasi dan pengujian. Implementasi meliputi implementasi perangkat lunak, implementasi perangkat keras, impelementasi basis data, implementasi class dan implementasi antarmuka. Pengujian pada bab ini berupa pengujian akurasi pengenalan suara untuk mengetahui seberapa besar akurasi yang diperoleh dari penerapan K-Means Clustering dan Learning Vector Quantization pada pengenalan suara dengan menggunakan k-fold cross validation. BAB 5 KESIMPULAN DAN SARAN

Bab ini berisi kesimpulan dari semua hal yang di bahas pada bab sebelumnya, hasil seberapa besar akurasi dari penerapan K-Means Clustering dan Learning Vector Quantization pada pengenalan suara, dan saran untuk kajian penelitian yang dilakukan selanjutnya.


(16)

7

2 BAB 2

LANDASAN TEORI

2.1 Pengenalan Suara

Dalam kehidupan sehari-hari, manusia melakukan berbagai jenis komunikasi dengan sesama manusia, misalnya: body language, berbicara (speech) dan lain-lain. Di antara banyak komunikasi yang dilakukan oleh manusia, berbicara memberikan paling banyak informasi penting dan paling efektif dalam berkomunikasi. Informasi-informasi tersebut antara lain : mengidentifikasi jenis kelamin, keadaan kesehatan, emosi, serta identitas pembicara [1]. Pengenalan suara dapat dikategorikan menjadi 2 bagian, yaitu sebagai berikut :

1. Speech recognition

Speech recognition adalah suatu teknologi yang mampu mengubah input suara menjadi suatu output tertentu, seperti contoh output penulisan text maupun output running program. Speech recognition merupakan teknologi yang dapat mengenali pembicaraan tanpa memperdulikan siapa pembicaranya. Speech recognition yang dikenal sebagai Automatic Speech Recognition (ASR), atau komputer pengenalan suara yang merupakan proses mengkonversi sinyal suara ke urutan kata-kata, melalui sebuah algoritma di implementasikan sebagai program komputer.

Speech Recognition juga merupakan pengenalan pola, dimana ada dua fase dalam pengenalan pola diawasi, yaitu, pelatihan dan pengujian. Proses ekstraksi fitur yang relevan untuk klasifikasi umum di kedua fase. Selama fase traning, parameter dari model klasifikasi yang diperkirakan dengan menggunakan sejumlah besar contoh kelas (data training). Selama fase pengujian atau fase pengenalan, fitur pola uji (data speech test) dicocokan dengan model yang dilatih dari masing-masing dan setiap kelas. Pola tes itu kemudian dinyatakan ke dalam model yang memiliki pola tes terbaik [8].

2. Speaker recognition

Speaker recognition adalah suatu proses yang bertujuan mengenali siapa yang sedang berbicara berdasarkan informasi yang terkandung dalam gelombang suara yang di inputkan. Speaker recognition dibagi menjadi 2 bagian, yaitu [1]:


(17)

a. Speaker verification

Speaker verification adalah proses verifikasi seorang pembicara, dimana sebelumnya telah diketahui identitas pembicara tersebut berdasarkan data yang telah diinputkan. Speaker verification melakukan perbandingan one to one (1:1) dalam arti bahwa fitur-fitur suara dari seorang pembicara dibandingkan secara langsung dengan fitur-fitur seorang pembicara tertentu yang ada dalam sistem. Bila hasil perbandingan (skor) tersebut lebih kecil atau sama dengan batasan tertentu (treshold), maka pembicara tersebut diterima, bila tidak maka akan ditolak (dengan asumsi semakin kecil skor berarti kedua sampel semakin mirip) [1].

b. Speaker identification

Speaker identification adalah proses mendapatkan identitas dari seorang pembicara dengan membandingkan fitur-fitur suara yang diinputkan dengan semua fitur-fitur dari setiap pembicara yang ada dalam database. Berbeda dengan pada speaker verification, proses ini melakukan perbandingan one to many (1:N) [1].

2.2 Jenis Pengenalan Suara

Sistem pengenalan suara dapat dipisahkan dalam beberapa kelas yang berbeda dengan mendeskripsikan jenis ucapan-ucapan mereka yaitu [9] :

a. Isolated Words

Isolated word recognizers biasanya memerlukan setiap ucapan harus tenang (karena kurangnya sinyal audio) pada kedua sisi sampel. Menerima satu kata atau ucapan tunggal pada satu waktu. Sistem ini memiliki pernyataan "Dengar / Tidak-Dengar", dimana jenis ini membutuhkan pembicara untuk menunggu dalam mengucapkan kata demi kata (biasanya melakukan pengolahan selama jeda).

b. Connected Words

Sistem connected words (ucapan yang terhubung) hampir serupa dengan isolated words, namun memungkinkan ucapan jeda minimal antara mereka.

c. Continuous Speech

Continuous speech recognizers memungkinkan pengguna untuk berbicara hampir secara alami, sedangkan komputer menentukan kontennya. Pengenalan


(18)

dengan kemampuan continuous speech adalah salah satu yang paling sulit karena mereka menggunakan metode khusus untuk menentukan batas ucapan.

d. Spontaneous Speech

Pada tingkat dasar, itu dapat dianggap sebagai pidato yang terdengar secara alami. Sebuah sistem speech recognition dengan kemampuan spontaneous speech harus mampu menangani berbagai variasi dari fitur-fitur speech alami seperti kata- kata yang dijalankan bersama-sama, "ums" dan "ahs", dan bahkan sedikit gagap. 2.3 Teknik-teknik speech recognition

Ada 4 teknik dalam Speech Recognition yaitu [8] :

a. Speech Analysis Technique

Speech data mengandung berbagai jenis informasi yang menunjukkan identitas pembicara. Tahapan speech analysis berkaitan dengan ukuran frame yang cocok untuk segmentasi sinyal suara dalam analisa dan ekstraksi yang lebih lanjut.

b. Feature Extraction Technique

Ekstraksi fitur speech dalam kategorisasi masalah adalah tentang mengurangi dimensi dari vektor input ketika mempertahankan membedakan kekuatan sinyal. Dari pembentukan dasar speaker identification dan speaker verification, bahwa jumlah pelatihan dan vektor uji diperlukan untuk masalah klasifikasi yang tumbuh dengan dimensi masukan yang diberikan sehingga kita membutuhkan fitur ekstraksi dari sinyal suara.

c. Modeling Technique

Tujuan dari modeling technique adalah untuk menghasilkan speaker models yang menggunakan fitur vektor pembicara khusus. Speaker modeling technique dibagi menjadi dua klasifikasi yaitu speaker recognition dan speaker identification. Speaker identification technique secara otomatis mengidentifikasi siapa yang berbicara berdasarkan informasi individual yang terintegrasi dalam sinyal suara. Speaker recognition juga dibagi menjadi dua bagian yaitu speaker dependant dan speaker independent. Dalam modus speaker independent dari speech recognation, komputer harus mengabaikan karakteristik khusus pembicara dari sinyal suara dan mengekstrak pesan yang dimaksudkan. Disisi lain dalam kasus speaker recognation


(19)

machine harus mengekstrak karakteristik pembicara dalam sinyal akustik. Tujuan utama dari speaker identification adalah membandingkan sinyal pidato dari pembicara tak dikenal ke database pembicara yang sudah dikenal. Sistem ini dapat mengenali pembicara, yang telah dilatih dengan sejumlah pembicara. Speaker recognition juga dapat dibagi menjadi dua metode, text dependent dan text independent. Dalam metode text dependent pembicara mengatakan kata kunci atau kalimat yang memiliki teks yang sama untuk menguji pelatihan dan pengenalan. Sedangkan text independent tidak bergantung pada teks tertentu yang diucapkan.

d. Matching Techniques

Mesin speech recognition mencocokkan sebuah kata yang terdeteksi dengan kata yang sudah diketahui salah satu dari teknik-teknik berikut :

1. Whole Word Matching

Mesin membandingkan sinyal digital-audio yang datang terhadap template rekaman kata. Teknik ini membutuhkan waktu lebih sedikit pengolahan dari pencocokan sub-kata, tetapi mensyaratkan bahwa pengguna (atau seseorang) merekam setiap kata yang akan dikenali, kadang-kadang beberapa ratus ribu kata. Template seluruh kata juga membutuhkan memori penyimpanan yang besar (antara 50 dan 512 byte per kata) dan hanya praktis jika pengenalan kosakata tersebut sudah dikenal ketika aplikasi dikembangkan.

2. Sub Word Matching

Mesin mencari sub-kata, biasanya fonem dan kemudian melakukan pengenalan pola lanjut. Teknik ini membutuhkan lebih banyak pemrosesan dari pencocokan seluruh kata, tetapi membutuhkan penyimpanan lebih sedikit (antara 5 dan 20 byte per kata). Selain itu, pengucapan kata dapat ditebak dari teks bahasa Inggris tanpa mengharuskan pengguna untuk berbicara kata yang sebelumnya.

2.4 Produksi Suara

Suara adalah sebuah signal yang merambat melalui media perantara. Suara dapat dihantarkan melalui media air, udara maupun benda padat. Dengan kata lain suara adalah gelombang yang merambat dengan frekuensi dan amplitude tertentu. Suara yang dapat didengar oleh manusia berkisar antara 20 Hz sampai dengan 20


(20)

KHz, dimana Hz adalah satuan dari frekuensi yang artinya banyaknya getaran per detik (cps / cycle per second) [1].

Perlengkapan produksi suara pada manusia secara garis besar terdiri dari jalur suara (vocal track) dan jalur hidung (nasal track). Jalur suara dimulai dari pita suara (vocal cords), celah suara (glottis) dan berakhir pada bibir. Jalur hidung dimulai dari bagian belakan langit-langit (velum) dan berakhir pada cuping hidung (nostrils) [1].

Proses menghasilkan suara dimulai dari udara masuk ke paru-paru melalui pernafasan, kemudian melalui trakea, udara masuk ke batang tenggorokan, dimana pada batang tenggorokan ini terdapat pita suara. Pita suara ini kemudian bergetar dengan frekuensi tertentu karena adanya aliran udara tersebut sehingga dihasilkan suara. Suara yang dihasilkan ini berbeda-beda sesuai dengan posisi lidah, bibir, mulut dan langit-langit pada saat itu [5].

Suara yang dihasilkan terdiri dari tiga bagian yaitu voiced sound, unvoiced sound dan plosive sound. Voiced sound terjadi jika pita suara bergetar dengan frekuensi antara 50 Hz sampai 250 Hz. Contoh voiced sound adalah bunyi pada kata ah , oh . Unvoiced sound terjadi jika pita suara tidak bergetar sama sekali. Contoh unvoiced sound adalah bunyi shh . Sedangkan plosive sound terjadi jika pita suara tertutup sesaat kemudian tiba-tiba membuka. Contoh plosive sound adalah bunyi beh pada kata benar, pah pada kata pasar [5].

2.5 Klasifikasi sinyal eksitasi

Berdasarkan sinyal eksitasi yang dihasilkan pada proses produksi suara, sinyal suara ucapan dapat dibagi menjadi tiga bagian, yaitu :

1. Sinyal silence

Sinyal pada saat tidak terjadi proses produksi suara ucapan, dan sinyal yang diterima oleh pendengar dianggap sebagai bising latar belakang.

2. Sinyal unvoiced

Sinyal unvoiced terjadi pada saat pita suara tidak bergetar, dimana sinyal eksitasi berupa sinyal random.


(21)

3. Sinyal voiced

Terjadi jika pita suara bergetar, yaitu pada saat sinyal eksitasi berupa sinyal pulsa kuasi-periodik. Selama terjadinya sinyal voiced ini, pita suara bergetar pada frekuensi fundamental – inilah yang dikenal sebagai pitch dari suara tersebut.

2.6 Konversi Analog Menjadi Digital

Signal – signal yang natural pada umumnya seperti signal suara merupakan signal continue dimana memiliki nilai yang tidak terbatas. Sedangkan pada komputer, semua signal yang dapat diproses oleh komputer hanyalah signal discrete atau sering dikenal sebagai istilah digital signal. Agar signal natural dapat diproses oleh komputer, maka harus diubah terlebih dahulu dari data signal continue menjadi discrete. Hal itu dapat dilakukan melalui 3 proses, diantaranya sebagai berikut [1] :

1. Proses sampling adalah suatu proses untuk mengambil data signal continue untuk setiap periode tertentu. Dalam melakukan proses sampling data, berlaku aturan Nyquist, yaitu bahwa frekuensi sampling (sampling rate) minimal harus 2 kali lebih tinggi dari frekuensi maksimum yang akan di sampling. Jika signal sampling kurang dari 2 kali frekuensi maksimum signal yang akan di sampling, maka akan timbul efek aliasing. Aliasing adalah suatu efek dimana signal yang dihasilkan memiliki frekuensi yang berbeda dengan signal aslinya.

2. Proses kuantisasi adalah proses untuk membulatkan nilai data ke dalam bilangan-bilangan tertentu yang telah ditentukan terlebih dahulu. Semakin banyak level yang dipakai maka semakin akurat pula data signal yang disimpan tetapi akan menghasilkan ukuran data besar dan proses yang lama.

3. Proses pengkodean adalah proses pemberian kode untuk tiap-tiap data signal yang telah terkuantisasi berdasarkan level yang ditempati.


(22)

Gambar 2.1 Proses Pembentukan Sinyal Digital

Pada Gambar 2.1 terjadi proses konversi sinyal analog menjadi sinyal digital, gambar sebelah kiri merupakan gambar sinyal asli yang masih berbentuk sinyal analog sedangkan gambar sebelah kanan merupakan gambar setelah melakukan proses konversi sinyal analog menjadi sinyal digital yang telah melalui proses sampling, kuantisasi dan pengkodean. Pada gambar sebelah kanan didapatkan data hasil dalam bentuk kode yaitu 100, 011, 001, 001, 010, 010, 010, 100, 101, 110, 100 dan 101.

2.7 Mel Frequency Cepstrum Coefficients

MFCC (Mel Frequency Cepstrum Coefficients) merupakan salah satu metode yang banyak digunakan dalam bidang speech technology, baik speaker recognition maupun speech recognition. Metode ini digunakan untuk melakukan feature extraction, sebuah proses yang mengkonversikan signal suara menjadi beberapa parameter [2]. Beberapa keunggulan dari metode ini adalah:

a. Mampu untuk menangkap karakteristik suara yang sangat penting bagi pengenalan suara, atau dengan kata lain dapat menangkap informasi-informasi penting yang terkandung dalam signal suara.

b. Menghasilkan data seminimal mungkin, tanpa menghilangkan informasi-informasi penting yang dikandungnya.

c. Mereplikasi organ pendengaran manusia dalam melakukan persepsi terhadap signal suara.


(23)

Gambar 2.2 Contoh Signal Suara

Pada Gambar 2.2 dapat dilihat contoh dari signal suara. Pengujian yang dilakukan untuk periode waktu yang cukup pendek (sekitar 10 sampai 30 milidetik) akan menunjukkan karakteristis signal suara yang stationary. Tetapi bila dilakukan dalam periode waktu yang lebih panjang karakteristik signal suara akan terus berubah sesuai dengan kata yang diucapkan.

MFCC feature extraction sebenarnya merupakan adaptasi dari sistem pendengaran manusia, dimana signal suara akan difilter secara linear untuk frekuensi rendah (dibawah 1000 Hz) dan secara logaritmik untuk frekuensi tinggi (diatas 1000 Hz). Gambar dibawah ini merupakan block diagram untuk MFCC [1].

Continuous

speech Pre emphasize Frame blocking

windowing Fast fourier

transform Mel frequency

warping Discrete cosine

transform

Cepstral liftering

frame spectrums

Mel spectrums

Mel capstrums

Feature extraction

DC-Removal


(24)

Pada Gambar 2.3 dapat dilihat proses MFFC, Continuos speech yaitu inputan suara dengan kata yang telah ditentukan oleh sistem, lalu proses Dc Removal untuk mendapatkan nilai normal dari sampel sinyal, lalu proses Pre-emphasize untuk memperbaiki signal dari gangguan noise, lalu proses Frame Blocking bertujuan untuk membagi sampel sinyal menjadi beberapa frame, lalu proses Windowing untuk mengurangi efek diskontinuitas pada ujung-ujung frame yang dihasilkan oleh proses frame blocking, lalu proses FFT sehingga diperoleh sampel sinyal dalam frekuensi domain, lalu proses Filterbank untuk mengetahui ukuran energi dari setiap frekuensi band, lalu proses DFT untuk mendapatkan mel cepstrums, langkah terakhir proses Cepstral Liftering, bertujuan menghaluskan spectrum signal.

2.7.1 DC Removal

Remove DC Components bertujuan untuk menghitung rata-rata dari data sampel suara, dan mengurangkan nilai setiap sampel suara dengan nilai rata-rata tersebut. Tujuannya adalah mendapat normalisasi dari data suara input [1].

D[n] = s[n] - �̅ , 0 ≤ n ≤ N-1 (2.1) Dimana : D[n] = sampel signal hasil proses DC removal

s[n] = sampel signal asli

�̅ = nilai rata-rata sampel signal asli. N = panjang signal

2.7.2 Pre Emphasize

Pre emphasize merupakan salah satu jenis filter yang sering digunakan sebelum sebuah signal diproses lebih lanjut. Filter ini mempertahankan frekuensi-frekuensi tinggi pada sebuah spektrum, yang umumnya tereliminasi pada saat proses produksi suara [1].

Tujuan dari Pre – emphasize Filetering ini adalah:

a. Mengurangi noise ratio pada signal, sehingga dapat meningkatkan kualitas signal.


(25)

b. Menyeimbangkan spektrum dari voiced sound. Pada saat memproduksi voiced sound, glottis manusia menghasilkan sekitar -12 dB octave slope. Namun ketika energy akustik tersebut dikeluarkan melalui bibir, terjadi peningkatan sebesar +6. Sehingga signal yang terekam oleh microphone adalah sekitar -6 dB octave slope. Dampak dari efek ini dapat dilihat pada Gambar 2.4 berikut:

Gambar 2.4 Contoh dari pre-emphasize pada sebuah frame

Pada Gambar 2.4, terdapat gambar tanpa Pre-Emphasize dan gambar dengan Pre-Emphasize, terlihat bahwa distribusi energi pada setiap frekuensi terlihat lebih seimbang setelah diimplementasikan pre-emphasize filter.

Bentuk yang paling umum digunakan dalam pre-emphasize filter adalah sebagai berikut :

H(z) = 1 - αz -1 (2.2)

Dimana 0.9 ≤ α ≤ 1.0, dan α € R. Formula diatas dapat dijadikan sebagai first order differentiator, sebagai berikut:

y[n] = s[n] – α s[n - 1] (2.3) Dimana : y[n] = signal hasil pre-emphasize filter

s[n] = signal sebelum pre-emphasize filter

Pada umumnya nilai α yang paling sering digunakan adalah antara 0.9 sampai 1.0.

Magnitude response (dB scale) untuk nilai α yang berbeda dapat dilihat pada gambar 2.5 berikut:


(26)

Gambar 2.5 Magnitude response dari pre-emphasize filter

Pada gambar 2.5 dapat dilihat perbedaan magnitude response dengan menggunakan α yang berbeda, α yang digunakan pada gambar tersebut yaitu 0,50, 0,80 dan 0,95.

2.7.3 Frame Blocking

Karena sinyal suara terus mengalami perubahan akibat adanya pergeseran artikulasi dari organ produksi vokal, signal harus diproses secara short segments (short frame). Panjang frame yang biasanya digunakan untuk pemrosesan signal adalah antara 10-30 milidetik. Panjang frame yang digunakan sangat mempengaruhi keberhasilan dalam analisa spektral. Di satu sisi, ukuran dari frame harus sepanjang mungkin untuk dapat menunjukkan resolusi frekuensi yang baik. Tetapi di lain sisi, ukuran frame juga harus cukup pendek untuk dapat menunjukkan resolusi waktu yang baik [1].

Proses frame ini dilakukan terus sampai seluruh signal dapat diproses. Selain itu, proses ini umumnya dilakukan secara overlapping untuk setiap frame- nya. Panjang daerah overlap yang umum digunakan adalah kurang lebih 30% sampai 50% dari panjang frame. Overlapping dilakukan untuk menghindari hilangnya ciri atau karakteristik suara pada perbatasan perpotongan setiap frame.


(27)

Jumlah frame = (( I-N)/M)+1) (2.4) I = Sample rate

N = Sample point ( Sample rate * waktu framing(s)) M = N/2

2.7.4 Windowing

Proses framing dapat menyebabkan terjadinya kebocoran spektral (spectral leakage) atau aliasing. Aliasing adalah signal baru dimana memiliki frekuensi yang berbeda dengan signal aslinya. Efek ini dapat terjadi karena rendahnya jumlah sampling rate, ataupun karena proses frame blocking dimana menyebabkan signal menjadi discontinue. Untuk mengurangi kemungkinan terjadinya kebocoran spektral, maka hasil dari proses framing harus melewati proses window [1].

Sebuah fungsi window yang baik harus menyempit pada bagian main lobe dan melebar pada bagian side lobe-nya. Berikut ini adalah representasi dari fungsi window terhadap signal suara yang diinputkan.

= (2.5)

n = 0,1,…,N-1

= nilai sampel signal hasil windowing = nilai sampel dari frame signal ke i = fungsi window

N = frame size

Ada banyak fungsi window, namun yang paling sering digunakan dalam aplikasi speaker recognition adalah hamming window. Fungsi window ini menghasilkan sidelobe level yang tidak terlalu tinggi (kurang lebih -43 dB), selain itu noise yang dihasilkan pun tidak terlalu besar.

Fungsi Hamming window adalah sebagai berikut :

= . − . �� (2.6)

n = 0,1,...,M-1 M = panjang frame


(28)

2.7.5 Fast Fourier Transform

DFT (Discrete Fourier Transform) merupakan perluasan dari transformasi fourier yang berlaku untuk signal-signal diskrit dengan panjang yang terhingga. Semua signal periodik terbentuk dari gabungan signal-signal sinusoidal yang menjadi satu yang dapat dirumuskan sebagai berikut :

�[ ] = ∑�=− [ ] − 2��� , ≤ ≤ − (2.7)

N = jumlah sampel yang akan diproses (N N) (n) = nilai sampel signal

K = variable frekuensi discrete, dimana akan bernilai (k = ) Bentuk yang digunakan dalam FFT adalah sebagai berikut

� = ∑ cos �� �

�= − ∑ � sin

�� �

�= (2.8)

Untuk menghitung hasil FFT digunakan rumus

| � | = [ + ] .9

Dengan persamaan 2.9 suatu signal suara dalam domain waktu dapat kita cari frekuensi pembentuknya. Hal inilah tujuan penggunaan analisa fourier pada data suara, yaitu untuk merubah data dari domain waktu menjadi data spektrum di domain frekuensi. Untuk pemrosesan signal suara, hal ini sangatlah menguntungkan karena data pada domain frekuensi dapat diproses dengan lebih mudah dibandingkan data pada domain waktu, karena pada domain frekuensi, keras lemahnya suara tidak seberapa berpengaruh [1].


(29)

Pada Gambar 2.6 dapat dilihat bahwa gambar sebelah kiri menunjukan gambar domain waktu dan gambar sebelah kanan menunjukan gambar domain frekuensi.

Untuk mendapatkan spektrum dari sebuah signal dengan DFT diperlukan N buah sampel data berurutan pada domain waktu, yaitu x[m] sampai x[m+N-1]. Data tersebut dimasukkan dalam fungsi DFT maka akan menghasilkan N buah data. Namun karena hasil dari DFT adalah simetris, maka hanya N/2 data yang diambil sebagai spektrum.

2.7.6 Mel Frequency Warping

Mel Frequency Wrapping umumnya dilakukan dengan menggunakan Filterbank. Filterbank adalah salah satu bentuk dari filter yang dilakukan dengan tujuan untuk mengetahui ukuran energi dari frequency band tertentu dalam signal suara. Filterbank dapat diterapkan baik pada domain waktu maupun pada domain frekuensi, tetapi untuk keperluan MFCC, filterbank harus diterapkan dalam domain frekuensi [1].

Filterbank menggunakan representasi konvolusi dalam melakukan filter terhadap signal. Konvolusi dapat dilakukan dengan melakukan multiplikasi antara spektrum signal dengan koefisien filterbank. Berikut ini adalah rumus yang digunakan dalam perhitungan filterbanks.

[ ] = ∑ [ ] [ ] =

.

N = jumlah magnitude spectrum

S[j] = magnitude spectrum pada frekuensi j

Hi[j] = koefisien filterbank pada frekuensi j (1 ≤ i M ) M = jumlah channel dalam filterbank

Filterbank dihitung menggunakan rumus sebagai berikut :

=


(30)

Rumus fungsi Mel Scale sebagai berikut :

= 9 × ( + ) .

Mel f = Fungsi Mel Scale

f = frekuensi

Persepsi manusia terhadap frekuensi dari signal suara tidak mengikuti linear scale. Frekuensi yang sebenarnya (dalam Hz) dalam sebuah signal akan diukur manusia secara subyektif dengan menggunakan mel scale. Mel frequency scale adalah linear frekuensi scale pada frekuensi dibawah 1000 Hz, dan merupakan logarithmic scale pada frekuensi diatas 1000 Hz.

2.7.7 Discrete Cosine Transform

DCT merupakan langkah terakhir dari proses utama MFCC feature extraction. Konsep dasar dari DCT adalah mendekorelasikan mel spectrum sehingga menghasilkan representasi yang baik dari property spektral local. Pada dasarnya konsep dari DCT sama dengan inverse fourier transform. Namun hasil dari DCT mendekati PCA (principle component analysis). PCA adalah metode static klasik yang digunakan secara luas dalam analisa data dan kompresi. Hal inilah yang menyebabkan seringkali DCT menggantikan inverse fourier transform dalam proses MFCC feature extraction [1].

Berikut adalah formula yang digunakan untuk menghitung DCT.

� = ∑ logSk cos [ ( − )�]

=

. n = 1,2,…, K

Sk = keluaran dari proses filterbank pada index k K = jumlah koefisien yang diharapkan

Koefisien ke nol dari DCT pada umumya akan dihilangkan, walaupun sebenarnya mengindikasikan energi dari frame signal tersebut. Hal ini dilakukan karena, berdasarkan penelitian-penelitian yang pernah dilakukan, koefisien ke nol ini tidak reliable terhadap speaker recognition


(31)

2.7.8 Cepstral Liftering

Hasil dari proses utama MFCC feature extraction memiliki beberapa kelemahan. Low order dari cepstral coefficients sangat sensitif terhadap spectral slope, sedangkan bagian high ordernya sangat sensitif terhadap noise. Oleh karena itu, cepstral liftering menjadi salah satu standar teknik yang diterapkan untuk meminimalisasi sensitifitas tersebut. Cepstral liftering dapat dilakukan dengan mengimplementasikan fungsi window terhadap cepsral features.

[ ] = { + sin � } .

L = jumlah cepstral coefficients

n = index dari cepstral coefficients

Cepstral liftering menghaluskan spektrum hasil dari main processor sehingga dapat digunakan lebih baik untuk pattern recognition.

Cepstral liftering menghaluskan spektrum hasil dari main processor sehingga dapat digunakan lebih baik untuk pattern recognition. Gambar 2.7 menunjukkan perbandingan spektrum dengan dan tanpa cepstral liftering.

Gambar 2.7 Perbandingan Spectrum

Pada gambar 2.7, gambar sebelah kiri menunjukan gambar tanpa cepstral liftering dan gambar sebelah kanan menunjukan gambar dengan cepstral liftering, dapat dilihat bahwa pola spectrum setelah dilakukan cepstral liftering lebih halus daripada spektrum yang tidak melalui tahap spectrum liftering.


(32)

2.8 K-Means Clustering

Clustering merupakan faktor yang paling fundamental dalam pattern recognition. Masalah utama dari clustering adalah mendapatkan beberapa nilai vektor pusat yang dapat mewakili keseluruhan vektor dari hasil feature extraction. K-means clustering adalah salah satu metode yang digunakan untuk mempartisi vektor hasil feature extraction ke dalam k vektor pusat [2].

K-Means Clustering adalah proses memetakan vektor-vektor yang berada pada lingkup wilayah yang luas besar menjadi sejumlah tertentu (k) vektor. Wilayah yang terwakili oleh vektor pusat hasil dari proses kuantisasi disebut sebagai cluster. Sebuah vektor pusat hasil dari proses kuantisasi dikenal sebagai codewords. Sedangkan kumpulan dari vektor pusat dikenal sebagai codebooks [2].

Keuntungan dari diimplementasikannya K-Means Clustering dalam merepresentasikan speech spectral vectors adalah :

1. Mengurangi storage memory yang digunakan untuk analisis informasi spektral. 2. Mengurangi perhitungan yang digunakan untuk menentukan kemiripan dari

vektor spektral.

Kelemahan dari penggunaan K-Means Clustering codebooks dalam merepresentasikan speech spectral vectors adalah :

1. Timbulnya spektral distorsi. Hal ini terjadi karena vektor yang dianalisa bukanlah vektor asli, tetapi sudah mengalami proses kuantisasi

2. Storage yang digunakan untuk menyimpan codebooks vektor sering kali menjadi masalah. Untuk jumlah codebooks yang besar, membutuhkan storage

yang cukup besar juga.

Algoritma K-Means adalah seperti berikut [14] : 1. Tentukan k (jumlah cluster) yang ingin dibentuk.

2. Bangkitkan k centroid (titik pusat cluster) awal secara random. 3. Untuk setiap record , temukan pusat cluster terdekat.

4. Untuk setiap k cluster , temukan pusat cluster, dan update lokasi dari setiap pusat cluster dengan nilai centroid yang baru. Pusat cluster diperoleh dengan cara menghitung nilai rata-rata dari data-data yang berada pada cluster yang sama.


(33)

5. Kembali ke langkah 3 – 5 sampai konvergen. 2.9 Learning Vector Quantization

Learning Vector Quantization (LVQ) adalah suatu metode untuk melakukan pembelajaran atau pelatihan pada lapisan kompetitif yang terawasi. LVQ belajar mengklasifikasikan vektor masukan ke kelas target yang ditentukan oleh pengguna [3].

Jaringan LVQ terdiri dari dua lapisan tersembunyi yaitu lapisan kompetitif dan lapisan linear. Lapisan kompetitif disebut juga Self Organizing Map (SOM). Disebut lapisan kompetitif karena neuron-neuron berkompetisi dengan algoritma kompetisi yang akan menghasilkan neuron pemenang (winning neuron). Pada jaringan LVQ, bias pada lapisan kompetitif dihilangkan. Lapis linear mengalih ragamkan kelas-kelas pada lapisan kompetitif ke klasifikasi target yang ditentukan oleh pengguna [3].

Arsitektur LVQ dapat dilihat pada Gambar 2.8 berikut :

Gambar 2.8 Arsitektur LVQ Algoritma LVQ adalah sebagai berikut :


(34)

a. Bobot awal variabel input ke-j menuju ke kelas (cluster) ke-i: Wij, dengan i=1,2,…, K; dan j=1,2,…, m.

b. Maksimum epoh: MaxEpoh. c. Parameter learning rate: α. d. Pengurangan learning rate: Decα. 1. Masukkan:

Data input: Xij; dengan i=1,2,…,n; dan j=1,2,…,m. Target berupa kelas: Tk;dengan k=1,2,…,n.

2. Tetapkan kondisi awal: epoh=0; 3. Kerjakan jika: (epoh ≤ MaxEpoh)

a. epoh = epoh+1;

b. Kerjakan untuk i=1 sampai n

i. Tentukan J sedemikian hingga ║Xi-Wj║ minimum; dengan j=1,2,…,K.

ii. Perbaiki Wj dengan ketentuan: - Jika T = Cj maka:

Wj = Wj + α (Xi - Wj) (21) - Jika T ≠ Cj maka:

Wj = Wj - α (Xi - Wj) (22)

c. Kurangi nilai α.(pengurangan α bisa dilakukan dengan: α = α - Decα; atau dengan cara: α =α -α*Decα)

2.10 Euclidean Distance

Euclidean distance adalah sebuah metode yang digunakan untuk mengukur jarak (distance). Euclidean distance sebenarnya merupakan generalisasi dari teorema phytagoras. Euclidean distance diformulasikan pada persamaan berikut:

, = √∑� −

= (2.15)

= jarak antara x dan y r = jumlah fitur dalam vektor


(35)

Jarak minimal yang mungkin antara dua vektor data adalah 0. Selain itu, jarak dari x ke y akan sama dengan y ke x, , = , [14].

2.11 K-Fold Cross Validation

Cross Validation adalah metode umum digunakan untuk mengevaluasi kinerja classifier. Dalam pendekatan cross validation, setiap record digunakan beberapa kali dalam jumlah yang sama untuk training dan tepat sekali untuk testing. Metode ini mempartisi data ke dalam dua sub set data yang berukuran sama. Pilih salah satu sebagai data training dan satu lagi untuk testing, kemudian dilakukan pertukaran fungsi dari subset sedemikian sehingga subset yang sebelumnya sebagai training set menjadi test set demikian sebelumnya. Pendekatan ini dinamakan two-fold- cross-validation. Total error diperoleh dengan menjumlahkan error-error untuk kedua proses tersebut. Metode k-fold cross-validation menggeneralisasi pendekatan ini dengan mensegmentasi data ke dalam k partisi berukuran sama. Selama proses, salah satu dari partisi dipilih untuk training, sedangkan sisanya untuk testing. Prosedur ini diulangi k kali sedemikian sehingga setiap partisi digunakan untuk testing tepat satu kali. Total error ditentukan dengan menjumlahkan error untuk semua k proses tersebut [6].

2.12 Confussion Matrix

Untuk mengevaluasi performa dari hasil proses klasifikasi dapat ditampilkan pada confussion matrix. Confussion Matrix berisi tentang klasifikasi aktual dan yang telah diprediksi yang dilakukan oleh sebuah sistem klasifikasi. Kinerja sebuah sistem klasifikasi umumnya dievaluasi dengan menggunakan data dalam matriks.Tabel berikut menunjukan contoh confussion matrix untuk klasifikasi masalah biner dua kelas [12].

Tabel 2.1 Confussion Matrix

Predicted Class

Kelas = 1 Kelas = 0

Actual Class Kelas = 1 f11 f10

Kelas = 0 f01 f00

Berdasarkan isi matrik confusion, maka dapat diketahui jumlah data dari masing-masing kelas yang diprediksi secara benar yaitu (f11+f00) dan data yang


(36)

diklasifikasikan salah yaitu (f10+f01). Untuk menghitung akurasi digunakan formula sebagai berikut:

� � � = � +� +� +�� +� (2.16)

2.13 Pemograman Berorientasi Objek

Pemograman berorientasi objek adalah suatu strategi pembangunan perangkat lunak yang mengorganisasikan perangkat lunak sebagai kumpulan objek yang berisi data dan operasi yang diberlakukan terhadapnya. Menggunakan pendekatan berorientasi objek akan memandang sistem yang akan dikembangkan sebagai suatu kumpuln objek yang berkorespondensi dengan objek dunia nyata. Dalam rekayasa perangkat lunak, konsep pendekatan berorientasi objek dapat diterapkan pada tahap analisis, perancangan, pemograman, dan pengujian perangkat lunak. Berikut adaah beberapa konsep dasar yang harus dipahami pemograman berorientasi objek [13] :

1. Kelas (Class)

Kelas adalah kumpulan objek-objek dengan karakteristik yang sama. Kelas merupakan definisi statik dan himpunan objek yang sama yang mungkin lahir atau diciptakan dari kelas tersebut. Sebuah kelas akan mempunyai sifat (atribut), kelakuan (operasi/metode), hubungan (relationship) dan arti. Suatu kelas dapat diturunkan dan kelas semula dapat diwariskan ke kelas yang baru.

2. Objek (Object)

Objek adalah abstraksi dan sesuatu yang mewakili dunia nyata seperti benda, manusia, satuan organisasi, tempat, kejadian, strutur, status, atau hal-hal lain yang bersifat abstrak. Objek merupakan suatu entitas yang mampu menyimpan informasi (status) dan mempunyai operasi (kelakuan) yang dapat diterapkan atau dapat berpengaruh pada status objeknya. Objek mempunyai siklus hidup yaitu diciptakan, dimanipulasi, dan dihancurkan.


(37)

3. Metode (Method)

Operasi atau metode pada sebuah kelas hampir sama dengan fungsi atau prosedur pada terstruktur. Sebuah kelas boleh memiliki lebih dari satu metode atau operasi. Metode atau operasi yang berfungsi untuk memanipulasi objek itu sendiri.

4. Atribut (Attribute)

Atribut dari sebuah kelas adalah variabel global yang dimiliki sebuah kelas. Atribut dapat berupa nilai atau elemen-elemen data yang dimiliki oleh objek

30 dalam kelas objek. Atribut secara individual oleh sebuah objek, misalnya berat, jenis, nama, dan sebagainya.

5. Abstraksi (Abstraction)

Prinsip untuk merepresentasikan dunia nyata yang kompleks menjadi satu bentuk model yang sederhana dengan mengabaikan aspek-aspek lain yang tidak sesuai dengan permasalahan.

6. Enkapulasi (Encapsulation)

Pembungkusan atribut data dan layanan (operasi-operasi) yang dipunyai objek untuk menyembunyikan implementasi dan objek sehingga objek lain tidak mengetahui cara kerja.

7. Pewarisan (Inheritance)

Mekanisme yang memungkinkan satu objek mewarisi sebagian atau seluruh definisi dan objek lain sebagai bagian dari dirinya.

8. Antarmuka (Interface)

Antarmuka atau interface sangat mirip dengan kelas, tetapi tanpa atribut kelas dan tanpa memiliki metode yang dideklarasikan. Antarmuka biasanya digunakan agar kelas lain tidak langsung mengakses ke suatu kelas.

9. Reusability

Pemanfaatan kembali objek yang sudah didefinisikan untuk suatu permasalahan pada permasalahan lainnya yang melibatkan objek tersebut.

10. Generalisasi dan Spesialisasi

Menunjukkan hubungan antara kelas dan objek yang umum dengan kelas dan objek yang khusus. Misalnya kelas yang lebih umum (generalisasi) adalah kendaraan darat dan kelas khususnya (spesialisasi) adalah mobil, motor, dan kereta.


(38)

11. Komunikasi antar objek

Komunikasi antar-objek dilakukan lewat pesan (message) yang dikirim dan satu objek ke objek lainnya.

12. Polimorfisme (Polymorphism)

Kemampuan suatu objek untuk digunakan dibanyak tujuan yang berbeda dengan nama yang sama sehingga menghemat baris program.

13. Package

Package adalah sebuah kontainer atau kemasan yang daoat digunakan untuk mengelompokkan kelas-kelas sehingga memungkinkan beberapa kelas yang bernama sama disimpan dalam package yang berbeda.

2.14 C#

C# merupakan sebuah bahasa pemrograman yang berorientasi objek yang dikembangkan oleh Microsoft sebagai bagian dari inisiatif kerangka .NET Framework. Bahasa pemrograman ini dibuat berbasiskan bahasa C++ yang telah dipengaruhi oleh aspek-aspek ataupun fitur bahasa yang terdapat pada bahasa-bahasa pemrograman lainnya seperti Java, Delphi, Visual Basic, dan lain-lain dengan beberapa penyederhanaan [10].

2.15 Unified Modeling Language

UML singkatan dari Unifed Modeling Language yang berarti bahasa pemodelan standar. UML merupakan bahasa standar untuk merancang dan mendokumentasikan perangkat lunak dengan cara berorientasi objek. Ada beberapa diagram yang digunakan proses pembuatan perangkat lunak berorientasi objek diantaranya, use case diagram, activity diagram, class diagram dan sequence diagram[13].

2.15.1 Use Case Diagram

Use case diagram merupakan pemodelan untuk tingkah laku (behavior) pada sistem yang akan dibuat. Use case mendeskripsikan sebuah interaksi antara satu atau lebih aktor dengan sistem yang akan dibuat. Use case diagram digunakan


(39)

untuk mengetahui fungsi apa saja yang terdapat pada sistem. Terdapat dua hal utama yang diperlukan dalam pembentukan suatu use case diagram yaitu aktor dan use case.

1. Aktor merupakan orang, benda maupun sistem lain yang berinteraksi dengan sistem yang akan dibangun.

2. Use Case merupakan fungsionalitas atau layanan yang disediakan oleh sistem

sebagai unit-unit yang saling bertukar pesan antar unit atau aktor.

2.15.2 Class Diagram

Class diagram menggambarkan interaksi dan relasi antar kelas yang ada di dalam suatu sistem. Kelas memiliki atribut dan metode. Atribut merupakan variabel-variabel yang dimiliki oleh suatu kelas. Metode adalah fungsi-fungsi yang dimiliki oleh suatu kelas. Atribut dan metode dapat memiliki salah satu sifat sebagai berikut:

1. Private, tidak dapat dipanggil dari luar kelas yang bersangkutan.

2. Protected, hanya dapat dipanggil oleh kelas yang bersangkutan dan anak-anak

yang mewarisinya.

3. Public, dapat dipanggil oleh siapa saja.

Class diagram menggambarkan relasi atau hubungan antar kelas dari sebuah sistem. Berikut ini beberapa gambaran relasi yang ada dalam class diagram:

1. Association

Hubungan antar class yang statis. Class yang mempunyai relasi asosiasi menggunakan class lain sebagai atribut pada dirinya.

2. Aggregation

Relasi yang membuat class yang saling terikat satu sama lain namun tidak terlalu berkegantungan.

3. Composition

Relasi agregasi dengan mengikat satu sama lain dengan ikatan yang sangat kuat dan saling berkegantungan.


(40)

4. Dependency

Hubungan antar class dimana class yang memiliki relasi dependency

menggunakan class lain sebagai atribut pada method.

5. Realization

Hubungan antar class dimana sebuah class memiliki keharusan untuk mengikuti aturan yang ditetapkan class lainnya.

2.15.3 Sequence Diagram

Sequence diagram menggambarkan kelakuan objek pada use case dengan mendeskripsikan waktu hidup objek dan message yang dikirimkan dan diterima antar objek. Oleh karena itu untuk menggambarkan sequence diagram maka harus diketahui objek-objek yang terlibat dalam sebuah use case beserta metode-metode yang dimiliki kelas yang diinstansiasi menjadi objek itu.

Banyaknya sequence diagram yang harus digambar adalah sebanyak pendefinisian use case yang memiliki proses sendiri atau yang penting semua use case yang telah didefinisikan interaksi jalannya pesan sudah dicakup pada sequence diagram sehingga semakin banyak use case yang didefinisikan maka sequence diagram yang harus dibuat juga semakin banyak. Penomoran pesan berdasarkan urutan iteraksi pesan. Penggambaran letak pesan harus berurutan, pesan yang lebih atas dari lainnya adalah pesan yang berjalan terlebih dahulu.

2.15.4 Activity Diagram

Activity diagram menggambarkan workflow (aliran kerja) atau aktivitas dari sebuah sistem, proses bisnis atau menu yang ada pada perangkat lunak. Setiap use case yang telah dibentuk digambarkan aktivitasnya dalam activity diagram, mulai dari peran aktor, peran sistem, dan decision. Activity diagram juga banyak digunakan untuk mendefinisikan hal-hal berikut:

1. Rancangan proses bisnis dimana setiap urutan aktivitas yang digambarkan merupakan proses bisnis sistem.

2. Urutan atau pengelompokan tampilan dari sistem / user interface dimana setiap aktivitas dianggap memiliki sebuah rancangan tampilan antarmuka.


(41)

3. Rancangan pengujian dimana setiap aktivitas dianggap memerlukan sebuah pengujian yang perlu didefinisikan kasus ujinya.

4. Rancangan menu yang ditampilkan pada perangkat lunak.

2.16 Tools Pembangunan Perangkat Lunak

Adapun beberapa perangkat lunak pendukung dalam pembuatan aplikasi pengenalan suara ini diantaranya:

2.16.1 Microsoft Visual Studio

Microsoft Visual Studio merupakan sebuah perangkat lunak lengkap yang dapat digunakan untuk melakukan pengembangan aplikasi, baik itu aplikasi bisnis, aplikasi personal, ataupun komponen aplikasinya, dalam bentuk aplikasi console, aplikasi Windows, ataupun aplikasi Web. Visual Studio mencakup kompiler, SDK, Integrated Development Environment (IDE), dan dokumentasi yang umumnya berupa MSDN Library. Kompiler yang dimasukkan ke dalam paket Visual Studio antara lain Visual C++, Visual C#, Visual Basic, Visual Basic .NET, Visual InterDev, Visual J++, Visual J#, Visual FoxPro, dan Visual SourceSafe.

Microsoft Visual Studio dapat digunakan untuk mengembangkan aplikasi dalam native code (dalam bentuk bahasa mesin yang berjalan di atas Windows) ataupun managed code (dalam bentuk Microsoft Intermediate Language di atas .NET Framework). Selain itu, Visual Studio juga dapat digunakan untuk mengembangkan aplikasi Silverlight, aplikasi Windows Mobile (yang berjalan di atas .NET Compact Framework) [10].

2.16.2 Basis Data

Basis Data dapat didefinisikan dalam sejumlah sudut pandang seperti himpunan kelompok data (arsip) yang saling berhubungan yang diorganisasi sedemikian rupa agar kelak dapat dimanfaatkan kembali dengan cepat dan mudah. Basis Data dapat diartikan pula sebagai kumpulan data yang saling berhubungan yang disimpan secara bersama sedemikian rupa dan tanpa pengulangan (redudansi) yang tidak perlu, untuk memenuhi berbagai kebutuhan [14].


(42)

Operasi dalam basis data:

1. Pembuatan basis data baru (create database). 2. Penghapusan basis data (drop database).

3. Pembuatan file/tabel baru ke suatu basis data (create table). 4. Penghapusan file/tabel dari suatu basis data (drop table).

5. Penambahan/pengisian data baru ke sebuah file/tabel di sebuah basis data (insert).

6. Pengambilan data dari sebuah file/tabel (retrieve/search). 7. Pengubahan data dari sebuah file/tabel (update).

8. Penghapusan data dari sebuah file/tabel (delete).

Operasi yang berkenaan dengan pembuatan objek (basis data dan tabel) merupakan operasi awal yang hanya dilakukan sekali dan berlaku seterusnya. Sedang operasi-operasi yang berkaitan dengan isi tabel (data) merupakan operasi rutin yang akan berlangsung berulang-ulang dan karena itu operasi-operasi inilah yang lebih tepat mewakili aktifitas pengelolaan dan pengolahan dalam basis data [14].

Database Management System (DBMS) atau dalam bahasa Indonesia sering disebut sebagai Sistem Manajemen Basis Data adalah suatu sistem aplikasi yang digunakan untuk menyimpan, mengelola, dan menampilkan data. Suatu sistem aplikasi disebut DBMS jika memenuhi persyaratan minimal sebagai berikut: 1. Menyediakan fasilitas untuk mengelola akses data.

2. Mampu menangani integritas data.

3. Mampu menangani akses data yang dilakukan secara bersamaan. 4. Mampu menangani backup data.

Database MySQL merupakan sistem manajemen basis data SQL yang sangat terkenal dan bersifat open source. MySQL dibangun, didistribusikan, dan didukung oleh MySQL AB. MySQL AB merupakan perusahaan komersial yang dibiayai oleh pengembang MySQL. MySQL mempunyai dua macam lisensi yaitu lisensi yang bersifat open source dengan menggunakan GNU (General Public License) dan lisensi kedua berupa Standard Commercial License yang dapat dibeli dari MySQL AB.


(43)

Dalam konteks bahasa SQL, informasi disimpan dalam tabel-tabel yang secara logis merupakan struktur dua dimensi yang tersimpan atas baris-baris data (row atau record) yang berada dalam satu atau lebih kolom (column). Baris pada tabel disebut insance dari data sedangkan kolom sering disebut sebagai atributes atau field. MySQL yang berjalan di sistem operasi Windows terbukti sangat stabil. MySQL versi Windows mempunyai fitur yang sama dengan MySQL versi Unix [14].


(44)

35

Dalam pengenalan suara, proses ekstraksi ciri suara dan pencocokan suara sangatlah penting karena untuk menghasilkan suatu speaker recognition yang baik dibutuhkan keakurasian yang baik. Metode yang digunakan untuk ekstraksi ciri suara dan pencocokan suara pun dijadikan suatu pertimbangan. Di penelitian sebelumnya dijelaskan bahwa metode MFCC dan DTW pada pengujian dari sistem verifikasi suara menghasilkan rata-rata akurasi sebesar 73,260% [1].

Penelitian sebelumnya untuk ekstraksi ciri suara menjelaskan bahwa ekstraksi ciri MFCC mempunyai tingkat keakuratan tertinggi dengan tingkat pengenalan 85,3% dan waktu ekstraksi ciri tercepat dibandingkan dengan metode ekstraksi ciri yang lainnya [7].

Hasil dari ekstraksi fitur menggunakan metode MFCC akan digunakan untuk proses pencocokan, dimana proses pencocokan ini akan membandingkan hasil ekstraksi fitur dari data uji dengan hasil ekstraksi fitur data latih yang terdapat pada database. Pada saat dilakukan pencocokan, hasil filter pada MFCC yang tersebar tidak merata mempengaruhi banyaknya informasi yang diperoleh untuk mendapatkan karakter suara seseorang [16]. Clustering dapat mengelompokan data hasil filter MFCC berdasarkan kemiripan dari hasil filter MFCC tersebut, salah satunya dengan menggunakan k-mean clustering. K-Means Clustering digunakan untuk mempartisi vektor hasil ekstraksi fitur ke dalam (k) vektor pusat [2]. K-Means Clustering juga mengurangi waktu pemrosesan untuk pencocokan suara dengan membuat vektor data sebagai representasi dari keseluruhan data hasil filter MFCC. Sebagai klasifikator digunakan jaringan syaraf tiruan Learning Vector Quantization (LVQ). LVQ melakukan pembelajaran terhadap hasil k-mean clustering yang merupakan vektor dari hasil filter MFCC. Hasil dari pembelajaran LVQ akan disimpan sebagai model pattern pada database yang akan digunakan untuk proses pencocokan suara. Proses pencocokan suara dilakukan dengan pengukuran jarak


(45)

terdekat menggunakan euclidean distance untuk mengetahui seberapa besar kemiripan suara data uji dengan model pattern.

Berdasarkan uraian tersebut, pada penelitian ini akan diterapkan K-Means Clustering dan LVQ untuk optimasi akurasi pada pengenalan suara. Di harapkan dari proses verifikasi suara dengan penerapan metode tersebut diketahui seberapa besar pengaruh akurasinya.

3.2 Analisis Proses

Proses dari sistem pengenalan suara menggunakan Metode Mel Frequency Cepstrum Coefficients (MFCC), K-Means Clustering dan Learning Vector Quantization (LVQ) adalah proses perekaman suara (voice recorder), proses latih (training mode) dan proses pengujian (testing mode).

Voice Recorder merupakan bagian yang bertugas merekam suara pembicara. Suara direkam dengan menggunakan format PCM (pulse code modulation). Alat yang dibutuhkan untuk proses ini adalah microphone dan audio speaker.

Training Mode adalah bagian yang bertugas mempelajari dan memodelkan suara pembicara. Pembelajaran terhadap suara pembicara dilakukan dengan membuat model dari suara pembicara kemudian menyimpannya ke dalam database. Testing Mode merupakan bagian yang bertugas mengenali suara pembicara. Pengenalan suara dilakukan dengan melakukan pencocokan data uji dengan data model pattern pada database. Pada pencocokan, perbandingan yang dilakukan adalah perbandingan 1:1 dimana model suara dari A langsung dibandingkan dengan hasil pembelajaran pemodelan suara A yang ada dalam database.


(46)

Proses pengenalan suara menggunakan metode MFCC, k-means clustering dan learning vector quantization dapat dilihat pada Gambar 3.1 berikut :

Feature Extraction

(MFCC) Sampel

Suara

Database

Verified Training Mode

Testing Mode

Pembelajaran LVQ

K-Means Clustering

Pencocokan Suara Feature

Extraction (MFCC) Sampel

Suara

K-Means Clustering

1 2

3

4 5 6

Gambar 3.1 Alur Proses Pengenalan Suara

Gambar 3.1 merupakan alur proses pengenalan suara, berikut penjelasannya: 1. Pada sample suara training mode akan dilakukan feature extraction

menggunakan metode MFCC.

2. Hasil feature extraction di kluster menggunakan k-means clustering dan disimpan dalam database.

3. Pembelajaran LVQ mengambil data latih dari database lalu melakukan pembelajaran sehingga menghasilkan pemodelan pembelajaran yang disimpan

ke database.

4. Pada sample suara testing mode akan dilakukan feature extraction menggunakan metode MFCC.

5. Hasil feature extraction di kluster menggunakan k-means clustering.

6. Titik pusat hasil clustering pada langkah no.5 dicocokan dengan hasil pemodelan pembelajaran LVQ yang ada pada database dengan menggunakan


(47)

euclidean distance, setelah proses pencocokan selesai maka didapatkan hasil verifikasi.

3.3 Analisis Data Masukan

Analisis data terdiri dari analisis data untuk ektraksi ciri suara menggunakan metode MFCC dan analisis data untuk pencocokan suara menggunakan metode gabungan k-mean clustering dan LVQ. Analisis data tersebut terdiri dari analisis data masukan dan analisis data keluaran. Pada proses ekstraksi ciri suara, data masukan berbentuk berkas audio .wav maka data masukan berkas audio .wav yang bersifat sinyal analog akan dikonversikan dulu ke dalam bentuk sinyal digital melalui proses pre-processing dan akuisisi data. Pada proses pencocokan suara, data yang digunakan merupakan data hasil dari fitur ekstraksi ciri menggunakan metode MFCC. Berikut ini penjelasannya :

3.3.1 Analisis Data Masukan MFCC

Analisis data masukan MFCC terdiri dari :

3.3.1.1 Pre-Proccessing

Sinyal suara yang akan diproses bersifat analog sehingga jika akan dilakukan pengolahan secara digital, sinyal suara tersebut harus dikonversi menjadi sinyal digital, berupa urutan angka dengan tingkat presisi tertentu yang dinamakan analog to digital conversion dengan menggunakan analog to digital converter (ADC). Konsep kerja ADC terdiri dari tiga proses yaitu :

1. Sampling

Proses sampling adalah suatu proses untuk mengambil data signal continue untuk setiap periode tertentu. Data berupa sinyal diambil dengan cara merekam melalui microphone, data akan disimpan menggunakan format berkas file audio wav. Frekuensi sampling yang digunakan pada proses perekaman adalah 8000Hz. Durasi perekaman dilakukan dengan waktu yang pendek yaitu 1 detik.


(48)

2. Kuantisasi

Proses kuantisasi adalah proses untuk membulatkan nilai data ke dalam bilangan-bilangan tertentu yang telah ditentukan terlebih dahulu. Proses ini melakukan pengkonversian nilai analog ke dalam suatu nilai diskrit. Selama proses kuantisasi, ADC menkonversi setiap nilai analog ke dalam bentuk diskrit.

3. Pengkodean

Proses pengkodean adalah proses pemberian kode untuk tiap-tiap data signal yang telah terkuantisasi berdasarkan level yang ditempati. Pada proses ini, tiap nilai diskrit yang telah didapat, direpresentasikan dengan angka binary n-bit. Cara konversinya adalah dengan membagi bilangan desimal dengan bilangan biner dengan memperhatikan hasil sisa pembagian.

Pada perekaman suara untuk kata satu yang dilakukan selama 1 detik pada frekuensi 8000Hz, dengan format berkas audio .wav menggunakan 16 bit dan channel mono. Diambil data sinyal sebanyak 10, data tersebut adalah 17, 454, -296, 23, 163, 1208, -1211, -511, 199, -255.

3.3.1.2 Akuisisi Data

Data diperoleh dengan cara merekam suara melalui mikrofon yang dihubungkan dengan komputer. Pada analisis ini perekaman suara menggunakan frekuensi 8000Hz dan menggunakan format berkas audio .wav. Suara dengan format .wav ini bisa menggunakan 16 bits/sample dan 1 untuk channel mono. Durasi suara dengan jangka waktu yang pendek akan lebih mudah untuk diambil perbedaan fiturnya.

Dalam analisis ini digunakan contoh durasi rekaman yang diambil dalam waktu 1 detik dan kata yang di ucapkan adalah kata satu .


(49)

= �� ( ) .

X = Data sampling FS = Frekuensi sampling dt = durasi rekaman (detik) bit = jumlah bit resolusi

j = 1 untuk mono, dan 2 untuk stereo

Perhitungan untuk proses akuisisi data adalah : 8000 x 1 x (16/8) x 1 = 16000 byte

Untuk menghitung sample rate digunakan cara data sample dibagi dengan waktu perekaman, maka :

� = = ��

Untuk mendapatkan sample point maka pada analisis ini melakukan pengambilan data pada setiap 20ms maka :

Sample point = sample rate x waktu pengambilan data (3.2) Sample point = 16000 x 0,02 = 320

Untuk pengambilan data pada setiap 20 ms didapatkan 320 sample point. Data masukan yang digunakan merupakan data sinyal suara berdasarkan pengguna dan kata yang diucapkan yang dapat dilihat pada Tabel 3.1. Pada tabel tersebut terdapat sinyal suara yang akan menjadi data masukan untuk melakukan pengenalan suara pada verifikasi suara, data sinyal suara tersebut diperoleh dengan menggunakan fungsi wavread pada Matlab, berikut Tabel 3.1 :

Tabel 3.1 Data Masukan

No Identitas Kata Sinyal

1 User1 Satu 17, -454, -296, 23, 163, 1208, -1211, -511, 199, -255 2 User2 Satu -394, -457, -600, -804, -736, -842, -21, 160, 278, 280 3 User3 Satu -400, -391, -299, -322, -272, 20, -92, -229, -131, -113 4 User4 Satu -66, -58, -90, -51 , 188, 344, 342, 188, -511, -507 5 User5 Satu 93, -46, -11, , 162, -53, 113, 41, -115, -737, -508


(50)

3.3.2 Analisis Data Keluaran MFCC

Analisis data keluaran dari metode MFCC merupakan hasil feature extraction sebagai berikut:

Tabel 3.2 Data Keluaran

Identitas i Fitur ke i

User1 0 .9

User1 1 2.920313430 User1 2 53.501330636 User1 3 3.4044221681 User1 4 6.636070651 User1 5 3.4231766728 User1 6 16.820597761 User1 7 64.167837792 User1 8 48.658774043 User1 9 22.054725305

3.3.3 Analisis Data Masukan K-Means Clustering

Data masukan untuk k-means clustering adalah hasil dari feature extraction menggunakan metode MFCC sebagai berikut:

Tabel 3.3 Data Masukan

Identitas i Fitur ke i

User1 0 .9

User1 1 2.920313430 User1 2 53.501330636 User1 3 3.4044221681

User1 4 6.636070651

User1 5 3.4231766728 User1 6 16.820597761 User1 7 64.167837792 User1 8 48.658774043 User1 9 22.054725305


(51)

3.3.4 Analisis Data Keluaran K-Means Clustering

Data keluaran untuk k-means clustering adalah hasil dari clustering sebagai berikut:

Tabel 3.4 Data Keluaran

Cluster Nilai Centroid

0 45,49

1 33,94

2 17,02

3 93,846

4 58,79

5 6,374107

3.3.5 Analisis Data Masukan LVQ

Data masukan untuk LVQ adalah hasil dari clustering menggunakan metode k-means sebagai berikut:

Tabel 3.5 Data Masukan

Variabel Nilai Target

Kelas

User1 45.49, 33.94, 17.02, 93.846, 58.79, 58.79 1 User1 119.229, 137.860, 118.015, 61.877, 39.471, 2.124 1 User2 151.004, 19.627, 183.137, 93.997, 69.1228, 3.187 2 User2 99.691, 105.655, 87.291, 45.977, 27.787, 1.593 2

3.3.6 Analisis Data Keluaran LVQ

Data masukan untuk LVQ adalah hasil dari clustering menggunakan metode k-means clustering sebagai berikut:

Tabel 3.6 Data Keluaran

Target Nilai

1 84.502, 85.727, 69.456, 36.124, 21.303, 1.276 2 134.619, 67.084, 26.672, 14.948, 43.049, 1.062


(52)

3.4 Analisis Metode

Metode yang diterapkan pada pengenalan suara meliputi MFCC dan gabungan K-Means Clustering dan LVQ. Algoritma MFCC terdiri dari beberapa algoritma lagi yaitu algoritma dc removal, pre-emphasize, frame blocking, windowing, dct, filterbank, dct dan cepstral liftering. Berikut ini adalah analisis dari masing-masing metode yang digunakan :

3.4.1 Metode MFCC

Metode MFCC terdiri dari beberapa proses yaitu dc removal, pre-emphasize, frame blocking, windowing, discrte fourier transfrom, filterbank, discrete cosine transform dan cepstral liftering.

3.4.1.1 DC Removal

Start

i  0 i < jumlah

sampel signal

Sum  sum + sig[i]

Sum  sum / i

i < jumlah sampel signal

Dc[i]  sig[i] - sum

End Y

N

Y

N N

Sum  0 i  0 SigDouble DcDouble

Input Speech sample

Remove dc Speech sample i  i +1

i  i +1


(53)

Proses DC removal dilakukan untuk menghitung rata-rata dari data sampel suara, dan mengurangkan nilai setiap sampel suara dengan nilai rata-rata tersebut. Tujuannya adalah mendapat normalisasi dari data suara input.

Perhitungan DC Removal untuk kata satu , dengan data sinyalnya dapat dilihat pada Gambar 3.3 berikut:

Gambar 3.3 Sinyal Suara

Data sinyal tersebut dalam numerik adalah sebagai berikut : Tabel 3.7 Data Sinyal

i Signal ke i

0 -0.0036

1 -0.0439

2 -0.0405

3 -0.0376

4 -0.0377

5 -0.0416

6 -0.0424

7 -0.0395

8 -0.0369

9 -0.0403

10 -0.0435

11 -0.0413

12 -0.0375

13 -0.0395

14 -0.0427

15 -0.0419


(54)

i Signal ke i

17 -0.033

18 -0.0348

19 -0.0357

20 -0.0352

21 -0.0308

22 -0.0291

23 -0.0303

24 -0.0327

25 -0.035

26 -0.0369

27 -0.0372

28 -0.0365

29 -0.036

Hitung nilai rata-rata sinyal :

x̅ = �0+⋯+��

� �ℎ � � (3.3)

x̅ = − . + ⋯ + − . = , 9

Hitung DC Removal :

D[n] = s[n] - x̅ , 0 ≤ n ≤ N-1 (3.4) D[n] = sampel signal hasil proses DC removal

s[n] = sampel signal asli

�̅ = nilai rata-rata sampel signal asli. N = panjang signal

= − x̅ = − . − , 9 = − .

Hitung untuk data sinyal berikutnya dengan cara yang sama, data sinyal setelah dilakukan DC Removal adalah :

Tabel 3.8 Data DC Removal

i DC Removal ke i

0 -0.0426


(55)

i DC Removal ke i

2 -0.0015

3 0.0014

4 0.0013

5 -0.0026

6 -0.0034

7 -0.0005

8 0.0021

9 -0.0013

10 -0.0045

11 -0.0023

12 0.0015

13 -0.0005

14 -0.0037

15 -0.0029

16 0.001

17 0.006

18 0.0042

19 0.0033

20 0.0038

21 0.0082

22 0.0099

23 0.0087

24 0.0063

25 0.004

26 0.0021

27 0.0018

28 0.0025


(56)

3.4.1.2 Pre-Emphasize

Start

i  signal length – 1 Alpha  0.97

DcDouble PeDouble

i > 0

Pe[i]  Dc[i] - Dc[i-1] * Alpha

Pe[i]  Dc[i] - Dc[i] * Alpha

i  i-1 Stop

Y

N Remove dc

speech sample

preemphasized speech sample

Gambar 3.4 Alur Pre Emphasize

Proses pre-emphasize merupakan salah satu jenis filter yang sering digunakan sebelum sebuah signal diproses lebih lanjut. Filter ini mempertahankan frekuensi-frekuensi tinggi pada sebuah spektrum, yang umumnya tereliminasi pada saat proses produksi suara. Pre – emphasize dilakukan untuk mengurangi noise ratio pada signal, sehingga dapat meningkatkan kualitas signal dan menyeimbangkan spektrum dari voiced sound.

y[n] = [ ] − α [ − ] (3.5) y[n] = signal hasil pre-emphasize filter

s[n] = signal sebelum pre-emphasize filter


(57)

y[ ] =− .

y[ ] = [ ] − α [ − ] = − . 9 − ,9 x − . = .

Hitung untuk data sinyal berikutnya dengan cara yang sama, data sinyal setelah pre-emphasize adalah sebagai berikut :

Tabel 3.9 Data Pre Emphasize

i Pre Empasize ke-i

0 -0.0426

1 0.036422

2 0.003253

3 0.002855

4 -0.005855

5 -0.003861

6 -0.000878

7 0.002798

8 0.002585

9 -0.003337

10 -0.003239

11 0.002065

12 0.003731

13 -0.001955

14 -0.003215

15 0.000689

16 0.003813

17 0.00503

18 -0.00162

19 -0.000774

20 0.000599

21 0.004514

22 0.001946

23 -0.000903

24 -0.002139

25 -0.002111

26 -0.00178

27 -0.000237


(58)

i Pre Empasize ke-i

29 0.000175

3.4.1.3 Frame Blocking

Data hasil perekaman suara merupakan sinyal analog yang berada dalam domain waktu yang bersifat variant time, yaitu suatu fungsi yang bergantung waktu. Proses frame blocking dilakukan dengan cara memotong-motong sinyal dalam slot-slot waktu tertentu agar dapat dianggap invariant. Setiap potongan tersebut disebut frame.

Jumlah frame = (( I-N)/M)+1) (3.6) I = Sample rate

N= Sample point M = N/2

Hitung Jumlah Frame :

Jumlah frame = −/ + = 99

Jumlah frame adalah 99 frame.

3.4.1.4 Windowing

Setelah melakukan proses frame blocking, proses selanjutnya adalah windowing. Fungsi pada proses windowing ini menggunakan fungsi Hamming Window sebagai berikut :

= . − . �− .

n = 0,1,...,M-1 M = panjang frame

= , − , cos ( , − ) = ,


(59)

Selanjutnya merepresentasikan fungsi window terhadap sinyal.

= .

n = 0,1,…,N-1

= nilai sampel signal hasil windowing = nilai sampel dari frame signal ke i = fungsi window

N = frame size

= ∗ =− . ∗ , =− .

Hitung dengan cara yang sama untuk data yang lainnya, data setelah dilakukan proses windowing adalah :

Tabel 3.10 Data Windowing

i Windowing ke-i

0 -0.003408

1 0.00291376

2 0.00026024

3 0.0002284

4 -4.64E-06

5 -0.00030888 6 -0.00007024

7 0.00022384

8 0.0002068

9 -0.00026696 10 -0.00025912

11 0.0001652

12 0.00029848 13 -0.0001564 14 -0.0002572 15 0.00005512 16 0.00030504

17 0.0004024

18 -0.0001296 19 -0.00006192 20 0.00004792 21 0.00036112


(60)

i Windowing ke-i

22 0.00015568 23 -7.224E-05 24 -0.00017112 25 -0.00016888 26 -0.0001424 27 -0.00001896 28 0.00006032

29 0.000014

3.4.1.5 Fast Fourier Transform

DFT merupakan perluasan dari transformasi fourier yang berlaku untuk signal-signal diskrit dengan panjang yang terhingga. Semua signal periodik terbentuk dari gabungan signal-signal sinusoidal yang menjadi satu yang dapat dirumuskan sebagai berikut :

�[ ] = ∑�−= [ ] −2��� , ≤ ≤ − .9

N = jumlah sampel yang akan diproses (N N) S(n) = nilai sampel signal

K = variable frekuensi discrete

= [− . cos �∗ ∗ ] − �∗ ∗ +

⋯+[ . cos �∗ ∗ 9 ] − �∗ ∗ 9= .

Hitung untuk data berikutnya, maka didapatkan hasil sebagai berikut: Tabel 3.11 Data FFT

i FFT ke-i

0 0.0002 1 0.001 2 0.0002 3 0.0003 4 0.0009


(61)

i FFT ke-i

5 0.0026 6 0.0044 7 0.0032 8 0.0033 9 0.0045 10 0.0048 11 0.0052 12 0.0058 13 0.0061 14 0.0058 15 0.0064 16 0.0058 17 0.0061 18 0.0058 19 0.0052 20 0.0048 21 0.0045 22 0.0033 23 0.0032 24 0.0044 25 0.0026 26 0.0009 27 0.0003 28 0.0002 29 0.001


(1)

117 5 BAB 5

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Berdasarkan hasil pengujian yang telah dilakukan pada penelitian ini, maka diperoleh kesimpulan bahwa penerapan k-means clustering dan learning vector quantization dapat diterapkan untuk pengenalan suara dengan tingkat persentase rata-rata akurasi sebesar 79,375% dengan menggunakan nilai k pada k-means clustering (k=6) dan nilai parameter pada pembelajaran learning vector quantization menggunakan learning rate (α=0,001), penurunan learning rate

(dec α=0,1) dan maksimum epoh=100. 5.2 Saran

Berdasarkan hasil penelitian yang telah dilakukan, penelitian ini masih dapat dikaji lebih lanjut. Adapun saran untuk kajian lebih lanjut sebagai berikut:

1. Noise berpengaruh pada tingkat keberhasilan pengenalan suara, diharapkan ada metode yang lebih baik yang dapat mengatasi masalah noise.

2. Melakukan kajian lebih lanjut untuk dapat mendeteksi suara yang tidak termasuk ke dalam salah satu anggota pembicara yang terdapat pada database. 3. Pada proses pembelajaran perlu dilakukan kajian lebih lanjut dengan menggunakan metode klasifikasi lain, misalnya menggunakan Artificial Neural

Network Backpropagation sebagai pembanding tingkat akurasi pada


(2)

(3)

Riwayat Pendidikan

1998 – 1999 TK Dharma Kartini 1999 – 2005 SD Negeri 3 Cimindi 2005 – 2008 SMP Negeri 7 Cimahi

2008 – 2011 SMA Pasundan 3 Bandung, Jurusan Ilmu Pengetahuan Alam (IPA) 2011 – 2016 Universitas Komputer Indonesia, S1 Program Studi Teknik

Informatika

Demikian biodata ini saya buat dengan sebenar – benarnya.

Bandung, 27 Februari 2016

Mohamad Lukman Hakim Nugraha

BIODATA

Data Pribadi

Nama : Mohamad Lukman Hakim Nugraha

Nim : 10111507

Tempat/Tanggal Lahir : Bandung, 2 Oktober 1992 Jenis Kelamin : Laki-laki

Agama : Islam

Alamat : Jalan Leuwigajah No.15 Rt.03 Rw.17, Keluarahan Cibereum, Kecamatan Cimahi Selatan, Kota Cimahi, 40535

No. Telepon : 081321748399


(4)

(5)

(6)