PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Ukuran: px
Mulai penontonan dengan halaman:

Download "PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI"

Transkripsi

1 IDENTIFIKASI SUARA MANUSIA SEBAGAI KATA SANDI ATAU PASSWORD MENGGUNAKAN METODE HIDDEN MARKOV MODELS SKRIPSI Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer Program Studi Teknik Informatika Oleh : PETRA VALENTIN WAHYUNINGTIAS NIM : HALAMAN JUDUL BAHASA INDONESIA PROGRAM STUDI TEKNIK INFORMATIKA JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2013 i

2 HUMAN VOICE IDENTIFICATION AS A PASSWORD USING HIDDEN MARKOV MODELS A THESIS Presented as Partial Fulfillment of the Requirements To Obtain the Sarjana Komputer Degree In Departement of Informatics Engineering By : PETRA VALENTIN WAHYUNINGTIAS STUDENT ID : HALAMAN JUDUL BAHASA INGGRIS INFORMATICS ENGINEERING STUDY PROGRAM INFORMATICS ENGINEERING DEPARTMENT FACULTY OF SCIENCE AND TECHNOLOGY SANATA DHARMA UNIVERSITY YOGYAKARTA 2013 ii

3 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI

4 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI

5 HALAMAN PERSEMBAHAN DO WHAT YOU LOVE AND LOVE WHAT YOU DO This thesis belongs to Jesus Christ, my Saviour, my Life, my Eternal Love and my Power Thank You for stay with me and for gave me wonderful world My parent, my spring, my joy, my life Thank you for give me a chance to feel the world My fris and Audrey Thank you guys for stay with me v

6

7

8 ABSTRAK Suara manusia dapat dijadikan salah satu cara untuk mengidentifikasi apa yang diucapkan manusia dan siapa yang mengucapkannya Pada tugas akhir ini dikembangkan sebuah sistem yang dapat mengidentifikasi secara otomatis suara manusia dengan menggunakan pekatan Hidden Markov Models (HMM) dan ekstraksi ciri Mel-frequency Cepstral Coefficients (MFCC) Secara umum HMM digunakan untuk signal processing dan speech processing sedangkan MFCC merupakan salah satu metode ektraksi ciri yang digunakan untuk pengenalan suara manusia Penelitian ini menggunakan suara manusia yang terdiri dari 4 (empat) speaker(pembicara) yang terdiri dari 2 laki-laki dan 2 perempuan Pembagian data untuk proses training dan testing menggunakan metode 5-fold cross validation Hasil pengujian yang didapatkan dari proses identifikasi dengan berbagai kombinasi feature, windows state dan jumlah state diperoleh tingkat akurasi paling tinggi untuk speech recognition 95% dan untuk speaker recognition 93% viii

9 ABSTRACT Human voice can be one of many ways to identify what human said and who has the voice This research built a system for identifying automatically human voice using Hidden Markov Models (HMM) and feature extraction with Mel-frequency Cepstral Coefficients (MFCC) Generally HMM is use for signal processing and speech processing and MFCC is use for feature extraction for human voice This research employed four human as the object for the study Data including voices of two man and two woman Data for testing and training were separeted unsing 5-fold cross validation The highest result of identification using any combination of feature, windows size and number of states are 95% for speech recognition and 93% for speaker recognition ix

10 KATA PENGANTAR Puji dan syukur kepada Tuhan Yesus Kristus yang telah senantiasa memberikan berkat dan rahmat yang tak berkesudahan serta kesempatan yang sangat berharga sehingga penulis dapat menyelesaikan skripsi dengan judul Identifikasi Suara Manusia Sebagai Kata Sandi atau Password Menggunakan Metode Hidden Markov Models Dalam kesempatan ini, penulis juga ingin mengucapkan terima kasih sebesar-besarnya terhadap semua pihak yang telah memberi dukungan dan semangat sehingga skripsi ini dapat selesai : 1 Romo Dr C Kuntoro Adi, SJ, MA, MSc selaku dosen pembimbing dan dosen pembimbing akademik Teknik Informatika kelas A angkatan 2008 Terima kasih atas semua bantuan, bimbingan, pengorbanan waktu, kesabaran, ilmu serta semangat yang telah diberikan 2 Ibu Paulina Heruningsih Prima Rosa, Ssi, MSc selaku Dekan Fakultas Sains dan Teknologi Terima kasih atas semua bantuan dan bimbingan serta kesabarannya dalam menghadapi mahasiswa 3 Bapak Eko Hari Parmadi, Ssi, MKom dan bapak Alb Agung Hadhiatma, ST, MT selaku dosen penguji Terima kasih atas saran dan kritik yang telah diberikan 4 Seluruh Dosen Teknik Informatika yang selama masa kuliah telah membagikan ilmu dan pengetahuannya yang sangat berguna bagi penulis 5 Laboran Laboratorium Komputer, Tinus dan Fidi Terima kasih atas bantuan dan dukungannya x

11 xi 6 Staff Sekretariat Fakultas Sains dan Teknologi, Bapak Tukija, Bu Rina dan Bu Linda Terima kasih atas bantuan dan kesabarannya menghadapi penulis sehingga berbagai prosedur dapat diselesaikan dengan baik dan lancar 7 Kedua orang tua saya, Yohanes Sulistiono dan MM Lusia Terima kasih untuk semua kasih sayang dan perhatian yang tak terhingga 8 Kedua adikku, Bernadeta Listiani dan Felicia Ratriana Putri Terima kasih telah ada di dunia ini 9 Tim Ceriwis Pucha dan Itha Teman suka dan duka Terima kasih atas segala dukungan dan semangat serta kesabaran yang telah diberikan sehinggan skripsi kita selesai 10 Untuk Angga, Endra, Surya, Devi, Ocha, Siska, Bebeth, Esy, Agnes dan seluruh teman-teman Teknik Informatika angkatan 2008 Terima kasih atas dukungannya 11 Untuk Maleo, mbak Vero, mbak Lia dan Mbak Debby Terima kasih atas bantuannya untuk break ke negri sebrang sehingga skripsi ini dapat selesai dengan bahagia 12 Semua pihak yang telah membantu penulis dalam menyelesaikan skripsi Penulis menyadari masih banyak kekurangan yang terdapat dalam laporan tugas akhir ini Saran dan kritik sangat diharapkan untuk hasil yang lebih baik di masa depan Yogyakarta, 22 Mei 2013 Penulis

12 DAFTAR ISI HALAMAN JUDUL BAHASA INDONESIA I HALAMAN JUDUL BAHASA INGGRIS II HALAMAN PERSETUJUAN PEMBIMBING III HALAMAN PENGESAHAN IV HALAMAN PERSEMBAHAN V PERNYATAAN KEASLIAN KARY VI PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS VII ABSTRAK VIII ABSTRACT IX KATA PENGANTAR X DAFTAR ISI XII DAFTAR GAMBAR XVI DAFTAR TABEL XVIII BAB I PENDAHULUAN 1 11 LATAR BELAKANG MASALAH 1 12 RUMUSAN MASALAH 3 13 TUJUAN 3 14 BATASAN MASALAH 4 xii

13 xiii 15 METOLOGI PENELITIAN 6 16 SISTEMATIKA PENULISAN 7 BAB II LANDASAN TEORI 9 21 SPEECH PROCESSING 9 22 SPEECH RECOGNITION SPEAKER RECOGNITION Struktur Dasar dari Sistem Speaker Recognition FEATURE EXTRACTION MEL-FREQUENCY CEPSTRAL COEFFICIENTS (MFCC) Frame Blocking Windowing Fast Fourier Transform (FFT) Mel-Frequency Wrapping Cepstrum METODE HIDDEN MARKOV MODELS ( HMM ) ALGORITMA PEMODELAN HIDDEN MARKOV MODELS Algoritma Training dengan Baum-Welch Algoritma Testing dengan Viterbi METODE EVALUASI 5-FOLD CROSS VALIDATION 34 BAB III ANALISA DAN PERANCANGAN SISTEM PERANCANGAN SISTEM SECARA UMUM GAMBARAN SISTEM PROSES TRAINING 39

14 xiv 34 PROSES TESTING PERANCANGAN ANTAR MUKA SISTEM Halaman Depan Halaman Pengujian Halaman Bantuan SPESIFIKASI HARDWARE DAN SOFTWARE Hardware Software 48 BAB IV 49 ANALISA HASIL DAN IMPLEMENTASI SISTEM ANALISA HASIL IDENTIFIKASI SUARA IMPLEMENTASI ANTARMUKA SISTEM Halaman Depan Halaman Pilihan Menu Pengujian Halaman Pengujian Hidden Markov Models untuk Speech Recognition Halaman Pengujian Hidden Markov Models untuk Speaker Verification Halaman Pengambilan Suara Halaman Pengujian Sistem untuk Speech Recognition Halaman Pengujian Sistem untuk Speaker Verification Halaman Bantuan Halaman Tentang Programmer 75 BAB V 76 KESIMPULAN DAN SARAN 76

15 xv 51 KESIMPULAN SARAN 78 DAFTAR PUSTAKA 79 LAMPIRAN I 82 LAMPIRAN II 84 SCRIPT DAN FILE PENDUKUNG 84 LAMPIRAN III 161 HALAMAN BANTUAN 161

16 DAFTAR GAMBAR Gambar Keterangan Halaman 21 Cakupan speech processing (Joseph P Campbell, 1997) Skema Speech Recognition (Melissa, 2008) Struktur dari Speaker Identification (Furui, 1996) Struktur dari Speaker Verification (Furui, 1996) Diagram blok proses MFCC Proses frame blocking Sinyal dengan proses windowing Sinyal tanpa proses windowing Grafik hubungan skala mel dan frekuensi (IPB) Contoh mel-spaced Filter-bank (IPB) Contoh tiga tipe rantai HMM Ilustrasi dari operasi Baum-Welch Skema sistem pengenalan suara manusia Gambaran sistem secara umum Tahap training dan testing Proses tahap testing Proses tahap testing Rancangan halaman depan Rancangan halaman Pengujian sistem tahap pertama Rancangan jela peringatan apabila password salah Rancangan jela peringatan apabila password benar Rancangan halaman pengujian HMM tahap pertama Rancangan halaman pengujian HMM tahap kedua Rancangan halaman bantuan untuk cara kerja program Rancangan halaman bantuan tentang program Grafik Tingkat Akurasi Identifikasi Suara Manusia dengan 54 Feature MFCC_D untuk Speech Recognition 42 Grafik Tingkat Akurasi Identifikasi Suara Manusia dengan 55 Feature MFCC_D untuk Speaker Verification 43 Halaman Depan Halaman pilihan pengujian Halaman Pengujian Hidden Markov Model untuk Speech 63 Recognition 46 Halaman Pengujian Hidden Markov Model untuk Speaker 65 Verification 47 Halaman Pengambilan Suara Halaman Peringatan Halaman Pengujian Speech Recognition Halaman Pengujian Sistem Untuk Speaker Verification Halaman Pengujian Speech Recognition untuk speaker Angga Halaman Pengujian Speaker Verification untuk speaker Angga Halaman Pengujian Speech Recognition untuk speaker Yudhi Halaman Pengujian Speaker Verification untuk speaker Yudhi 72 xvi

17 xvii 415 Halaman Pengujian Speech Recognition untuk speaker Deta Halaman Pengujian Speaker Verification untuk speaker Deta Halaman Pengujian Speaker Verification untuk speaker yang tidak 74 terdaftar 418 Halaman Bantuan Halaman Tentang Programmer 75

18 DAFTAR TABEL Tabel Keterangan Halaman 21 Tingkat akurasi berbagai metode feature extraction 17 (Universite Pierre&MarrieCurrie, LA Science A Paris, 2004) 22 Pembagian kelompok data menjadi 5 bagian Gambaran metode 5-fold cross validation Contoh confusion matrix Hasil Akurasi Identifikasi Suara untuk Speech Recognition Hasil Akurasi Identifikasi Suara untuk Speaker Verification Hasil identifikasi suara berdasarkan tipe feature pada proses 56 Speech Recognition 44 Confusion Matrix MFCC_D untuk Speech Recognition Hasil identifikasi suara berdasarkan tipe feature pada proses 58 Speaker Recognition 46 Confusion Matrix MFCC_D untuk Speaker Recognition 59 xviii

19 BAB I PENDAHULUAN 11 Latar Belakang Masalah Meskipun teknologi sudah berkembang pesat tetapi keamanan pengguna teknologi masih perlu diperhatikan lagi Gangguan keamanan yang diakibatkan perkembangan teknologi dapat menyebabkan privasi seseorang terganggu Hal ini dapat dilihat dari berbagai contoh seperti password yang dicuri kemudian disalahgunakan, pembicaraan telepon yang disadap dan lain sebagainnya Maka dari itu, keamanan menjadi hal yang patut diperhatikan seiring dengan perkembangan teknologi Saat ini teknologi juga menawarkan berbagai fasilitas untuk meningkatkan keamanan masyarakat Salah satunya adalah dengan kata sandi atau password yang diaplikasikan dalam berbagai perangkat Tentu saja kata sandi yang ditawarkan bukan sandi konvensional seperti memasukkan angka atau huruf melainkan dengan menggunakan suara, deteksi retina, sidik jari serta pengenalan tulisan tangan Dari sekian banyak contoh tersebut pengenalan suara merupakan salah satu cara yang dapat digunakan sebagai kata sandi yang memiliki variasi yang cukup unik (Hidayanto dan Sumardi, 2006) Suara adalah salah satu hal yang membedakan antara manusia satu dengan yang lainnya Tiap individu memiliki karakter vokal, timbre dan 1

20 2 aksen yang berbeda bahkan yang kembar identik sekalipun Keunikan suara inilah yang dapat dijadikan sebagai kata sandi untuk meningkatkan keamanan pengguna dalam menggunakan suatu sistem (Setyabudi, Purwanto dan Warsono, 2007) Sudah banyak penelitian tentang pengenalan pola suara dengan menggunakan berbagi metode serta implementasi yang berbeda-beda Salah satu metode yang cukup baik dan memiliki akurasi yang tinggi dalam menangani variasi data dan keberagaman suara adalah Hidden Markov Models (HMM) dan dengan menggunakan ekstraksi ciri Melfrequency Cepstral Coefficients (MFCC) Pada penelitian Pengenalan Ucapan Kata Terisolasi dengan Metode Hidden Markov Models (HMM) melalui Ekstraksi Ciri Linear Predictive Coding ( LPC ) (Hidayanto dan Sumardi, 2006) dihasilkan akurasi yang berkisar pada angka 99,82% untuk pengenalan ucapan kata yang berkorelasi tinggi pada pengujian dengan data rekaman Sedangkan pada pengujian online memberikan akurasi berkisar pada angkan 87,58% LPC siri adalah salah satu metode yang digunakan untuk proses ekstrasi ciri Pada penelitian Identifikasi Pembicara Menggunakan Algoritme VF15 dengan MFCC sebagai Pengekstraksi Ciri (Zilvan & Muttaqien,2011) menghasilkan akurasi identifikasi suara tertinggi mencapai 97% VF15 merupakan salah satu algoritma yang digunakan dalam pengklasifikasian

21 3 Dari hasil penelitian tersebut, metode Hidden Markov Models dan ekstraksi ciri Mel-frequency Cepstral Coefficients akan digunakan penulis untuk mengidentifikasi suara manusia yang akan digunakan sebagai kata sandi atau password Judul dari tugas akhir ini adalah Identifikasi Suara Manusia Sebagai Kata Sandi atau Password Menggunakan Pekatan Hidden Markov Model Perbedaan tugas akhir ini dengan penelitian sebelumnya adalah selain untuk mengetahui apa yang akan diucapkan sebagai kata sandi, sistem juga akan mengidentifikasi pemilik suara 12 Rumusan Masalah Dari latar belakang masalah diatas, rumusan masalah yang diambil adalah Seberapa besar akurasi metode Hidden Markov Model mampu mengenali suara manusia dan bagaimana mengimplementasinya ke dalam sistem 13 Tujuan Merancang, menganalisa, mengimplementasi dan mengetahui kelebihan serta kekurangan metode Hidden Markov Models dalam menangani pengenalan suara sebagai kata sandi

22 4 14 Batasan Masalah 1 Pola suara yang diteliti adalah pola suara manusia yang mencakup suara laki-laki dan perempuan dengan mengucapkan kata tertentu Kata yang diucapkan adalah kata satu, dua, tiga, empat, lima, enam, tujuh, delapan, sembilan, dan nol Setiap kata yang diucapkan akan diulang sebanyak lima kali dengan menggunakan aksen atau cara pengucapan yang berbeda 2 Ekstraksi ciri atau feature extraction menggunakan Mel-frequency Cepstral Coefficients (MFCC) 3 Suara manusia yang diproses adalah suara berekstensi wav dan diambil dengan menggunakan microphone yang terhubung ke komputer menggunakan program Sound Recorder yang merupakan program bawaan dari Sistem Operasi Windows Suara direkam dengan menggunakan frekuensi sampling 44100Hz dengan karakteristik sound yang digunakan adalah stereo sound dengan bit data sebesar 16 bit 4 Pemodelan suara manusia menggunakan algoritma Baum-Welch 5 Identifikasi suara manusia menggunakan algoritma Viterbi 6 Terdapat 200 data yang akan digunakan untuk penelitian ini dengan rincian 100 data dari suara perempuan dan 100 data dari suara lakilaki

23 5 7 Speaker berjumlah 4 (empat) orang terdiri dari 2 (dua) orang perempuan dan 2 (dua) orang laki-laki 8 Suara akan mengalami proses ekstraksi ciri dan pemodelan dengan menggunakan fungsi yang tersedia di MATLAB R2010a 9 Kondisi speaker yang diambil data suaranya dalam keadaan sehat

24 6 15 Metologi Penelitian Metode yang akan digunakan dalam penelitian meliputi : 1 Studi Pustaka Tahap ini dilakukan dengan mempelajari buku-buku referensi dan sumber-sumber dari internet yang berkaitan dengan Hidden Markov Models, Speech Processing, feature extraction, algoritma Baum- Welch, algoritma Viterbi dan tutorial pemrograman Matlab 2 Tahap Pengambilan Data Tahap ini dilakukan dengan cara mengambil data berupa ucapan dari 4 orang yang terdiri dari 2 laki-laki dan 2 perempuan Tahap ini dilakukan dengan menggunakan microphone yang terhubung ke komputer 3 Tahap Pembuatan Model Model siri merupakan gambaran statistik dari ucapan yang telah dimasukkan Dalam tahap ini model akan dibangun dengan menggunakan metode Hidden Markov Model 4 Tahap Pembuatan Sistem Pengenal Ucapan Pembuatan sistem akan dilakukan berdasarkan data yang telah dimasukkan dan dengan mengintegrasikan aplikasi ke dalam GUI

25 7 (Graphical User Interface) dengan menggunakan bahasa pemrograman Matlab 5 Tahap Pengujian Tahap pengujian dilakukan dengan uji coba program oleh pengguna Pada tahap ini juga akan dilakukan evaluasi terhadap sistem yang dibangun Apabila data yang dimasukkan adalah data yang belum dimodelkan maka proses pengujian juga akan dibandingkan dengan data yang telah dimodelkan terlebih dahulu tetapi dalam program akan muncul pesan bahwa password atau kata sandi salah 16 Sistematika Penulisan BAB I PENDAHULUAN Berisi latar belakang masalah, rumusan masalah, tujuan, batasan masalah, metologi penelitian, dan sistematika penulisan BAB II LANDASAN TEORI Berisi landasan teori mengenai Speech Processing, Speech Recognition, Speaker Recognition, teori Hidden Markov Model, Mel-frequency cepstral coefficients (MFCC), algoritma Baum-Welch dan algoritma Viterbi yang digunakan dalam pembuatan dan penyusunan tugas akhir

26 8 BAB III ANALISA DAN PERANCANGAN SISTEM Bab ini berisi analisa dan gambaran atau rancangan dari sistem yang akan dibangun yaitu sebuah sistem yang dapat mengenali suara manusia sebagai kata sandi atau password serta menjelaskan alur dari proses training dan testing BAB IV IMPLEMENTASI SISTEM Bab ini berisi implementasi sistem dengan menggunakan pekatan Hidden Markov Model BAB V ANALISA HASIL DAN PEMBAHASAN Bab ini berisi tentang hasil dari implementasi sistem yang kemudian dianalisa dan diuji BAB VI KESIMPULAN DAN SARAN Bab ini berisi kesimpulan dan saran yang didapatkan dari proses pembuatan tugas akhir ini, serta saran agar pengembangan dari tugas akhir ini dapat lebih bermanfaat

27 BAB II LANDASAN TEORI Pada bab ini akan dijelaskan mengenai teori-teori yang menjadi landasan untuk mengembangkan penelitian beserta perangkatnya Teoriteori yang akan dibahas antara lain Speech Processing, Speech Recognition, Speaker Recognition, Metode Hidden Markov Models, Feature Extraction, Mel-frequency Cepstral Coefficients (MFCC), algoritma Baum-Welch dan algoritma Viterbi 21 Speech Processing Ucapan merupakan sinyal yang sangat kaya akan informasi yang di dalamnya terkandung frekuensi, amplitudo dan waktu Contohnya adalah gerakan resonansi, harmonisasi, intonasi, dan lain sebagainya Hal tersebut digunakan untuk menyampaikan informasi tentang kata-kata dari identitas pembicara yang dipengaruhi oleh aksen, ekspresi, serta kondisi kesehatan dari si pembicara Sinyal ucapan yang digunakan oleh manusia sehari-hari dapat dipelajari pada Speech Processing Speech processing merupakan sebuah studi yang mempelajari tentang sinyal dari sebuah ucapan dan juga metode yang digunakan untuk memproses sinyal tersebut 9

28 10 Speech Processing terbagi dalam beberapa cabang ilmu sesuai dengan tujuan dari pengolahan suaranya Hal tersebut dapat dilihat pada Gambar 21 Gambar 21 Cakupan speech processing (Joseph P Campbell, 1997) Apabila dilihat dari Gambar 21 terdapat beberapa ilmu yang sudah sering digunakan dalam aplikasi yang berkaitan dengan ucapan Speech recognition dan speaker recognition merupakan cabang ilmu dari specch processing yang paling sering diaplikasikan untuk pengenalan suara Speech recognition siri merupakan proses identifikasi suara yang akan dikonversikan dalam bentuk teks Sedangkan speaker recognition merupakan proses indentifikasi suara yang berdasarkan pada

29 11 asal suara atau pembicara Dilihat dari perbedaan antara speech recognition dan speaker recognition, kedua proses tersebut dapat digunakan untuk melakukan proses identifikasi password berdasarkan pada suara manusia adalah speaker recognition Oleh karena itu, dalam pembuatan tugas akhir ini penulis akan menggunakan prinsip speech recognition dan speaker recognition dalam proses identifikasi suara 22 Speech Recognition Speech Recognition adalah suatu pengembangan dalam sebuah sistem yang memungkinkan sebuah komputer untuk mengolah masukan atau perintah yang berupa suara Speech Recognition memungkinkan sebuah sistem untuk dapat mengenali dan memahami perintah suara Terdapat 4 tahap dalam Speech Recognition (Mellisa, 2008) yaitu : a Penerimaan data input b Ekstraksi, yaitu penyimpanan data masukan sekaligus pembuatan database untuk template c Pembandingan / pencocokan, yaitu tahap pencocokan data baru dengan data suara pada template d Validasi identitas pengguna

30 12 Gambar 22 Skema Speech Recognition (Melissa, 2008) Speech Recognition juga dibagi menjadi beberapa jenis berdasarkan kemampuannya dalam mengenali kata yang diucapkan a Kata-kata yang terisolasi Proses pengidentifikasian kata yang hanya dapat mengenal kata yang diucapkan apabila kata tersebut memiliki jeda waktu dalam pengucapannya b Kata-kata yang berhubungan Proses pengidentifikasian kata yang mirip dengan kata-kata terisolasi, tetapi hanya membutuhkan jeda waktu pengucapan yang lebih singkat

31 13 c Kata-kata yang berkelanjutan Proses pengidentifikasian ini lebih maju karena dapat mengenali katakata yang diucapkan secara berkesinambungan dengan jeda waktu yang sangat sedikit Proses ini sangat sulit karena membutuhkan metode khusus untuk membedakan kata-kata yang diucapkan dalam jeda waktu yang sangat sebentar d Kata-kata spontan Proses pengidentifikasian kata yang dapat mengenal kata-kata yang diucapkan secara spontan tanpa jeda waktu antar kata e Verifikasi atau identifikasi suara Proses pengidentifikasian kata yang tidak hanya mampu mengenali kata tapi juga mampu mengidentifikasi siapa yang berbicara 23 Speaker Recognition Speaker recognition merupakan salah satu metode yang dapat digunakan secara otomatis untuk mengenali suara seseorang yang mengucapkan sesuatu (Joseph P Campbell, 1997) Speaker recognition juga merupakan bagian dari Speech Proccesing yang mana terdiri dari berbagai cabang yang berbeda-beda

32 14 Apabila dilihat dari gambar 21 sebelumnya, Speaker Recognition mencakup Speaker Identification dan Speaker Verification Speaker Verification merujuk kepada bagaimana sebuah suara dapat menguji seseorang apakah seseorang tersebut merupakan speaker atau bukan Sedangkan Speaker Identification hanya menitikberatkan terhadap penentuan 1 (satu) speaker dari sekumpulan speaker yang ada Metode dari Speaker Recognition juga dapat dibedakan menjadi text-depent dan metode text-indepent Metode text-depent membutuhkan speaker untuk mengucapkan kata untuk pemodelan dan pengujian sedangkan metode text-indepent tidak bergantung terhadap kata yang diucapkan speaker untuk pemodelan Pada pembuatan tugas akhir ini akan menggunakan metode Speaker Recognition yang bertipe text-depent 231 Struktur Dasar dari Sistem Speaker Recognition Speaker Identification dan Speaker Verification memiliki struktur yang berbeda Berikut adalah struktur dari Speaker Verification dan Speaker Identification menurut Furui (1996)

33 15 Gambar 23 Struktur dari Speaker Identification (Furui,1996) Berdasarkan Gambar 23 dapat dilihat bahwa dalam proses Speaker Identification suara yang masuk akan melalui tahap ekstraksi Kemudian akan dicari kemiripan yang paling dekat dengan suara yang telah dimodelkan sebelumnya untuk mengetahui identitas dari speaker Gambar 24 Struktur dari Speaker Verification (Furui,1996)

34 16 Pada Speaker Verification suara yang masuk akan di ekstraksi kemudian akan dibandingkan dan dicari kemiripan dengan suara dari speaker yang telah dimodelkan sebelumnya dan dari speaker id Perbandingan tersebut akan digunakan untuk menolak atau menerima suara yang masuk 24 Feature Extraction Feature extraction merupakan metode untuk mengubah sinyal menjadi beberapa parameter Data yang akan digunakan merupakan data dari suara manusia sehingga berupa data sinyal Tetapi tidak semua data sinyal tersebut dapat digunakan Hal ini disebabkan karena berbagai faktor seperti suara-suara yang berada di sekitar speaker pada saat pengambilan data suara Dengan tahap feature extraction diharapkan menghasilkan feature yang memiliki kemampuan untuk membedakan kemiripan pengucapan setiap model sehingga tidak memerlukan data training yang banyak Pada umumnya feature extraction memiliki tiga tahap (Reynold, 2002), yaitu: 1 Penggunaan program deteksi suara untuk menghilangkan noise dari sinyal suara yang menjadi obyek 2 Feature diekstrak untuk memperoleh informasi 3 Penerapan normalisasi

35 17 Terdapat beberapa metode yang digunakan untuk mengekstrak feature yang berhubungan dengan sinyal Metode tersebut antara lain LPC (Linear Prediction Coding), Mel-Frequency Cepstral Coefficients (MFCC), Neural Predictive Coding (NPC), dan sebagainya Perbandingan tingkat akurasi berbagai metode feature extraction dapat dilihat pada Tabel 21 (Chetouani, 2004) Tabel 21 Tingkat akurasi berbagai metode feature extraction 2004) (Sumber : Universite Pierre&MarrieCurrie, LA Science A Paris, Dari Tabel 21 di atas dapat dilihat bahwa metode NPC memiliki tingkat identifikasi yang paling tinggi dan sempurna kemudian diikuti oleh metode MFCC NPC merupakan salah satu algoritma ekstraksi ciri yang merupakan perluasan dari LPC Dalam kasus ini metode MFCC dirasa paling tepat karena cara kerja metode MFCC sama dengan telinga manusia sehingga untuk mengidentifikasi suara manusia lebih baik menggunakan metode MFCC

36 18 25 Mel-Frequency Cepstral Coefficients (MFCC) Mel-Frequency Cepstral Coefficients (MFCC) merupakan metode pengolahan suara yang memiliki tujuan untuk mengidentifikasi asal dari sumber suara MFCC berdasarkan pada variasi bandwidth kritis terhadap frekuensi pada telinga manusia sehingga cara kerja yang diterapkan pada metode ini meniru karakteristik telinga manusia (Zilvan dan Muttaqien, 2011) Pada telinga manusia terdapat filter-filter yang berguna untuk membedakan suara yang memililki frekuensi rah dan suara yang memiliki frekuensi tinggi Pada metode MFCC, filter pada telinga manusia digambarkan dalam skala mel-frekuensi yang berfungsi untuk menangkap karakter penting pada suatu ucapan Beberapa keunggulan dari metode MFCC adalah ( Manunggal, 2005): 1 Mampu menangkap karakteristik suara yang sangat penting bagi pengenalan suara atau dengan kata lain dapat menangkap informasiinformasi penting yang terkandung dalam signal suara 2 Menghasilkan data seminimal mungkin tanpa menghilangkan informasi-informasi penting yang terkandung di dalamnya 3 Mereplikasi organ pengaran manusia dalam melakukan persepsi terhadap signal suara Filter-filter yang terdapat dalam telinga manusia juga memiliki jarak yang berbeda pada sumbu frekuensi Berdasarkan cara kerja tersebut,

37 19 MFCC juga memiliki filter yang berbeda, yaitu linearly spaced filters dan logarithmically spaced filters (Hasan, Jamil, Rabbani, & Rahman, 2004) Pada linearly spaced filters memiliki frekuensi yang berada di bawah 1000Hz sedangkan pada logarithmically spaced filters memiliki frekuensi di atas 1000Hz Gelombang suara yang dihasilkan oleh speaker dapat memiliki berbagai variasi tergantung dari kondisi fisik speaker tersebut MFCC memiliki struktur berupa blok diagram yang dapat dilihat pada Gambar 24 Continuous Speech Frame Blocking Windowing FFT Mel Cepstrum Cepstrum Mel-Frequency Wrapping Gambar 25 Diagram blok proses MFCC (Do, 1994) Apabila dilihat dari Gambar 25, terdapat beberapa proses feature extraction dengan MFCC

38 Frame Blocking Sinyal suara terus mengalami perubahan karena adanya pergeseran artikulasi dari organ produksi vokal Oleh karena itu, sinyal harus diproses secara short segments ( short frame) Panjang frame yang biasanya digunakan untuk pemrosesan sinyal adalah antara ms 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 sisi lain frame juga harus cukur pek untuk dapat menunjukkan waktu yang baik Proses frame blocking ditunjukkan pada Gambar 26 Gambar 26 Proses frame blocking Dengan Sn merupakan nilai sampel yang dihasilkan dan n merupakan urutan sampel yang akan diproses Sinyal ucapan yang terdiri dari S sampel (X(S)) dibagi menjadi beberapa frame yang berisi N sampel, yang masing-masing sampel dipisahkan oleh M (M<N) Frame pertama berisi sampel N pertama Frame kedua dimulai dari M sampel setelah frame pertama berjalan

39 21 sehingga frame kedua ini overlap terhdap frame pertama sebanyak N-M sampel Selanjutnya, frame ketiga dimulai M sampel setelah frame kedua ( juga overlap sebanyak N-M terhadap frame kedua ) Hasil dari proses ini adalah matriks dengan N baris dan beberapa kolom sinyal X[N] Proses frame ini dilakukan terus sampai seluruh sinyal dapat diproses Selain itu, proses ini umumnya dilakukan secara 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 252 Windowing Proses framing dapat menyebabkan kebocoran spektral atau aliasing Aliasing merupakan sinyal baru yang memiliki frekuensi yang berbeda dengan sinyal aslinya Hal ini dapat terjadi karena rahnya jumlah sampling rate atau proses frame blocking yang menyebabkan sinyal menjadi discontinue Maka dari itu, tahap windowing diperlukan agar menghidari kebocoran spektral Pada tahap windowing, sinyal suara yang telah mengalami frame blocking telah dibagi menjadi beberapa frame Setiap frame yang diperoleh akan dijadikan window untuk memperkecil kemungkinan gangguan sinyal yang terputus pada awal dan akhir setiap frame Window dapat didefinisikan sebagai berikut : w(n) ; dimana 0 n ( N-1 ) (2-1)

40 22 N merupakan jumlah sample pada setiap frame Hasil yang didapatkan dari proses windowing adalah sinyal (y(n)) yang dapat didefinisikan sebagai berikut : y(n) = x(n) w(n),dimana 0 n ( N-1 ) (2-2) Terdapat banyak fungsi window, namun yang paling sering digunakan untuk proses speaker recognition adalah hamming window Fungsi window ini menghasilkan sidelobe level yang tidak terlalu tinggi (kurang lebih -43dB) selain itu noise yang dihasilkan juga tidak terlalu besar Fungsi hamming window adalah sebagai berikut : w(n) = cos [2 π n / (N 1)], dimana 0 n ( N-1 ) (2-3) Gambar berikut menunjukkan perbedaan antara sinyal yang melalui proses windowing dan sinyal yang tanpa melalui proses windowing Gambar 27 Sinyal dengan proses windowing Gambar 28 Sinyal tanpa proses windowing

41 Fast Fourier Transform (FFT) FFT adalah suatu algoritma untuk mengimplemetasikan algoritma Discrete Fourier Transform (DFT) dengan lebih cepat Komputasi dari algoritma DFT memiliki waktu yang sangat lama dikarenakan membutuhkan N 2 perkalian bilangan kompleks sehingga dibutuhkan cara lain untuk menghitung DFT dengan cepat dengan menggunakan algoritma FFT dimana FFT menghilangkan proses perhitungan yang kembar dari DFT Jumlah sinyal yang akan dimasukkan dalam algoritma ini harus merupakan kelipatan dua (2 M ) Algoritma FFT dimulai dengan membagi sinyal menjadi dua bagian Bagian pertama merupakan sinyal yang memiliki nilai suara pada indeks waktu genap sedangkan bagian kedua merupakan sinyal yang memiliki nilai suara pada indeks waktu ganjil Fast Fourier Transform adalah himpunan dari N sample [X n ] yang didefinisikan sebagai berikut : X n = N 1 k=0 X, dimana n = 0,1,2,3, N-1 (2-4) k e 2πkn N FFT seringkali digunakan untuk mapatkan besarnya reaksi frekuensi dari setiap frame Ketika FFT dijalankan pada sebuah frame, dapat diasumsikan bahwa sinyal dalam sebuah frame adalah periodik dan akan berkesinambungan ketika proses wrapping

42 24 Apabila dilihat dari rumusan diatas, dapat dilihat bahwa X n merupakan angka yang kompleks Hasil dari X n dapat dijabarkan sebagai berikut: 1 Ketika n = 0 merupakan keadaaan frekuensi saat kosong 2 Ketika 1 n (N/2 1) merupakan keadaan saat frekuensi bernilai positif (0 < f < F s /2) 3 Ketika N/2+1 n N-1 merupakan keadaaan saat frekuensi bernilai negatif (F s /2 < f < 0) F s siri merupakan frekuensi sample Hasil yang diperoleh berupa spektrum sinyal atau periodogram 254 Mel-Frequency Wrapping Sinyal suara terdiri dari nada-nada yang memiliki frekuensi yang berbeda Setiap nada dengan frekuensi yang sebenarnya, f, diukur dalam Hz Nada yang subyektif diukur dengan menggunakan skala Mel Sebagai acuan, nada dengan frekuensi 1kHz, 40dB diatas dari threshold pengaran, didefinisikan sebagai 1000 mels Rumus yang digunakan untuk menghitung mels dengan frekuensi dalam Hz adalah sebagai berikut: mel(f)= 2595*log10(1 + f/700) (2-5)

43 25 Salah satu pekatan untuk menggambarkan spektrum yang subyektif adalah dengan menggunakan filter Setiap filter ditujukan untuk komponen mel-frequency yang diinginkan Filter yang dibentuk memiliki jarak pusat filter adalah konstan pada ruang frekuensi mel Skala mel dibentuk untuk mengikuti persepsi sistem pengaran manusia yang bersifat linear untuk frekuensi rah dan bersifat logaritmik untuk frekuensi tinggi, dengan batas pada nilai frekuensi akustik sebesar 1000Hz Hubungan skala mel dan frekuensi dapat digambarkan pada Gambar 28 Gambar 29 Grafik hubungan skala mel dengan frekuensi (IPB) Gambar 210 Contoh mel-spaced Filter bank (IPB)

44 26 Dari M filter yang telah terbentuk, maka dilakukan wrapping terhadap sinyal domain frekuensi dan menghasilkan satu komponen untuk setiap filter dengan menggunakan rumus ( Buono, 2009) : N 1 X i = log 10 k=0 X k H i k (2-6) Dengan i= 1,2,3 M dan H i (k) adalah nilai filter segitiga ke-i untuk frekuensi akustik sebesar k Hasil dalam spektrum mel ini kemudian akan dipilih cepstrum coefficients, nilai koefisien diperoleh dengan menggunakan transformasi cosinus Rumus yang digunakan adalah : C j = M X i cos j i 1 /2 π i=1 (2-7) M Dengan j = 1,2,3 K yang merupakan jumlah cepstrum coefficients dan M merupakan jumlah filter 255 Cepstrum Pada langkah terakhir, logaritma dari spektrum mel harus dikonversikan kembali ke domain waktu Hasil yang didapatkan bernama mel-frequency cepstrum coefficients (MFCCs) (Hasan, Jamil, Rabbani dan Rahman, 2004) Karena koefisien dari mel merupakan bilangan nyata, dapat juga dikonversikan ke dalam domain berbasis waktu menggunakan Discrete Cosine Transform (DCT) MFCC siri dapat dihitung dengan rumus sebagai berikut :

45 27 K C n = logs k n k 1 k 1 (2-8) 2 K π dimana n = 1,2, K Komponen pertama, C 0, tidak termasuk DCT karena merepresentasikan nilai rata-rata sinyal yang membawa sedikit informasi speaker yang spesifik Dengan menerapkan prosedur yang telah dijelaskan, untuk setiap frame sekitar 30 ms dengan overlap, koefisienkoefisien dari mel cepstrum dapat dihitung 26 Metode Hidden Markov Models ( HMM ) Hidden Markov Models merupakan sebuah pemodelan statistik dari sebuah sistem yang diasumsikan sebagai Rantai Markov dengan parameter yang tidak diketahui, dan tantangannya adalah menemukan parameter yang tersembunyi (hidden) dari parameter yang diketahui (observer) (Przytycka, 2000) Parameter yang telah digunakan kemudian dapat digunakan untuk analisa yang lebih jauh, misalnya untuk Speaker Recognition HMM disebut statistik karena mencari means, varians, dan probabilitas dari model yang digunakan Dalam jurnal yang berjudul Hidden Markov Models For Speech Recognition yang ditulis oleh B H Juang dan L R Rabiner disebutkan bahwa metode HMM sangat populer dikarenakan memiliki kerangka statistik yang tidak dapat dipisahkan atau dapat dikatakan tepat secara

46 28 matematika Hal ini karena kemudahan dan ketersediaan dari algoritma training yang dimiliki HMM untuk memperkirakan parameter dari sebuah model dengan data yang terbatas Dari Hidden Markov Models, suara dianggap sebagai sinyal yang kemudian dimodelkan Kemudian suara yang datang akan dibandingkan dengan seluruh model yang ada dan akan melihat tingkat kecocokan yang paling mekati Hidden Markov Models didefinisikan sebagai kumpulan 5 parameter yaitu N, M, A, B, π Dengan menganggap λ = { A, B, π } maka Hidden Markov Models mempunyai parameter tertentu yaitu N dam M Maka dari itu, ciri-ciri dari HMM adalah : 1 Observasi diketahui tetapi urutan keadaan ( state ) tidak diketahui sehingga disebut hidden 2 Observasi adalah fungsi probabilitas keadaan 3 Perpindahan keadaan adalah bentuk probabilitas Hidden Markov siri memiliki parameter distribusi sebagai berikut: 1 Probabilitas Transisi A = { a ij }, a ij = P (q t+1 = S j q t = S i ), 1 i, j N Dengan syarat a ij 0 dan N ij = 1 J dan a ij = 1

47 29 2 Probabilitas Observasi B = { b j (k) }, b j (k) = P ( V k pada t q t = S j ) 1 j N, 1 k M Distribusi keadaan awal π = { π i }, π i = P (q i = S j ) Sedangkan terdapat dua parameter tertentu pada Hidden Markov Models yaitu N dan M 1 N merupakan jumlah keadaan model Dinotasikan sebagai himpunan terbatas untuk keadaan yang mungkin adalah S = { S 1, S 2 S N } 2 M adalah jumlah dari simbol observasi atau keadaan Simbol observasi berhubungan dengan keluaran fisik dari sistem yang dimodelkan Dinotasikan sebagai himpunan terbatas untuk observasi yang mungkin adalah V = { V 1, V 2 V M } Apabila diberi nilai yang tepat untuk variabel-variabel diatas maka Hidden Markov Models dapat digunakan untuk memberikan sekuens observasi O = O 1 O 2 O 3 O 4 O 5 O t (29)

48 30 Dimana untuk setiap observasi O t adalah satu dari simbol yang ada pada V, dan T adalah banyaknya observasi yang ada pada sekuens tersebut Metode Hidden Markov Models memiliki beberapa algoritma pemodelan yang akan dijelaskan dalam subbab selanjutnya 27 Algoritma Pemodelan Hidden Markov Models Algoritma dalam Hidden Markov Models digunakan untuk pembuatan model yang mencakup proses training dan testing Pemodelan dapat berbentuk kontinu untuk data yang berlanjut sesuai dengan waktu seperti data suara yang akan diterapkan pada penelitian ini dan pemodelan diskret yang digunakan pada data citra Bentuk dari model Hidden Markov Models adalah berupa statestate yang saling berhubungan, yang mana setiap state terhubung dari state manapun

49 31 Gambar 211 Contoh tiga tipe rantai HMM (a) Model 4-state (b) Model 4-state-kiri-kanan (c) Model parallel 6-state 271 Algoritma Training dengan Baum-Welch Algortima Baum-Welch atau algoritma forward-backward merupakan salah satu algoritma yang dapat memberikan model terbaik berupa means dan varians karena dapat mengoptimalkan probabilitas observasi sekuens O parameter-parameter model λ = { A, B, π } Perhitungan pada algoritma ini digunakan untuk mencari nilai maximum likehood atau angka kemiripan maksimum yang merupakan sebuah model yang mewakili sekelompok sampel data

50 32 Variabel forward didefinisikan sebagai observasi parsial dari probabilitas state sekuen yang dilambangkan dengan O1, O2, Ot ( hingga waktu t ) dan state Si pada waktu t, dengan model λ, dan α sebagai t(i) Untuk variabel backward didefinisikan sebagai observasi parsial dari probabilitas state sekuen dari t+1 ke state sebelumnya yang mana terdapat state Si pada waktu t, dengan model λ dan α sebagai t(i) Observasi dari probabilitas state sekuen ini dihitung dengan rumus: P O λ = n i=1 α t i β t i = N i=1 α t (i) (210) Probabilitas pada saat berada pada state Si pada waktu t, dan diberikan sekuens observasi O, dan model λ adalah : γ t = t i β t(i) P(O λ) (211) (a) variabel forward

51 33 (b) variabel backward Gambar 212 Ilustrasi dari operasi Baum-Welch Pada saat menghitung model yang akan akan digunakan maka akan membutuhkan banyak sampel data yang akan dimodelkan Karakteristik dari setiap contoh akan diekstrak dan disimpan dalam sebuah parameter vektor sekuens xt Parameter ini yang akan dipetakan sebagai ekuivalensi dari Ot Metode Baum-Welch memiliki cara kerja sebagai berikut : 1 Estimasikan sebuah model HMM sebagai λ = { A, B, π } 2 Dengan nilai λ dari sekuens observasi O, hitung sebuah model baru λ = A, B, π Seperti P O λ > P(O λ)

52 34 3 Jika P O λ P O λ P O λ > threshold, maka hentikan langkah ini Jika tidak, maka letakkan nilai λ untuk menggantikan λ dan ulangi langkah Algoritma Testing dengan Viterbi Algoritma Viterbi digunakan untuk menghitung sekuens state Q yang paling dekat dengan kemungkinan atau probabilitasnya dari sekuens Observasi O Algoritma Viterbi dapat didefinisikan sebagai: δ t (i) = max q1,q2 q3 P[q 1,q 2, q t = i, O 1 O 2 O t λ ] (212) δ t (i) merupakan nilai probabilitas terbaik pada waktu t, yang dihitung pada observasi t pertama yang diakhiri pada state S i 28 Metode Evaluasi 5-Fold Cross Validation Metode 5-Fold Cross-Validation digunakan pada saat evaluasi untuk mengukur tingkat akurasi sebuah sistem Metode 5-Fold Cross Validation membagi tiap kelompok data suara menjadi data yang kemudian akan menjadi data untuk proses training dan testing Dalam penelitian ini, terdapat 4 (lima) kelompok data yang mana masing-masing kelompok mewakili setiap orang yang akan diambil suaranya Setiap kelompok memiliki data sebanyak 50 yang kemudian dibagi menjadi 5 (lima) kelompok Pada metode 5-Fold Cross Validation,

53 35 4 (empat) kelompok data akan digunakan sebagai data training dan satu kelompok data akan digunakan sebagai data testing Pembagian data untuk setiap kelompok data dapat dilihat di Tabel 22 Tabel 22 Pembagian kelompok data menjadi 5 bagian Suara 1 Suara 2 Suara 3 Suara 4 Suara Pada metode evaluasi 5-fold cross validation, iterasi yang dilakukan akan melibatkan data yang berbeda setiap proses training maupun testing Tabel 23 Gambaran metode 5-fold cross validation Testing Training Pengujian ke Pengujian ke Pengujian ke Pengujian ke Pengujian ke

54 36 Pengukuran tingkat akurasi dilakukan dengan menggunakan confusion matrix seperti pada tabel berikut Tabel 24 Contoh confusion matrix Suara 1 Suara 2 Suara 3 Suara 4 Suara 5 Suara 1 Suara 2 Suara 3 Suara 4 Suara 5 Evaluasi dari ketepatan confusion matrix dilakukan dengan cara membandingkan output hasil dari identifikasi oleh sistem dengan label uji yang tersedia untuk data tersebut Perhitungan untuk mengukur tingkat akurasinya adalah dengan rumus berikut: Akurasi = S/T x 100% (213) Keterangan : S = jumlah sample yang dikenal secara benar oleh sistem ( jumlah diagonal dari confusion matrix ) T = jumlah total dari sample untuk pengujian

55 BAB III ANALISA DAN PERANCANGAN SISTEM Bab ini akan menjelaskan tentang rancangan dan cara kerja sistem yang akan dibangun Sistem ini berfungsi untuk menganalisa tingkat akurasi metode Hidden Markov Models dalam mengenali suara manusia 31 Perancangan Sistem Secara Umum Sistem ini digunakan untuk mengenali suara manusia yang ditampilkan dalam bentuk password untuk disimulasikan sebagai kata kunci untuk masuk ke dalam suatu sistem dengan menggunakan metode Hidden Markov Models Data suara terdiri dari 4 orang yang mana merupakan 2 laki-laki dan 2 perempuan Suara akan diambil dengan menggunakan microphone dan akan diekstraksi terlebih dahulu sebelum dimasukkan ke dalam sistem Sistem akan melakukan proses training dan testing dan akhirnya sistem akan menampilkan hasil apakah suara yang masuk diterima sebagai password atau tidak 37

56 38 Training Estimasi mode Model Data suara berektensi wav Feature Extraction Testing Proses perhitungan probabilitas Nilai maksimum Evaluasi hasil Gambar 31 Skema sistem pengenalan suara manusia Gambar 31 menjelaskan tahapan dari proses pengenalan suara Dimulai dari data masuk yang berupa file berekstensi wav kemudian akan memasuki proses feature extraction yang menggunakan MFCC Hasil dari feature extraction siri merupakan file berekstensi mfc Data suara yang telah diproses kemudian menjadi input untuk proses training dan testing dengan menggunakan pekatan HMM Setelah itu akan dihasilkan suara yang dikenali sebagai hasil klasifikasi 32 Gambaran Sistem user User memasukkan data suara dengan microphone Sistem menampilkan hasil apakah masukan diterima atau tidak Sistem Pengenalan Pola Suara Sebagai Password Gambar 32 Gambaran Sistem secara umum

57 39 Sistem Pengenalan Pola Suara Sebagai Password training testing Gambar 33 Tahap training dan testing 33 Proses Training Proses training akan menghasilkan model dari data yang telah diambil sebelumnya Proses training ini akan menggunakan algoritma Baum-Welch yang telah dibahas dalam bab sebelumnya Gambar 33 menunjukkan proses training data dan pembuatan model Dalam proses training terdapat proses feature extraction yang akan menggunakan metode Mel-Frequency Cepstral Coefficients (MFCC) Untuk estimasi model akan menggunakan pekatan Hidden Markov Models (HMM) Sesuai dengan metode 5 Fold Cross-Validation yang telah dibahas pada bab sebelumnya maka pada proses training dalam membentuk sebuah model membutuhkan sebanyak 80% dari jumlah data keseluruhan

58 40 Input suara Feature extraction Estimasi model M1 M2 Mn Gambar 34 Proses tahap training 34 Proses Testing Pada tahap testing akan menggunakan algoritma Viterbi Proses ini menggunakan data yang baru Untuk mengenali data baru yang masuk, sistem akan menghitung probabilitas dari data baru dengan model yang ada dilihat dari kemiripan atau kedekatannya Data yang memiliki probabilitas tertinggi akan menunjukkan bahwa data suara baru yang masuk dapat diidentifikasi dan diterima oleh sistem Gambar 34 menunjukkan proses dari testing

59 41 M1 M2 Mn Data suara manusia Feature extraction Menghitung kemiripan terhadap model Memilih kedekatan yang paling maksimum Data dikenali Gambar 35 Proses tahap testing Untuk implementasi HMM dan identifikasi suara manusia maka pada pembuatan tugas akhir ini penulis menggunakan HMM Toolkit (HTK) HTK menyediakan tools termasuk algoritma Baum-Welch yang digunakan pada proses training dan algoritma Viterbi untuk proses testing 35 Perancangan Antar Muka Sistem Pada perancangan antar muka untuk sistem pengenalan suara manusia ini terdiri dari beberapa halaman yang mewakili proses perhitungan dari Hidden Markov Models serta cara kerja dari sistem, yaitu: 1 Halaman depan 2 Halaman pengujian sistem 3 Halaman pengujian HMM dan cara kerja sistem 4 Halaman bantuan

60 Halaman Depan Halaman ini merupakan halaman pembuka yang berisi dua menu utama yaitu MENU dan BANTUAN serta penjelasan mengenai tentang nama sistem, logo Universitas Sanata Dharma, identitas pembuat program dan nama Dosen pembimbing Rancangan dari halaman depan sistem ini dapat dilihat pada Gambar 36 Gambar 36 Rancangan Halaman depan

61 Halaman Pengujian Halaman pengujian terdiri dari dua bagian yaitu pengujian sistem dan pengujian dari Hidden Markov Models Pada halaman pengujian sistem, akan terdapat perintah yang meminta user untuk memasukkan nama dan password Password akan dimasukkan dengan menggunakan suara Sedangkan pada halaman pengujian HMM akan berisi tentang cara kerja dari HMM dan cara kerja sistem Rancangan halaman pengujian dapat dilihat pada beberapa gambar berikut ini Gambar 37 Rancangan Halaman Pengujian sistem tahap pertama Apabila dalam memasukkan password salah maka akan muncul peringatan seperti pada Gambar 38

62 44 Gambar 38 Rancangan Jela peringatan apabila password salah Gambar 39 Apabila password benar maka akan muncul peringatan seperti pada Gambar 39 Rancangan Jela peringatan apabila password benar Selanjutnya, untuk rancangan halaman pengujian HMM terdapat menu untuk mengambil contoh data suara dari direktori yang ada untuk diuji dengan HMM Untuk mengarkan suara yang diambil dapat menekan tombol DENGAR Data suara yang telah diambil dapat divisualisasikan menjadi spectogram dan signal Kemudian untuk memproses suara terdapat tombol PROSES yang akan melakukan proses pengenalan suara yang hasilnya dapat dilihat pada label HASIL Rancangan dari pengujian HMM dapat dilihat pada Gambar 310

63 45 Gambar 310 Rancangan halaman pengujian HMM tahap pertama Rancangan halaman berikutnya berisi tentang keterangan data yang terdapat dalam sistem Pengguna dapat memilih parameter yang digunakan, windows size dan jumlah state yang digunakan Dengan menekan tombol PROSES maka data akan diproses dengan menggunakan HMM Apabila proses telah selesai maka akan muncul confusion matrix dan hasil berupa tingkat akurasi

64 46 Gambar 311 Rancangan halaman pengujian HMM tahap kedua 353 Halaman Bantuan Halaman bantuan berisi tentang bagaimana cara menggunakan program serta sedikit keterangan mengenai program yang terdiri dari tujuan serta manfaat dari program Rancangan dari halaman bantuan dapat dilihat pada Gambar 312 dan Gambar 313

65 47 Gambar 312 Rancangan halaman Bantuan untuk cara kerja program Gambar 313 Rancangan halaman bantuan tentang program

66 48 36 Spesifikasi Hardware dan Software Berikut adalah spesifikasi hardware dan software yang digunakan pada pembuatan sistem ini 361 Hardware Processor : AMD E-450 APU with Radeon(tm) HD Graphics 165GHz Memory (RAM) : 200 GB System-type : 32-bit operating system 362 Software Windows 7 Ultimate MATLAB R2010a

67 BAB IV ANALISA HASIL DAN IMPLEMENTASI SISTEM Pada bab ini akan dijelaskan tentang implementasi antarmuka dari sistem beserta penjelasan tentang penggunaan tombol dan keterangan dari sistem Hal yang utama dalam pembahasan bab ini adalah analisa hasil dari identifikasi suara manusia dari berbagai pengujian yang telah dilakukan yang meilbatkan jumlah feature, besarnya windows size serta jenis parameter yang dipilih 41 Analisa Hasil Identifikasi Suara Dalam proses identifikasi suara manusia ini dilakukan dengan menggunakan windows size, tipe feature dan dengan jumlah state yang berbeda dan diharapkan menghasilkan akurasi yang tinggi Ukuran windows size yang digunakan pada sistem ini adalah 4ms sampai dengan 6ms, sedangkan tipe feature yang digunakan adalah MFCC, MFCC_D, dan MFCC_D_A Sedangkan jumlah state yang dapat digunakan yaitu 10, 15, 20 dan 25 Pada setiap pengujian akan dihasilkan confusion matrix serta akurasi data yang berupa persentase Pada bagian ini akan ditampilkan confusion matrix yang memiliki akurasi paling tinggi dari semua proses 49

68 50 pengujian Tabel 41 dan Tabel 42 di bawah ini menunjukkan hasil setiap pengujian dengan berbagai macam variasi feature, windows size dan jumlah state Tabel 41 merupakan hasil pengujian untuk Speech Recognition dan Tabel 42 merupakan hasil pengujian untuk Speaker Recognition Tabel 41 Hasil Akurasi Identifikasi Suara untuk Speech Recognititon No Windows Size Feature Jumlah State Akurasi (%) 1 4 MFCC MFCC MFCC MFCC MFCC MFCC MFCC MFCC MFCC MFCC MFCC MFCC MFCC_D MFCC_D MFCC_D MFCC_D MFCC_D 10 82

69 MFCC_D MFCC_D MFCC_D MFCC_D MFCC_D MFCC_D MFCC_D MFCC_D_A MFCC_D_A MFCC_D_A MFCC_D_A MFCC_D_A MFCC_D_A MFCC_D_A MFCC_D_A MFCC_D_A MFCC_D_A MFCC_D_A MFCC_D_A 25 92

70 52 Tabel 42 Hasil Akurasi Identifikasi Suara untuk Speaker Recognition No Windows Size Feature Jumlah State Akurasi (%) 1 4 MFCC MFCC MFCC MFCC MFCC MFCC MFCC MFCC MFCC MFCC MFCC MFCC MFCC_D MFCC_D MFCC_D MFCC_D MFCC_D MFCC_D MFCC_D MFCC_D MFCC_D MFCC_D 15 85

71 MFCC_D MFCC_D MFCC_D_A MFCC_D_A MFCC_D_A MFCC_D_A MFCC_D_A MFCC_D_A MFCC_D_A MFCC_D_A MFCC_D_A MFCC_D_A MFCC_D_A MFCC_D_A 25 89

72 Akurasi PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 54 Pada Gambar 41 berikut merupakan grafik yang menunjukkan tingkat akurasi identifikasi suara manusia dengan menggunakan feature MFFC_D dan dengan kombinasi windows size dan jumlah state yang berbeda Grafik di bawah ini merupakan pengujian pada Speech Recognition 100 Hasil Pengujian Jumlah state Window Size Gambar 41 Tingkat Akurasi Identifikasi Suara Manusia dengan Feature MFCC_D untuk Speech Recognition

73 Akurasi PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 55 Pada Gambar 42 berikut merupakan grafik yang menunjukkan tingkat akurasi identifikasi suara manusia dengan menggunakan feature MFFC_D dan dengan kombinasi windows size dan jumlah state yang berbeda Grafik di bawah ini merupakan pengujian pada Speaker Recognition 95 Hasil Pengujian Jumlah state Windows Size Gambar 42 Tingkat Akurasi Identifikasi Suara Manusia dengan Feature MFCC_D untuk Speaker Recognition

74 56 Pada Tabel 43 dan Tabel 45 berikut ini menunjukkan tingkat akurasi dari berbagai jenis tipe feature yang berbeda Pada Tabel 43 jumlah state yang digunakan adalah 25 dengan ukuran windows size adalah 6ms Sedangkan pada Tabel 45 jumlah state yang digunakan adalah 20 dengan ukuran windows size adalah 6ms Tabel 43 Hasil identifikasi suara berdasarkan tipe feature pada proses Speech Recognition Feature Akurasi (%) MFCC 93 MFCC_D 95 MFCC_D_A 92 Hasil dari pengujian tersebut menunjukkan bahwa tingkat akurasi yang dihasilkan bervariasi mulai dari 92% sampai dengan 95% Pengujian Hidden Markov Models yang menggunakan tipe feature MFCC_D dengan jumlah state 25 dan besar windows size 6ms memiliki akurasi yang paling tinggi Tabel berikut ini merupakan confusion matrix untuk pengujian yang memiliki tingkat akurasi yang paling tinggi Confusion matrix di bawah ini untuk proses pengujian dengan speech recognition

75 57 Tabel 44 Confusion Matrix MFCC_D untuk Speech Recognition no l sat u du a tig a emp at lim a ena m tuju h delapa n sembila n nol satu dua tiga empat lima enam tujuh delapan sembila n Pada confusion matrix di atas dapat dilihat bahwa sistem dapat mengidentifikasi suara dengan baik Pada pengucapan kata satu, delapan, dan sembilan mampu dikenali dengan tepat dengan menunjukkan hasil maksimal yaitu 20 Nilai terah dari confusion matrix tersebut adalah 17 yaitu pada pengucapan kata tujuh Dalam proses identifikasi speech recognition, suara yang masuk tetapi bukan berasal dari speaker yang telah dimodelkan sebelumnya dapat diproses dan terkadang hasil pengujian tepat Hal ini dikarenakan pola kata yang harus diucapkan telah tetap sehingga walaupun suara yang masuk

76 58 tidak berasal dari speaker yang telah dimodelkan masih dapat dikenali dengan mencari kedekatan yang maksimum Tabel 45 Hasil identifikasi suara berdasarkan tipe feature pada proses Speaker Recognition Feature Akurasi (%) MFCC 89 MFCC_D 93 MFCC_D_A 88 Hasil dari pengujian tersebut menunjukkan bahwa tingkat akurasi yang dihasilkan bervariasi mulai dari 88% sampai dengan 93% Pengujian Hidden Markov Models yang menggunakan tipe feature MFCC_D dengan jumlah state 20 dan besar windows size 6ms memiliki akurasi yang paling tinggi Tabel berikut ini merupakan confusion matrix untuk pengujian yang memiliki tingkat akurasi yang paling tinggi Confusion matrix di bawah ini untuk proses pengujian dengan speaker recognition

77 59 Tabel 46 Confusion Matrix MFCC_D untuk Speaker Verification Angga Deta Petra Yudhi Angga Deta Petra Yudhi Pada confusion matrix diatas hasil paling tinggi adalah 49 yaitu pada speaker yang bernama Yudhi Sedangkan jumlah paling kecil yaitu 44 yang merupakan speaker yang bernama Deta Pada proses speaker verification terdapat beberapa faktor yang mempengaruhi tingkat akurasi proses identifikasi Salah satu faktor tersebut adalah speaker yang memiliki hubungan darah dapat membuat sistem sedikit sulit untuk membedakan speaker tersebut Dalam kasus ini Petra dan Deta adalah speaker yang memiliki hubungan darah sehingga terkadang suara Petra yang masuk tetapi teridentifikasi sebagai Deta

78 60 42 Implementasi Antarmuka Sistem 421 Halaman Depan Halaman Depan merupakan halaman yang pertama kali dilihat oleh user ketika menjalankan sistem ini Halaman depan berisi judul dari sistem beserta nama dari mahasiswa beserta nama dari dosen pembimbing Pada halaman depan terdapat dua menu utama yang terdapat di kiri atas Setiap menu utama memiliki sub-menu yang lain Tampilan dari Halaman Depan dapat dilihat pada Gambar 41 berikut Gambar 43 Halaman Depan

79 Halaman Pilihan Menu Pengujian Halaman Pilihan Menu Pengujian merupakan halaman yang akan digunakan user untuk memilih pengujian yang akan dilakukan, yaitu pengujian untuk Speech Recognition atau Speaker Recognition Halaman ini dapa dilihat pada Gambar 42 Gambar 44 Halaman Pilihan Pengujian

80 Halaman Pengujian Hidden Markov Models untuk Speech Recognition Halaman Pengujian Hidden Markov Models Speech Recognition untuk adalah halaman yang berfungsi untuk menguji metode Hidden Markov Models dengan jenis feature, windows size dan jumlah state yang berbeda-beda Pengujian ini dilakukan untuk mengetahui tingkat akurasi dari hasil identifikasi suara Dalam pengujian ini akan dihasilkan confusion matrix, tingkat akurasi, lama jalannya program serta banyaknya data yang cocok dan tidak cocok Tampilan dari halaman ini dapat dilihat pada Gambar 43 Pada halaman ini terdapat beberapa kolom yang berisi tentang berbagai keterangan Pada kolom Keterangan Data berisi tentang keterangan mengenai jumlah data yang akan diproses, jumlah data yang akan melalui proses training dan jumlah data untuk testing Pada kolom Feature Extraction terdapat tiga jenis feature extraction yang harus dipilih untuk melakukan proses pengujian Pada pilihan Windows Size terdapat tiga pilihan dan pada Jumlah State terdapat empat pilihan yang dapat disesuaikan dengan kebutuhan pengguna Pada kolom Proses Hidden Markov Models berisi tentang langkahlangkah dari proses Hidden Markov siri Kolom Confusion Matrix berisikan confusion matrix yang merupakan hasil dari proses pengujian Hidden Markov Models Kolom Hasil Pengujian berisi tentang keterangan dari hasil pengujian yang di dalamnya terdapat jumlah data yang sesuai,

81 63 jumlah data yang tidak sesuai, waktu keseluruhan dan tingkat akurasi yang berupa persentase Gambar 45 Halaman Pengujian Hidden Markov Models untuk Speech Recognition

82 Halaman Pengujian Hidden Markov Models untuk Speaker Verification Halaman Pengujian Hidden Markov Models untuk Speaker Recognition adalah halaman yang berfungsi untuk menguji metode Hidden Markov Models dengan jenis feature, windows size dan jumlah state yang berbeda-beda Pengujian ini dilakukan untuk mengetahui tingkat akurasi dari hasil identifikasi suara Dalam pengujian ini akan dihasilkan confusion matrix, tingkat akurasi, lama jalannya program serta banyaknya data yang cocok dan tidak cocok Tampilan dari halaman ini dapat dilihat pada Gambar 44 Pada halaman ini terdapat beberapa kolom yang berisi tentang berbagai keterangan Pada kolom Keterangan Data berisi tentang keterangan mengenai jumlah data yang akan diproses, jumlah data yang akan melalui proses training dan jumlah data untuk testing Pada kolom Feature Extraction terdapat tiga jenis feature extraction yang harus dipilih untuk melakukan proses pengujian Pada pilihan Windows Size terdapat tiga pilihan dan pada Jumlah State terdapat empat pilihan yang dapat disesuaikan dengan kebutuhan pengguna Pada kolom Proses Hidden Markov Models berisi tentang langkahlangkah dari proses Hidden Markov siri Kolom Confusion Matrix berisikan confusion matrix yang merupakan hasil dari proses pengujian Hidden Markov Models Kolom Hasil Pengujian berisi tentang keterangan dari hasil pengujian yang di dalamnya terdapat jumlah data yang sesuai,

83 65 jumlah data yang tidak sesuai, waktu keseluruhan dan tingkat akurasi yang berupa persentase Gambar 46 Halaman Pengujian Hidden Markov Models untuk Speaker Verification 425 Halaman Pengambilan Suara Halaman Pengambilan Suara merupakan halaman dimana user akan memasukkan data untuk pengujian dengan merekam suara dari user Pada halaman ini terdapat empat tombol rekam dimana masing-masing tombol digunakan untuk merekam satu ucapan dari user User memiliki waktu sebanyak tiga detik pada setiap tombol untuk mengucapkan suara User akan mengucapkan angka seperti satu, sembilan dan sebagainya pada sistem ini Tampilan pada halaman ini dapat dilihat pada Gambar 45

84 66 Setelah user telah selesai merekam suara pada satu tombol, maka akan mucul pernyataan bahwa user telah selesai melakukan proses rekaman dan dapat beralih ke tombol selanjutnya Pada halaman ini juga terdapat tombol Tahap Selanjutnya yang digunakan untuk melanjutkan ke proses selanjutnya Gambar 47 Halaman Pengambilan Suara Apabila speaker belum merekam data untuk password tetapi sudah menekan tombol untuk proses selanjutnya maka akan muncul tampilan seperti pada Gambar 46 Gambar 48 Halaman Peringatan

85 Halaman Pengujian Sistem untuk Speech Recognition Halaman Pengujian Sistem untuk Speech Recognition ini merupakan halaman pengujian sistem untuk mengidentifikasi suara hasil dari proses rekam sebelumnya Proses ini merupakan proses dimana suara yang telah direkam akan diidentifikasi dan memberikan hasil berupa teks Tampilan pada halaman ini terdapat pada Gambar 46 Pada halaman pengujian sistem ini terdapat beberapa kolom dan tombol yang berisi tentang perintah dan keterangan serta proses yang berjalan untuk melakukan identifikasi suara Pada kolom Pilihan terdapat empat tombol yang digunakan untuk mengarkan hasil rekaman suara yang telah dilakukan pada proses sebelumnya Apabila hasil rekaman tidak sesuai dengan keinginan user maka proses rekaman dapat diulang lagi dengan menekan tombol Ulangi Hasil Rekaman Pada kolom Proses berisi tentang langkah-langkah dari bagaimana sistem mengidentifikasi suara yang masuk Pada kolom Hasil Pengenalan meruapakan kolom yang akan menampilkan hasil dari identifiksi suara yang berupa teks

86 68 Gambar 49 Halaman Pengujian Speech Recognition 427 Halaman Pengujian Sistem untuk Speaker Verification Halaman Pengujian Sistem untuk Speaker Recognition ini merupakan halaman pengujian sistem untuk mengidentifikasi suara hasil dari proses rekam sebelumnya Proses ini merupakan proses dimana suara yang telah direkam akan diidentifikasi dan memberikan hasil berupa teks yang berupa nama dari pemilik suara Tampilan pada halaman ini terdapat pada Gambar 47 Pada halaman pengujian sistem ini terdapat beberapa kolom dan tombol yang berisi tentang perintah dan keterangan serta proses yang berjalan untuk melakukan identifikasi suara Pada kolom Pilihan terdapat

87 69 empat tombol yang digunakan untuk mengarkan hasil rekaman suara yang telah dilakukan pada proses sebelumnya Apabila hasil rekaman tidak sesuai dengan keinginan user maka proses rekaman dapat diulang lagi dengan menekan tombol Ulangi Hasil Rekaman Pada kolom Proses berisi tentang langkah-langkah dari bagaimana sistem mengidentifikasi suara yang masuk Pada kolom Hasil Pengenalan merupakan kolom yang akan menampilkan hasil dari identifiksi suara yang berupa teks yang berupa nama dari user Gambar 410 Halaman Pengujian Sistem Untuk Speaker Verification Berikut adalah hasil pengujian untuk semua speaker yang suaranya telah dimodelkan ke dalam sistem identifikasi ini Gambar 48 dan Gambar 49 merupakan hasil pengujian untuk speaker Angga, Gambar 410 dan

88 70 Gambar 411 merupakan hasil pengujian untuk speaker Yudhi, dan Gambar 412 dan Gambar 413 merupakan hasil pengujian untuk speaker Detha Gambar 411 Halaman Pengujian Speech Recognition untuk speaker Angga

89 71 Gambar 412 Halaman Pengujian Speaker Verification untuk speaker Angga Gambar 413 Halaman Pengujian Speech Recognition untuk speaker Yudhi

90 72 Gambar 414 Halaman Pengujian Speaker Verification untuk speaker Yudhi Gambar 415 Halaman Pengujian Speech Recognition untuk speaker Detha

91 73 Gambar 416 Halaman Pengujian Speaker Verification untuk speaker Detha Untuk speaker yang tidak terdaftar pada pemodelan sistem, sistem masih dapat memproses data yang masuk Pada proses speaker recognition suara yang masuk akan dicocokkan dengan pemodelan suara yang ada dan dicari data yang memiliki kedekatan yang paling tinggi Untuk proses speaker verification akan ditampilkan peringatan bahwa suara yang masuk tidak terdaftar

92 74 Gambar 417 Halaman Pengujian Speaker Verification untuk speaker yang tidak terdaftar 428 Halaman Bantuan Halaman Bantuan ini digunakan untuk membantu user menggunakan sistem Halaman ini membantu user untuk mapatkan penjelasan langkah-langkah bagaimana sistem berjalan Halaman ini dapat dilihat setelah user memilih sub-menu pada halaman depan Tampilan pada halaman ini dapat dilihat pada Gambar 415

93 75 Gambar 418 Halaman Bantuan 429 Halaman Tentang Programmer Halaman Tentang Programmer ini berisi tentang penulis serta kontak yang dapat dihubungi apabila terdapat kritik, saran atau pertanyaan Gambar 419 Halaman Tentang Programmer

94 BAB V KESIMPULAN DAN SARAN Pada bab ini akan dijelaskan mengenai kesimpulan dari pengujian Hidden Markov Models serta hal-hal yang berkaitan dengan proses identifikasi suara manusia Pada bab ini juga akan diberikan beberapa saran untuk perbaikan program kedepannya 51 Kesimpulan 1 Pada proses pengujian dan identifikasi dapat disimpulkan bahwa metode Hidden Markov Models merupakan metode yang baik untuk pengenalan suara manusia Hal ini dapat dilihat dari tingkat akurasi yang dihasilkan dari proses identifikasi dan pengujian yang telah dibahas sebelumnya di bab 4 2 Dari proses pengujian, diperoleh tingkat akurasi terbaik untuk proses Speech Recognition yaitu 95% dengan windows size 6ms, jumlah state 25 dan jenis feature extraction MFCC_D Sedangkan untuk proses Speaker Verification diperoleh tingkat akurasi terbaik 93% dengan windows size 6ms, jumlah state 20 dan jenis feature extraction MFCC_D 76

95 77 3 Tingkat akurasi terbaik untuk masing-masing feature antara lain : a Speech Recognition MFCC = 93% MFCC_D = 95% MFCC_D_A = 92% b Speaker Verification MFCC = 89% MFCC_D = 93% MFCC_D_A = 88% 4 Metode Hidden Markov Models memerlukan jumlah data yang banyak agar proses training dapat menghasilkan bentuk model yang baik 5 Dalam pemilihan windows size, tipe feature extraction dan jumlah state mempunyai pengaruh yang besar terhadap tingkat akurasi proses pengujian 6 Waktu yang diperlukan untuk melakukan proses training dengan menggunakan Hidden Markov Models termasuk lama Setiap proses training memakan waktu antara 100 detik hingga paling lama memakan waktu 700 detik Hal ini juga dipengaruhi oleh berbagai faktor Faktor yang paling utama adalah banyaknya jumlah state dan besarnya windows size Semakin besar jumlah state dan windows size maka

96 78 waktu yang diperlukan semakin lama Faktor yang lain yang juga dapat mempengaruhi lamanya proses training adalah ada atau tidaknya aplikasi lain yang berjalan selain Matlab Contohnya adalah Windows Media Player, aplikasi games dan lain sebagainya 52 Saran 1 Proses pengujian dan identifikasi suara manusia yang dilakukan oleh penulis hanya meneliti ucapan nol, satu, dua, tiga, empat, lima, enam, tujuh, delapan dan sembilan Pengucapan lain yang sering digunakan oleh manusia dalam kehidupan sehari-hari juga dapat digunakan untuk proses identifikasi suara manusia 2 Penggunaan feature selain MFCC juga dapat digunakan untuk menunjang tingkat akurasi 3 Untuk future work dapat ditambahkan fasilitas untuk menambah speaker baru dan juga ucapan yang direkam tidak satu per satu melainkan dalam satu kali proses rekam langsung mengucapkan beberapa angka

97 79 DAFTAR PUSTAKA Adi, C Kuntoro, SJ, MA, MS (2008), Hidden Markov Models Based Animal Acoustic Cencusing; A Learning From Speech Technolgy Agustini, Ketut (2007), Biometrik Suara dengan Transformasi Wavelet Berbasis Orthogonal Daubenchies, 50 Gematek Jurnal Teknik Komputer, Volume 9 Nomor 2 Furui, S, (1981), Cepstral Anaysis Technique For Automatic Speaker Verification, IEEE Trans Acoust Speech Signal Process Hasan, M R, Jamil, M, Rabbani, M G, & Rahman, M S (2004) SPEAKER IDENTIFICATION USING MEL FREQUENCY CEPSTRAL COEFFICIENTS 3rd International Conference on Electrical & Computer Engineering Dhaka, Bangladesh Hidayanto, A, & Sumardi (2006) Pengenalan Pengucapan Kata Terisolasi dengan Metode Hidden Markov Models (HMM) melalui Ekstraksi Ciri Linear Predictive Coding (LPC)

98 80 Irfani, Angela, Amelia, Ratih, dan Saptanti P, Diah (2006) Algoritma Viterbi dalam Metode Hidden Markov Models pada Teknologi Speech Recognition Joseph P Campbell, J (1997) Speaker Recognition : A Tutorial Proceedings of The IEEE, Melissa, Gressia (2008) Pencocokkan Pola Suara (Speech Recognition) dengan Algoritma FFT dan Divide and Conquer Makalah IF2251 Strategi Algoritmik Przytycka, T M (2000) Encyclopedia of The Human Genome: Hidden Markov Models USA: Nature Publishing Group R Rabiner, Lawrence, A Tutorial on Hidden Markov Models and Selected Applications in Speech Recogniton, IEEE, Vol77, No 2, Februari, 1989 Reynold, D (2002) An Overview of Automatic Speaker Recognition Technology IEEE International Conference on Accoustics, Speech, and Signal Processing

99 81 Setyabudi, Siwi, Purwanto, Agus, Warsono(2007) Karakterisasi Suara Vokal dan Aplikasinya pada Speaker Recognition Seminar Nasional MIPA 2007 UNY Yogyakarta Zilvan, Vicky, Muttaqien, Furqon Hensan(2011) Identifikasi Pembicara Menggunakan Algoritme VF15 dengan MFCC Sebagai Pengekstraksi Ciri INKOM, Vol V, No1

100 82 LAMPIRAN I Perhitungan Akurasi untuk Pengujian Sistem a Speech Recognition Windows size Feature Extraction = 6ms = MFCC_D Jumlah state = 25 nol satu dua tiga empat lima enam tujuh delapan sembilan nol satu dua tiga empat lima enam tujuh delapan sembilan Jumlah suara yang dikenali = 189 suara Jumlah suara yang tidak dikenali = 11 suara Akurasi = x 100% = 95% 200

101 83 b Speaker Recognition Windows size Feature Extraction = 6ms = MFCC_D Jumlah state = 20 Angga Deta Petra Yudhi Angga Deta Petra Yudhi Jumlah suara yang dikenali = 185 suara Jumlah suara yang tidak dikenalai = 15 suara Akurasi = x 100 % = 93% 200

102 LAMPIRAN II Script dan File Pukung 1 pengujiansistem2m function varargout = pengujiansistem2(varargin) % PENGUJIANSISTEM2 M-file for pengujiansistem2fig % PENGUJIANSISTEM2, by itself, creates a new PENGUJIANSISTEM2 or raises the existing % singleton* % % H = PENGUJIANSISTEM2 returns the handle to a new PENGUJIANSISTEM2 or the handle to % the existing singleton* % % PENGUJIANSISTEM2('CALLBACK',hObject,eventData,handles,) calls the local % function named CALLBACK in PENGUJIANSISTEM2M with the given input arguments % % PENGUJIANSISTEM2('Property','Value',) creates a new PENGUJIANSISTEM2 or raises the % existing singleton* Starting from the left, property value pairs are % applied to the GUI before pengujiansistem2_openingfcn gets called An % unrecognized property name or invalid value makes property application % stop All inputs are passed to pengujiansistem2_openingfcn via varargin % % *See GUI Options on GUIDE's Tools menu Choose "GUI allows only one % instance to run (singleton)" % % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help pengujiansistem2 % Last Modified by GUIDE v25 29-Apr :28:07 % Begin initialization code - DO NOT EDIT gui_singleton = 1; gui_state = struct('gui_name', mfilename, 'gui_singleton', gui_singleton, 'gui_layoutfcn', [], 'gui_callback', []); if nargin && ischar(varargin{1}) gui_stategui_callback = str2func(varargin{1}); if nargout [varargout{1:nargout}] = gui_mainfcn(gui_state, varargin{:}); 84 else

103 85 gui_mainfcn(gui_state, varargin{:}); % End initialization code - DO NOT EDIT % --- Executes just before pengujiansistem2 is made visible function pengujiansistem2_openingfcn(hobject, eventdata, handles, varargin) % This function has no output args, see OutputFcn % hobject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to pengujiansistem2 (see VARARGIN) % Choose default command line output for pengujiansistem2 handlesoutput = hobject; % Update handles structure guidata(hobject, handles); % UIWAIT makes pengujiansistem2 wait for user response (see UIRESUME) % uiwait(handlesfigure1); % --- Outputs from this function are returned to the command line function varargout = pengujiansistem2_outputfcn(hobject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hobject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handlesoutput; % --- Executes during object creation, after setting all properties function image_createfcn(hobject, eventdata, handles) % hobject handle to image (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: place code in OpeningFcn to populate image % --- Executes on button press in pushbutton1 function pushbutton1_callback(hobject, eventdata, handles) % modifikasi dari % -suara-dan-menyimpan-dalam-bentuk-file/ % option = 'n'; % option_rec = 'n'; record_len = 3; %waktu perekaman (record length) dalam detik

104 86 sample_freq = 44100; %Sampling frequency dalam Hertz (8KHz) sample_time = sample_freq* record_len; % name = input('ketik nama file hasil rekaman yang akan disimpan: ','s'); file_name = sprintf('datamasuk1wav'); % option_rec = input('tekan y untuk mulai merekam: ','s'); % if option_rec=='y' % while option=='n', % input('tekan Enter untuk mulai merekam > '); record = wavrecord(sample_time, sample_freq); %Records the input through the sound card to the variable with specified sampling frequency % input('tekan Enter untuk mengar hasil rekamannya > '); % sound(record, sample_freq); % option = input('tekan y untuk menyimpan atau n untuk merekam kembali: ','s'); % wavwrite(record, sample_freq, file_name); %Save the recorded data to a file with the specified file name in wav format set(handlesteksrekam,'string','proses rekam 1 selesai'); % hobject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbuttonnext function pushbuttonnext_callback(hobject, eventdata, handles) % namafile=get(handlestxteditnamefile,'string'); file_name = sprintf('datamasuk1wav'); if exist('datamasuk1wav')==0 exist('datamasuk2wav')==0 exist('datamasuk3wav')==0 exist('datamasuk4wav')==0 errordlg('anda belum merekam password Anda','Peringatan'); % [nf,fs,nb]=wavread(file_name); % nf=nf(:,1); % wavplay(nf,fs); else close (pengujiansistem2); fig2 = openfig('pengujiansistem3fig'); handles = guihandles(fig2); guidata(fig2,handles); % hobject handle to pushbuttonnext (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton4 function pushbutton4_callback(hobject, eventdata, handles) record_len = 3; %waktu perekaman (record length) dalam detik sample_freq = 44100; %Sampling frequency dalam Hertz (8KHz) sample_time = sample_freq* record_len;

105 87 file_name = sprintf('datamasuk2wav'); record = wavrecord(sample_time, sample_freq); wavwrite(record, sample_freq, file_name); set(handlesteksrekam2,'string','proses rekam 2 selesai'); % hobject handle to pushbutton4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton5 function pushbutton5_callback(hobject, eventdata, handles) record_len = 3; %waktu perekaman (record length) dalam detik sample_freq = 44100; %Sampling frequency dalam Hertz (8KHz) sample_time = sample_freq* record_len; file_name = sprintf('datamasuk3wav'); record = wavrecord(sample_time, sample_freq); wavwrite(record, sample_freq, file_name); set(handlesteksrekam3,'string','proses rekam 3 selesai'); % hobject handle to pushbutton5 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton6 function pushbutton6_callback(hobject, eventdata, handles) record_len = 3; %waktu perekaman (record length) dalam detik sample_freq = 44100; %Sampling frequency dalam Hertz (8KHz) sample_time = sample_freq*record_len; file_name = sprintf('datamasuk4wav'); record = wavrecord(sample_time, sample_freq); wavwrite(record, sample_freq, file_name); set(handlesteksrekam4,'string','proses rekam 4 selesai'); % hobject handle to pushbutton6 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton7 function pushbutton7_callback(hobject, eventdata, handles) close (pengujiansistem2); fig2 = openfig ('depanfig'); handles = guihandles(fig2); guidata(fig2,handles); % hobject handle to pushbutton7 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

106 88 2 pengujiansistem3m function varargout = pengujiansistem3(varargin) % PENGUJIANSISTEM3 M-file for pengujiansistem3fig % PENGUJIANSISTEM3, by itself, creates a new PENGUJIANSISTEM3 or raises the existing % singleton* % % H = PENGUJIANSISTEM3 returns the handle to a new PENGUJIANSISTEM3 or the handle to % the existing singleton* % % PENGUJIANSISTEM3('CALLBACK',hObject,eventData,handles,) calls the local % function named CALLBACK in PENGUJIANSISTEM3M with the given input arguments % % PENGUJIANSISTEM3('Property','Value',) creates a new PENGUJIANSISTEM3 or raises the % existing singleton* Starting from the left, property value pairs are % applied to the GUI before pengujiansistem3_openingfcn gets called An % unrecognized property name or invalid value makes property application % stop All inputs are passed to pengujiansistem3_openingfcn via varargin % % *See GUI Options on GUIDE's Tools menu Choose "GUI allows only one % instance to run (singleton)" % % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help pengujiansistem3 % Last Modified by GUIDE v25 03-May :47:16 % Begin initialization code - DO NOT EDIT gui_singleton = 1; gui_state = struct('gui_name', mfilename, 'gui_singleton', gui_singleton, 'gui_layoutfcn', [], 'gui_callback', []); if nargin && ischar(varargin{1}) gui_stategui_callback = str2func(varargin{1}); if nargout [varargout{1:nargout}] = gui_mainfcn(gui_state, varargin{:}); else gui_mainfcn(gui_state, varargin{:}); % End initialization code - DO NOT EDIT

107 89 % --- Executes just before pengujiansistem3 is made visible function pengujiansistem3_openingfcn(hobject, eventdata, handles, varargin) % This function has no output args, see OutputFcn % hobject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to pengujiansistem3 (see VARARGIN) % Choose default command line output for pengujiansistem3 handlesoutput = hobject; % Update handles structure guidata(hobject, handles); % UIWAIT makes pengujiansistem3 wait for user response (see UIRESUME) % uiwait(handlesfigure1); % --- Outputs from this function are returned to the command line function varargout = pengujiansistem3_outputfcn(hobject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hobject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handlesoutput; % --- Executes on button press in pushbutton1 function pushbutton1_callback(hobject, eventdata, handles) [y, fs, nbits] = wavread('datamasuk1wav'); %read in the wav file sound(y,fs) %play back the wav file % file_name = ('datamasukwav'); % sample_freq = 8192; % sound(file_name, sample_freq); % hobject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton2 function pushbutton2_callback(hobject, eventdata, handles) delete ('datamasuk1wav'); delete ('datamasuk2wav'); delete ('datamasuk3wav'); delete ('datamasuk4wav'); delete ('datamasuk1mfc'); delete ('datamasuk2mfc'); delete ('datamasuk3mfc'); delete ('datamasuk4mfc'); delete ('hasiluji1mlf'); delete ('hasiluji2mlf');

108 90 delete ('hasiluji3mlf'); delete ('hasiluji4mlf'); delete ('datatest1scp'); delete ('datatest2scp'); delete ('datatest3scp'); delete ('datatest4scp'); close (pengujiansistem3); fig2 = openfig('pengujiansistem2fig'); handles = guihandles(fig2); guidata(fig2,handles); % hobject handle to pushbutton2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton5 function pushbutton5_callback(hobject, eventdata, handles) tic % Pembuatan codeallproses fid1 = fopen('codeallprosesscp','w'); srcdirectory = 'C:\Users\detha\Documents\MATLAB\Skripsi\'; targetdirectory = 'C:\Users\detha\Documents\MATLAB\Skripsi\'; fwrite(fid1,['"' srcdirectory 'datamasuk1wav " ' '"' targetdirectory 'datamasuk1mfc " ']); fprintf(fid1,'\n'); fwrite(fid1,['"' srcdirectory 'datamasuk2wav " ' '"' targetdirectory 'datamasuk2mfc " ']); fprintf(fid1,'\n'); fwrite(fid1,['"' srcdirectory 'datamasuk3wav " ' '"' targetdirectory 'datamasuk3mfc " ']); fprintf(fid1,'\n'); fwrite(fid1,['"' srcdirectory 'datamasuk4wav " ' '"' targetdirectory 'datamasuk4mfc " ']); fprintf(fid1,'\n'); fclose(fid1); % Extract feature dan pembuatan prototype set(handlesteksproses1,'string','sedang melakukan proses'); a = 'Proses feature extraction '; b = 'HCopy -A -C mfcc_d_config_3 -S codeallprosesscp'; dos (b); step1 = {a;b}; set(handlesteksproses1,'string',step1); c = 'Proses pembuatan proto '; createproto('mfcc_d',24,25) set(handlesteksproses2,'string',c); % Training dan testing datamasuk d = 'Proses Training dan testing '; e = 'HParse -A grammar wdnet'; dos (e); step2 = {d;e}; set(handlesteksproses3,'string',step2); % pembuatan file test fid2=fopen('datatest1scp','w');

109 91 srcdirectory = 'C:\Users\detha\Documents\MATLAB\Skripsi'; fwrite(fid2,['"' srcdirectory '\' 'datamasuk1mfc"']); fprintf(fid2,'\n'); fclose(fid2); fid3=fopen('datatest2scp','w'); srcdirectory = 'C:\Users\detha\Documents\MATLAB\Skripsi'; fwrite(fid3,['"' srcdirectory '\' 'datamasuk2mfc"']); fprintf(fid3,'\n'); fclose(fid3); fid4=fopen('datatest3scp','w'); srcdirectory = 'C:\Users\detha\Documents\MATLAB\Skripsi'; fwrite(fid4,['"' srcdirectory '\' 'datamasuk3mfc"']); fprintf(fid4,'\n'); fclose(fid4); fid5=fopen('datatest4scp','w'); srcdirectory = 'C:\Users\detha\Documents\MATLAB\Skripsi'; fwrite(fid5,['"' srcdirectory '\' 'datamasuk4mfc"']); fprintf(fid5,'\n'); fclose(fid5); % testing dengan algoritma viterbi f = 'HVite -A -w wdnet -l -o ST -i hasiluji1mlf -S datatest1scp -H hmm3/hmmdefs dict modellist'; g = 'HVite -A -w wdnet -l -o ST -i hasiluji2mlf -S datatest2scp -H hmm3/hmmdefs dict modellist'; h = 'HVite -A -w wdnet -l -o ST -i hasiluji3mlf -S datatest3scp -H hmm3/hmmdefs dict modellist'; i = 'HVite -A -w wdnet -l -o ST -i hasiluji4mlf -S datatest4scp -H hmm3/hmmdefs dict modellist'; dos (f); dos (g); dos (h); dos (i); step3 = {f;g;h;i}; set(handlesteksproses4,'string',step3); % Menampilkan hasil pengenalan rec1 = textread('hasiluji1mlf','%s'); if (strcmp(rec1(3),'nol') == 1) set(handlestekshasil,'string','0') elseif (strcmp(rec1(3), 'satu') == 1) set(handlestekshasil,'string','1') elseif (strcmp(rec1(3),'dua') == 1) set(handlestekshasil,'string','2') elseif (strcmp(rec1(3), 'tiga') == 1) set(handlestekshasil,'string','3') elseif (strcmp(rec1(3),'empat') == 1) set(handlestekshasil,'string','4') elseif (strcmp(rec1(3), 'lima') == 1) set(handlestekshasil,'string','5') elseif (strcmp(rec1(3), 'enam') == 1) set(handlestekshasil,'string','6') elseif (strcmp(rec1(3),'tujuh') == 1)

110 92 set(handlestekshasil,'string','7') elseif (strcmp(rec1(3), 'delapan') == 1) set(handlestekshasil,'string','8') elseif (strcmp(rec1(3),'sembilan') == 1) set(handlestekshasil,'string','9') else set(handlestekshasil,'string','x') rec2 = textread('hasiluji2mlf','%s'); if (strcmp(rec2(3),'nol') == 1) set(handlestekshasil2,'string','0') elseif (strcmp(rec2(3), 'satu') == 1) set(handlestekshasil2,'string','1') elseif (strcmp(rec2(3),'dua') == 1) set(handlestekshasil2,'string','2') elseif (strcmp(rec2(3), 'tiga') == 1) set(handlestekshasil2,'string','3') elseif (strcmp(rec2(3),'empat') == 1) set(handlestekshasil2,'string','4') elseif (strcmp(rec2(3), 'lima') == 1) set(handlestekshasil2,'string','5') elseif (strcmp(rec2(3), 'enam') == 1) set(handlestekshasil2,'string','6') elseif (strcmp(rec2(3),'tujuh') == 1) set(handlestekshasil2,'string','7') elseif (strcmp(rec2(3), 'delapan') == 1) set(handlestekshasil2,'string','8') elseif (strcmp(rec2(3),'sembilan') == 1) set(handlestekshasil2,'string','9') else set(handlestekshasil,'string','x') rec3 = textread('hasiluji3mlf','%s'); if (strcmp(rec3(3),'nol') == 1) set(handlestekshasil3,'string','0') elseif (strcmp(rec3(3), 'satu') == 1) set(handlestekshasil3,'string','1') elseif (strcmp(rec3(3),'dua') == 1) set(handlestekshasil3,'string','2') elseif (strcmp(rec3(3), 'tiga') == 1) set(handlestekshasil3,'string','3') elseif (strcmp(rec3(3),'empat') == 1) set(handlestekshasil3,'string','4') elseif (strcmp(rec3(3), 'lima') == 1) set(handlestekshasil3,'string','5') elseif (strcmp(rec3(3), 'enam') == 1) set(handlestekshasil3,'string','6') elseif (strcmp(rec3(3),'tujuh') == 1) set(handlestekshasil3,'string','7') elseif (strcmp(rec3(3), 'delapan') == 1) set(handlestekshasil3,'string','8') elseif (strcmp(rec3(3),'sembilan') == 1) set(handlestekshasil3,'string','9') else set(handlestekshasil,'string','x') rec4 = textread('hasiluji4mlf','%s');

111 93 if (strcmp(rec4(3),'nol') == 1) set(handlestekshasil4,'string','0') elseif (strcmp(rec4(3), 'satu') == 1) set(handlestekshasil4,'string','1') elseif (strcmp(rec4(3),'dua') == 1) set(handlestekshasil4,'string','2') elseif (strcmp(rec4(3), 'tiga') == 1) set(handlestekshasil4,'string','3') elseif (strcmp(rec4(3),'empat') == 1) set(handlestekshasil4,'string','4') elseif (strcmp(rec4(3), 'lima') == 1) set(handlestekshasil4,'string','5') elseif (strcmp(rec4(3), 'enam') == 1) set(handlestekshasil4,'string','6') elseif (strcmp(rec4(3),'tujuh') == 1) set(handlestekshasil4,'string','7') elseif (strcmp(rec4(3), 'delapan') == 1) set(handlestekshasil4,'string','8') elseif (strcmp(rec4(3),'sembilan') == 1) set(handlestekshasil4,'string','9') else set(handlestekshasil,'string','x') toc % hobject handle to pushbutton5 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton6 function pushbutton6_callback(hobject, eventdata, handles) [y, fs, nbits] = wavread('datamasuk2wav'); %read in the wav file sound(y,fs) %play back the wav file % hobject handle to pushbutton6 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton7 function pushbutton7_callback(hobject, eventdata, handles) [y, fs, nbits] = wavread('datamasuk3wav'); %read in the wav file sound(y,fs) %play back the wav file % hobject handle to pushbutton7 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton8 function pushbutton8_callback(hobject, eventdata, handles) [y, fs, nbits] = wavread('datamasuk4wav'); %read in the wav file sound(y,fs) %play back the wav file % hobject handle to pushbutton8 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

112 94 % --- Executes on button press in pushbutton9 function pushbutton9_callback(hobject, eventdata, handles) close (pengujiansistem3); fig2 = openfig('pengujiansistem3_speakerfig'); handles = guihandles(fig2); guidata(fig2,handles); % hobject handle to pushbutton9 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton11 function pushbutton11_callback(hobject, eventdata, handles) close (pengujiansistem3); fig2 = openfig('depanfig'); handles = guihandles(fig2); guidata(fig2,handles); % hobject handle to pushbutton11 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) 3 pengujiansistem3_speakerm function varargout = pengujiansistem3_speaker(varargin) % PENGUJIANSISTEM3_SPEAKER M-file for pengujiansistem3_speakerfig % PENGUJIANSISTEM3_SPEAKER, by itself, creates a new PENGUJIANSISTEM3_SPEAKER or raises the existing % singleton* % % H = PENGUJIANSISTEM3_SPEAKER returns the handle to a new PENGUJIANSISTEM3_SPEAKER or the handle to % the existing singleton* % % PENGUJIANSISTEM3_SPEAKER('CALLBACK',hObject,eventData,handles,) calls the local % function named CALLBACK in PENGUJIANSISTEM3_SPEAKERM with the given input arguments % % PENGUJIANSISTEM3_SPEAKER('Property','Value',) creates a new PENGUJIANSISTEM3_SPEAKER or raises the % existing singleton* Starting from the left, property value pairs are % applied to the GUI before pengujiansistem3_speaker_openingfcn gets called An % unrecognized property name or invalid value makes property application % stop All inputs are passed to pengujiansistem3_speaker_openingfcn via varargin % % *See GUI Options on GUIDE's Tools menu Choose "GUI allows only one % instance to run (singleton)" % % See also: GUIDE, GUIDATA, GUIHANDLES

113 95 % Edit the above text to modify the response to help pengujiansistem3_speaker % Last Modified by GUIDE v25 03-May :48:12 % Begin initialization code - DO NOT EDIT gui_singleton = 1; gui_state = struct('gui_name', mfilename, 'gui_singleton', gui_singleton, 'gui_layoutfcn', [], 'gui_callback', []); if nargin && ischar(varargin{1}) gui_stategui_callback = str2func(varargin{1}); if nargout [varargout{1:nargout}] = gui_mainfcn(gui_state, varargin{:}); else gui_mainfcn(gui_state, varargin{:}); % End initialization code - DO NOT EDIT % --- Executes just before pengujiansistem3_speaker is made visible function pengujiansistem3_speaker_openingfcn(hobject, eventdata, handles, varargin) % This function has no output args, see OutputFcn % hobject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to pengujiansistem3_speaker (see VARARGIN) % Choose default command line output for pengujiansistem3_speaker handlesoutput = hobject; % Update handles structure guidata(hobject, handles); % UIWAIT makes pengujiansistem3_speaker wait for user response (see UIRESUME) % uiwait(handlesfigure1); % --- Outputs from this function are returned to the command line function varargout = pengujiansistem3_speaker_outputfcn(hobject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hobject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handlesoutput;

114 96 % --- Executes on button press in pushbuttondengar function pushbuttondengar_callback(hobject, eventdata, handles) [y, fs, nbits] = wavread('datamasuk1wav'); %read in the wav file sound(y,fs) % hobject handle to pushbuttondengar (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbuttonulang function pushbuttonulang_callback(hobject, eventdata, handles) delete ('datamasuk1wav'); delete ('datamasuk2wav'); delete ('datamasuk3wav'); delete ('datamasuk4wav'); delete ('datamasuk1mfc'); delete ('datamasuk2mfc'); delete ('datamasuk3mfc'); delete ('datamasuk4mfc'); delete ('hasilujispeaker1mlf'); delete ('hasilujispeaker2mlf'); delete ('hasilujispeaker3mlf'); delete ('hasilujispeaker4mlf'); delete ('datatestspeaker1scp'); delete ('datatestspeaker2scp'); delete ('datatestspeaker3scp'); delete ('datatestspeaker4scp'); close (pengujiansistem3_speaker); fig2 = openfig('pengujiansistem2fig'); handles = guihandles(fig2); guidata(fig2,handles); % hobject handle to pushbuttonulang (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbuttonproses function pushbuttonproses_callback(hobject, eventdata, handles) tic % Pembuatan codeallproses fid1 = fopen('codeallprosesspeakerscp','w'); srcdirectory = 'C:\Users\detha\Documents\MATLAB\Skripsi\'; targetdirectory = 'C:\Users\detha\Documents\MATLAB\Skripsi\'; fwrite(fid1,['"' srcdirectory 'datamasuk1wav " ' '"' targetdirectory 'datamasuk1mfc " ']); fprintf(fid1,'\n'); fwrite(fid1,['"' srcdirectory 'datamasuk2wav " ' '"' targetdirectory 'datamasuk2mfc " ']); fprintf(fid1,'\n'); fwrite(fid1,['"' srcdirectory 'datamasuk3wav " ' '"' targetdirectory 'datamasuk3mfc " ']); fprintf(fid1,'\n'); fwrite(fid1,['"' srcdirectory 'datamasuk4wav " ' '"' targetdirectory 'datamasuk4mfc " ']); fprintf(fid1,'\n'); fclose(fid1);

115 97 % Extract feature dan pembuatan prototype set(handlesteksproses1,'string','sedang melakukan proses'); a = 'Proses feature extraction '; b = 'HCopy -A -C mfcc_d_config_3 -S codeallprosesspeakerscp'; dos (b); step1 = {a;b}; set(handlesteksproses1,'string',step1); c = 'Proses pembuatan proto '; createproto('mfcc_d',24,20) set(handlesteksproses2,'string',c); % Training dan testing datamasuk d = 'Proses Training dan testing '; e = 'HParse -A grammar2 wdnet2'; dos (e); step2 = {d;e}; set(handlesteksproses3,'string',step2); % pembuatan file test fid2=fopen('datatestspeaker1scp','w'); srcdirectory = 'C:\Users\detha\Documents\MATLAB\Skripsi'; fwrite(fid2,['"' srcdirectory '\' 'datamasuk1mfc"']); fprintf(fid2,'\n'); fclose(fid2); fid3=fopen('datatestspeaker2scp','w'); srcdirectory = 'C:\Users\detha\Documents\MATLAB\Skripsi'; fwrite(fid3,['"' srcdirectory '\' 'datamasuk2mfc"']); fprintf(fid3,'\n'); fclose(fid3); fid4=fopen('datatestspeaker3scp','w'); srcdirectory = 'C:\Users\detha\Documents\MATLAB\Skripsi'; fwrite(fid4,['"' srcdirectory '\' 'datamasuk3mfc"']); fprintf(fid4,'\n'); fclose(fid4); fid5=fopen('datatestspeaker4scp','w'); srcdirectory = 'C:\Users\detha\Documents\MATLAB\Skripsi'; fwrite(fid5,['"' srcdirectory '\' 'datamasuk4mfc"']); fprintf(fid5,'\n'); fclose(fid5); % testing dengan algoritma viterbi f = 'HVite -A -w wdnet2 -l -o ST -i hasilujispeaker1mlf -S datatestspeaker1scp -H hmm0/hmmdefs dict2 modellist2'; g = 'HVite -A -w wdnet2 -l -o ST -i hasilujispeaker2mlf -S datatestspeaker2scp -H hmm0/hmmdefs dict2 modellist2'; h = 'HVite -A -w wdnet2 -l -o ST -i hasilujispeaker3mlf -S datatestspeaker3scp -H hmm0/hmmdefs dict2 modellist2'; i = 'HVite -A -w wdnet2 -l -o ST -i hasilujispeaker4mlf -S datatestspeaker4scp -H hmm0/hmmdefs dict2 modellist2'; dos (f); dos (g); dos (h); dos (i); step3 = {f;g;h;i};

116 98 set(handlesteksproses4,'string',step3); % Menampilkan hasil pengenalan set(handlesteksproses,'string','anda dikenali sebagai '); rec1 = textread('hasilujispeaker1mlf','%s'); rec2 = textread('hasilujispeaker2mlf','%s'); rec3 = textread('hasilujispeaker3mlf','%s'); rec4 = textread('hasilujispeaker4mlf','%s'); if (rec1{3}(1) == 'a' && rec2{3}(1) == 'a' && rec3{3}(1) == 'a') set(handlestekshasil,'string','angga') elseif (rec1{3}(1) == 'a' && rec2{3}(1) == 'a' && rec4{3}(1) == 'a') set(handlestekshasil,'string','angga') elseif (rec1{3}(1) == 'a' && rec3{3}(1) == 'a' && rec4{3}(1) == 'a') set(handlestekshasil,'string','angga') elseif (rec2{3}(1) == 'a' && rec3{3}(1) == 'a' && rec4{3}(1) == 'a') set(handlestekshasil,'string','angga') elseif (rec1{3}(1) == 'd' && rec2{3}(1) == 'd' && rec3{3}(1) == 'd' ) set(handlestekshasil,'string','deta') elseif (rec1{3}(1) == 'd' && rec2{3}(1) == 'd' && rec4{3}(1) == 'd' ) set(handlestekshasil,'string','deta') elseif (rec1{3}(1) == 'd' && rec3{3}(1) == 'd' && rec4{3}(1) == 'd') set(handlestekshasil,'string','deta') elseif (rec2{3}(1) == 'd' && rec3{3}(1) == 'd' && rec4{3}(1) == 'd') set(handlestekshasil,'string','deta') elseif (rec1{3}(1) == 'p' && rec2{3}(1) == 'p' && rec3{3}(1) == 'p' ) set(handlestekshasil,'string','petra') elseif (rec1{3}(1) == 'p' && rec2{3}(1) == 'p' && rec4{3}(1) == 'p' ) set(handlestekshasil,'string','petra') elseif (rec1{3}(1) == 'p' && rec3{3}(1) == 'p' && rec4{3}(1) == 'p') set(handlestekshasil,'string','petra') elseif (rec2{3}(1) == 'p' && rec3{3}(1) == 'p' && rec4{3}(1) == 'p') set(handlestekshasil,'string','petra') elseif (rec1{3}(1) == 'y' && rec2{3}(1) == 'y' && rec3{3}(1) == 'y' ) set(handlestekshasil,'string','yudhi') elseif (rec1{3}(1) == 'y' && rec2{3}(1) == 'y' && rec4{3}(1) == 'y' ) set(handlestekshasil,'string','yudhi') elseif (rec1{3}(1) == 'y' && rec3{3}(1) == 'y' && rec4{3}(1) == 'y') set(handlestekshasil,'string','yudhi') elseif (rec2{3}(1) == 'y' && rec3{3}(1) == 'y' && rec4{3}(1) == 'y') set(handlestekshasil,'string','yudhi') else set(handlestekshasil,'string','maaf suara Anda tidak terdaftar')

117 99 4 File grammar $kata = nol satu dua tiga empat lima enam tujuh delapan sembilan ; (SENT-START ( $kata ) SENT-END) 5 File grammar2 $orang = angga deta petra yudhi ; (SENT-START ( $orang ) SENT-END) 6 File modellist nol satu dua tiga empat lima enam tujuh delapan sembilan sil 7 File modellist2 angga deta petra yudhi sil 8 File dict SENT-START [] sil SENT-END [] sil nol nol satu satu dua dua tiga tiga empat empat lima lima enam enam tujuh tujuh delapan delapan sembilan sembilan

118 100 9 File dict2 SENT-START [] sil SENT-END [] sil angga angga deta deta petra petra yudhi yudhi 10 File mfccconfig_1 #Coding Parameter MFCC SOURCEKIND = WAVEFROM SOURCEFORMAT = WAV TARGETKIND = MFCC USEPOWER = F TARGETRATE = SAVECOMPRESSED = F SAVEWITHCRC = T WINDOWSIZE = USEHAMMING = T PREEMCOEF = 097 NUMCHANS = 24 CEPLIFTER = 22 NUMCEPS = 12 LPCORDER = 12 ENORMALISE = F 11 createscpm % membuat file codeallscp dirasal = 'C:\Users\detha\Documents\MATLAB\Skripsi\' dirasal = {'data0';'data1'; 'data2'; 'data3'; 'data4';'data5';'data6';'data7';'data8';'data9'}; files=[]; for i=1:length(dirasal) % masuk ke direktori baca wavfile cd (dirasal{i}); filewav= dir ('*wav'); % ambil nama file filename={}; for j=1:length(filewav) filename{j}= filewav(j)name(1:length(filewav(j)name)- 4); files{i}=filename; cd ; % mencetak file codeallscp

119 101 fid1 = fopen ('codeallscp','w'); srcdirectory = 'C:\Users\detha\Documents\MATLAB\Skripsi\'; targetdirectory = 'C:\Users\detha\Documents\MATLAB\Skripsi\hasil'; for m=1:length(files) filebaru=files{m}; for n=1:length(filebaru) fwrite(fid1, ['"' srcdirectory dirasal{m} '\' filebaru{n} 'wav" ' '"' targetdirectory '\' filebaru{n} 'mfc"']); fprintf(fid1,'\n'); disp(filebaru{n}); fclose(fid1); 12 createscp2m % membuat file codeallscp dirasal = 'C:\Users\detha\Documents\MATLAB\Skripsi\' dirasal = {'data0';'data1'; 'data2'; 'data3'; 'data4';'data5';'data6';'data7';'data8';'data9'}; files=[]; for i=1:length(dirasal) % masuk ke direktori baca wavfile cd (dirasal{i}); filewav= dir ('*wav'); % ambil nama file filename={}; for j=1:length(filewav) filename{j}= filewav(j)name(1:length(filewav(j)name)-4); files{i}=filename; cd ; % mencetak file codeallscp fid1 = fopen ('codeall2scp','w'); srcdirectory = 'C:\Users\detha\Documents\MATLAB\Skripsi\'; targetdirectory = 'C:\Users\detha\Documents\MATLAB\Skripsi\hasil2'; for m=1:length(files) filebaru=files{m}; for n=1:length(filebaru) fwrite(fid1, ['"' srcdirectory dirasal{m} '\' filebaru{n} 'wav" ' '"' targetdirectory '\' filebaru{n} 'mfc"']); fprintf(fid1,'\n'); disp(filebaru{n}); fclose(fid1);

120 File codeallscp "C:\Users\detha\Documents\MATLAB\Skripsi\data0\ANGGA0-1wav" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\ANGGA0-1mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\data0\ANGGA0-2wav" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\ANGGA0-2mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\data0\ANGGA0-3wav" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\ANGGA0-3mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\data9\YUDHI9-3wav" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\YUDHI9-3mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\data9\YUDHI9-4wav" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\YUDHI9-4mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\data9\YUDHI9-5wav" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\YUDHI9-5mfc" 14 File codeall2scp "C:\Users\detha\Documents\MATLAB\Skripsi\data0\ANGGA0-1wav" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil2\ANGGA0-1mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil2\PETRA2-4mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil2\YUDHI9-2mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\data9\YUDHI9-3wav" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil2\YUDHI9-3mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\data9\YUDHI9-4wav" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil2\YUDHI9-4mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\data9\YUDHI9-5wav" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil2\YUDHI9-5mfc" 15 createmlfm dirasal = {'data0';'data1'; 'data2'; 'data3'; 'data4';'data5';'data6';'data7';'data8';'data9'}; kata = {'nol','satu','dua','tiga','empat','lima','enam','tujuh','delapan','sembilan'}; files=[]; for j=1:length(dirasal); %masuk direktori baca filewav cd (dirasal{j}); filemfc = dir ('*wav'); %ambil nama filenya saja filename={}; for i=1:length(filemfc) filename{i}=filemfc(i)name(1:length(filemfc(i)name)-4); files{j}=filename; cd ;

121 103 fid1 = fopen('allkatamlf','w'); fwrite(fid1,'#!mlf!#'); fprintf(fid1, '\n'); for m=1:length(files) filebaru=files{m}; for n=1:length(filebaru) fwrite(fid1, ['"*/' filebaru{n} 'lab"']); fprintf(fid1, '\n'); fwrite(fid1, [kata{m}]); fprintf(fid1, '\n'); fprintf(fid1, ''); fprintf(fid1, '\n'); disp(filebaru{n}); fclose(fid1); 16 createmlf2m dirasal = {'angga';'deta';'petra';'yudhi'}; orang = {'angga','deta','petra','yudhi'}; files=[]; for j=1:length(dirasal); %masuk direktori baca filewav cd (dirasal{j}); filemfc = dir ('*wav'); %ambil nama filenya saja filename={}; for i=1:length(filemfc) filename{i}=filemfc(i)name(1:length(filemfc(i)name)-4); files{j}=filename; cd ; fid1 = fopen('allkata2mlf','w'); fwrite(fid1,'#!mlf!#'); fprintf(fid1, '\n'); for m=1:length(files) filebaru=files{m}; for n=1:length(filebaru) fwrite(fid1, ['"*/' filebaru{n} 'lab"']); fprintf(fid1, '\n'); fwrite(fid1, [orang{m}]); fprintf(fid1, '\n'); fprintf(fid1, ''); fprintf(fid1, '\n'); disp(filebaru{n}); fclose(fid1);

122 File allkatamlf #!MLF!# "*/ANGGA0-1lab" nol "*/ANGGA0-2lab" nol "*/ANGGA0-3lab" nol "*/ANGGA0-4lab" nol "*/ANGGA0-5lab" nol "*/DETA0-1lab" nol "*/DETA0-2lab" nol "*/DETA0-3lab" nol "*/DETA0-4lab" nol "*/YUDHI9-2lab" sembilan "*/YUDHI9-3lab" sembilan "*/YUDHI9-4lab" sembilan "*/YUDHI9-5lab" sembilan

123 File allkata2mlf #!MLF!# "*/ANGGA0-1lab" angga "*/ANGGA0-2lab" angga "*/ANGGA0-3lab" angga "*/YUDHI8-5lab" yudhi "*/YUDHI9-1lab" yudhi "*/YUDHI9-2lab" yudhi "*/YUDHI9-3lab" yudhi "*/YUDHI9-4lab" yudhi "*/YUDHI9-5lab" yudhi 19 File kata2phoneled EX IS sil sil 20 File katatypephonemlf #!MLF!# "*/ANGGA0-1lab" sil nol sil "*/YUDHI9-4lab" sil sembilan sil "*/YUDHI9-5lab" sil sembilan sil

124 createalltraindatam % create file AllTrainData % direktori asal 'C:\Users\petrav\Documents\MATLAB\Skripsi' dirasal = {'data0';'data1'; 'data2'; 'data3'; 'data4';'data5';'data6';'data7';'data8';'data9'}; files=[]; for i=1:length(dirasal) % masuk ke direktori baca wavfile cd (dirasal{i}); filemfc= dir ('*wav'); % ambil nama file filename={}; for j=1:length(filemfc) filename{j}= filemfc(j)name(1:length(filemfc(j)name)-4); files{i}=filename; cd ; % mencetak file data training fid1=fopen('alltraindata1scp','w'); fid2=fopen('alltestdata1scp','w'); srcdirecory = 'C:\Users\detha\Documents\MATLAB\Skripsi'; targetdirectory ='C:\Users\detha\Documents\MATLAB\Skripsi\hasil'; % directory tujuan for m=1:length(files) filebaru=files{m}; for n=1:length(filebaru) if n > 4 fwrite(fid1, ['"' targetdirectory '\' filebaru{n} 'mfc"']); fprintf(fid1, '\n'); else fwrite(fid2, ['"' targetdirectory '\' filebaru{n} 'mfc"']); fprintf(fid2, '\n'); fclose(fid1); fclose(fid2); fid1=fopen('alltraindata2scp','w'); fid2=fopen('alltestdata2scp','w'); srcdirecory = 'C:\Users\detha\Documents\MATLAB\Skripsi'; targetdirectory ='C:\Users\detha\Documents\MATLAB\Skripsi\hasil'; % directory tujuan for m=1:length(files) filebaru=files{m}; for n=1:length(filebaru) if n < 5

125 107 fwrite(fid1, ['"' targetdirectory '\' filebaru{n} 'mfc"']); fprintf(fid1, '\n'); else if n > 8 fwrite(fid1, ['"' targetdirectory '\' filebaru{n} 'mfc"']); fprintf(fid1, '\n'); else fwrite(fid2, ['"' targetdirectory '\' filebaru{n} 'mfc"']); fprintf(fid2, '\n'); fclose(fid1); fclose(fid2); fid1=fopen('alltraindata3scp','w'); fid2=fopen('alltestdata3scp','w'); srcdirecory = 'C:\Users\detha\Documents\MATLAB\Skripsi'; targetdirectory ='C:\Users\detha\Documents\MATLAB\Skripsi\hasil'; % directory tujuan for m=1:length(files) filebaru=files{m}; for n=1:length(filebaru) if n < 9 fwrite(fid1, ['"' targetdirectory '\' filebaru{n} 'mfc"']); fprintf(fid1, '\n'); else if n > 12 fwrite(fid1, ['"' targetdirectory '\' filebaru{n} 'mfc"']); fprintf(fid1, '\n'); else fwrite(fid2, ['"' targetdirectory '\' filebaru{n} 'mfc"']); fprintf(fid2, '\n'); fclose(fid1); fclose(fid2); fid1=fopen('alltraindata4scp','w'); fid2=fopen('alltestdata4scp','w'); srcdirecory = 'C:\Users\detha\Documents\MATLAB\Skripsi'; targetdirectory ='C:\Users\detha\Documents\MATLAB\Skripsi\hasil'; % directory tujuan for m=1:length(files) filebaru=files{m}; for n=1:length(filebaru) if n < 13 fwrite(fid1, ['"' targetdirectory '\' filebaru{n} 'mfc"']);

126 108 fprintf(fid1, '\n'); else if n > 16 fwrite(fid1, ['"' targetdirectory '\' filebaru{n} 'mfc"']); fprintf(fid1, '\n'); else fwrite(fid2, ['"' targetdirectory '\' filebaru{n} 'mfc"']); fprintf(fid2, '\n'); fclose(fid1); fclose(fid2); fid1=fopen('alltraindata5scp','w'); fid2=fopen('alltestdata5scp','w'); srcdirecory = 'C:\Users\detha\Documents\MATLAB\Skripsi'; targetdirectory ='C:\Users\detha\Documents\MATLAB\Skripsi\hasil'; % directory tujuan for m=1:length(files) filebaru=files{m}; for n=1:length(filebaru) if n < 17 fwrite(fid1, ['"' targetdirectory '\' filebaru{n} 'mfc"']); fprintf(fid1, '\n'); else fwrite(fid2, ['"' targetdirectory '\' filebaru{n} 'mfc"']); fprintf(fid2, '\n'); fclose(fid1); fclose(fid2); 22 CreateAllTrainDataSm % create file AllTrainData % direktori asal 'C:\Users\petrav\Documents\MATLAB\Skripsi' dirasal = {'data0';'data1'; 'data2'; 'data3'; 'data4';'data5';'data6';'data7';'data8';'data9'}; files=[]; for i=1:length(dirasal) % masuk ke direktori baca wavfile cd (dirasal{i}); filemfc= dir ('*wav'); % ambil nama file filename={}; for j=1:length(filemfc) filename{j}= filemfc(j)name(1:length(filemfc(j)name)-4);

127 109 files{i}=filename; cd ; % mencetak file data training fid1=fopen('alltraindatas1scp','w'); fid2=fopen('alltestdatas1scp','w'); srcdirecory = 'C:\Users\detha\Documents\MATLAB\Skripsi'; targetdirectory ='C:\Users\detha\Documents\MATLAB\Skripsi\hasil2'; % directory tujuan for m=1:length(files) filebaru=files{m}; for n=1:length(filebaru) if n > 4 fwrite(fid1, ['"' targetdirectory '\' filebaru{n} 'mfc"']); fprintf(fid1, '\n'); else fwrite(fid2, ['"' targetdirectory '\' filebaru{n} 'mfc"']); fprintf(fid2, '\n'); fclose(fid1); fclose(fid2); fid1=fopen('alltraindatas2scp','w'); fid2=fopen('alltestdatas2scp','w'); srcdirecory = 'C:\Users\detha\Documents\MATLAB\Skripsi'; targetdirectory ='C:\Users\detha\Documents\MATLAB\Skripsi\hasil2'; % directory tujuan for m=1:length(files) filebaru=files{m}; for n=1:length(filebaru) if n < 5 fwrite(fid1, ['"' targetdirectory '\' filebaru{n} 'mfc"']); fprintf(fid1, '\n'); else if n > 8 fwrite(fid1, ['"' targetdirectory '\' filebaru{n} 'mfc"']); fprintf(fid1, '\n'); else fwrite(fid2, ['"' targetdirectory '\' filebaru{n} 'mfc"']); fprintf(fid2, '\n'); fclose(fid1); fclose(fid2); fid1=fopen('alltraindatas3scp','w'); fid2=fopen('alltestdatas3scp','w'); srcdirecory = 'C:\Users\detha\Documents\MATLAB\Skripsi'; targetdirectory ='C:\Users\detha\Documents\MATLAB\Skripsi\hasil2'; % directory tujuan

128 110 for m=1:length(files) filebaru=files{m}; for n=1:length(filebaru) if n < 9 fwrite(fid1, ['"' targetdirectory '\' filebaru{n} 'mfc"']); fprintf(fid1, '\n'); else if n > 12 fwrite(fid1, ['"' targetdirectory '\' filebaru{n} 'mfc"']); fprintf(fid1, '\n'); else fwrite(fid2, ['"' targetdirectory '\' filebaru{n} 'mfc"']); fprintf(fid2, '\n'); fclose(fid1); fclose(fid2); fid1=fopen('alltraindatas4scp','w'); fid2=fopen('alltestdatas4scp','w'); srcdirecory = 'C:\Users\detha\Documents\MATLAB\Skripsi'; targetdirectory ='C:\Users\detha\Documents\MATLAB\Skripsi\hasil2'; % directory tujuan for m=1:length(files) filebaru=files{m}; for n=1:length(filebaru) if n < 13 fwrite(fid1, ['"' targetdirectory '\' filebaru{n} 'mfc"']); fprintf(fid1, '\n'); else if n > 16 fwrite(fid1, ['"' targetdirectory '\' filebaru{n} 'mfc"']); fprintf(fid1, '\n'); else fwrite(fid2, ['"' targetdirectory '\' filebaru{n} 'mfc"']); fprintf(fid2, '\n'); fclose(fid1); fclose(fid2); fid1=fopen('alltraindatas5scp','w'); fid2=fopen('alltestdatas5scp','w'); srcdirecory = 'C:\Users\detha\Documents\MATLAB\Skripsi'; targetdirectory ='C:\Users\detha\Documents\MATLAB\Skripsi\hasil2'; % directory tujuan for m=1:length(files) filebaru=files{m}; for n=1:length(filebaru) if n < 17 fwrite(fid1, ['"' targetdirectory '\' filebaru{n} 'mfc"']); fprintf(fid1, '\n'); else

129 111 fwrite(fid2, ['"' targetdirectory '\' filebaru{n} 'mfc"']); fprintf(fid2, '\n'); fclose(fid1); fclose(fid2); 23 File AllTrainData1 "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\ANGGA0-5mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\DETA0-1mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\DETA0-2mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\DETA0-3mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\YUDHI9-2mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\YUDHI9-3mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\YUDHI9-4mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\YUDHI9-5mfc" 24 File AllTrainData2 "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\ANGGA0-1mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\ANGGA0-2mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\ANGGA0-3mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\ANGGA0-4mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\YUDHI9-2mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\YUDHI9-3mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\YUDHI9-4mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\YUDHI9-5mfc" 25 File AllTrainData3 "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\ANGGA0-1mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\ANGGA0-2mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\ANGGA0-3mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\ANGGA0-4mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\YUDHI9-2mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\YUDHI9-3mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\YUDHI9-4mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\YUDHI9-5mfc"

130 File AllTrainData4 "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\ANGGA0-1mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\ANGGA0-2mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\ANGGA0-3mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\ANGGA0-4mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\YUDHI9-2mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\YUDHI9-3mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\YUDHI9-4mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\YUDHI9-5mfc" 27 File AllTrainData5 "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\ANGGA0-1mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\ANGGA0-2mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\ANGGA0-3mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\ANGGA0-4mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\PETRA9-3mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\PETRA9-4mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\PETRA9-5mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\YUDHI9-1mfc" 28 File AllTestData1 "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\ANGGA0-1mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\ANGGA0-2mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\ANGGA0-3mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\ANGGA0-4mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\ANGGA1-1mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\ANGGA9-1mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\ANGGA9-2mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\ANGGA9-3mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\ANGGA9-4mfc" 29 File AllTestData2 "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\ANGGA0-5mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\DETA0-1mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\DETA0-2mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\DETA0-3mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\ANGGA9-5mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\DETA9-1mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\DETA9-2mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\DETA9-3mfc"

131 File AllTestData3 "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\DETA0-4mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\DETA0-5mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\PETRA0-1mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\PETRA0-2mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\DETA9-4mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\DETA9-5mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\PETRA9-1mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\PETRA9-2mfc" 31 File AllTestData4 "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\PETRA0-3mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\PETRA0-4mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\PETRA0-5mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\YUDHI0-1mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\PETRA9-3mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\PETRA9-4mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\PETRA9-5mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\YUDHI9-1mfc" 32 File AllTestData5 "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\YUDHI0-2mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\YUDHI0-3mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\YUDHI0-4mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\YUDHI0-5mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\YUDHI9-2mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\YUDHI9-3mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\YUDHI9-4mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\YUDHI9-5mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\YUDHI9-1mfc" 33 createprotom function createproto(feature,numparam,numstates) % Function to create proto file % Input % feature : feature(mfcc, USER) % numparam : number of parameter used (MFCC 12, MFCCE 13) % numstates: number of states % Output % proto file fid1=fopen('proto','w'); fwrite(fid1, ['~o <VecSize> ' num2str(numparam) ' <' feature '>']); fprintf(fid1, '\n');

132 114 fwrite(fid1, ['~h "proto"']); fprintf(fid1, '\n'); fwrite(fid1, '<BeginHMM>'); fprintf(fid1, '\n'); fwrite(fid1, [' <NumStates> ' num2str(numstates)]); fprintf(fid1, '\n'); M = zeros(numparam,1); % mean V = ones(numparam,1); % variance for i=2:numstates-1 fwrite(fid1,[' <State> ' num2str(i)]); fprintf(fid1, '\n'); fprintf(fid1, '\t'); fwrite(fid1,[ '<Mean> ' num2str(numparam)]); fprintf(fid1, '\n'); fprintf(fid1, '\t\t'); for j = 1:length(M) fwrite(fid1, num2str(m(j))); fprintf(fid1, '\t'); fprintf(fid1, '\n'); fprintf(fid1, '\t'); fwrite(fid1,[ '<Variance> ' num2str(numparam)]); fprintf(fid1, '\n'); fprintf(fid1, '\t\t'); for j = 1:length(V) fwrite(fid1, num2str(v(j))); fprintf(fid1, '\t'); fprintf(fid1, '\n'); % Transition matrix fwrite(fid1,[' <TransP> ' num2str(numstates)]); fprintf(fid1, '\n'); TP = transmat(numstates); % calling transmat function [m,n]=size(tp); for i=1:m fprintf(fid1,'\t'); for j=1:n fwrite(fid1, num2str(tp(i,j))); fprintf(fid1, '\t'); fprintf(fid1,'\n'); fwrite(fid1,'<endhmm>'); fclose(fid1);

133 transmatm function TransP=transmat(numOfStates) %numofstates = 20; TransP=zeros(numOfStates); TransP(1,2)=1; for i=2:numofstates-1 TransP(i,i+1)=04; for j=2:2:numofstates-1 %genap values TransP(j,j)=06; for k=3:2:numofstates-1 %odd values TransP(k,k-1)=01; TransP(k,k)=05; TransP(numOfStates,numOfStates)=1; 36 proseshmmm % Pembentukan Model a = 'Proses training data'; b = 'HParse -A grammar wdnet'; c = 'HLEd -A -l * -d dict -i katatypephonemlf kata2phoneled allkatamlf'; dos(b); dos(c); step1 = {a;b;c}; set(handlestekspertama,'string',step1); % Proses testing dan training pertama c1 = 'Proses training dan testing pertama ' d = 'HCompV -A -f 001 -m -S AllTrainData1scp -M hmm1 proto'; e = 'set CLASSPATH='; f = 'java CloneHMM /hmm1 modellist'; dos (d); dos (e); dos (f); step2 = {d;e;f;c1}; set(handlesteksproses1,'string',step2); % Pembuatan Model dengan Algoritma Baum - Welch g = 'HERest -A -t I katatypephonemlf -S AllTrainData1scp - H hmm1/hmmdefs -M hmm1 modellist'; for j=1:6 dos (g); set(handlesteksproses2,'string',g);

134 116 % Pengenalan dengan Algoritma Viterbi h = 'HVite -A -w wdnet -l -i rec1mlf -S AllTestData1scp -H hmm1/hmmdefs dict modellist'; i = 'HVite -A -w wdnet -l -o ST -i rec1_1mlf -S AllTestData1scp -H hmm1/hmmdefs dict modellist'; j = 'Proses training pertama selesai'; dos (h); dos (i); step3 = {h;i;j;}; set(handlesteksproses3,'string',step3); % Proses testing dan training kedua i1 = 'Proses training dan testing kedua '; set(handlestekskedua,'string',i1); dos ('HCompV -A -f 001 -m -S AllTrainData2scp -M hmm2 proto'); dos ('set CLASSPATH='); dos ('java CloneHMM /hmm2 modellist'); for j=1:6 dos ('HERest -A -t I katatypephonemlf -S AllTrainData2scp -H hmm2/hmmdefs -M hmm2 modellist'); dos ('HVite -A -w wdnet -l -i rec2mlf -S AllTestData2scp -H hmm2/hmmdefs dict modellist'); dos ('HVite -A -w wdnet -l -o ST -i rec2_1mlf -S AllTestData2scp -H hmm2/hmmdefs dict modellist'); % Proses testing dan training ketiga k = 'Proses training dan testing ketiga '; set(handlesteksketiga,'string',k); dos ('HCompV -A -f 001 -m -S AllTrainData3scp -M hmm3 proto'); dos ('set CLASSPATH='); dos ('java CloneHMM /hmm3 modellist'); for j=1:6 dos ('HERest -A -t I katatypephonemlf -S AllTrainData3scp -H hmm3/hmmdefs -M hmm3 modellist'); dos ('HVite -A -w wdnet -l -i rec3mlf -S AllTestData3scp -H hmm3/hmmdefs dict modellist'); dos ('HVite -A -w wdnet -l -o ST -i rec3_1mlf -S AllTestData3scp -H hmm3/hmmdefs dict modellist'); % Proses testing dan training keempat l = 'Proses training dan testing keempat '; set(handlestekskeempat,'string',l); dos ('HCompV -A -f 001 -m -S AllTrainData4scp -M hmm4 proto'); dos ('set CLASSPATH='); dos ('java CloneHMM /hmm4 modellist'); for j=1:6 dos ('HERest -A -t I katatypephonemlf -S AllTrainData4scp -H hmm4/hmmdefs -M hmm4 modellist'); dos ('HVite -A -w wdnet -l -i rec4mlf -S AllTestData4scp -H hmm4/hmmdefs dict modellist'); dos ('HVite -A -w wdnet -l -o ST -i rec4_1mlf -S AllTestData4scp -H hmm4/hmmdefs dict modellist'); % Proses training dan testing kelima m = 'Proses training dan testing kelima '; set(handlestekskelima,'string',m); dos ('HCompV -A -f 001 -m -S AllTrainData5scp -M hmm5 proto'); dos ('set CLASSPATH=');

135 117 dos ('java CloneHMM /hmm5 modellist'); for j=1:6 dos ('HERest -A -t I katatypephonemlf -S AllTrainData5scp -H hmm5/hmmdefs -M hmm5 modellist'); dos ('HVite -A -w wdnet -l -i rec5mlf -S AllTestData5scp -H hmm5/hmmdefs dict modellist'); dos ('HVite -A -w wdnet -l -o ST -i rec5_1mlf -S AllTestData5scp -H hmm5/hmmdefs dict modellist'); set(handlestekskeenam,'string','proses selesai'); CM_Speech; 37 ProsesHMM2m % Pembentukan Model a = 'Proses training data'; b = 'HParse -A grammar2 wdnet2'; c = 'HLEd -A -l * -d dict2 -i katatypephone2mlf kata2phoneled allkata2mlf'; dos(b); dos(c); step1 = {a;b;c}; set(handlestekspertama,'string',step1); % Proses testing dan training pertama c1 = 'Proses training dan testing pertama ' d = 'HCompV -A -f 001 -m -S AllTrainDataS1scp -M hmm6 proto'; e = 'set CLASSPATH='; f = 'java CloneHMM /hmm6 modellist2'; dos (d); dos (e); dos (f); step2 = {d;e;f;c1}; set(handlesteksproses1,'string',step2); % Pembuatan Model dengan Algoritma Baum - Welch g = 'HERest -A -t I katatypephone2mlf -S AllTrainDataS1scp -H hmm6/hmmdefs -M hmm6 modellist2'; for j=1:6 dos (g); set(handlesteksproses2,'string',g); % Pengenalan dengan Algoritma Viterbi h = 'HVite -A -w wdnet2 -l -i rec1smlf -S AllTestDataS1scp -H hmm6/hmmdefs dict2 modellist2'; i = 'HVite -A -w wdnet2 -l -o ST -i rec1_1smlf -S AllTestDataS1scp -H hmm6/hmmdefs dict2 modellist2'; j = 'Proses training pertama selesai'; dos (h); dos (i); step3 = {h;i;j;}; set(handlesteksproses3,'string',step3);

136 118 % Proses testing dan training kedua i1 = 'Proses training dan testing kedua '; set(handlestekskedua,'string',i1); dos ('HCompV -A -f 001 -m -S AllTrainDataS2scp -M hmm7 proto'); dos ('set CLASSPATH='); dos ('java CloneHMM /hmm7 modellist2'); for j=1:6 dos ('HERest -A -t I katatypephone2mlf -S AllTrainDataS2scp -H hmm7/hmmdefs -M hmm7 modellist2'); dos ('HVite -A -w wdnet2 -l -i rec2smlf -S AllTestDataS2scp -H hmm7/hmmdefs dict2 modellist2'); dos ('HVite -A -w wdnet2 -l -o ST -i rec2_1smlf -S AllTestDataS2scp -H hmm7/hmmdefs dict2 modellist2'); % Proses testing dan training ketiga k = 'Proses training dan testing ketiga '; set(handlesteksketiga,'string',k); dos ('HCompV -A -f 001 -m -S AllTrainDataS3scp -M hmm8 proto'); dos ('set CLASSPATH='); dos ('java CloneHMM /hmm8 modellist2'); for j=1:6 dos ('HERest -A -t I katatypephone2mlf -S AllTrainDataS3scp -H hmm8/hmmdefs -M hmm8 modellist2'); dos ('HVite -A -w wdnet2 -l -i rec3smlf -S AllTestDataS3scp -H hmm8/hmmdefs dict2 modellist2'); dos ('HVite -A -w wdnet2 -l -o ST -i rec3_1smlf -S AllTestDataS3scp -H hmm8/hmmdefs dict2 modellist2'); % Proses testing dan training keempat l = 'Proses training dan testing keempat '; set(handlestekskeempat,'string',l); dos ('HCompV -A -f 001 -m -S AllTrainDataS4scp -M hmm9 proto'); dos ('set CLASSPATH='); dos ('java CloneHMM /hmm9 modellist2'); for j=1:6 dos ('HERest -A -t I katatypephone2mlf -S AllTrainDataS4scp -H hmm9/hmmdefs -M hmm9 modellist2'); dos ('HVite -A -w wdnet2 -l -i rec4smlf -S AllTestDataS4scp -H hmm9/hmmdefs dict2 modellist2'); dos ('HVite -A -w wdnet2 -l -o ST -i rec4_1smlf -S AllTestDataS4scp -H hmm9/hmmdefs dict2 modellist2'); % Proses training dan testing kelima m = 'Proses training dan testing kelima '; set(handlestekskelima,'string',m); dos ('HCompV -A -f 001 -m -S AllTrainDataS5scp -M hmm10 proto'); dos ('set CLASSPATH='); dos ('java CloneHMM /hmm10 modellist2'); for j=1:6 dos ('HERest -A -t I katatypephone2mlf -S AllTrainDataS5scp -H hmm10/hmmdefs -M hmm10 modellist2'); dos ('HVite -A -w wdnet2 -l -i rec5smlf -S AllTestDataS5scp -H hmm10/hmmdefs dict2 modellist2'); dos ('HVite -A -w wdnet2 -l -o ST -i rec5_1smlf -S AllTestDataS5scp -H hmm10/hmmdefs dict2 modellist2'); set(handlestekskeenam,'string','proses selesai'); CM_Speaker;

137 File rec1_1mlf #!MLF!# "/ANGGA0-1rec" nol "/ANGGA0-2rec" nol "/ANGGA0-3rec" nol "/ANGGA0-4rec" nol "/ANGGA1-1rec" satu "/ANGGA1-2rec" satu "/ANGGA1-3rec" satu "/ANGGA1-4rec" satu "/ANGGA8-3rec" delapan "/ANGGA8-4rec" delapan "/ANGGA9-1rec" sembilan "/ANGGA9-2rec" sembilan "/ANGGA9-3rec" sembilan "/ANGGA9-4rec" sembilan

138 File rec2_1mlf #!MLF!# "/ANGGA0-5rec" nol "/DETA0-1rec" nol "/DETA0-2rec" nol "/DETA0-3rec" nol "/ANGGA1-5rec" satu "/DETA1-1rec" satu "/DETA1-2rec" satu "/DETA1-3rec" satu "/DETA8-2rec" delapan "/DETA8-3rec" delapan "/ANGGA9-5rec" sembilan "/DETA9-1rec" sembilan "/DETA9-2rec" sembilan "/DETA9-3rec" sembilan

139 File rec3_1mlf #!MLF!# "/DETA0-4rec" nol "/DETA0-5rec" nol "/PETRA0-1rec" nol "/PETRA0-2rec" nol "/DETA1-4rec" satu "/DETA1-5rec" satu "/PETRA8-1rec" delapan "/PETRA8-2rec" delapan "/DETA9-4rec" sembilan "/DETA9-5rec" sembilan "/PETRA9-1rec" sembilan "/PETRA9-2rec" sembilan

140 File rec4_1mlf #!MLF!# "/PETRA0-3rec" nol "/PETRA0-4rec" nol "/PETRA0-5rec" nol "/YUDHI0-1rec" nol "/PETRA1-3rec" satu "/PETRA1-4rec" satu "/PETRA1-5rec" satu "/PETRA8-5rec" delapan "/YUDHI8-1rec" delapan "/PETRA9-3rec" sembilan "/PETRA9-4rec" sembilan "/PETRA9-5rec" sembilan "/YUDHI9-1rec" sembilan

141 File rec5_1mlf #!MLF!# "/YUDHI0-2rec" empat "/YUDHI0-3rec" nol "/YUDHI0-4rec" nol "/YUDHI0-5rec" nol "/YUDHI1-2rec" satu "/YUDHI1-3rec" satu "/YUDHI8-4rec" delapan "/YUDHI8-5rec" delapan "/YUDHI9-2rec" sembilan "/YUDHI9-3rec" sembilan "/YUDHI9-4rec" sembilan "/YUDHI9-5rec" sembilan

142 File rec1_1smlf #!MLF!# "/ANGGA0-1rec" yudhi "/ANGGA0-2rec" angga "/ANGGA0-3rec" yudhi "/ANGGA0-4rec" yudhi "/ANGGA1-1rec" angga "/ANGGA1-2rec" angga "/ANGGA8-4rec" angga "/ANGGA9-1rec" angga "/ANGGA9-2rec" yudhi "/ANGGA9-3rec" angga "/ANGGA9-4rec" angga

143 File rec2_1smlf #!MLF!# "/ANGGA0-5rec" angga "/DETA0-1rec" deta "/DETA0-2rec" deta "/DETA0-3rec" deta "/ANGGA1-5rec" angga "/DETA8-3rec" deta "/ANGGA9-5rec" angga "/DETA9-1rec" deta "/DETA9-2rec" deta "/DETA9-3rec" deta

144 File rec3_1smlf #!MLF!# "/DETA0-4rec" deta "/DETA0-5rec" deta "/PETRA0-1rec" petra "/PETRA0-2rec" petra "/DETA1-4rec" deta "/PETRA8-2rec" petra "/DETA9-4rec" deta "/DETA9-5rec" petra "/PETRA9-1rec" petra "/PETRA9-2rec" petra

145 File rec4_1smlf #!MLF!# "/PETRA0-3rec" petra "/PETRA0-4rec" petra "/PETRA0-5rec" petra "/YUDHI0-1rec" yudhi "/PETRA1-3rec" petra "/YUDHI8-1rec" yudhi "/PETRA9-3rec" petra "/PETRA9-4rec" petra "/PETRA9-5rec" petra "/YUDHI9-1rec" yudhi

146 File rec5_1smlf #!MLF!# "/YUDHI0-2rec" yudhi "/YUDHI0-3rec" yudhi "/YUDHI0-4rec" yudhi "/YUDHI0-5rec" yudhi "/YUDHI1-2rec" yudhi "/YUDHI1-3rec" yudhi "/YUDHI8-5rec" yudhi "/YUDHI9-2rec" yudhi "/YUDHI9-3rec" yudhi "/YUDHI9-4rec" yudhi "/YUDHI9-5rec" yudhi

147 CM_Speechm [data] = textread('rec1_1mlf','%s'); index=(length(data)-1)/3; % hitung panjang datanya x=zeros(1,index); % array data X y=zeros(1,index); % array data Y % untuk ngecek di bagian labelnya cacah =2; % mulai dari indek 2 for i=1:index if (strfind(char(data(cacah)),'0-') > 0 ) y(i)=1; elseif (strfind(char(data(cacah)),'1-') > 0) y(i)=2; elseif (strfind(char(data(cacah)),'2-') > 0) y(i)=3; elseif (strfind(char(data(cacah)),'3-') > 0) y(i)=4; elseif (strfind(char(data(cacah)),'4-') > 0) y(i)=5; elseif (strfind(char(data(cacah)),'5-') > 0) y(i)=6; elseif (strfind(char(data(cacah)),'6-') > 0) y(i)=7; elseif (strfind(char(data(cacah)),'7-') > 0) y(i)=8; elseif (strfind(char(data(cacah)),'8-') > 0) y(i)=9; else y(i)=10; cacah = cacah + 3; %lompat 3 cacah =3; % mulai dari indek 3 for i=1:index if (strcmp(data(cacah),'nol') == 1) x(i)=1; elseif (strcmp(data(cacah),'satu') == 1) x(i)=2; elseif (strcmp(data(cacah),'dua') == 1) x(i)=3; elseif (strcmp(data(cacah),'tiga') == 1) x(i)=4; elseif (strcmp(data(cacah),'empat') == 1) x(i)=5; elseif (strcmp(data(cacah),'lima') == 1) x(i)=6; elseif (strcmp(data(cacah),'enam') == 1) x(i)=7; elseif (strcmp(data(cacah),'tujuh') == 1) x(i)=8; elseif (strcmp(data(cacah),'delapan') == 1) x(i)=9; else x(i)=10; cacah = cacah +3; %lompat 3

148 130 % minx = min(x); minx=1; maxx=10; % maxx = max(x); c = zeros(maxx-minx); for i=minx:maxx idx = find(x==i); for j = minx : maxx z = y(idx); c(i-minx+1,j-minx+1) = length(find(z==j)); nilai = c'; disp('matrix 1'); disp(c'); hitung = round((trace(c')/sum(sum(c')))*100); disp(sprintf('jumlah Data = %d ', sum(sum(c')))); disp(sprintf('jumlah Data yang sesuai = %d ', trace(c'))); disp(sprintf('jumlah Data yang tidak sesuai = %d ', sum(sum(c'))- trace(c'))); disp(sprintf('akurasi Matrix 1 = %d \n\n',hitung)); [data] = textread('rec2_1mlf','%s'); index=(length(data)-1)/3; % hitung panjang datanya x=zeros(1,index); % array data X y=zeros(1,index); % array data Y cacah =2; % mulai dari indek 2 for i=1:index if (strfind(char(data(cacah)),'0-') > 0) y(i)=1; elseif (strfind(char(data(cacah)),'1-') > 0) y(i)=2; elseif (strfind(char(data(cacah)),'2-') > 0) y(i)=3; elseif (strfind(char(data(cacah)),'3-') > 0) y(i)=4; elseif (strfind(char(data(cacah)),'4-') > 0) y(i)=5; elseif (strfind(char(data(cacah)),'5-') > 0) y(i)=6; elseif (strfind(char(data(cacah)),'6-') > 0) y(i)=7; elseif (strfind(char(data(cacah)),'7-') > 0) y(i)=8; elseif (strfind(char(data(cacah)),'8-') > 0) y(i)=9; else y(i)=10; cacah = cacah + 3; %lompat 3 cacah =3; % mulai dari indek 3 for i=1:index if (strcmp(data(cacah),'nol') == 1) x(i)=1; elseif (strcmp(data(cacah),'satu') == 1) x(i)=2; elseif (strcmp(data(cacah),'dua') == 1)

149 131 x(i)=3; elseif (strcmp(data(cacah),'tiga') == 1) x(i)=4; elseif (strcmp(data(cacah),'empat') == 1) x(i)=5; elseif (strcmp(data(cacah),'lima') == 1) x(i)=6; elseif (strcmp(data(cacah),'enam') == 1) x(i)=7; elseif (strcmp(data(cacah),'tujuh') == 1) x(i)=8; elseif (strcmp(data(cacah),'delapan') == 1) x(i)=9; else x(i)=10; cacah = cacah +3; %lompat 3 % minx = min(x); minx=1; maxx=10; % maxx = max(x); c = zeros(maxx-minx); for i=minx:maxx idx = find(x==i); for j = minx : maxx z = y(idx); c(i-minx+1,j-minx+1) = length(find(z==j)); nilai = nilai + c'; disp('matrix 2'); disp(c'); hitung = round((trace(c')/sum(sum(c')))*100); disp(sprintf('jumlah Data = %d ', sum(sum(c')))); disp(sprintf('jumlah Data yang sesuai = %d ', trace(c'))); disp(sprintf('jumlah Data yang tidak sesuai = %d ', sum(sum(c'))- trace(c'))); disp(sprintf('akurasi Matrix 2 = %d \n\n',hitung)); [data] = textread('rec3_1mlf','%s'); index=(length(data)-1)/3; % hitung panjang datanya x=zeros(1,index); % array data X y=zeros(1,index); % array data Y cacah =2; for i=1:index if (strfind(char(data(cacah)),'0-') > 0 ) y(i)=1; elseif (strfind(char(data(cacah)),'1-') > 0) y(i)=2; elseif (strfind(char(data(cacah)),'2-') > 0) y(i)=3; elseif (strfind(char(data(cacah)),'3-') > 0) y(i)=4; elseif (strfind(char(data(cacah)),'4-') > 0) y(i)=5; elseif (strfind(char(data(cacah)),'5-') > 0) y(i)=6;

150 132 elseif (strfind(char(data(cacah)),'6-') > 0) y(i)=7; elseif (strfind(char(data(cacah)),'7-') > 0) y(i)=8; elseif (strfind(char(data(cacah)),'8-') > 0) y(i)=9; else y(i)=10; cacah = cacah + 3; %lompat 3 cacah =3; % mulai dari indek 3 for i=1:index if (strcmp(data(cacah),'nol') == 1) x(i)=1; elseif (strcmp(data(cacah),'satu') == 1) x(i)=2; elseif (strcmp(data(cacah),'dua') == 1) x(i)=3; elseif (strcmp(data(cacah),'tiga') == 1) x(i)=4; elseif (strcmp(data(cacah),'empat') == 1) x(i)=5; elseif (strcmp(data(cacah),'lima') == 1) x(i)=6; elseif (strcmp(data(cacah),'enam') == 1) x(i)=7; elseif (strcmp(data(cacah),'tujuh') == 1) x(i)=8; elseif (strcmp(data(cacah),'delapan') == 1) x(i)=9; else x(i)=10; cacah = cacah +3; %lompat 3 % minx = min(x); minx=1; maxx=10; % maxx = max(x); c = zeros(maxx-minx); for i=minx:maxx idx = find(x==i); for j = minx : maxx z = y(idx); c(i-minx+1,j-minx+1) = length(find(z==j)); nilai = nilai + c'; disp('matrix 3'); disp(c'); hitung = round((trace(c')/sum(sum(c')))*100); disp(sprintf('jumlah Data = %d ', sum(sum(c')))); disp(sprintf('jumlah Data yang sesuai = %d ', trace(c'))); disp(sprintf('jumlah Data yang tidak sesuai = %d ', sum(sum(c'))- trace(c'))); disp(sprintf('akurasi Matrix 3 = %d \n\n',hitung));

151 133 [data] = textread('rec4_1mlf','%s'); index=(length(data)-1)/3; % hitung panjang datanya x=zeros(1,index); % array data X y=zeros(1,index); % array data Y % untuk ngecek di bagian labelnya cacah =2; % mulai dari indek 2 for i=1:index if (strfind(char(data(cacah)),'0-') > 0) y(i)=1; elseif (strfind(char(data(cacah)),'1-') > 0) y(i)=2; elseif (strfind(char(data(cacah)),'2-') > 0) y(i)=3; elseif (strfind(char(data(cacah)),'3-') > 0) y(i)=4; elseif (strfind(char(data(cacah)),'4-') > 0) y(i)=5; elseif (strfind(char(data(cacah)),'5-') > 0) y(i)=6; elseif (strfind(char(data(cacah)),'6-') > 0) y(i)=7; elseif (strfind(char(data(cacah)),'7-') > 0) y(i)=8; elseif (strfind(char(data(cacah)),'8-') > 0) y(i)=9; else y(i)=10; cacah = cacah + 3; %lompat 3 cacah =3; % mulai dari indek 3 for i=1:index if (strcmp(data(cacah),'nol') == 1) x(i)=1; elseif (strcmp(data(cacah),'satu') == 1) x(i)=2; elseif (strcmp(data(cacah),'dua') == 1) x(i)=3; elseif (strcmp(data(cacah),'tiga') == 1) x(i)=4; elseif (strcmp(data(cacah),'empat') == 1) x(i)=5; elseif (strcmp(data(cacah),'lima') == 1) x(i)=6; elseif (strcmp(data(cacah),'enam') == 1) x(i)=7; elseif (strcmp(data(cacah),'tujuh') == 1) x(i)=8; elseif (strcmp(data(cacah),'delapan') == 1) x(i)=9; else x(i)=10; cacah = cacah +3; %lompat 3 % minx = min(x); minx=1; maxx=10; % maxx = max(x);

152 134 c = zeros(maxx-minx); for i=minx:maxx idx = find(x==i); for j = minx : maxx z = y(idx); c(i-minx+1,j-minx+1) = length(find(z==j)); nilai = nilai + c'; disp('matrix 4'); disp(c'); hitung = round((trace(c')/sum(sum(c')))*100); disp(sprintf('jumlah Data = %d ', sum(sum(c')))); disp(sprintf('jumlah Data yang sesuai = %d ', trace(c'))); disp(sprintf('jumlah Data yang tidak sesuai = %d ', sum(sum(c'))- trace(c'))); disp(sprintf('akurasi Matrix 4 = %d \n\n',hitung)); [data] = textread('rec5_1mlf','%s'); index=(length(data)-1)/3; % hitung panjang datanya x=zeros(1,index); % array data X y=zeros(1,index); % array data Y % untuk ngecek di bagian labelnya cacah =2; % mulai dari indek 2 for i=1:index if (strfind(char(data(cacah)),'0-') > 0) y(i)=1; elseif (strfind(char(data(cacah)),'1-') > 0) y(i)=2; elseif (strfind(char(data(cacah)),'2-') > 0) y(i)=3; elseif (strfind(char(data(cacah)),'3-') > 0) y(i)=4; elseif (strfind(char(data(cacah)),'4-') > 0) y(i)=5; elseif (strfind(char(data(cacah)),'5-') > 0) y(i)=6; elseif (strfind(char(data(cacah)),'6-') > 0) y(i)=7; elseif (strfind(char(data(cacah)),'7-') > 0) y(i)=8; elseif (strfind(char(data(cacah)),'8-') > 0) y(i)=9; else y(i)=10; cacah = cacah + 3; %lompat 3 cacah =3; % mulai dari indek 3 for i=1:index if (strcmp(data(cacah),'nol') == 1) x(i)=1; elseif (strcmp(data(cacah),'satu') == 1) x(i)=2; elseif (strcmp(data(cacah),'dua') == 1) x(i)=3; elseif (strcmp(data(cacah),'tiga') == 1)

153 135 x(i)=4; elseif (strcmp(data(cacah),'empat') == 1) x(i)=5; elseif (strcmp(data(cacah),'lima') == 1) x(i)=6; elseif (strcmp(data(cacah),'enam') == 1) x(i)=7; elseif (strcmp(data(cacah),'tujuh') == 1) x(i)=8; elseif (strcmp(data(cacah),'delapan') == 1) x(i)=9; else x(i)=10; cacah = cacah +3; %lompat 3 % minx = min(x); minx=1; maxx=10; % maxx = max(x); c = zeros(maxx-minx); for i=minx:maxx idx = find(x==i); for j = minx : maxx z = y(idx); c(i-minx+1,j-minx+1) = length(find(z==j)); nilai = nilai + c'; disp('matrix 5'); disp(c'); hitung = round((trace(c')/sum(sum(c')))*100); disp(sprintf('jumlah Data = %d ', sum(sum(c')))); disp(sprintf('jumlah Data yang sesuai = %d ', trace(c'))); disp(sprintf('jumlah Data yang tidak sesuai = %d ', sum(sum(c'))- trace(c'))); disp(sprintf('akurasi Matrix 1 = %d \n\n',hitung)); disp('confusion Matrix'); hitung = round(trace(nilai)/sum(sum(nilai))*100); disp(nilai); % nilai adalah matrik konfusion s = num2str(nilai); set(handlesconfusionmatrix,'string',s); disp(sprintf('jumlah Data = %d ', sum(sum(nilai)))); s1 = num2str(trace(nilai)); set(handlestekssesuai,'string',s1); a = 'data'; set(handlesteksdata,'string',a); disp(sprintf('jumlah Data yang sesuai = %d ', trace(nilai))); s2 = num2str((sum(sum(nilai))-trace(nilai))); set(handlestekstdksesuai,'string',s2); b = 'data'; set(handlesteksdata,'string',b); disp(sprintf('jumlah Data yang tidak sesuai = %d ', sum(sum(nilai))-trace(nilai))); s3 = num2str(hitung); set(handlespersenakurasi,'string',s3); c = '%'; set(handlestekspersen,'string',c); disp(sprintf('total Akurasi = %d ',hitung));

154 CM_Speakerm [data] = textread('rec1_1smlf','%s'); index=(length(data)-1)/3; % hitung panjang datanya x=zeros(1,index); % array data X y=zeros(1,index); % array data Y % untuk ngecek di bagian labelnya cacah =2; % mulai dari indek 2 for i=1:index if (strfind(char(data(cacah)),'angga') > 0 ) y(i)=1; elseif (strfind(char(data(cacah)),'deta') > 0) y(i)=2; elseif (strfind(char(data(cacah)),'petra') > 0) y(i)=3; else y(i)=4; cacah = cacah + 3; %lompat 3 cacah =3; % mulai dari indek 3 for i=1:index if (strcmp(data(cacah),'angga') == 1) x(i)=1; elseif (strcmp(data(cacah),'deta') == 1) x(i)=2; elseif (strcmp(data(cacah),'petra') == 1) x(i)=3; else x(i)=4; cacah = cacah +3; %lompat 3 % minx = min(x); minx=1; maxx=4; % maxx = max(x); c = zeros(maxx-minx); for i=minx:maxx idx = find(x==i); for j = minx : maxx z = y(idx); c(i-minx+1,j-minx+1) = length(find(z==j)); nilai = c'; disp('matrix 1'); disp(c'); hitung = round((trace(c')/sum(sum(c')))*100); disp(sprintf('jumlah Data = %d ', sum(sum(c')))); disp(sprintf('jumlah Data yang sesuai = %d ', trace(c'))); disp(sprintf('jumlah Data yang tidak sesuai = %d ', sum(sum(c'))- trace(c'))); disp(sprintf('akurasi Matrix 1 = %d \n\n',hitung));

155 137 [data] = textread('rec2_1smlf','%s'); index=(length(data)-1)/3; % hitung panjang datanya x=zeros(1,index); % array data X y=zeros(1,index); % array data Y % untuk ngecek di bagian labelnya cacah =2; % mulai dari indek 2 for i=1:index if (strfind(char(data(cacah)),'angga') > 0 ) y(i)=1; elseif (strfind(char(data(cacah)),'deta') > 0) y(i)=2; elseif (strfind(char(data(cacah)),'petra') > 0) y(i)=3; else y(i)=4; cacah = cacah + 3; %lompat 3 cacah =3; % mulai dari indek 3 for i=1:index if (strcmp(data(cacah),'angga') == 1) x(i)=1; elseif (strcmp(data(cacah),'deta') == 1) x(i)=2; elseif (strcmp(data(cacah),'petra') == 1) x(i)=3; else x(i)=4; cacah = cacah +3; %lompat 3 % minx = min(x); minx=1; maxx=4; % maxx = max(x); c = zeros(maxx-minx); for i=minx:maxx idx = find(x==i); for j = minx : maxx z = y(idx); c(i-minx+1,j-minx+1) = length(find(z==j)); nilai = nilai + c'; disp('matrix 2'); disp(c'); hitung = round((trace(c')/sum(sum(c')))*100); disp(sprintf('jumlah Data = %d ', sum(sum(c')))); disp(sprintf('jumlah Data yang sesuai = %d ', trace(c'))); disp(sprintf('jumlah Data yang tidak sesuai = %d ', sum(sum(c'))- trace(c'))); disp(sprintf('akurasi Matrix 1 = %d \n\n',hitung)); %% [data] = textread('rec3_1smlf','%s'); index=(length(data)-1)/3; % hitung panjang datanya x=zeros(1,index); % array data X y=zeros(1,index); % array data Y % untuk ngecek di bagian labelnya

156 138 cacah =2; % mulai dari indek 2 for i=1:index if (strfind(char(data(cacah)),'angga') > 0 ) y(i)=1; elseif (strfind(char(data(cacah)),'deta') > 0) y(i)=2; elseif (strfind(char(data(cacah)),'petra') > 0) y(i)=3; else y(i)=4; cacah = cacah + 3; %lompat 3 cacah =3; % mulai dari indek 3 for i=1:index if (strcmp(data(cacah),'angga') == 1) x(i)=1; elseif (strcmp(data(cacah),'deta') == 1) x(i)=2; elseif (strcmp(data(cacah),'petra') == 1) x(i)=3; else x(i)=4; cacah = cacah +3; %lompat 3 % minx = min(x); minx=1; maxx=4; % maxx = max(x); c = zeros(maxx-minx); for i=minx:maxx idx = find(x==i); for j = minx : maxx z = y(idx); c(i-minx+1,j-minx+1) = length(find(z==j)); nilai = nilai + c'; disp('matrix 3'); disp(c'); hitung = round((trace(c')/sum(sum(c')))*100); disp(sprintf('jumlah Data = %d ', sum(sum(c')))); disp(sprintf('jumlah Data yang sesuai = %d ', trace(c'))); disp(sprintf('jumlah Data yang tidak sesuai = %d ', sum(sum(c'))- trace(c'))); disp(sprintf('akurasi Matrix 1 = %d \n\n',hitung)); %% [data] = textread('rec4_1smlf','%s'); index=(length(data)-1)/3; % hitung panjang datanya x=zeros(1,index); % array data X y=zeros(1,index); % array data Y % untuk ngecek di bagian labelnya cacah =2; % mulai dari indek 2 for i=1:index if (strfind(char(data(cacah)),'angga') > 0 ) y(i)=1; elseif (strfind(char(data(cacah)),'deta') > 0)

157 139 y(i)=2; elseif (strfind(char(data(cacah)),'petra') > 0) y(i)=3; else y(i)=4; cacah = cacah + 3; %lompat 3 cacah =3; % mulai dari indek 3 for i=1:index if (strcmp(data(cacah),'angga') == 1) x(i)=1; elseif (strcmp(data(cacah),'deta') == 1) x(i)=2; elseif (strcmp(data(cacah),'petra') == 1) x(i)=3; else x(i)=4; cacah = cacah +3; %lompat 3 % minx = min(x); minx=1; maxx=4; % maxx = max(x); c = zeros(maxx-minx); for i=minx:maxx idx = find(x==i); for j = minx : maxx z = y(idx); c(i-minx+1,j-minx+1) = length(find(z==j)); nilai = nilai + c'; disp('matrix 4'); disp(c'); hitung = round((trace(c')/sum(sum(c')))*100); disp(sprintf('jumlah Data = %d ', sum(sum(c')))); disp(sprintf('jumlah Data yang sesuai = %d ', trace(c'))); disp(sprintf('jumlah Data yang tidak sesuai = %d ', sum(sum(c'))- trace(c'))); disp(sprintf('akurasi Matrix 1 = %d \n\n',hitung)); %% [data] = textread('rec5_1smlf','%s'); index=(length(data)-1)/3; % hitung panjang datanya x=zeros(1,index); % array data X y=zeros(1,index); % array data Y % untuk ngecek di bagian labelnya cacah =2; % mulai dari indek 2 for i=1:index if (strfind(char(data(cacah)),'angga') > 0 ) y(i)=1; elseif (strfind(char(data(cacah)),'deta') > 0) y(i)=2; elseif (strfind(char(data(cacah)),'petra') > 0) y(i)=3; else y(i)=4;

158 cacah = cacah + 3; %lompat cacah =3; % mulai dari indek 3 for i=1:index if (strcmp(data(cacah),'angga') == 1) x(i)=1; elseif (strcmp(data(cacah),'deta') == 1) x(i)=2; elseif (strcmp(data(cacah),'petra') == 1) x(i)=3; else x(i)=4; cacah = cacah +3; %lompat 3 % minx = min(x); minx=1; maxx=4; % maxx = max(x); c = zeros(maxx-minx); for i=minx:maxx idx = find(x==i); for j = minx : maxx z = y(idx); c(i-minx+1,j-minx+1) = length(find(z==j)); nilai = nilai + c'; disp('matrix 5'); disp(c'); hitung = round((trace(c')/sum(sum(c')))*100); disp(sprintf('jumlah Data = %d ', sum(sum(c')))); disp(sprintf('jumlah Data yang sesuai = %d ', trace(c'))); disp(sprintf('jumlah Data yang tidak sesuai = %d ', sum(sum(c'))- trace(c'))); disp(sprintf('akurasi Matrix 1 = %d \n\n',hitung)); disp('confusion Matrix'); hitung = round(trace(nilai)/sum(sum(nilai))*100); disp(nilai); % nilai adalah matrik konfusion s = num2str(nilai); set(handleslistboxconfusionmatrix,'string',s); disp(sprintf('jumlah Data = %d ', sum(sum(nilai)))); s1 = num2str(trace(nilai)); set(handlestekssesuai,'string',s1); a = 'data'; set(handlesteksdata,'string',a); disp(sprintf('jumlah Data yang sesuai = %d ', trace(nilai))); s2 = num2str((sum(sum(nilai))-trace(nilai))); set(handlestekstdksesuai,'string',s2); b = 'data'; set(handlesteksdata,'string',b); disp(sprintf('jumlah Data yang tidak sesuai = %d ', sum(sum(nilai))-trace(nilai))); s3 = num2str(hitung); set(handlespersenakurasi,'string',s3); c = '%'; set(handlestekspersen,'string',c); disp(sprintf('total Akurasi = %d ',hitung));

159 pengujianhmmm function varargout = pengujianhmm2(varargin) % PENGUJIANHMM2 M-file for pengujianhmm2fig % PENGUJIANHMM2, by itself, creates a new PENGUJIANHMM2 or raises the existing % singleton* % % H = PENGUJIANHMM2 returns the handle to a new PENGUJIANHMM2 or the handle to % the existing singleton* % % PENGUJIANHMM2('CALLBACK',hObject,eventData,handles,) calls the local % function named CALLBACK in PENGUJIANHMM2M with the given input arguments % % PENGUJIANHMM2('Property','Value',) creates a new PENGUJIANHMM2 or raises the % existing singleton* Starting from the left, property value pairs are % applied to the GUI before pengujianhmm2_openingfcn gets called An % unrecognized property name or invalid value makes property application % stop All inputs are passed to pengujianhmm2_openingfcn via varargin % % *See GUI Options on GUIDE's Tools menu Choose "GUI allows only one % instance to run (singleton)" % % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help pengujianhmm2 % Last Modified by GUIDE v25 29-Apr :09:09 % Begin initialization code - DO NOT EDIT gui_singleton = 1; gui_state = struct('gui_name', mfilename, 'gui_singleton', gui_singleton, 'gui_layoutfcn', [], 'gui_callback', []); if nargin && ischar(varargin{1}) gui_stategui_callback = str2func(varargin{1}); if nargout [varargout{1:nargout}] = gui_mainfcn(gui_state, varargin{:}); else gui_mainfcn(gui_state, varargin{:}); % End initialization code - DO NOT EDIT

160 142 % --- Executes just before pengujianhmm2 is made visible function pengujianhmm2_openingfcn(hobject, ~, handles, varargin) % This function has no output args, see OutputFcn % hobject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to pengujianhmm2 (see VARARGIN) % Choose default command line output for pengujianhmm2 handlesoutput = hobject; % Update handles structure guidata(hobject, handles); % UIWAIT makes pengujianhmm2 wait for user response (see UIRESUME) % uiwait(handlesfigure1); % --- Outputs from this function are returned to the command line function varargout = pengujianhmm2_outputfcn(~, ~, handles) % varargout cell array for returning output args (see VARARGOUT); % hobject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handlesoutput; % --- Executes on button press in pushbutton1 function pushbutton1_callback(~, ~, handles) % hobject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) tic set(handlestekspertama,'string',' '); set(handlesteksproses1,'string',' '); set(handlesteksproses2,'string',' '); set(handlesteksproses3,'string',' '); set(handlestekskedua,'string',' '); set(handlesteksketiga,'string',' '); set(handlestekskeempat,'string',' '); set(handlestekskelima,'string',' '); set(handlestekskeenam,'string',' '); % set(handlesteksketujuh,'string',' '); % Memilih window size dan pembuatan feature temp1 = get(handlespoupmenuws,'value'); temp2 = get(handlespopupmenustate,'value'); tipe = handlestipe;

161 143 if temp1 == 1 && tipe == 1 dos ('HCopy -A -C mfccconfig_1 -S codeallscp'); elseif temp1 == 1 && tipe == 2 dos ('HCopy -A -C mfcc_d_config_1 -S codeallscp'); elseif temp1 == 1 && tipe == 3 dos ('HCopy -A -C mfcc_d_a_config_1 -S codeallscp'); elseif temp1 == 2 && tipe == 1 dos ('HCopy -A -C mfccconfig_2 -S codeallscp'); elseif temp1 == 2 && tipe == 2 dos ('HCopy -A -C mfcc_d_config_2 -S codeallscp'); elseif temp1 == 2 && tipe == 3 dos ('HCopy -A -C mfcc_d_a_config_2 -S codeallscp'); elseif temp1 == 3 && tipe == 1 dos ('HCopy -A -C mfccconfig_3 -S codeallscp'); elseif temp1 == 3 && tipe == 2 dos ('HCopy -A -C mfcc_d_config_3 -S codeallscp'); elseif temp1 == 3 && tipe == 3 dos ('HCopy -A -C mfcc_d_a_config_3 -S codeallscp'); switch tipe case 1 if temp2 == 1 createprotomfcc_1; elseif temp2 == 2 createprotomfcc_2; elseif temp2 == 3 createprotomfcc_3; elseif temp2 == 4 createprotomfcc_4; case 2 if temp2 == 1 createprotomfcc_d_1; elseif temp2 == 2 createprotomfcc_d_2; elseif temp2 == 3 createprotomfcc_d_3; elseif temp2 == 4 createprotomfcc_d_4; case 3 if temp2 == 1 createprotomfcc_d_a_1; elseif temp2 == 2 createprotomfcc_d_a_2; elseif temp2 == 3 createprotomfcc_d_a_3;

162 144 elseif temp2 == 4 createprotomfcc_d_a_4; % Pembentukan Model proseshmm; toc waktu = toc; step=[num2str(waktu) ' detik']; set(handleshasilakurasi,'string',step); % --- Executes on selection change in listbox3 function listbox3_callback(~, ~, ~) % hobject handle to listbox3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: contents = cellstr(get(hobject,'string')) returns listbox3 contents as cell array % contents{get(hobject,'value')} returns selected item from listbox3 % --- Executes during object creation, after setting all properties function listbox3_createfcn(hobject, ~, ~) % hobject handle to listbox3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: listbox controls usually have a white background on Windows % See ISPC and COMPUTER if ispc && isequal(get(hobject,'backgroundcolor'), get(0,'defaultuicontrolbackgroundcolor')) set(hobject,'backgroundcolor','white'); % --- Executes on selection change in listbox4 function listbox4_callback(~, ~, ~) % hobject handle to listbox4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: contents = cellstr(get(hobject,'string')) returns listbox4 contents as cell array % contents{get(hobject,'value')} returns selected item from listbox4 % --- Executes during object creation, after setting all properties function listbox4_createfcn(hobject, ~, ~)

163 145 % hobject handle to listbox4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: listbox controls usually have a white background on Windows % See ISPC and COMPUTER if ispc && isequal(get(hobject,'backgroundcolor'), get(0,'defaultuicontrolbackgroundcolor')) set(hobject,'backgroundcolor','white'); % --- Executes on button press in radiobutton1 function radiobutton1_callback(hobject, ~, handles) % hobject handle to radiobutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hobject,'value') returns toggle state of radiobutton1 set(handlesradiobutton2,'value',0); set(handlesradiobutton3,'value',0); tipe=1; handlestipe=tipe; guidata(hobject,handles); % --- Executes on button press in radiobutton2 function radiobutton2_callback(hobject, ~, handles) % hobject handle to radiobutton2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hobject,'value') returns toggle state of radiobutton2 set(handlesradiobutton1,'value',0); set(handlesradiobutton3,'value',0); tipe=2; handlestipe=tipe; guidata(hobject,handles); % --- Executes on button press in radiobutton3 function radiobutton3_callback(hobject, ~, handles) % hobject handle to radiobutton3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hobject,'value') returns toggle state of radiobutton3 set(handlesradiobutton1,'value',0); set(handlesradiobutton2,'value',0); tipe=3; handlestipe=tipe; guidata(hobject,handles); % --- Executes on selection change in popupmenu1 function popupmenu1_callback(hobject, eventdata, handles) % hobject handle to popupmenu1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: contents = cellstr(get(hobject,'string')) returns popupmenu1 contents as cell array

164 146 % contents{get(hobject,'value')} returns selected item from popupmenu1 % --- Executes during object creation, after setting all properties function popupmenu1_createfcn(hobject, ~, ~) % hobject handle to popupmenu1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: popupmenu controls usually have a white background on Windows % See ISPC and COMPUTER if ispc && isequal(get(hobject,'backgroundcolor'), get(0,'defaultuicontrolbackgroundcolor')) set(hobject,'backgroundcolor','white'); % --- Executes on selection change in popupmenu3 function popupmenu3_callback(~, ~, ~) % hobject handle to popupmenu3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: contents = cellstr(get(hobject,'string')) returns popupmenu3 contents as cell array % contents{get(hobject,'value')} returns selected item from popupmenu3 % --- Executes during object creation, after setting all properties function popupmenu3_createfcn(hobject, ~, ~) % hobject handle to popupmenu3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: popupmenu controls usually have a white background on Windows % See ISPC and COMPUTER if ispc && isequal(get(hobject,'backgroundcolor'), get(0,'defaultuicontrolbackgroundcolor')) set(hobject,'backgroundcolor','white'); % --- Executes on selection change in poupmenuws function poupmenuws_callback(~, ~, ~) % hobject handle to poupmenuws (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: contents = cellstr(get(hobject,'string')) returns poupmenuws contents as cell array % contents{get(hobject,'value')} returns selected item from poupmenuws

165 147 % --- Executes during object creation, after setting all properties function poupmenuws_createfcn(hobject, ~, ~) % hobject handle to poupmenuws (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: popupmenu controls usually have a white background on Windows % See ISPC and COMPUTER if ispc set(hobject,'backgroundcolor','white'); else set(hobject,'backgroundcolor',get(0,'defaultuicontrolbackgroundcolo r')); % --- Executes on selection change in popupmenustate function popupmenustate_callback(~, ~, handles) % hobject handle to popupmenustate (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: contents = cellstr(get(hobject,'string')) returns popupmenustate contents as cell array % contents{get(hobject,'value')} returns selected item from popupmenustate % --- Executes during object creation, after setting all properties function popupmenustate_createfcn(hobject, ~, ~) % hobject handle to popupmenustate (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: popupmenu controls usually have a white background on Windows % See ISPC and COMPUTER if ispc set(hobject,'backgroundcolor','white'); else set(hobject,'backgroundcolor',get(0,'defaultuicontrolbackgroundcolo r')); % --- Executes on selection change in confusionmatrix function confusionmatrix_callback(hobject, eventdata, handles) % hobject handle to confusionmatrix (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: contents = cellstr(get(hobject,'string')) returns confusionmatrix contents as cell array % contents{get(hobject,'value')} returns selected item from

166 148 confusionmatrix % --- Executes during object creation, after setting all properties function confusionmatrix_createfcn(hobject, eventdata, handles) % hobject handle to confusionmatrix (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: listbox controls usually have a white background on Windows % See ISPC and COMPUTER if ispc && isequal(get(hobject,'backgroundcolor'), get(0,'defaultuicontrolbackgroundcolor')) set(hobject,'backgroundcolor','white'); % --- Executes on button press in pushbutton2 function pushbutton2_callback(hobject, eventdata, handles) close (pengujianhmm2); fig2 = openfig('pengujianhmm2_speakerfig'); handles = guihandles(fig2); guidata(fig2,handles); % hobject handle to pushbutton2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton3 function pushbutton3_callback(hobject, eventdata, handles) close (pengujianhmm2); fig2 = openfig('depanfig'); handles = guihandles(fig2); guidata(fig2,handles); % hobject handle to pushbutton3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

167 pengujianhmm2_speakerm function varargout = pengujianhmm2_speaker(varargin) % PENGUJIANHMM2_SPEAKER M-file for pengujianhmm2_speakerfig % PENGUJIANHMM2_SPEAKER, by itself, creates a new PENGUJIANHMM2_SPEAKER or raises the existing % singleton* % % H = PENGUJIANHMM2_SPEAKER returns the handle to a new PENGUJIANHMM2_SPEAKER or the handle to % the existing singleton* % % PENGUJIANHMM2_SPEAKER('CALLBACK',hObject,eventData,handles,) calls the local % function named CALLBACK in PENGUJIANHMM2_SPEAKERM with the given input arguments % % PENGUJIANHMM2_SPEAKER('Property','Value',) creates a new PENGUJIANHMM2_SPEAKER or raises the % existing singleton* Starting from the left, property value pairs are % applied to the GUI before pengujianhmm2_speaker_openingfcn gets called An % unrecognized property name or invalid value makes property application % stop All inputs are passed to pengujianhmm2_speaker_openingfcn via varargin % % *See GUI Options on GUIDE's Tools menu Choose "GUI allows only one % instance to run (singleton)" % % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help pengujianhmm2_speaker % Last Modified by GUIDE v25 29-Apr :55:40 % Begin initialization code - DO NOT EDIT gui_singleton = 1; gui_state = struct('gui_name', mfilename, 'gui_singleton', gui_singleton, 'gui_layoutfcn', [], 'gui_callback', []); if nargin && ischar(varargin{1}) gui_stategui_callback = str2func(varargin{1}); if nargout [varargout{1:nargout}] = gui_mainfcn(gui_state, varargin{:}); else

168 150 gui_mainfcn(gui_state, varargin{:}); % End initialization code - DO NOT EDIT % --- Executes just before pengujianhmm2_speaker is made visible function pengujianhmm2_speaker_openingfcn(hobject, ~, handles, varargin) % This function has no output args, see OutputFcn % hobject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to pengujianhmm2_speaker (see VARARGIN) % Choose default command line output for pengujianhmm2_speaker handlesoutput = hobject; % Update handles structure guidata(hobject, handles); % UIWAIT makes pengujianhmm2_speaker wait for user response (see UIRESUME) % uiwait(handlesfigure1); % --- Outputs from this function are returned to the command line function varargout = pengujianhmm2_speaker_outputfcn(~, ~, handles) % varargout cell array for returning output args (see VARARGOUT); % hobject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handlesoutput; % --- Executes on selection change in popupmenuws function popupmenuws_callback(hobject, eventdata, handles) % hobject handle to popupmenuws (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: contents = cellstr(get(hobject,'string')) returns popupmenuws contents as cell array % contents{get(hobject,'value')} returns selected item from popupmenuws % --- Executes during object creation, after setting all properties function popupmenuws_createfcn(hobject, eventdata, handles) % hobject handle to popupmenuws (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called

169 151 % Hint: popupmenu controls usually have a white background on Windows % See ISPC and COMPUTER if ispc && isequal(get(hobject,'backgroundcolor'), get(0,'defaultuicontrolbackgroundcolor')) set(hobject,'backgroundcolor','white'); % --- Executes on selection change in popupmenustate function popupmenustate_callback(hobject, eventdata, handles) % hobject handle to popupmenustate (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: contents = cellstr(get(hobject,'string')) returns popupmenustate contents as cell array % contents{get(hobject,'value')} returns selected item from popupmenustate % --- Executes during object creation, after setting all properties function popupmenustate_createfcn(hobject, eventdata, handles) % hobject handle to popupmenustate (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: popupmenu controls usually have a white background on Windows % See ISPC and COMPUTER if ispc && isequal(get(hobject,'backgroundcolor'), get(0,'defaultuicontrolbackgroundcolor')) set(hobject,'backgroundcolor','white'); % --- Executes on selection change in listboxconfusionmatrix function listboxconfusionmatrix_callback(hobject, eventdata, handles) % hobject handle to listboxconfusionmatrix (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: contents = cellstr(get(hobject,'string')) returns listboxconfusionmatrix contents as cell array % contents{get(hobject,'value')} returns selected item from listboxconfusionmatrix % --- Executes during object creation, after setting all properties function listboxconfusionmatrix_createfcn(hobject, eventdata, handles) % hobject handle to listboxconfusionmatrix (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called

170 152 % Hint: listbox controls usually have a white background on Windows % See ISPC and COMPUTER if ispc && isequal(get(hobject,'backgroundcolor'), get(0,'defaultuicontrolbackgroundcolor')) set(hobject,'backgroundcolor','white'); % --- Executes on button press in pushbuttonproses function pushbuttonproses_callback(hobject, eventdata, handles) tic set(handlestekspertama,'string',' '); set(handlesteksproses1,'string',' '); set(handlesteksproses2,'string',' '); set(handlesteksproses3,'string',' '); set(handlestekskedua,'string',' '); set(handlesteksketiga,'string',' '); set(handlestekskeempat,'string',' '); set(handlestekskelima,'string',' '); set(handlestekskeenam,'string',' '); % Memilih window size dan pembuatan feature temp1 = get(handlespopupmenuws,'value'); temp2 = get(handlespopupmenustate,'value'); tipe = handlestipe; if temp1 == 1 && tipe == 1 dos ('HCopy -A -C mfccconfig_1 -S codeall2scp'); elseif temp1 == 1 && tipe == 2 dos ('HCopy -A -C mfcc_d_config_1 -S codeall2scp'); elseif temp1 == 1 && tipe == 3 dos ('HCopy -A -C mfcc_d_a_config_1 -S codeall2scp'); elseif temp1 == 2 && tipe == 1 dos ('HCopy -A -C mfccconfig_2 -S codeall2scp'); elseif temp1 == 2 && tipe == 2 dos ('HCopy -A -C mfcc_d_config_2 -S codeall2scp'); elseif temp1 == 2 && tipe == 3 dos ('HCopy -A -C mfcc_d_a_config_2 -S codeall2scp'); elseif temp1 == 3 && tipe == 1 dos ('HCopy -A -C mfccconfig_3 -S codeall2scp'); elseif temp1 == 3 && tipe == 2 dos ('HCopy -A -C mfcc_d_config_3 -S codeall2scp'); elseif temp1 == 3 && tipe == 3 dos ('HCopy -A -C mfcc_d_a_config_3 -S codeall2scp');

171 153 switch tipe case 1 if temp2 == 1 createprotomfcc_1; elseif temp2 == 2 createprotomfcc_2; elseif temp2 == 3 createprotomfcc_3; elseif temp2 == 4 createprotomfcc_4; case 2 if temp2 == 1 createprotomfcc_d_1; elseif temp2 == 2 createprotomfcc_d_2; elseif temp2 == 3 createprotomfcc_d_3; elseif temp2 == 4 createprotomfcc_d_4; case 3 if temp2 == 1 createprotomfcc_d_a_1; elseif temp2 == 2 createprotomfcc_d_a_2; elseif temp2 == 3 createprotomfcc_d_a_3; elseif temp2 == 4 createprotomfcc_d_a_4; % Pembentukan Model ProsesHMM2; toc waktu = toc; step=[num2str(waktu) ' detik']; set(handleshasilakurasi,'string',step); % hobject handle to pushbuttonproses (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in radiobuttonmfcc function radiobuttonmfcc_callback(hobject, eventdata, handles) set(handlesradiobuttonmfcc_d,'value',0); set(handlesradiobuttonmfcc_d_a,'value',0); tipe=1; handlestipe=tipe; guidata(hobject,handles); % hobject handle to radiobuttonmfcc (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

172 154 % Hint: get(hobject,'value') returns toggle state of radiobuttonmfcc % --- Executes on button press in radiobuttonmfcc_d function radiobuttonmfcc_d_callback(hobject, eventdata, handles) set(handlesradiobuttonmfcc,'value',0); set(handlesradiobuttonmfcc_d_a,'value',0); tipe=2; handlestipe=tipe; guidata(hobject,handles); % hobject handle to radiobuttonmfcc_d (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hobject,'value') returns toggle state of radiobuttonmfcc_d % --- Executes on button press in radiobuttonmfcc_d_a function radiobuttonmfcc_d_a_callback(hobject, eventdata, handles) set(handlesradiobuttonmfcc,'value',0); set(handlesradiobuttonmfcc_d,'value',0); tipe=3; handlestipe=tipe; guidata(hobject,handles); % hobject handle to radiobuttonmfcc_d_a (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hobject,'value') returns toggle state of radiobuttonmfcc_d_a % --- Executes on button press in pushbutton2 function pushbutton2_callback(hobject, eventdata, handles) close (pengujianhmm2_speaker); fig2 = openfig('pengujianhmm2fig'); handles = guihandles(fig2); guidata(fig2,handles); % hobject handle to pushbutton2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton3 function pushbutton3_callback(hobject, eventdata, handles) close (pengujianhmm2_speaker); fig2 = openfig('depanfig'); handles = guihandles(fig2); guidata(fig2,handles); % hobject handle to pushbutton3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

173 createcodeallidentifikasim % membuat file codeallscp dirasal = 'C:\Users\detha\Documents\MATLAB\Skripsi\' dirasal = {'data0';'data1'; 'data2'; 'data3'; 'data4';'data5';'data6';'data7';'data8';'data9'}; files=[]; for i=1:length(dirasal) % masuk ke direktori baca wavfile cd (dirasal{i}); filewav= dir ('*wav'); % ambil nama file filename={}; for j=1:length(filewav) filename{j}= filewav(j)name(1:length(filewav(j)name)-4); files{i}=filename; cd ; % mencetak file codeallscp fid1 = fopen ('codeallidentifikasiscp','w'); srcdirectory = 'C:\Users\detha\Documents\MATLAB\Skripsi\'; targetdirectory = 'C:\Users\detha\Documents\MATLAB\Skripsi\hasil_identifikasi'; for m=1:length(files) filebaru=files{m}; for n=1:length(filebaru) fwrite(fid1, ['"' srcdirectory dirasal{m} '\' filebaru{n} 'wav" ' '"' targetdirectory '\' filebaru{n} 'mfc"']); fprintf(fid1,'\n'); disp(filebaru{n}); fclose(fid1);

174 File codeallidentifikasiscp "C:\Users\detha\Documents\MATLAB\Skripsi\angga\ANGGA0-1wav" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil_identifikasi\ANGGA0-1mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\angga\ANGGA0-2wav" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil_identifikasi\ANGGA0-2mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\angga\ANGGA0-3wav" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil_identifikasi\ANGGA0-3mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\angga\ANGGA0-4wav" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil_identifikasi\ANGGA0-4mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\angga\ANGGA0-5wav" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil_identifikasi\ANGGA0-5mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\angga\ANGGA1-1wav" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil_identifikasi\ANGGA1-1mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\angga\ANGGA1-2wav" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil_identifikasi\ANGGA1-2mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\angga\ANGGA1-3wav" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil_identifikasi\ANGGA1-3mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\angga\ANGGA1-4wav" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil_identifikasi\ANGGA1-4mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\yudhi\YUDHI8-3wav" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil_identifikasi\YUDHI8-3mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\yudhi\YUDHI8-4wav" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil_identifikasi\YUDHI8-4mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\yudhi\YUDHI8-5wav" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil_identifikasi\YUDHI8-5mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\yudhi\YUDHI9-1wav" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil_identifikasi\YUDHI9-1mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\yudhi\YUDHI9-2wav" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil_identifikasi\YUDHI9-2mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\yudhi\YUDHI9-3wav" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil_identifikasi\YUDHI9-3mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\yudhi\YUDHI9-4wav" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil_identifikasi\YUDHI9-4mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\yudhi\YUDHI9-5wav" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil_identifikasi\YUDHI9-5mfc"

175 createalltrainidentifikasim dirasal={'hasil'}; files=[]; for j=1:length(dirasal) % masuk ke suatu direktori,membaca wavfile cd (dirasal{j}); filewav=dir ('*mfc'); % ambil nama filenya filename={}; for i=1:length(filewav) filename{i}=filewav(i)name(1:length(filewav(i)name)-4); files{j}=filename; cd ; fid1=fopen('alltraindataidentifikasiscp','w'); targetdirectory ='C:\Users\detha\Documents\MATLAB\Skripsi\'; % directory tujuan for m=1:length(files) filebaru=files{m}; for n=1:length(filebaru) fwrite(fid1, ['"' targetdirectory dirasal{m} '\' filebaru{n} 'mfc"']); fprintf(fid1, '\n'); fclose(fid1); 55 File AllTrainDataIdentifikasi "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\ANGGA0-1mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\ANGGA0-2mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\ANGGA0-3mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\ANGGA0-4mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\ANGGA0-5mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\ANGGA1-1mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\ANGGA1-2mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\ANGGA1-3mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\YUDHI9-1mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\YUDHI9-2mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\YUDHI9-3mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\YUDHI9-4mfc" "C:\Users\detha\Documents\MATLAB\Skripsi\hasil\YUDHI9-5mfc"

176 trainidentifikasim dos('hcompv -A -f 001 -m -S AllTrainDataIdentifikasiscp -M hmm0 proto'); dos('set CLASSPATH='); dos('java CloneHMM /hmm0 modellist2'); dos('herest -A -t I katatypephone2mlf -S AllTrainDataIdentifikasiscp -H hmm0/hmmdefs -M hmm0 modellist2'); dos('herest -A -t I katatypephone2mlf -S AllTrainDataIdentifikasiscp -H hmm0/hmmdefs -M hmm0 modellist2'); dos('herest -A -t I katatypephone2mlf -S AllTrainDataIdentifikasiscp -H hmm0/hmmdefs -M hmm0 modellist2'); dos('herest -A -t I katatypephone2mlf -S AllTrainDataIdentifikasiscp -H hmm0/hmmdefs -M hmm0 modellist2'); dos('herest -A -t I katatypephone2mlf -S AllTrainDataIdentifikasiscp -H hmm0/hmmdefs -M hmm0 modellist2'); dos('herest -A -t I katatypephone2mlf -S AllTrainDataIdentifikasiscp -H hmm0/hmmdefs -M hmm0 modellist2'); 57 codeallprosesscp "C:\Users\detha\Documents\MATLAB\Skripsi\dataMasuk1wav " "C:\Users\detha\Documents\MATLAB\Skripsi\dataMasuk1mfc " "C:\Users\detha\Documents\MATLAB\Skripsi\dataMasuk2wav " "C:\Users\detha\Documents\MATLAB\Skripsi\dataMasuk2mfc " "C:\Users\detha\Documents\MATLAB\Skripsi\dataMasuk3wav " "C:\Users\detha\Documents\MATLAB\Skripsi\dataMasuk3mfc " "C:\Users\detha\Documents\MATLAB\Skripsi\dataMasuk4wav " "C:\Users\detha\Documents\MATLAB\Skripsi\dataMasuk4mfc " 58 codeallprosesspeakerscp "C:\Users\detha\Documents\MATLAB\Skripsi\dataMasuk1wav " "C:\Users\detha\Documents\MATLAB\Skripsi\dataMasuk1mfc " "C:\Users\detha\Documents\MATLAB\Skripsi\dataMasuk2wav " "C:\Users\detha\Documents\MATLAB\Skripsi\dataMasuk2mfc " "C:\Users\detha\Documents\MATLAB\Skripsi\dataMasuk3wav " "C:\Users\detha\Documents\MATLAB\Skripsi\dataMasuk3mfc " "C:\Users\detha\Documents\MATLAB\Skripsi\dataMasuk4wav " "C:\Users\detha\Documents\MATLAB\Skripsi\dataMasuk4mfc "

177 File datatest1scp "C:\Users\detha\Documents\MATLAB\Skripsi\dataMasuk1mfc" 60 File datatest2scp "C:\Users\detha\Documents\MATLAB\Skripsi\dataMasuk2mfc" 61 File datatest3scp "C:\Users\detha\Documents\MATLAB\Skripsi\dataMasuk3mfc" 62 File datatest4scp "C:\Users\detha\Documents\MATLAB\Skripsi\dataMasuk4mfc" 63 File datatest5scp "C:\Users\detha\Documents\MATLAB\Skripsi\dataMasuk5mfc" 64 File datatestspeaker1scp "C:\Users\detha\Documents\MATLAB\Skripsi\dataMasuk1mfc" 65 File datatestspeaker2scp "C:\Users\detha\Documents\MATLAB\Skripsi\dataMasuk2mfc" 66 File datatestspeaker3scp "C:\Users\detha\Documents\MATLAB\Skripsi\dataMasuk3mfc" 67 File datatestspeaker4scp "C:\Users\detha\Documents\MATLAB\Skripsi\dataMasuk4mfc" 68 File datatestspeaker5scp "C:\Users\detha\Documents\MATLAB\Skripsi\dataMasuk5mfc"

178 File hasiluji1mlf #!MLF!# "/datamasuk1rec" satu 70 File hasiluji2mlf #!MLF!# "/datamasuk2rec" dua 71 File hasiluji3mlf #!MLF!# "/datamasuk3rec" tiga 72 File hasiluji4mlf #!MLF!# "/datamasuk4rec" empat 73 File hasilujispeaker1mlf #!MLF!# "/datamasuk1rec" petra 74 File hasilujispeaker2mlf #!MLF!# "/datamasuk2rec" petra 75 File hasilujispeaker3mlf #!MLF!# "/datamasuk3rec" petra 76 File hasilujispeaker4mlf #!MLF!# "/datamasuk4rec" deta

179 LAMPIRAN III HALAMAN BANTUAN 161

180 162 Pengantar Program Identifikasi Suara Manusia Sebagai Kata Sandi atau Password ini merupakan program bantu untuk mengidentifikasi suara manusia yang digunakan sebagai password atau kata sandi dengan menggunakan pekatan Hidden Markov Models Program ini terdiri dari 2 (dua) bagian antara lain : 1 Program untuk pengujian akurasi Hidden Markov Models (HMM) Pada pengujian ini, jumlah speaker yang digunakan sebanyak 4 (empat) orang dengan masing-masing speaker memiliki sample suara sebanyak 50 suara 2 Program untuk identifikasi suara manusia Bagian ini dapat menjadi contoh untuk identifikasi suara manusia yang dapat digunakan oleh user Jumlah speaker yang digunakan sebagai pemodelan adalah 4(empat) orang Bagian ini juga dapat digunakan untuk menguji apakah hasil identifikasi yang dimasukkan user sesuai dengan suara yang dimasukkan oleh user serta dapat mengidentifikasi speaker yang memasukkan suara dengan catatan suara speaker terdapat di pemodelan Program ini grstis dan dapat digunakan siapa saja Untuk penggunaan lain dapat menghubungi penulis di bagian Tentang Penulis

181 163 Fungsi Program Mengidentifikasi suara manusia dengan masukkan suara berekstensi wav Pengujian Hidden Markov Models Untuk mapatkan akurasi terbaik, pada pengujian Hidden Markov Models dilakukan variasi dari berbagai tipe feature extraction, besar window size dan banyaknya jumlah state Menampilkan confusion matrix, jumlah data yang benar, jumlah data yang salah serta lamanya waktu yang dibutuhkan untuk pengujian Hidden Markov Models Software yang diperlukan Matlab R2010a HTK Toolkit

182 164 Cara menggunakan program Catatan : Untuk menjalankan program ini, Anda harus menginstal Matlab R2010a pada direktori C:\ Langkah-langkah menjalankan program : 1 Pastikan computer Anda sudah terinstal Matlab R2010a 2 Buka aplikasi Matlab Anda dan copy folder TA ke direktori kerja Matlab Anda 3 Jalankan Matlab kemudian run file Matlab depanfig

183 165 4 Pada submenu Menu, Anda dapat memilih pengujian mana yang ingin dilakukan terlebih dahulu

184 166 Antarmuka Program Program ini terdiri dari 2 (dua) halaman utama 1 Halaman Pengujian Sistem Halaman untuk Pengujian Sistem siri terdiri dari tiga tahap a Tahap pertama adalah halaman untuk user memasukkan suara a b c b Tahap kedua adalah pengujian speech recognition e d h f g i j c Tahap ketiga adalah pengujian speaker verification

185 167 e d f g k l Deskripsi halaman Pengujian Sistem : a = tombol yang digunakan user untuk merekam suara b = tombol yang digunakan untuk kembali ke halaman depan c = tombol yang digunakan untuk melajutkan ke tahap selanjutnya d = tombol yang digunakan untuk mengar kembali suara yang telah direkam e = tombol yang digunakan untuk mengulangi proses rekam apabila hasil rekam tidak sesuai keinginan f = tombol untuk memulai proses identifikasi apabila hasil rekam telah sesuai keinginan g = teks yang menampilkan proses-proses untuk melakukan identifikasi h = teks yang menampilkan hasil identifikasi suara apa yang diucapkan user i = tombol untuk mencari tahu pemilik suara j = tombol untuk kembali ke halaman utama k = teks yang menampilkan hasil identifikasi pemilik suara l = tombol untuk kembali ke menu utama atau langsung ke Pengujian HMM

186 168 Langkah-langkah untuk Pengujian Sistem : Catatan : Karena antarmuka untuk pengujian sistem Speech Recognition dan Speaker Verification hampir sama maka langkah-langkah dibawah ini dapat digunakan untuk proses keduanya 1 Rekam suara Anda sebanyak 4 (empat) kali dengan mengucapkan angka 0-9 Setiap tombol hanya untuk 1 (satu) angka saja dan setiap user hanya memiliki waktu 3 (tiga) detik pada setiap tombol 2 Apabila sudah selesai merekam, Anda dapat melanjutkan ke tahap selanjutnya 3 Untuk mengarkan kembali suara yang telah direkam, Anda dapat menekan tombol seperti pada gambar berikut 4 Apabila suara yang telah direkam tidak sesuai dengan keinginan, maka Anda dapat mengulangi proses rekam dengan menekan tombol seperti pada gambar di bawah ini 5 Apabila suara yang direkam telah sesuai dengan keinginan maka Anda bisa melanjutkan ke tombol proses 6 Hasil dari proses identifikasi akan keluar pada kolom yang telah disediakan 7 Anda dapat memilih tombol seperti pada gambar di bawah ini untuk melanjutkan proses

187 169 2 Halaman Pengujian HMM Halaman Pengujian HMM terdiri dari 2 (dua) halaman utama a Halaman Pengujian HMM untuk Speech Recognition a b e c d f g h i b Halaman Pengujian HMM untuk Speaker Recognition a b e c d f h j i

188 170 Deskripsi Halaman Pengujian HMM a = teks yang berisikan tentang keterangan data yang diproses b = kolom yang berisi tipe feature extraction yang dapat dipilih user c = pilihan untuk memilih besar window size d = pilihan untuk memilih ukuran jumlah state e = tombol untuk memulai proses pengujian Hidden Markov Models f = teks yang menampilkan proses-proses untuk melakukan Pengujian HMM g = confusion matrix untuk Pengujian HMM pada Speech Recognition h = teks yang menampilkan hasil pengujian yang di dalamnya terdapat keterangan jumlah data yang benar, jumlah data yang salah, waktu yang diperlukan untuk pengujian, dan tingkat akurasi yang berupa persentase i = tombol-tombol yang digunakan untuk meneruskan ke pengujian atau kembali ke halaman utama j = confusion matrix untuk Pengujian HMM pada Speaker Recognition

189 171 Langkah-langkah untuk Pengujian HMM Catatan : Karena antarmuka untuk pengujian HMM Speech Recognition dan Speaker Verification hampir sama maka langkah-langkah dibawah ini dapat digunakan untuk proses keduanya 1 Pilih jenis feature extraction, besar window size, dan jumlah state sesuai dengan kebutuhan pada kolom seperti pada gambar di bawah ini 2 Apabila sudah memilih feature extraction, window size, dan jumlah state maka tekan tombol proses 3 Setelah data selesai diproses maka akan muncul hasil data yang benar, hasil data yang salah, lamanya waktu yang diperlukan untuk proses data serta persentase akurasi data yang diproses, 4 Apabila proses telah selesai maka Anda dapat memilih langkah selanjutnya pada tombol seperti pada gambar di bawah ini

udara maupun benda padat. Manusia dapat berkomunikasi dengan manusia dari gagasan yang ingin disampaikan pada pendengar.

udara maupun benda padat. Manusia dapat berkomunikasi dengan manusia dari gagasan yang ingin disampaikan pada pendengar. BAB II DASAR TEORI 2.1 Suara (Speaker) Suara adalah sinyal atau gelombang yang merambat dengan frekuensi dan amplitudo tertentu melalui media perantara yang dihantarkannya seperti media air, udara maupun

Lebih terperinci

PENDAHULUAN. Latar Belakang

PENDAHULUAN. Latar Belakang Latar Belakang PENDAHULUAN Manusia dianugrahi oleh Tuhan dua telinga yang memiliki fungsi untuk menangkap sinyal-sinyal suara. Namun untuk mengoptimalkan dari fungsi telinga tersebut manusia harus belajar

Lebih terperinci

ANALISIS DAN PERANCANGAN PROGRAM APLIKASI. mahasiswa Binus University secara umum. Dan mampu membantu

ANALISIS DAN PERANCANGAN PROGRAM APLIKASI. mahasiswa Binus University secara umum. Dan mampu membantu BAB 3 ANALISIS DAN PERANCANGAN PROGRAM APLIKASI 3.1. Analisa Sistem 3.1.1. Sejarah Umum Perusahaan Binus Learning Community adalah komunitas belajar binus yang berada dibawah sub unit mentoring Student

Lebih terperinci

IDENTIFIKASI CAMPURAN NADA PADA SUARA PIANO MENGGUNAKAN CODEBOOK

IDENTIFIKASI CAMPURAN NADA PADA SUARA PIANO MENGGUNAKAN CODEBOOK IDENTIFIKASI CAMPURAN NADA PADA SUARA PIANO MENGGUNAKAN CODEBOOK Ade Fruandta dan Agus Buono Departemen Ilmu Komputer, Fakultas Matematika dan Ilmu Pengetahuan Alam, Institut Pertanian Bogor Jl. Meranti

Lebih terperinci

PENDAHULUAN. Latar Belakang

PENDAHULUAN. Latar Belakang Latar Belakang PENDAHULUAN Genre musik adalah pengelompokan musik sesuai dengan kemiripan satu dengan yang lain, seperti kemiripan dalam hal frekuensi musik, struktur ritmik, dan konten harmoni. Genre

Lebih terperinci

BAB III METODOLOGI PENELITIAN

BAB III METODOLOGI PENELITIAN BAB III METODOLOGI PENELITIAN 3.1 Desain Penelitian Berikut merupakan desain penelitian yang akan digunakan pada proses penelitian penerapan Hidden Markov Models : 40 Studi Literatur dan Kepustakaan Rumusan

Lebih terperinci

Pengenalan Pembicara dengan Ekstraksi Ciri MFCC Menggunakan Kuantisasi Vektor (VQ) Yoyo Somantri & Erik Haritman dosen tek elektro fptk UPI.

Pengenalan Pembicara dengan Ekstraksi Ciri MFCC Menggunakan Kuantisasi Vektor (VQ) Yoyo Somantri & Erik Haritman dosen tek elektro fptk UPI. Pengenalan Pembicara dengan Ekstraksi Ciri MFCC Menggunakan Kuantisasi Vektor (VQ) Yoyo Somantri & Erik Haritman dosen tek elektro fptk UPI. Tujuan Tujuan dari penelitian ini adalah untuk mengidentifikasi

Lebih terperinci

BAB I PENDAHULUAN. Proses pengenalan kata merupakan salah satu fungsi dari

BAB I PENDAHULUAN. Proses pengenalan kata merupakan salah satu fungsi dari BAB I PENDAHULUAN I.1. Latar Belakang Masalah Proses pengenalan kata merupakan salah satu fungsi dari voice recognition. Voice recognition dibagi menjadi dua jenis, yaitu speech recognition dan speaker

Lebih terperinci

BAB IV IMPLEMENTASI DAN EVALUASI. 4.1 Spesifikasi Hardware dan Software yang digunakan dalam penelitian

BAB IV IMPLEMENTASI DAN EVALUASI. 4.1 Spesifikasi Hardware dan Software yang digunakan dalam penelitian BAB IV IMPLEMENTASI DAN EVALUASI 4.1 Spesifikasi Hardware dan Software yang digunakan dalam penelitian Penelitian ini dilakukan dengan menggunakan satu set komputer dengan prosesor berkecepatan 1,18 GHz,

Lebih terperinci

Jaringan Syaraf Tiruan pada Robot

Jaringan Syaraf Tiruan pada Robot Jaringan Syaraf Tiruan pada Robot Membuat aplikasi pengenalan suara untuk pengendalian robot dengan menggunakan jaringan syaraf tiruan sebagai algoritma pembelajaran dan pemodelan dalam pengenalan suara.

Lebih terperinci

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB I PENDAHULUAN 1.1 Latar Belakang BAB I PENDAHULUAN 1.1 Latar Belakang Wicara atau ucapan adalah cara berkomunikasi yang paling sederhana dan sering digunakan oleh manusia. Namun, seiring dengan perkembangan teknologi, proses komunikasi

Lebih terperinci

Frekuensi Dominan Dalam Vokal Bahasa Indonesia

Frekuensi Dominan Dalam Vokal Bahasa Indonesia Frekuensi Dominan Dalam Vokal Bahasa Indonesia Tjong Wan Sen #1 # Fakultas Komputer, Universitas Presiden Jln. Ki Hajar Dewantara, Jababeka, Cikarang 1 wansen@president.ac.id Abstract Pengenalan ucapan

Lebih terperinci

PENDAHULUAN Tujuan Latar Belakang Ruang Lingkup Manfaat Penelitian TINJAUAN PUSTAKA Nada dan Chord Gitar

PENDAHULUAN Tujuan Latar Belakang Ruang Lingkup Manfaat Penelitian TINJAUAN PUSTAKA Nada dan Chord Gitar PENDAHULUAN Latar Belakang Sistem pendengaran manusia memiliki kemampuan yang luar biasa dalam menangkap dan mengenali sinyal suara. Dalam mengenali sebuah kata ataupun kalimat bukanlah hal yang sulit

Lebih terperinci

i. Perangkat Keras Prosesor Intel Pentium(R) Dual-Core CPU 2.20 GHz

i. Perangkat Keras Prosesor Intel Pentium(R) Dual-Core CPU 2.20 GHz Data yang pada awalnya berupa chanel stereo diubah ke dalam chanel mono. Kemudian data tersebut disimpan dengan file berekstensi WAV. Praproses Pada tahap ini dilakukan ekstraksi ciri menggunakan metode

Lebih terperinci

PENGENALAN SUARA MANUSIA DENGAN MENGGUNAKAN JARINGAN SARAF TIRUAN MODEL PROPAGASI BALIK

PENGENALAN SUARA MANUSIA DENGAN MENGGUNAKAN JARINGAN SARAF TIRUAN MODEL PROPAGASI BALIK ABSTRAK PENGENALAN SUARA MANUSIA DENGAN MENGGUNAKAN Dosen Jurusan Teknik Elektronika Fakultas Teknik Universitas Negeri Makassar Pada penelitian ini dibuat sebuah sistem pengenalan suara manusia dengan

Lebih terperinci

BIOMETRIK SUARA DENGAN TRANSFORMASI WAVELET BERBASIS ORTHOGONAL DAUBENCHIES

BIOMETRIK SUARA DENGAN TRANSFORMASI WAVELET BERBASIS ORTHOGONAL DAUBENCHIES Agustini, Biometrik Suara Dengan Transformasi Wavelet 49 BIOMETRIK SUARA DENGAN TRANSFORMASI WAVELET BERBASIS ORTHOGONAL DAUBENCHIES Ketut Agustini (1) Abstract: Biometric as one of identification or recognition

Lebih terperinci

PENGENALAN SUARA BURUNG MENGGUNAKAN MEL FREQUENCY CEPSTRUM COEFFICIENT DAN JARINGAN SYARAF TIRUAN PADA SISTEM PENGUSIR HAMA BURUNG

PENGENALAN SUARA BURUNG MENGGUNAKAN MEL FREQUENCY CEPSTRUM COEFFICIENT DAN JARINGAN SYARAF TIRUAN PADA SISTEM PENGUSIR HAMA BURUNG PENGENALAN SUARA BURUNG MENGGUNAKAN MEL FREQUENCY CEPSTRUM COEFFICIENT DAN JARINGAN SYARAF TIRUAN PADA SISTEM PENGUSIR HAMA BURUNG TUGAS AKHIR MUHAMMAD AGUNG NURSYEHA 2211100164 Pembimbing: Dr. Muhammad

Lebih terperinci

Team project 2017 Dony Pratidana S. Hum Bima Agus Setyawan S. IIP

Team project 2017 Dony Pratidana S. Hum Bima Agus Setyawan S. IIP Hak cipta dan penggunaan kembali: Lisensi ini mengizinkan setiap orang untuk menggubah, memperbaiki, dan membuat ciptaan turunan bukan untuk kepentingan komersial, selama anda mencantumkan nama penulis

Lebih terperinci

Bab 3. Perancangan Sistem

Bab 3. Perancangan Sistem 34 Bab 3 Perancangan Sistem 3.1 Gambaran Umum Sistem Aplikasi yang kami namakan Voice Protect ini, mempunyai alur program sebagai berikut: Start Enkripsi Dekripsi Pilih File Buka file enkripsi Rekam Suara

Lebih terperinci

Perbandingan Sistem Perhitungan Suara Tepuk Tangan dengan Metode Berbasis Frekuensi dan Metode Berbasis Amplitudo

Perbandingan Sistem Perhitungan Suara Tepuk Tangan dengan Metode Berbasis Frekuensi dan Metode Berbasis Amplitudo Tersedia secara online di: http://journal.ipb.ac.id/index.php.jika Volume 2 Nomor 1 halaman 29-37 ISSN: 2089-6026 Perbandingan Sistem Perhitungan Suara Tepuk Tangan dengan Metode Berbasis Frekuensi dan

Lebih terperinci

BAB I PENDAHULUAN I.1 Latar Belakang

BAB I PENDAHULUAN I.1 Latar Belakang BAB I PENDAHULUAN I.1 Latar Belakang Prinsip teknologi dikembangkan adalah untuk membuat alat atau sarana yang dapat membantu dan memberi kemudahan bagi manusia untuk melakukan kegiatan dalam hidup. Seiring

Lebih terperinci

APLIKASI MASALAH 0/1 KNAPSACK MENGGUNAKAN ALGORITMA GREEDY

APLIKASI MASALAH 0/1 KNAPSACK MENGGUNAKAN ALGORITMA GREEDY PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI APLIKASI MASALAH 0/1 KNAPSACK MENGGUNAKAN ALGORITMA GREEDY Skripsi Diajukan untuk Menempuh Salah Satu Syarat Memperoleh Gelar

Lebih terperinci

UNIVERSITAS BINA NUSANTARA

UNIVERSITAS BINA NUSANTARA UNIVERSITAS BINA NUSANTARA Jurusan Teknik Informatika Skripsi Sarjana Komputer Semester Ganjil tahun 2005/2006 PERANCANGAN SISTEM PROTEKSI FILE DENGAN PASSWORD SUARA Rendy Sesario 0600615431 Samanta Limbrada

Lebih terperinci

APLIKASI SPEECH RECOGNITION BAHASA INDONESIA DENGAN METODE MEL-FREQUENCY CEPSTRAL COEFFICIENT

APLIKASI SPEECH RECOGNITION BAHASA INDONESIA DENGAN METODE MEL-FREQUENCY CEPSTRAL COEFFICIENT APLIKASI SPEECH RECOGNITION BAHASA INDONESIA DENGAN METODE MEL-FREQUENCY CEPSTRAL COEFFICIENT DAN LINEAR VECTOR QUANTIZATION UNTUK PENGENDALIAN GERAK ROBOT Anggoro Wicaksono, Sukmawati NE, Satriyo Adhy,

Lebih terperinci

SISTEM PENGENALAN WICARA BERDASARKAN CEPSTRUM. Ivanna K. Timotius, Danie Kurniawan. Intisari

SISTEM PENGENALAN WICARA BERDASARKAN CEPSTRUM. Ivanna K. Timotius, Danie Kurniawan. Intisari SISTEM PENGENALAN WICARA BERDASARKAN CEPSTRUM SISTEM PENGENALAN WICARA BERDASARKAN CEPSTRUM Fakultas Teknik Elektronika dan Komputer, Program Studi Teknik Elektro, Universitas Kristen Satya Wacana, Salatiga,

Lebih terperinci

1. BAB I PENDAHULUAN 1.1. Latar Belakang

1. BAB I PENDAHULUAN 1.1. Latar Belakang 1. BAB I PENDAHULUAN 1.1. Latar Belakang Riset di bidang sistem pengenalan ucapan otomatis (Automatic Speech Recognition) merupakan salah satu riset yang banyak ditekuni dan terus dikembangkan hingga saat

Lebih terperinci

TINJAUAN PUSTAKA. Pengenalan Suara

TINJAUAN PUSTAKA. Pengenalan Suara Pengenalan Suara TINJAUAN PUSTAKA Menurut Peacock (1990), pengenalan suara merupakan kemampuan untuk mengidentifikasi kata-kata yang diucapkan. Terdapat 5 faktor yang dapat mengontrol dan menyederhanakan

Lebih terperinci

PENDAHULUAN TINJAUAN PUSTAKA

PENDAHULUAN TINJAUAN PUSTAKA 1 PENDAHULUAN Latar Belakang Mengenali sebuah kata atau kalimat bukanlah hal yang sulit dilakukan bagi manusia Apalagi kata tersebut merupakan Bahasa Utama yang digunakannya sehari-hari Berbagai logat

Lebih terperinci

BAB II TINJAUAN PUSTAKA

BAB II TINJAUAN PUSTAKA BAB II TINJAUAN PUSTAKA 2.1 Suara (Wicara) Suara khususnya wicara merupakan cara yang natural bahkan paling penting dalam melakukan proses komunikasi. Dalam kehidupan sehari-hari, manusia melakukan berbagai

Lebih terperinci

BAB I PENDAHULUAN 1.1 Latar Belakang Suara adalah merupakan gabungan berbagai sinyal, tetapi suara murni secara teoritis dapat dijelaskan dengan

BAB I PENDAHULUAN 1.1 Latar Belakang Suara adalah merupakan gabungan berbagai sinyal, tetapi suara murni secara teoritis dapat dijelaskan dengan BAB I PENDAHULUAN 1.1 Latar Belakang Suara adalah merupakan gabungan berbagai sinyal, tetapi suara murni secara teoritis dapat dijelaskan dengan kecepatan osilasi atau frekuensi yang diukur dalam Hertz

Lebih terperinci

PENDAHULUAN. Latar Belakang

PENDAHULUAN. Latar Belakang Latar Belakang PENDAHULUAN Pengenalan fonem adalah implementasi dari speech to teks yang merupakan bagian dari speech recognition atau pengenalan ucapan. Pengenalan ucapan lebih dikonsentrasikan pada ekstraksi

Lebih terperinci

APLIKASI SPEECH TO TEXT BERBAHASA INDONESIA MENGGUNAKAN MEL FREQUENCY CEPSTRAL COEFFICIENTS DAN HIDDEN MARKOV MODEL (HMM)

APLIKASI SPEECH TO TEXT BERBAHASA INDONESIA MENGGUNAKAN MEL FREQUENCY CEPSTRAL COEFFICIENTS DAN HIDDEN MARKOV MODEL (HMM) APLIKASI SPEECH TO TEXT BERBAHASA INDONESIA MENGGUNAKAN MEL FREQUENCY CEPSTRAL COEFFICIENTS DAN HIDDEN MARKOV MODEL (HMM) Eko Widiyanto, Sukmawati Nur Endah, Satriyo Adhy, Sutikno Jurusan Ilmu Komputer/Informatika,

Lebih terperinci

Seminar Nasional Ilmu Komputer (SNIK 2016) - Semarang, 10 Oktober 2016 ISBN:

Seminar Nasional Ilmu Komputer (SNIK 2016) - Semarang, 10 Oktober 2016 ISBN: Perintah Suara Berbahasa Indonesia untuk Membuka dan Menutup Aplikasi dalam Sistem Operasi Windows Menggunakan Metode Mel Frequency Cepstrum Coefficient dan Metode Backpropagation Zakaria Ramadhan 1, Sukmawati

Lebih terperinci

BAB III METODE PENELITIAN

BAB III METODE PENELITIAN BAB III METODE PENELITIAN 3.1. Model Penelitian Penelitian yang dilakukan dapat dijelaskan dengan lebih baik melalui blok diagram seperti yang terliat pada Gambar 3.1. Suara Manusia Rekam suara Hasil rekaman

Lebih terperinci

Sistem Verifikasi Penutur menggunakan Metode Mel Frequensi.

Sistem Verifikasi Penutur menggunakan Metode Mel Frequensi. SISTEM VERIFIKASI PENUTUR MENGGUNAKAN METODA MEL FREQUENCY CEPSTRAL COEFFICIENTS-VECTOR QUANTISATION (MFCC-VQ) SERTA SUM SQUARE ERROR (SSE) DAN PENGENALAN KATA MENGGUNAKAN METODA LOGIKA FUZZY Oleh : Atik

Lebih terperinci

Pengenalan Fonem Vokal Bahasa Jawa Mataraman Menggunakan Metode Liner Predictive Model Dan Hidden Markov Model

Pengenalan Fonem Vokal Bahasa Jawa Mataraman Menggunakan Metode Liner Predictive Model Dan Hidden Markov Model Pengenalan Fonem Vokal Bahasa Jawa Mataraman Menggunakan Metode Liner Predictive Model Dan Hidden Markov Model Ziaul Haq, Teknik Informatika S1,Universitas Dian Nuswantoro Semarang Abstract Pengenalan

Lebih terperinci

INDEPT, Vol. 3, No.1, Februari 2013 ISSN

INDEPT, Vol. 3, No.1, Februari 2013 ISSN SISTEM SPEAKER RECOGNITION (PENGENAL PENGUCAP) UNTUK MENCARI KARAKTERISTIK UCAPAN SESEORANG DENGAN METODE MEL FREQUENCY CEPTRUM COEFFISIENT (MFCC) MENGGUNAKAN SOFTWARE MATLAB Andriana, ST., MT. Dosen Fakultas

Lebih terperinci

2.4. Vector Quantization Kebisingan BAB III METODOLOGI PENELITIAN Desain Penelitian Requirements Definition...

2.4. Vector Quantization Kebisingan BAB III METODOLOGI PENELITIAN Desain Penelitian Requirements Definition... DAFTAR ISI PERNYATAAN... i KATA PENGANTAR... ii UCAPAN TERIMA KASIH... iii ABSTRAK... v ABSTRACT... vi DAFTAR ISI... vii DAFTAR TABEL... ix DAFTAR GAMBAR... x DAFTAR LAMPIRAN... xii BAB I PENDAHULUAN...

Lebih terperinci

IDENTIFIKASI TUTUR DENGAN METODE KUANTISASI VEKTOR LINDE - BUZO - GRAY TUGAS AKHIR OLEH: YOHANES AGUNG SANTOSO PRANOTO

IDENTIFIKASI TUTUR DENGAN METODE KUANTISASI VEKTOR LINDE - BUZO - GRAY TUGAS AKHIR OLEH: YOHANES AGUNG SANTOSO PRANOTO IDENTIFIKASI TUTUR DENGAN METODE KUANTISASI VEKTOR LINDE - BUZO - GRAY TUGAS AKHIR OLEH: YOHANES AGUNG SANTOSO PRANOTO 02.50.0020 PROGRAM STUDI TEKNIK ELEKTRO FAKULTAS TEKNOLOGI INDUSTRI UNIVERSITAS KATOLIK

Lebih terperinci

PENGEMBANGAN MODEL MARKOV TERSEMBUNYI UNTUK IDENTIFIKASI PEMBICARA. Oleh : WINI PURNAMASARI G

PENGEMBANGAN MODEL MARKOV TERSEMBUNYI UNTUK IDENTIFIKASI PEMBICARA. Oleh : WINI PURNAMASARI G PENGEMBANGAN MODEL MARKOV TERSEMBUNYI UNTUK IDENTIFIKASI PEMBICARA Oleh : WINI PURNAMASARI G64102051 DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR 2006

Lebih terperinci

PENGEMBANGAN MODEL PROBABILISTIC NEURAL NETWORK UNTUK IDENTIFIKASI CHORD GITAR ARVIANI RIZKI

PENGEMBANGAN MODEL PROBABILISTIC NEURAL NETWORK UNTUK IDENTIFIKASI CHORD GITAR ARVIANI RIZKI PENGEMBANGAN MODEL PROBABILISTIC NEURAL NETWORK UNTUK IDENTIFIKASI CHORD GITAR ARVIANI RIZKI DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR BOGOR PERNYATAAN

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI BAB 2 LANDASAN TEORI 2.1 Suara Suara adalah sebuah sinyal yang merambat melalui media perantara. suara dapat didefinisikan sebagai gelombang yang merambat dengan frekuensi dan amplitudo tertentu. Suara

Lebih terperinci

PENERAPAN LEARNING VECTOR QUANTIZATION

PENERAPAN LEARNING VECTOR QUANTIZATION PENERAPAN LEARNING VECTOR QUANTIZATION (LVQ) DAN EKSTRAKSI CIRI MENGGUNAKAN MEL- FREQUENCY CEPSTRUM COEFFICIENTS (MFCC) UNTUK TRANSKRIPSI SUARA KE TEKS LAKSMI NIRMALA SARI DEPARTEMEN ILMU KOMPUTER FAKULTAS

Lebih terperinci

Verifikasi Biometrika Suara Menggunakan Metode MFCC Dan DTW

Verifikasi Biometrika Suara Menggunakan Metode MFCC Dan DTW Verifikasi Biometrika Suara Menggunakan Metode MFCC Dan DTW Darma Putra 1, Adi Resmawan 2 1 Staff pengajar Teknologi Informasi, Fakultas Teknik, Universitas Udayana 2 Alumni Teknik Elektro, Fakultas Teknik,

Lebih terperinci

UNIVERSITAS BINA NUSANTARA. Jurusan Teknik Informatika Skripsi Sarjana Komputer Semester Ganjil tahun 2006/2007

UNIVERSITAS BINA NUSANTARA. Jurusan Teknik Informatika Skripsi Sarjana Komputer Semester Ganjil tahun 2006/2007 UNIVERSITAS BINA NUSANTARA Jurusan Teknik Informatika Skripsi Sarjana Komputer Semester Ganjil tahun 2006/2007 SPEAKER IDENTIFICATION DENGAN MENGGUNAKAN TRANSFORMASI WAVELET DISKRIT DAN JARINGAN SARAF

Lebih terperinci

PENDETEKSIAN TINGKAT USIA MUDA, DEWASA DAN TUA MENGGUNAKAN METODE MFCC DAN FUZZY LOGIC BERBASISKAN SPEECH RECOGNITION

PENDETEKSIAN TINGKAT USIA MUDA, DEWASA DAN TUA MENGGUNAKAN METODE MFCC DAN FUZZY LOGIC BERBASISKAN SPEECH RECOGNITION PENDETEKSIAN TINGKAT USIA MUDA, DEWASA DAN TUA MENGGUNAKAN METODE MFCC DAN FUZZY LOGIC BERBASISKAN SPEECH RECOGNITION DETECTION OF THE LEVEL OF YOUTH, ADULTS AND ELDERLY BY USING MFCC METHOD AND FUZZY

Lebih terperinci

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI BAB II LANDASAN TEORI 2.1. Genre Menurut Kamus Besar Bahasa Indonesia, genre adalah jenis, tipe, atau kelompok sastra atas dasar bentuknya. Jadi genre musik merupakan pengelompokan musik berdasarkan kemiripan

Lebih terperinci

IMPLEMENTASI DYNAMIC TIME WARPING UNTUK VOICE RECOGNITION

IMPLEMENTASI DYNAMIC TIME WARPING UNTUK VOICE RECOGNITION IMPLEMENTASI DYNAMIC TIME WARPING UNTUK VOICE RECOGNITION TUGAS AKHIR Diajukan Untuk Memenuhi Sebagian Persyaratan Dalam Memperoleh Gelar Sarjana Komputer Jurusan Teknik Informatika Disusun oleh : PAULA

Lebih terperinci

PENGEMBANGAN MODEL CODEBOOK UNTUK IDENTIFIKASI CHORD GITAR TONI HARYONO

PENGEMBANGAN MODEL CODEBOOK UNTUK IDENTIFIKASI CHORD GITAR TONI HARYONO PENGEMBANGAN MODEL CODEBOOK UNTUK IDENTIFIKASI CHORD GITAR TONI HARYONO DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN INSTITUT PERTANIAN BOGOR BOGOR 2013 PERNYATAAN MENGENAI SKRIPSI

Lebih terperinci

BAB 3 ANALISIS DAN PERANCANGAN SISTEM

BAB 3 ANALISIS DAN PERANCANGAN SISTEM BAB 3 ANALISIS DAN PERANCANGAN SISTEM 3.1 Analisis Sistem Dalam proses pembuatan suatu sistem harus dilakukan penelitian dan penganalisaan tentang sistem yang akan dibangun, berikut adalah beberapa analisis

Lebih terperinci

SISTEM PENILAIAN BERDASARKAN TEPUK TANGAN MENGGUNAKAN MFCC DAN CODEBOOK PUSPITA KARTIKA SARI

SISTEM PENILAIAN BERDASARKAN TEPUK TANGAN MENGGUNAKAN MFCC DAN CODEBOOK PUSPITA KARTIKA SARI SISTEM PENILAIAN BERDASARKAN TEPUK TANGAN MENGGUNAKAN MFCC DAN CODEBOOK PUSPITA KARTIKA SARI DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN INSTITUT PERTANIAN BOGOR BOGOR 2013 PERNYATAAN

Lebih terperinci

BAB 3 PERANCANGAN SISTEM. yang akan menjalankan perintah-perintah yang dikenali. Sistem ini dibuat untuk

BAB 3 PERANCANGAN SISTEM. yang akan menjalankan perintah-perintah yang dikenali. Sistem ini dibuat untuk BAB 3 PERANCANGAN SISTEM 3.1 Gambaran Umum Sistem Voice Command pada demonstrasinya merupakan aplikasi pengenalan suara yang akan menjalankan perintah-perintah yang dikenali. Sistem ini dibuat untuk menampung

Lebih terperinci

BAB I PENDAHULUAN. 1.1 Latar Belakang

BAB I PENDAHULUAN. 1.1 Latar Belakang BAB I PENDAHULUAN 1.1 Latar Belakang Pada perkembangan teknologi informasi seperti saat ini, kebutuhan akan informasi dan sistem yang dapat membantu kebutuhan manusia dalam berbagai aspek sangatlah penting.

Lebih terperinci

SIMULASI DAN ANALISIS KLASIFIKASI GENRE MUSIK BERBASIS FFT DAN CONTINOUS DENSITY HIDDEN MARKOV MODEL

SIMULASI DAN ANALISIS KLASIFIKASI GENRE MUSIK BERBASIS FFT DAN CONTINOUS DENSITY HIDDEN MARKOV MODEL ISSN : 2355-9365 e-proceeding of Engineering : Vol.2, No.1 April 2015 Page 262 SIMULASI DAN ANALISIS KLASIFIKASI GENRE MUSIK BERBASIS FFT DAN CONTINOUS DENSITY HIDDEN MARKOV MODEL SIMULATION AND ANALYSIS

Lebih terperinci

BAB 1 PENDAHULUAN. berkembang pesat pada akhir-akhir ini mengingat perkembangan teknologi yang

BAB 1 PENDAHULUAN. berkembang pesat pada akhir-akhir ini mengingat perkembangan teknologi yang BAB 1 PENDAHULUAN 1.1 Latar Belakang Kecerdasan buatan (artificial intelligence) merupakan bidang yang berkembang pesat pada akhir-akhir ini mengingat perkembangan teknologi yang mengarah kepada bidang

Lebih terperinci

SISTEM PENGENALAN PENUTUR DENGAN METODE MEL-FREQUENCY WRAPPING DAN KUANTISASI VEKTOR

SISTEM PENGENALAN PENUTUR DENGAN METODE MEL-FREQUENCY WRAPPING DAN KUANTISASI VEKTOR SISTEM PENGENALAN PENUTUR DENGAN METODE MEL-FREQUENCY WRAPPING DAN KUANTISASI VEKTOR Ali Mustofa Jurusan Teknik Elektro, Universitas Brawijaya Email: a_tofa@yahoo.com Abstrak - Pengenalan penutur adalah

Lebih terperinci

PERBANDINGAN BERBAGAI METODE UKURAN JARAK UNTUK PENGENALAN FONEM DENGAN MFCC SEBAGAI EKSTRAKSI CIRI YULIANA SURI

PERBANDINGAN BERBAGAI METODE UKURAN JARAK UNTUK PENGENALAN FONEM DENGAN MFCC SEBAGAI EKSTRAKSI CIRI YULIANA SURI PERBANDINGAN BERBAGAI METODE UKURAN JARAK UNTUK PENGENALAN FONEM DENGAN MFCC SEBAGAI EKSTRAKSI CIRI YULIANA SURI DAPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN

Lebih terperinci

PERBANDINGAN METODE HIDDEN MARKOV MODEL DAN VECTOR QUANTIZATION UNTUK APLIKASI IDENTIFIKASI SUARA

PERBANDINGAN METODE HIDDEN MARKOV MODEL DAN VECTOR QUANTIZATION UNTUK APLIKASI IDENTIFIKASI SUARA SKRIPSI PERBANDINGAN METODE HIDDEN MARKOV MODEL DAN VECTOR QUANTIZATION UNTUK APLIKASI IDENTIFIKASI SUARA MADE GDE JAYA HARRY KHESA S JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNIK UNIVERSITAS UDAYANA BUKIT JIMBARAN

Lebih terperinci

BAB 3 PERANCANGAN SISTEM

BAB 3 PERANCANGAN SISTEM 20 BAB 3 PERANCANGAN SISTEM 3.1 Rancangan Perangkat Keras Sistem ini hanya menggunakan beberapa perangkat keras yang umum digunakan, seperti mikrofon, speaker (alat pengeras suara), dan seperangkat komputer

Lebih terperinci

Implementation of Voice Recognition Based Key Using Mel Frequency Cepstral Coefficient (MFCC)

Implementation of Voice Recognition Based Key Using Mel Frequency Cepstral Coefficient (MFCC) ISSN : 2355-9365 e-proceeding of Engineering : Vol.3, No.3 December 2016 Page 3998 IMPLEMENTASI KUNCI BERBASIS SUARA MENGGUNAKAN METODE MEL FREQUENCY CEPSTRAL COEFFICIENT (MFCC) Implementation of Voice

Lebih terperinci

PENGEMBANGAN MODEL JARINGAN SYARAF TIRUAN RESILIENT BACKPROPAGATION UNTUK IDENTIFIKASI CHORD GITAR YOSI NURHAYATI

PENGEMBANGAN MODEL JARINGAN SYARAF TIRUAN RESILIENT BACKPROPAGATION UNTUK IDENTIFIKASI CHORD GITAR YOSI NURHAYATI PENGEMBANGAN MODEL JARINGAN SYARAF TIRUAN RESILIENT BACKPROPAGATION UNTUK IDENTIFIKASI CHORD GITAR YOSI NURHAYATI DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN

Lebih terperinci

BAB 1 PENDAHULUAN. Universitas Indonesia

BAB 1 PENDAHULUAN. Universitas Indonesia BAB 1 PENDAHULUAN 1.1 Latar Belakang Dengan semakin berkembangnya teknologi telekomunikasi, internet menjadi sesuatu yang tidak lagi sulit dan mahal. Kemudahan ini menyebabkan internet dipenuhi berbagai

Lebih terperinci

BAB I PENDAHULUAN. 1.1 Latar Belakang

BAB I PENDAHULUAN. 1.1 Latar Belakang BAB I PENDAHULUAN 1.1 Latar Belakang Pengenalan ucapan (speech recognition) merupakan sistem yang dirancang untuk dapat mengenali sinyal suara, sehingga menghasilkan keluaran berupa tulisan. Input dari

Lebih terperinci

RANCANG BANGUN APLIKASI PENGENAL PENUTUR MENGGUNAKAN METODE HIDDEN MARKOV MODEL (HMM)

RANCANG BANGUN APLIKASI PENGENAL PENUTUR MENGGUNAKAN METODE HIDDEN MARKOV MODEL (HMM) RANCANG BANGUN APLIKASI PENGENAL PENUTUR MENGGUNAKAN METODE HIDDEN MARKOV MODEL (HMM) Maryati Gultom 1), Mukhlisa 2), Derry Alamsyah 3) 1 gultommaryati@gmail.com, 2 immobulus92@gmail.com, 3 derryfseiei@gmail.com

Lebih terperinci

Jurnal Ilmiah Komputer dan Informatika (KOMPUTA)

Jurnal Ilmiah Komputer dan Informatika (KOMPUTA) 21 PERANGKAT LUNAK UNTUK MEMBUKA APLIKASI PADA KOMPUTER DENGAN PERINTAH SUARA MENGGUNAKAN METODE MEL FREQUENCY CEPSTRUM COEFFICIENTS Anna Dara Andriana Program Studi Teknik Informatika Fakultas Teknik

Lebih terperinci

Jurnal Komputer Terapan Vol. 1, No. 2, November 2015, Jurnal Politeknik Caltex Riau

Jurnal Komputer Terapan Vol. 1, No. 2, November 2015, Jurnal Politeknik Caltex Riau Jurnal Komputer Terapan Vol. 1, No. 2, November 2015, 121-132 121 Jurnal Politeknik Caltex Riau http://jurnal.pcr.ac.id Aplikasi Pengenalan Ucapan Dengan Ekstraksi Ciri Mel- Frequency Cepstrum Coefficients

Lebih terperinci

PENERAPAN MODEL CODEBOOK UNTUK TRANSKRIPSI SUARA KE TEKS DENGAN EKSTRAKSI CIRI MEL-FREQUENCY CEPSTRUM COEFFICIENTS (MFCC) MEGGA DARA NINGGAR SUHARTO

PENERAPAN MODEL CODEBOOK UNTUK TRANSKRIPSI SUARA KE TEKS DENGAN EKSTRAKSI CIRI MEL-FREQUENCY CEPSTRUM COEFFICIENTS (MFCC) MEGGA DARA NINGGAR SUHARTO PENERAPAN MODEL CODEBOOK UNTUK TRANSKRIPSI SUARA KE TEKS DENGAN EKSTRAKSI CIRI MEL-FREQUENCY CEPSTRUM COEFFICIENTS (MFCC) MEGGA DARA NINGGAR SUHARTO DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU

Lebih terperinci

PENDAHULUAN. Latar Belakang

PENDAHULUAN. Latar Belakang Latar Belakang PENDAHULUAN Perkembangan penelitian di dunia telekomunikasi sangat pesat beberapa tahun terakhir ini. Salah satunya adalah penelitian di bidang suara. Suara adalah salah satu cara manusia

Lebih terperinci

Identifikasi Pembicara dengan Menggunakan Mel Frequency Cepstral Coefficient (MFCC) dan Self Organizing Map (SOM)

Identifikasi Pembicara dengan Menggunakan Mel Frequency Cepstral Coefficient (MFCC) dan Self Organizing Map (SOM) Pembicara dengan Menggunakan Mel Frequency Cepstral Coefficient (MFCC) dan Self Organizing Map (SOM) Inggih Permana 1, Benny Sukma Negara 2 1 Universitas Sultan Sarif Kasim Riau 2 Universitas Sultan Sarif

Lebih terperinci

BAB III METODE PENELITIAN. Pemotong an Suara. Convert. .mp3 to.wav Audacity. Audacity. Gambar 3.1 Blok Diagram Penelitian

BAB III METODE PENELITIAN. Pemotong an Suara. Convert. .mp3 to.wav Audacity. Audacity. Gambar 3.1 Blok Diagram Penelitian BAB III METODE PENELITIAN 3.1 Model Penelitian Penelitian yang dilakukan dapat dijelaskan melalui blok diagram seperti yang terlihat pada Gambar 3.1. Suara Burung Burung Kacer Burung Kenari Pengambil an

Lebih terperinci

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI BAB II LANDASAN TEORI 2.1 Emosi Emosi adalah perasaan intens yang ditujukan kepada seseorang atau sesuatu dan juga merupakan reaksi terhadap seseorang atau kejadian.emosi dapat ditunjukkan ketika merasa

Lebih terperinci

BAB I PENDAHULUAN. pernah tepat, dan sedikitnya semacam noise terdapat pada data pengukuran.

BAB I PENDAHULUAN. pernah tepat, dan sedikitnya semacam noise terdapat pada data pengukuran. BAB I PENDAHULUAN 1.1 Latar Belakang Saat sesuatu diukur maka beberapa data didapatkan. Umumnya pengukuran tidak pernah tepat, dan sedikitnya semacam noise terdapat pada data pengukuran. Mendapatkan data

Lebih terperinci

Digital Signal Processing To Identify chords Singer Using Mel Frequency Cepstral Coefficients (MFCC) and Neural Network Backpropagation Methods

Digital Signal Processing To Identify chords Singer Using Mel Frequency Cepstral Coefficients (MFCC) and Neural Network Backpropagation Methods Pemrosesan Sinyal DigitalUntuk Mengidentifikasi Akord Dasar Penyanyi Dengan Metode Mel Frequency Cepstral Coeficients (MFCC) Dan Jaringan Syaraf Tiruan Backpropagation Digital Signal Processing To Identify

Lebih terperinci

UKDW BAB 1 PENDAHULUAN. 1.1 Latar Belakang Masalah

UKDW BAB 1 PENDAHULUAN. 1.1 Latar Belakang Masalah BAB 1 PENDAHULUAN 1.1 Latar Belakang Masalah Pada masa sekarang, Digital Signal Processing (DSP) atau pemrosesan sinyal digital sudah banyak diterapkan di berbagai bidang karena data dalam bentuk digital

Lebih terperinci

IDENTIFIKASI KEBERADAAN TIKUS BERDASARKAN SUARANYA MENGGUNAKAN SMS GATEWAY

IDENTIFIKASI KEBERADAAN TIKUS BERDASARKAN SUARANYA MENGGUNAKAN SMS GATEWAY IDENTIFIKASI KEBERADAAN TIKUS BERDASARKAN SUARANYA MENGGUNAKAN SMS GATEWAY Erni Seniwati 1), Ninik Tri Hartanti 2) 1 Sistem Informasi, STMIK Amikom erni.s@amikom.ac.id 2 Sistem Informasi, STMIK Amikom

Lebih terperinci

PENERAPAN MEL FREQUENCY CEPSTRUM COEFFICIENTS

PENERAPAN MEL FREQUENCY CEPSTRUM COEFFICIENTS PENERAPAN MEL FREQUENCY CEPSTRUM COEFFICIENTS (MFCC) SEBAGAI EKSTRAKSI CIRI PADA PENGENALAN FONEM DENGAN PROBABILISTIC NEURAL NETWORK (PNN) SEBAGAI CLASSIFIER CLARA DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA

Lebih terperinci

BAB IV HASIL DAN PEMBAHASAN

BAB IV HASIL DAN PEMBAHASAN BAB IV HASIL DAN PEMBAHASAN 4.1. Pengujian Perangkat Lunak Dalam mengetahui perangkat lunak yang dibuat bisa sesuai dengan metode yang dipakai maka dilakukan pengujian terhadap masin-masing komponen perangkat.

Lebih terperinci

ANALISA DAN PERANCANGAN PERANGKAT LUNAK PERINTAH SUARA SEBAGAI PENUNJANG SARANA INPUT PADA SISTIM OPERASI MICROSOFT WINDOWS XP

ANALISA DAN PERANCANGAN PERANGKAT LUNAK PERINTAH SUARA SEBAGAI PENUNJANG SARANA INPUT PADA SISTIM OPERASI MICROSOFT WINDOWS XP UNIVERSITAS BINA NUSANTARA Jurusan Tehnik Informatika Skripsi Sarjana Komputer Semester Ganjil tahun 2006/2007 ANALISA DAN PERANCANGAN PERANGKAT LUNAK PERINTAH SUARA SEBAGAI PENUNJANG SARANA INPUT PADA

Lebih terperinci

Penerapan Metode Mel Frequency Ceptral Coefficient dan Learning Vector Quantization untuk Text-Dependent Speaker Identification

Penerapan Metode Mel Frequency Ceptral Coefficient dan Learning Vector Quantization untuk Text-Dependent Speaker Identification Jurnal Telematika, vol. 11 no. 1, Institut Teknologi Harapan Bangsa, Bandung ISSN: 1858-2516 Penerapan Metode Mel Frequency Ceptral Coefficient dan Learning Vector Quantization untuk Text-Dependent Speaker

Lebih terperinci

SISTEM PENGOLAHAN SUARA MENGGUNAKAN ALGORITMA FFT (FAST FOURIER TRANSFORM)

SISTEM PENGOLAHAN SUARA MENGGUNAKAN ALGORITMA FFT (FAST FOURIER TRANSFORM) SISTEM PENGOLAHAN SUARA MENGGUNAKAN ALGORITMA FFT (FAST FOURIER TRANSFORM) Harun Sujadi 1, Ii Sopiandi 2, Agis Mutaqin 3 1,2,3 Program Studi Teknik Informatika, Fakultas Teknik, Universitas Majalengka

Lebih terperinci

BAB I PENDAHULUAN. manusia satu dengan manusia lainnya berbeda-beda intonasi dan nadanya, maka

BAB I PENDAHULUAN. manusia satu dengan manusia lainnya berbeda-beda intonasi dan nadanya, maka BAB I PENDAHULUAN 1.1. LATAR BELAKANG MASALAH Suara adalah suatu alat komunikasi paling utama yang dimiliki oleh manusia. Dengan suara, manusia dapat berkomunikasi dengan manusia lainnya. Melalui suara,

Lebih terperinci

EKSPRESI EMOSI MARAH BAHASA ACEH MENGGUNAKAN ALGORITMA PERCEPTRON

EKSPRESI EMOSI MARAH BAHASA ACEH MENGGUNAKAN ALGORITMA PERCEPTRON EKSPRESI EMOSI MARAH BAHASA ACEH MENGGUNAKAN ALGORITMA PERCEPTRON Nurmasyitah 1, Mursyidah 2, Jamilah 3 Program Studi Teknik Multimedia dan Jaringan, Jurusan Teknologi Informasi dan Komputer, Politeknik

Lebih terperinci

Pengenalan Suara Menggunakan Metode MFCC (Mel Frequency Cepstrum Coefficients) dan DTW (Dynamic Time Warping) untuk Sistem Penguncian Pintu

Pengenalan Suara Menggunakan Metode MFCC (Mel Frequency Cepstrum Coefficients) dan DTW (Dynamic Time Warping) untuk Sistem Penguncian Pintu 239 Pengenalan Suara Menggunakan Metode MFCC (Mel Frequency Cepstrum Coefficients) dan DTW (Dynamic Time Warping) untuk Sistem Penguncian Pintu Zulham Effendi *), Firdaus **), Tati Erlina ***), Ratna Aisuwarya

Lebih terperinci

Available online at TRANSMISI Website TRANSMISI, 13 (3), 2011,

Available online at TRANSMISI Website  TRANSMISI, 13 (3), 2011, Available online at TRANSMISI Website http://ejournal.undip.ac.id/index.php/transmisi TRANSMISI, 13 (3), 2011, 82-86 Research Article Aplikasi Pengenalan Ucapan dengan Ekstraksi Mel-Frequency Cepstrum

Lebih terperinci

memahami kata-kata yang diucapkan dengan cara digitalisasi kata dan mencocokkan sinyal digital dengan suatu pola tertentu. Kata-kata yang diucapkan di

memahami kata-kata yang diucapkan dengan cara digitalisasi kata dan mencocokkan sinyal digital dengan suatu pola tertentu. Kata-kata yang diucapkan di APLIKASI PENGENALAN UCAPAN KATA BAHASA INGGRIS MENGGUNAKAN LINEAR PREDICTIVE CODING (LPC) DAN HIDDEN MARKOV MODEL (HMM) Juniar Lestary ne3a_azza@yahoo.com Universitas Gunadarma Jl. Margonda Raya No. 100

Lebih terperinci

UNIVERSITAS BINA NUSANTARA. Jurusan Teknik Informatika Skripsi Sarjana Komputer Semester Genap tahun 2003/2004

UNIVERSITAS BINA NUSANTARA. Jurusan Teknik Informatika Skripsi Sarjana Komputer Semester Genap tahun 2003/2004 Abstrak UNIVERSITAS BINA NUSANTARA Jurusan Teknik Informatika Skripsi Sarjana Komputer Semester Genap tahun 2003/2004 ANALISIS DAN PERANCANGAN SISTEM PENDIKTEAN SEDERHANA DENGAN BAHASA INDONESIA Untoro

Lebih terperinci

PEMBANGUNAN METODE CODEBOOK UNTUK IDENTIFIKASI CHORD GITAR DENGAN TEKNIK EKSTRAKSI CIRI MFCC ARMEN MARTA

PEMBANGUNAN METODE CODEBOOK UNTUK IDENTIFIKASI CHORD GITAR DENGAN TEKNIK EKSTRAKSI CIRI MFCC ARMEN MARTA PEMBANGUNAN METODE CODEBOOK UNTUK IDENTIFIKASI CHORD GITAR DENGAN TEKNIK EKSTRAKSI CIRI MFCC ARMEN MARTA DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR

Lebih terperinci

Prediksi Indeks Saham Syariah Indonesia Menggunakan Model Hidden Markov

Prediksi Indeks Saham Syariah Indonesia Menggunakan Model Hidden Markov A39 Prediksi Indeks Saham Syariah Indonesia Menggunakan Model Hidden Markov Risa Septi Pratiwi dan Daryono Budi Utomo Departemen Matematika, Fakultas Matematka dan Ilmu Pengetahuan Alam, Institut Teknologi

Lebih terperinci

PERANCANGAN SISTEM WATERMARKING PADA CITRA DIGITAL MENGGUNAKAN METODE DCT DAN LSB

PERANCANGAN SISTEM WATERMARKING PADA CITRA DIGITAL MENGGUNAKAN METODE DCT DAN LSB PERANCANGAN SISTEM WATERMARKING PADA CITRA DIGITAL MENGGUNAKAN METODE DCT DAN LSB SKRIPSI Disusun sebagai salah satu syarat menyelesaikan Jenjang Strata I pada Program Studi Teknik Informatika Fakultas

Lebih terperinci

Suara bisa dibuat database engine untuk pengenalan kata. Dengan aplikasi ini, dapat secara otomatis melakukan transkripsi suara, sehingga dapat mengur

Suara bisa dibuat database engine untuk pengenalan kata. Dengan aplikasi ini, dapat secara otomatis melakukan transkripsi suara, sehingga dapat mengur PEMBENTUKAN BASIS DATA UCAPAN DALAM BAHASA INDONESIA DAN PENGKODEANNYA BERDASARKAN LINEAR PREDICTIVE CODING (LPC) Elly Oktarina zonalee_cho@yahoo.com Universitas Gunadarma Jl. Margonda Raya No. 100 Pondok

Lebih terperinci

PenerapanHidden Markov Model (HMM) pada Pengenalan Penutur

PenerapanHidden Markov Model (HMM) pada Pengenalan Penutur Jatisi, Vol. 1 No. 1 September 2014 111 PenerapanHidden Markov Model (HMM) pada Pengenalan Penutur Mukhlisa* 1, Maryati Gultom 2, Derry Alamsyah 3 1,2,3 STMIK GI MDP; Jln. Rajawali No. 14, 0711 376400

Lebih terperinci

Aplikasi Teknik Speech Recognition pada Voice Dial Telephone

Aplikasi Teknik Speech Recognition pada Voice Dial Telephone Aplikasi Teknik Speech Recognition pada Voice Dial Telephone Oleh: Ahmad Irfan Abdul Rahman Tri Budi Santoso Titon Dutono Laboratorium Sinyal, Politeknik Elektronika Negeri Surabaya (PENS) Institut Teknologi

Lebih terperinci

PERBANDINGAN METODE HIDDEN MARKOV MODEL DAN VECTOR QUANTIZATION UNTUK APLIKASI IDENTIFIKASI SUARA

PERBANDINGAN METODE HIDDEN MARKOV MODEL DAN VECTOR QUANTIZATION UNTUK APLIKASI IDENTIFIKASI SUARA PERBANDINGAN METODE HIDDEN MARKOV MODEL DAN VECTOR QUANTIZATION UNTUK APLIKASI IDENTIFIKASI SUARA M. G. J. Harry Khesa S 1, W. Setiawan 2, I.G.A.K. Diafari Djuni H 3 1,2,3 Jurusan Teknik Elektro dan Komputer,

Lebih terperinci

IMPLEMENTASI MEL FREQUENCY CEPSTRAL COEFFICIENT DAN DYNAMIC TIME WARPING UNTUK PENGENALAN NADA PADA ALAT MUSIK BELLYRA

IMPLEMENTASI MEL FREQUENCY CEPSTRAL COEFFICIENT DAN DYNAMIC TIME WARPING UNTUK PENGENALAN NADA PADA ALAT MUSIK BELLYRA IMPLEMENTASI MEL FREQUENCY CEPSTRAL COEFFICIENT DAN DYNAMIC TIME WARPING UNTUK PENGENALAN NADA PADA ALAT MUSIK BELLYRA Yusup Miftahuddin 1) Mira Musrini B 2) Muhammad Rifqi Hakim 3) 1) 2) 3) Teknik Informatika

Lebih terperinci

BAB 3 METODOLOGI PEMECAHAN MASALAH DAN PERANCANGAN

BAB 3 METODOLOGI PEMECAHAN MASALAH DAN PERANCANGAN BAB 3 METODOLOGI PEMECAHAN MASALAH DAN PERANCANGAN 3.1 Sistem Diagram Sistem diagram adalah diagram dari sebuah sistem, dengan fungsi atau bagian utamanya diwakili oleh blok yang dihubungkan oleh garis-garis

Lebih terperinci

Bab 1. Pendahuluan. aman semakin diperlukan untuk menjamin keamanan data. Berbagai solusi proteksi

Bab 1. Pendahuluan. aman semakin diperlukan untuk menjamin keamanan data. Berbagai solusi proteksi 1 Bab 1 Pendahuluan 1.1 Latar Belakang Di era teknologi informasi khususnya internet, keberadaan sistem proteksi yang aman semakin diperlukan untuk menjamin keamanan data. Berbagai solusi proteksi tersedia

Lebih terperinci

UNIVERSITAS BINA NUSANTARA. Jurusan Teknik Informatika Skripsi Sarjana Komputer Semester Ganjil Tahun 2006/2007

UNIVERSITAS BINA NUSANTARA. Jurusan Teknik Informatika Skripsi Sarjana Komputer Semester Ganjil Tahun 2006/2007 UNIVERSITAS BINA NUSANTARA Jurusan Teknik Informatika Skripsi Sarjana Komputer Semester Ganjil Tahun 2006/2007 ANALISIS DAN PERANCANGAN PERANGKAT LUNAK PENGENALAN JENIS ALAT MUSIK BERDASARKAN SUMBER SUARANYA

Lebih terperinci

BAB 2 LANDASAN TEORI. klasifikasi dari objek atau pola menjadi beberapa kategori atau kelas. Dan bertujuan

BAB 2 LANDASAN TEORI. klasifikasi dari objek atau pola menjadi beberapa kategori atau kelas. Dan bertujuan BAB 2 LANDASAN TEORI 2.1. Pattern Recognition Pengenalan pola (pattern recognition) dapat diartikan sebagai proses klasifikasi dari objek atau pola menjadi beberapa kategori atau kelas. Dan bertujuan untuk

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI BAB 2 LANDASAN TEORI 2.1 Gelombang Bunyi Menurut Anwar, et al (2014), gelombang bunyi atau lebih khusus dikenal sebagai gelombang akustik adalah gelombang longitudinal yang berada dalam sebuah medium,

Lebih terperinci

UNIVERSITAS BINA NUSANTARA

UNIVERSITAS BINA NUSANTARA UNIVERSITAS BINA NUSANTARA Program Studi Ganda 2006-200 Skripsi Sarjana Program Ganda Semester Ganjil 2006/200 HALAMAN ABSTRAK SKRIPSI PROGRAM GANDA UNIVERSITAS BINA NUSANTARA Devi Natalia 0600656841 ABSTRAK

Lebih terperinci