LEMBAR PENGESAHAN Yang bertanda tangan di bawah ini menyatakan bahwa laporan tugas akhir dari mahasiswa berikut ini :
Nama
: Isnijatti
NIM
: 41505010097
Fakultas
: Ilmu Komputer
Jurusan
: Teknik Informatika
Judul
: “Pengembangan Aplikasi Speech Recognition untuk Menggunakan aplikasi Open Office.writer”
telah disidangkan dalam siding tugas akhir Teknik Informatika dan telah diperiksa serta disetujui sebagai laporan tugas akhir.
Menyutujui,
Dr.Rusdianto Roestam
Ria Hari Gusmita ST.M.Kom
Dosen Pembimbing I
Dosen Pembimbing II
Mengetahui,
Mengesahkan,
Devi Fitrianah ST. MTI
Abdusy Syarif ST.MT
Koordinator Tugas Akhir
Kaprodi Teknik Informatika
i
LEMBAR PERNYATAAN
Yang bertanda tangan di bawah ini, Nama
: Isnijatti
Nim
: 41505010097
Fakultas
: Ilmu Komputer
Program Studi
:Teknik Informatika
menyatakan bahwa laporan tugas akhir dengan judul ”Pengembangan aplikasi speech recognition untuk menggunakan aplikasi open office.writer ” ini merupakan hasil dari penelitian yang dilakukan oleh penulis sendiri dan bukan merupakan tiruan atau buatan dari pihak manapun, kecuali kutipan-kutipan yang dijadikan sumber informasi yang tercantum dalam Daftar Pustaka.
Jakarta, 3 November 2009
( Isnijatti)
ii
ABSTRACT Display information in a visual form, especially in the form of text and graphics are very commonly used in a variety of software available today. In view of such, would be effective if the wearer is not a disability. Meanwhile, for people with disabilities, especially defects in the hand, then to type a document is a difficult problem.
Linux IGOS Voice Command (ILVC) is a speech recognition software first Indonesian who used to operate the computer. ILVC aims to increase accessibility to computers so that someone who has limitations in using the keyboard and mouse as the disabled can operate the computer by voice. ILVC developed by using free software / open source code, FOSS (free / open source software), among others HTK (Hidden Markov Model Toolkit) and Julius a speech engine. HTK is used to create the acoustic model while Julius Indonesian as a decoder speech recognition engine. Library-This library is used to make inter-process communication system to bridge the speech recognition system and Gnome / Linux that can be converted to voice the computer commands.
Keywords: speech recognition, voice command linux, HTK, Julius iii
ABSTRAK
Tampilan suatu informasi dalam bentuk visual, terutama dalam bentuk teks dan grafis sudah lazim digunakan pada berbagai perangkat lunak yang ada saat ini. Pengguna dapat memanfaatkan tampilan tersebut melalui piranti masukkan seperti monitor, keyboard dan mouse. Hal ini tentu saja menyulitkan bagi pengguna yang memiliki cacat bagian tangan, karena sebagian besar piranti masukkan tersebut dipakai menggunakan tangan. IGOS Linux Voice Command (ILVC) merupakan perangkat lunak pengenal wicara bahasa Indonesia pertama yang digunakan untuk mengoperasikan komputer. ILVC bertujuan meningkatkan aksesibilitas komputer, sehingga seseorang yang memiliki keterbatasan dalam menggunakan keyboard dan mouse seperti penyandang cacat, dapat mengoperasikan komputer dengan suaranya. ILVC dikembangkan dengan memanfaatkan perangkat lunak bebas/kode sumber terbuka, FOSS (free open source software) antara lain HTK (Hidden Markov Model ToolKit) dan Julius yang merupakan sebuah speech engine. HTK digunakan untuk membuat model akustik bahasa Indonesia sedangkan Julius dimanfaatkan sebagai decoder mesin pengenal wicara. Pustaka-pustaka ini digunakan untuk membuat sistem komunikasi antar proses untuk menjembatani sistem pengenal wicara dan aplikasi Gnome/Linux sehingga suara dapat dikonversi menjadi perintah komputer.
Kata kunci: pengenal wicara, linux voice command, HTK, Julius
iv
KATA PENGANTAR Alhamdulillah, puji syukur penulis panjatkan kehadirat Allah SWT atas segala bimbingan, kekuatan, dan kesehatan yang diberikan-Nya, sehingga penulis dapat menyelesaikan laporan tugas akhir ini. Penulis menyadari bahwa selesainya laporan tugas akhir ini tidak lepas dari bantuan berbagai pihak, baik dari segi material maupun dari segi spiritual. Atas segala bimbingan, dorongan, dan bantuan baik secara langsung maupun tidak langsung yang telah diberikan, maka melalui kesempatan ini penulis mengucapkan terima kasih yang sebesar-besarnya kepada: 1. Bapak Dr. Rusdianto Roestam, selaku Dosen Pembimbing I Tugas Akhir penulis, yang telah berkenan meluangkan waktunya serta memberi dukungan dan pengarahan hingga laporan tugas akhir ini selesai. 2. Ibu Ria Hari Gusmita, ST.M.Kom, Dosen Pembimbing II Tugas Akhir penulis, yang telah berkenan meluangkan waktunya serta memberi dukungan dan pengarahan hingga laporan tugas akhir ini selesai. 3. Bapak Oskar Riandi selaku pemotivasi dan inspirasi yang kuat bagi saya untuk tetap belajar dan belajar, semoga kedepanya tetap diberikan kemudahan dalam setiap pembangunan aplikasi yang bermaslahat bagi orang banyak. 4. Bapak A.Didik Madyamadja, yang telah berbaik hati memberikan banyak dukungan, pengarahan, dan refrensi yang sangat membantu
v
5. Bapak Devi Fitriana, ST. MTI., selaku koordinator Tugas Akhir Jurusan Teknik Informatika, Universitas Mercu Buana. 6. Bapak Abdusy Syarif, ST. MT., selaku Ketua Program Studi Teknik Informatika, Universitas Mercu Buana. 7. Kedua orang tua dan keluarga tercinta, yang telah memberikan doa, kasih sayang, dan ilmu yang berguna serta keikhlasannya telah memberi biaya kuliah. 8. Teman pendukung Robin dan Igit Eko, atas segala semangat, kesabaran, hiburan, dan motivasinya sehingga penulis selalu mempunyai semangat menyelesaikan laporan tugas akhir ini. 9. Teman-teman terbaik Riska Ismaniar., Fitri Ariyanti., Silvia Oktarina., Abdi W.Skom., Fronita.Skom yang bersedia berbagai ilmu, pengalaman, motivasi, semangat, dan doa kepada penulis. Rekan-rekan mahasiswa Teknik Informatika terutama angkatan 2005 , Rekan-rekan Rohis Alkhawarizmi dan UKM Islam Alfaruq yang telah banyak berbagi pengalaman dan ilmu. akhir kata, dengan segala kerendahan hati penulis memohon maaf yang sebesarbesarnya atas kekurangan dan keterbatasan yang terdapat dalam laporan tugas akhir ini. Oleh karena itu semua saran dan kritik yang sifatnya membangun sangat diharapkan demi kesempurnaan laporan tugas akhir ini serta besar harapan penulis, semoga laporan tugas akhir ini dapat bermanfaat bagi pihak-pihak yang membutuhkan. Jakarta, 3 November 2009
Isnijatti
vi
vii
DAFTAR ISI
Abstrak ......................................................................................................
i
Abstract .....................................................................................................
ii
Halaman Pengesahan .................................................................................
iii
Kata Pengantar ...........................................................................................
iv
Daftar Isi ....................................................................................................
vi
Daftar Gambar ...........................................................................................
xi
Daftar Tabel ..............................................................................................
xiii
BAB I PENDAHULUAN ..........................................................................
1
1.1 Latar Belakang ............................................................ ……………....
1
1.2 Rumusan Masalah ....................................................... ………………
4
1.3 Tujuan Penelitian ......................................................... ………………
4
1.4 Batasan Masalah .......................................................... ………………
4
1.5 Metodologi Penelitian ................................................. ………………
5
1.6 Sistematika Penulisan ................................................. ………………
5
BAB II LANDASAN TEORI ...................................................................
7
2.1 Rekayasa Perangkat Lunak .................................................................
9
2.1.1 Model Proses Perangkat Lunak ..................................................
vi
10
2.1.1.1 Metodologi Sekuensial Linier ......................................
10
2.1.1.2 Metodologi Prototype ...................................................
14
2.1.2. Metode Pengujian Perangkat Lunak ........................................
16
2.1.2.1 Pengujian Kotak Putih (White-Box) ..............................
16
2.1.2.2 Pengujian Kotak Hitam (Black-Box) ............................
17
2.2 LINUX ...............................................................................................
17
2.3 Pengolahan Sinyal Suara ......................................................................
20
2.3.1 Sistem Pengolahan Sinyal Suara .................................................
23
2.3.1.1 Sinyal Suara Manusia ....................................................
23
2.3.1.2 Sinyal Diskrit ..................................................................
24
2.3.1.3 Proses Sampling………………………………………...
25
2.3.1.4 Frame Blocking ………………………………………..
27
2.3.1.5 Windowing ……………………………………………..
27
2.4 HMM (Hidden Markov Model) ...........................................................
28
2.4.1 Observasi.....................................................................................
30
2.4.2 Inisialisasi....................................................................................
32
2.4.3 Estimasi........................................................................................
33
2.5 HMM Toolkit .....................................................................................
37
2.5.1 Arsitektur perangkat lunak HMM .............................................
39
2.5.2 HTK ( Hidden Markov Model Toolkit) ..................................
41
2.5.3 Penggunaan HTK tool ...............................................................
42
2.6 MFCC Vektor .......................................................................................
44
2.6.1 Proses Sampling ……………………………………………...
45
2.6.2 Pre-Emphasis ...........................................................................
47
vi
2.6.3 FFT (Fast Fourier Transform) .....................................................
48
2.6.4 Mel Schale Filetrbank ………………………………………….
51
2.6.5 Me-Log Sinyal ............................................................................
52
2.6.6 Inverse Fast Fourier Transform (IFFT) …………………………
52
2.6.7 Liftering ……………………………………………………......
53
2.7 Speech Recognition . .........................................................................
53
2.7.1 Reduction of Information Rate and Feature Dimension………
58
2.7.2 Julius speech recognition ..........................................................
60
2.7.2.1 Struktur sistem dari julius ...............................................
61
2.7.2.2 Grammar .........................................................................
62
2.7.3.3 Dictionary ………………………………………………
62
2.8 Linux Voice Command ……………………………………………...
62
2.9 Flowchart …………………………………………………………….
63
BAB III ANALISA DAN IDENTIFIKASI PENGEMBANGAN ...........
65
3.1LingkunganImplementasi .....................................................................
67
3.1.1 Spesifikasi Perangkat Keras (Hardware) ...................................
67
3.1.2 Spesifikasi Perangkat Lunak (Software) ....................................
68
3.2 Instalisasi paket ILVC ……………………………………………….
68
3.3 Pengoperasian ILVC ...........................................................................
69
3.4 Pengujian .............................................................................................
71
3.4.1 Pengujian menu utama dan system pengenalan .........................
71
3.4.2 Pengujian Analisis Speech ..........................................................
72
3.5 Pembangunan Sistem Aplikasi ILVC ................................................
76
vi
3.5.1 Instalisasi HTK ........................................................................
76
3.5.2. Persiapan Data Suara ................................................................
77
3.5.3 Pembuatan Model Akustik .........................................................
81
3.5.4 HMM Definition .......................................................................
84
3.5.5 HMM Training ...........................................................................
86
3.5.5.1 Inisialisasi ........................................................................
87
3.5.5.2 Training ............................................................................
88
3.6 Definisi Kata atau Word .....................................................................
93
3.6.1 Pembuatan Grammar dan Dictionary ........................................
93
3.6.2 Network ......................................................................................
94
3.7 Decoding dan analisis ..........................................................................
95
BAB IV Evaluasi Terhadap Usaha Pengembangan ILVC.........................
99
BAB V PENUTUP ...................................................................................
104
5.1 Kesimpulan ..........................................................................................
104
5.2 Saran ....................................................................................................
105
DAFTAR PUSTAKA ...............................................................................
106
LAMPIRAN .............................................................................................. .
107
ix
DAFTAR GAMBAR
Gambar 2.1 Prototipe Paradigma ................................................................... 15 Gambar 2.2 Ilustrasi segment vocal /ix/......................................................... 21 Gambar 2.3 Fricative /s/.................................................................................. 22 Gambar 2.4 Plosive atau stop sounds /g/ ...................................................... 22 Gambar 2.5 Sistem Suara manusia ................................................................ 23 Gambar 2.6 Bentuk sinyal diskrit ..................................................................
25
Gambar 2.7 Bentuk sinyal sinus .................................................................... 26 Gambar 2.8 Bentuk sinyal sinus yang telah di sampling ............................... 26 Gambar 2.9 Sinyal di windowing ....................................................................
28
Gambar 2.10 State HMM ................................................................................
31
Gambar 2.11 Diagram alir untuk estimasi…………………………………..
34
Gambar 2.12 Contoh Proses Pembelajaran ...................................................... 37 Gambar 2.13 Arsitektur HMM .........................................................................
40
Gambar 2.14 Tahapan proses pengenalan dalam HTK ................................. ... 42 Gambar 2.15 Flowchart Urutan Generasi MFCC …………………………… 45 Gambar 2.16 Bentuk sinyal sinus ....................................................................
46
Gambar 2.17 Bentuk sinyal sinus yang telah di sampling............................... 46 Gambar 2.18 Sinyal suara dengan sample 16 Khz...........................................
47
Gambar 2.19 Sinyal suara telah di Pre-Emphasis ............................................
47
Gambar 2.20 Sinyal sinus di domain waktu ...................................................
50
Gambar 2.21 Sinyal sinus di domain frequency...............................................
50
Gambar 2.22 Mel Schale Filterbank …………………………………………
52
Gambar 2.23 Garis Besar Speech Recognition Sistem ....................................
54
Gambar 2.26 Urutan Proses ekstraksi ciri ........................................................
55
Gambar 2.27 Preemphasis ……………………………………………………
56
x
Gambar 2.28 Struktur dari julius......................................................................
61
Gambar 3.1 Aktivasi “Assistive Technology Preferrences” ............................. 69 Gambar 3.2 Pilih “Enable assistive technologies” …………………………...
6
Gambar 3.3 Menjalankan speechcmd dari terminal........................................
70
Gambar 3.4 Aktivasi dan posisi standby ILVC ……………………………... 70 Gambar 3.5 Tampilan menu input voice .........................................................
70
Gambar 3.6 Tampilan menu input speect to text .............................................
72
Gambar 3.7 GUI dari HSLab ...........................................................................
78
Gambar 3.8 Label Speech ...............................................................................
80
Gambar 3.9 Proses training pada HTK ............................................................
86
Gambar 3.10 Inisialisasi HMM ........................................................................
87
Gambar 3.11 Training HMM ...........................................................................
91
Gambar 4.1 Pesan kesalahan..........................................................................
100
Gambar 4.2 File konfigurasi ..........................................................................
101
Gambar 4.3 Error massage .............................................................................
102
xi
DAFTAR TABEL
Tabel 2.1 Penjelasan simbol Flow Chart........................................................ 64
xi
BAB I PENDAHULUAN
1.1 Latar Belakang Saat ini komputer perusahaan
maupun
merupakan teknologi yang sangat penting bagi setiap
organisasi,
karena
komputer
dapat
meringankan
dan
mempercepat suatu pekerjaan. Komputer adalah perangkat yang sekian lama kita kenal sebagai perangkat office, menggantikan fungsi mesin ketik yang sudah kuno. Dengan bertambahnya kapasitas dan kinerja teknologi pembuatan komputer, perangkat ini tidak hanya menjalankan fungsi ketik dan cetak saja, tetapi juga dapat memanfaatkan aplikasi audio yang tersedia dalam sistem tersebut. Penggunaan aplikasi open office.writer merupakan hal yang biasa dalam pembuatan dokumen maupun surat menyurat, aplikasi open office.writer merupakan aplikasi yang sangat membantu para pengguna teknologi komputer. Untuk menggunakan aplikasi ini, diperlukan alat bantu berupa keyboard dan mouse sebagai sarana masukan, yang dioperasikan dengan menggunakan tangan. Mengingat peranan
1
teknologi komputer yang sangat besar, maka sangat disayangkan jika seseorang tidak dapat menggunakan aplikasi open office.writer karena memiliki cacat di bagian tangan sehingga sulit untuk membuat atau menulis surat terutama dalam memanfatkan aplikasinya. Menurut penelitian, sebagian besar hidup manusia dihabiskan untuk berkomunikasi dengan manusia yang lain (yang tentunya dengan suara). Berbicara adalah hal yang natural dari pada menulis dan membaca. Manusia dapat lebih dahulu berbicara, setelah itu selanjutnya mampu untuk membaca dan menulis. Bicara juga lebih efisien dibanding menulis atau mengetik. Orang dapat berbicara sepuluh kali lebih cepat dibandingkan dengan menulis dan lima kali lebih cepat dibandingkan mengetik. Speech recognition dapat mengatasi atau paling tidak mengurangi kerugian yang diakibatkan oleh masalah pengeksekusian problema di atas. Speech recognition ini dapat mengakomodir user yang cacat pada bagian tangan sehingga dapat menggunakan aplikasi tersebut. Hal ini dikarenakan
speech recognition adalah
proses yang dilakukan komputer untuk mengenali kata yang diucapkan oleh seseorang tanpa mempedulikan identitas orang terkait. Speech recognition, secara umum digunakan untuk identifikasi dan verifikasi. Identifikasi ialah proses mengenali identitas seseorang yang dilakukan dengan mencocokkan antara data biometric seseorang dalam database berisi record karakter suara seseorang Sedangkan verifikasi adalah proses menentukan apakah seseorang sesuai dengan apa yang dikatakan terhadap dirinya. Dengan speech recognition ini mengendalikan aplikasi melalui ucapan, aktivitas yang sedang kita kerjakan tidak akan terganggu. Dengan
2
kata lain user dapat dengan mudah menggunakan suatu aplikasi hanya dengan menggunakan suara (ucapan). Di Indonesia telah terdapat aplikasi speeech recognition dengan nama ILVC (IGOS Linux Voice Command) yang dikembangkan oleh BPPT sebagai lembaga litbangyasa pemerintah dan Telkom RDC PT Telkom Tbk. Tetapi masih terdapat beberapa kelemahan khususnya pada aplikasi open office itu sendiri. Diantara beberapa kekurangan adalah sebagai berikut : 1.
Masih sedikitnya vocabulary, sehingga terbatasnya perintah yang diterima oleh sistem, dan sistem tidak mengenali apa yang diperintahkan oleh user.
2.
Input angka yang dimasukkan oleh suara masih berupa huruf.
3.
Perintah garis bawah (underline), penebalan tulisan (bold) dan tulisan miring (italic) masih belum diterima sistem. Begitu juga rata kanan, rata kiri dan rata tengah. Akibatnya ada ketidaksinambungan antara user dan sistem itu sendiri.
Berdasarkan pemaparan kelemahan khususnya kelemahan pada point pertama, peneliti mencoba untuk menambah vocabulary yang digunakan pada aplikasi open office.writer dengan memanfaatkan suara. Dengan demikian, diharapkan pengguna baik yang normal maupun yang memiliki cacat pada bagian tangan dapat menggunakan aplikasi open office.writer dengan perintah yang lebih banyak dari pada ILVC sebelumnya.
3
1.2 Perumusan Masalah Masalah yang dapat dirumuskan pada penelitian ini adalah sebagai berikut: 1. Bagaimana mendefinisikan kata-kata yang akan ditambahkan sesuai dengan aturan atau format kata dalam ILVC. 2. Bagaimana menambahkan kata-kata baru ke dalam vocabulary ILVC, katakata baru tersebut dapat dikenali oleh aplikasi ILVC.
1.3 Tujuan Penelitian Tujuan dalam pembangunan aplikasi ini adalah mengembangkan aplikasi speech recognition untuk menggunakan aplikasi open office.writer, untuk membantu orang yang tidak memiliki tangan dengan menggunakan suara sebagai alternatif perintah masukan. Dalam hal ini, pengembangan yang dilakukan adalah menambah vocabulary terkait penggunaan open office.writer.
1.4 Batasan Masalah Batasan-batasan masalah pada laporan penelitian ini sebagai berikut: 1. Sistem ini akan menerima input berupa suara. Suara yang masuk akan dikodekan sesuai dengan arti suara yang dimasukan menjadi perintah standar pada aplikasi ILVC. 2. Pengenalan sistem input yang berupa suara hanya untuk menggunakan aplikasi open office.writer.
4
1.5 Metodologi Penelitian Metodologi penelitian yang digunakan sebagai berikut : 1. Mempelajari literatur yang mendukung pengolahan suara digital. 2. Analisis sistem.
Tahap ini mencakup studi kelayakan dan analisis
kebutuhan. Tujuannya adalah untuk menghasilkan hal-hal detail mengenai kebutuhan yang diinginkan oleh pengguna. 3. Desain sistem. Tahapan ini menghasilkan desain sistem yang memenuhi kebutuhan yang ditentukan selama tahapan analisis sistem. 4. Implementasi sistem. Menghasilkan program dari identifikasi sistem yang telah dibuat. 5. Pengujian. Melakukan pengujian yang menghasilkan kebenaran program.
1.6 Sistematika Penulisan BAB I
PENDAHULUAN Berisi latar belakang, perumusan masalah, batasan masalah, maksud dan tujuan, metode penelitian dan sistematika penulisan
BAB II LANDASAN TEORI Berisi dasar teori
yang mendukung pembuatan sistem aplikasi untuk
selanjutnya digunakan pada bagian pembahasan BAB III ANALISIS DAN IDENTIFIKASI PENGEMBANGAN Berisi analisis dan identifikasi sistem. Dalam analisis dibahas mengenai analisis pengolahan suara digital dan identifikasi input suara.
5
BAB IV EVALUASI TERHADAP USAHA PENGEMBANGAN ILVC Berisi pembahasan mengenai evaluasi sistem dan pengembangannya. BAB V PENUTUP Berisi kesimpulan yang diperoleh dari penulisan penelitian ini dan saran pengembangan untuk tugas penelitian ini.
6
BAB II LANDASAN TEORI Pada landasan teori ini berisi penjelasan mengenai teori-teori yang digunakan untuk mendukung pembuatan aplikasi ini. Dengan adanya Landasan teori pada bab ini, maka penulis harap semua dapat mudah dipahami. Landasan teori yang akan dibahas pada bab ini adalah yang pertama mengenai rekayasa perangkat lunak. Perangkat lunak yang akan dibuat adalah pengembangan dan penggunaan prinsip dengan suara untuk memperoleh perangkat lunak yang ekonomis dan dapat bekerja secara efisien. Pada pembuatan aplikasi ini berjalan pada sistem operasi Linux maka pada pembahasan selanjutnya mengenai sistem operasi Linux. Dikarenakan topik ini mengenai suara maka topik selanjutnya akan dibahas mengenai pengolahan sinyal suara. Untuk metode yang digunakan yaitu metode Hidden Markov Model yang pada dasarnya merupakan sebuah sistem yang mengasumsikan bahwa sinyal suara merupakan realisasi dari beberapa kode pesan yang berupa satu atau beberapa urutan simbol. Dalam Hidden Markov model terdapat pembahasan mengenai HMM Toolkit adalah alat atau fasilitas yang digunakan selama tahapan proses pengenalan suara oleh HMM maka pembahasan dilanjutkan mengenai tools ini. Karena topik ini
7
mengenai speech recognition maka untuk pembahasan berikutnya akan dibahas tentang speech recognition pada pembahasan speech recognition akan dijelaskan mengenai pola pengenalan suara baik pengenalan suara untuk suara vokal maupun pengenalan suara untuk suara konsonan karena dalam setiap pola pengenalan suara manusia akan diterima oleh komputer dan setiap huruf memiliki pola yang berbedabeda. Pembahasan berikutnya mengenai pembuatan model tata bahasa yang mempengaruhi penjelasan mengenai pembuatan aplikasi ini. Landasan teori ini akan membahas tentang linux
voice command yaitu sebuah perangkat lunak pertama
berbahasa indonesia yang digunakan untuk mengoperasikan penggunaan komputer dengan menggunakan suara. Pada pembahasan terakhir bab ini akan dibahas mengenai Flow Chart. Sesuai dengan perkenalan pembahasan sebelumnya maka bab ini akan disusun dengan struktur sebagai berikut :
1. Rekayasa Perangkat Lunak 2. LINUX 6. Hidden Markov Model 7. Hidden Markov Model Toolkit 8. Speech Recognition 9. Linux Voice Command 10. Flow Chart
2.1 Rekayasa Perangkat Lunak
8
Sebelum kita mengenal apa itu rekayasa perangkat lunak ada baiknya kita mengetahui terlebih dahulu tentang perangkat lunak. Perangkat lunak adalah: 3. Perintah (program komputer) yang bila dieksekusi memberikan fungsi dan unjuk kerja seperti yang diperintahkan. 4. Struktur data yang memungkinkan program memanipulasi informasi secara proporsional. 5. Dokumen yang menggambarkan operasi dan kegunaan program. Pengertian Rekayasa Perangkat Lunak: Menurut Fritz Bauer pada konfrensi seminar mengusulkan rekayasa perangkat lunak adalah pengembangan dan penggunaan prinsip pengembangan suara untuk memperoleh perangkat lunak secara ekonomis yang reliable dan bekerja secara efisien pada mesin nyata. IEEE telah mengembangkan definisi yang lebih komprehensif yaitu sebagai berikut: a. Aplikasi dari sebuah pendekatan kuantifiabel, disiplin, dan sistematis kepada pengembangan, operasi, dan pemeliharaan perangkat lunak. b. Studi tentang pendekatan-pendekatan seperti kuantifiabel, disiplin, dan sistematis kepada pengembangan, operasi, dan pemeliharaan perangkat lunak. Proyek ini membangun perangkat lunak dengan kaidah-kaidah pengembangan perangkat lunak yaitu metodologi rekayasa dan metode pengujian perangkat lunak.
9
2.1.1 Model Proses Perangkat Lunak Roger S. Pressman, Ph. D (R. Pressman, 1997:29) mengatakan metode rekayasa perangkat lunak memberikan teknik untuk membangun perangkat lunak. Metode-metode itu menyangkut serangkaian tugas yang luas menyangkut analisis kebutuhan, konstruksi program, desain, pengujian, dan pemeliharaan. Rekayasa perangkat lunak mengandalkan pada serangkaian prinsip dasar yang mengatur setiap area teknologi dan menyangkut aktivitas pemodelan serta teknik-teknik deskriptif. Selanjutnya akan dibahas mengenai beberapa metodologi rekayasa perangkat lunak yang digunakan dalam membangun sistem untuk mengendalikan word dengan input suara.
2.1.1.1 Metodologi Sekuensial Linier Model sekuensial linier sering disebut juga dengan ”Siklus kehidupan klasik” atau ”Model air terjun”. Model sekuensial linier mengusulkan sebuah pendekatan kepada perkembangan perangkat lunak yang sistematis dan sekuensial yang mulai pada tingkat dan kemajuan sistem pada seluruh analisis, desain, kode, pengujian, dan pemeliharaan. Dimodelkan setelah siklus rekayasa konvensional, model sekuensial linier melingkupi aktifitas-aktifitas sebagai berikut: 1. Rekayasa dan pemodelan sistem/informasi. Karena perangkat lunak selalu merupakan bagian dari sebuah sistem yang lebih besar, kerja dimulai dengan membangun syarat dari semua elemen sistem dan mengalokasikan beberapa
10
subset dari kebutuhan ke perangkat lunak tersebut. a. Analisis kebutuhan perangkat lunak. Proses pengumpulan kebutuhan diintensifkan dan difokuskan, khususnya pada perangkat lunak. Untuk memahami sifat program yang dibangun, perekayasa perangkat lunak harus memahami domain informasi, tingkah laku, unjuk kerja, dan antar muka (interface) yang diperlukan. Kebutuhan baik untuk sistem maupun perangkat lunak didokumentasikan dan dilihat lagi dengan pelanggan. b. Desain. Desain perangkat lunak sebenarnya adalah proses multi langkah yang berfokus pada empat atribut sebuah program yang berbeda, struktur data, arsitektur perangkat lunak, reprentasi antar muka dan detail (algoritma) procedural. 2. Generasi kode. Desain harus diterjemahkan kedalam bentuk mesin yang bisa dibaca. Langkah pembuatan kode melakukan tugas ini. Jika desain dilakukan dengan cara yang lengkap, pembuatan kode dapat diselesaikan dengan mekanis. 3. Pengujian. Sekali kode dibuat, pengujian program dimulai. Proses pengujian berfokus pada logika internal perangkat lunak, memastikan bahwa semua pernyataan sudah diuji, dan pada eksternal fungsional, yaitu mengarahkan pengujian untuk menemukan kesalahan-kesalahan dan memastikan bahwa masukan yang dibatasi akan memberikan hasil aktual yang sesuai dengan hasil yang dibutuhkan. 4. Pemeliharaan. Perangkat lunak akan mengalami perubahan setelah disampaikan
11
kepada pelanggan (perkecualian yang mungkin adalah perangkat lunak yang dilekatkan). Perubahan akan terjadi karena kesalahan-kesalahan ditentukan, karena perangkat lunak harus disesuaikan untuk mengakomodasi perubahan-perubahan di dalam lingkungan eksternalnya (contohnya perubahan yang dibutuhkan sebagai akibat dari perangkat peripheral atau sistem operasi yang baru), atau karena pelanggan membutuhkan perkembangan fungsional atau unjuk kerja. Pemeliharaan perangkat lunak mengaplikasikan lagi setiap fase program sebelumnya dan tidak membuat program yang baru lagi. Model sekuensial linier adalah paradigma perangkat lunak yang paling luas dipakai dan paling tua. Tetapi kritik dari paradigma tersebut telah menyebabkan dukungan aktif untuk mempertanyakan kehandalannya. Masalah-masalah yang kadang-kadang terjadi ketika model sekuensial linier diaplikasikan adalah: 1. Jarang sekali proyek nyata mengikuti aliran sekunsial yang dianjurkan oleh model. Meskipun model linier bisa mengakomodasikan iterasi, model itu melakukannya dengan cara tidak langsung. 2. Kadang-kadang sulit bagi pelanggan untuk menyatakan semua kebutuhannya secara eksplisit. Model linier sekuensial memerlukan hal ini dan mengalami kesulitan untuk mengakomodasikan ketidakpastian natural yang ada pada bagian awal beberapa proyek. 3. Pelanggan harus bersikap sabar, sebuah versi kerja dari program-program itu tidak akan diperoleh sampai akhir waktu proyek dilalui. Sebuah kesalahan
12
besar, jika tidak terdeteksi sampai program yang bekerja tersebut dikaji ulang, bisa menjadi petaka. 4. Pengembang sering melakukan penundaan yang tidak perlu. Di dalam analisis yang menarik tentang proyek aktual, Bradac mendapatkan bahwa sifat alami dari siklus kehidupan klasik membawa kepada blocking state di mana banyak anggota tim proyek harus menunggu tim yang lain untuk melengkapi tugas yang saling memiliki ketergantungan. Masing-masing dari masalah tersebut bersifat riil. Tetapi, paradigma siklus kehidupan klasik memiliki tempat yang terbatas namun penting di dalam kerja rekayasa perangkat lunak. Paradigma itu memberikan template di mana metode analisis, desain, pengkodean, pengujian, dan pemeliharaan bisa dilakukan. Siklus kehidupan klasik tetap menjadi model bagi rekayasa perangkat lunak yang paling sering dipakai.
2.1.1.2 Metodologi Prototype Sering seorang pelanggan mendefinisikan serangkaian sasaran umum bagi perangkat lunak, tetapi tidak melakukan mengidentifikasikan kebutuhan output, pemrosesan, ataupun input detail. Pada kasus lain, pengembang mungkin tidak memiliki kepastian terhadap efisiensi algoritma, kemampuan penyesuaian dari sebuah sistem operasi, atau bentuk-bentuk yang harus dilakukan oleh interaksi manusia
13
dengan mesin. Dalam hal ini, serta pada banyak situasi yang lain prototyping paradigm mungkin menawarkan pendekatan yang terbaik. Prototyping paradigm (Gambar 2.1) dimulai dengan pengumpulan kebutuhan. Pengembang dan pelanggan bertemu dan mendefinisikan obyektif keseluruhan dari perangkat lunak, mengidentifikasi segala kebutuhan yang diketahui, dan area garis besar di mana definisi lebih jauh merupakan keharusan kemudian dilakukan ”perancangan kilat”. Perancangan kilat berfokus pada penyajian dari aspek-aspek perangkat lunak tersebut yang akan nampak bagi pelanggan/pemakai (contohnya pendekatan input dan format output). Perancangan kilat membawa kepada konstruksi sebuah prototype. Prototipe tersebut dievaluasi oleh pelanggan/pemakai dan dipakai untuk menyaring kebutuhan pengembangan perangkat lunak. Iterasi terjadi pada saat prototipe disetel untuk memenuhi
Membangun Memperbaiki Market
Mendengarkan Pelanggan
Uji Pelanggan Mengendalikan Market
Gambar 2.1 Prototype Paradigma kebutuhan pelanggan, dan pada saat yang sama memungkinkan pengembang untuk secara lebih baik memahami apa yang harus dilakukannya.
14
Secara ideal prototipe berfungsi sebagai sebuah mekanisme untuk mengidentifikasi kebutuhan perangkat lunak. Bila prototipe yang sedang bekerja dibangun, pengembang harus mempergunakan fragmen-fragmen program yang ada atau mengaplikasikan alat-alat bantu (contohnya report generator, window manager, dll) yang memungkinkan program yang bekerja untuk dimunculkan secara cepat.
2.1.2 Metode Pengujian Perangkat Lunak Pengujian adalah sebuah proses terhadap program atau aplikasi untuk menemukan kesalahan dan segala kemungkinan yang akan menimbulkan kesalahan sesuai dengan spesifikasi software yang telah ditentukan sebelum aplikasi tersebut diserahkan kepada customer. Metode pengujian perangkat lunak terbagi dua yaitu : metode pengujian white-box, dan metode pengujian black-box.
2.1.2.1 Pengujian Kotak Putih (White-Box) Pengujian white-box adalah pengujian yang dilakukan lebih dekat lagi untuk menguji prosedur-prosedur yang ada. Lintasan lojik yang dilalui oleh setiap bagian prosedur diuji dengan memberikan kondisi/loop spesifik. Dengan menggunakan metode pengujian white-box, perekayasa sistem dapat melakukan test case yang : •
Menjamin pengujian terhadap semua lintasan yang tidak bergantungan minimal satu kali.
15
•
Mencoba semua keputusan lojik dari sisi "true" dan "false".
•
Eksekusi semua loop dalam batasan kondisi dan batasan operasionalnya.
•
Pengujian validasi struktur data internal.
2.1.2.2 Pengujian Kotak Hitam (Black-Box) Pengujian black-box adalah pengujian yang dilakukan untuk antarmuka perangkat lunak, pengujian ini dilakukan untuk memperlihatkan bahwa fungsi-fungsi bekerja dengan baik dalam arti masukan yang diterima dengan benar dan keluaran yang dihasilkan benar-benar tepat, pengintegrasian dari eksternal data berjalan dengan baik (file/table). Pengujian kotak hitam berusaha menemukan kesalahan dalam kategori sebagai berikut (R. Pressman, 2002:551) : a. Fungsi-fungsi yang tidak benar atau hilang. b. Kesalahan antarmuka (interface). c. Kesalahan dalam struktur data atau akses basis data eksternal. d. Kesalahan kinerja. e. Inisialisasi dan kesalahan terminasi. 2.2 Linux
16
Berawal dari pengalaman buruk Richard M Stallman (RMS) berhadapan dengan perangkat lunak proprietary dan closedsource, tahun 1984 beliau membuat sebuah proyek bernama GNU –dibaca guhnoo– singkatan dari GNU is Not Unix, yang bertujuan membuat sistem operasi bergaya UNIX yang bebas bagi masyarakat. Di sini lahirlah sebuah gerakan Free Software atau Perangkat Lunak Bebas yang memperjuangkan
kebebasan
untuk
menggunakan,
menyalin,
memodifikasi,
melakukan peningkatan, dan mendistribusikan perangkat lunak.Proyek GNU sendiri "dipayungi" oleh sebuah yayasan bernama Free Software Foundation (FSF). Kemudian pada tahun 1998 beberapa aktivis dan pengembang perangkat lunak bebas membuat sebuah inisiatif bernama Open Source Initiative (OSI) yang bertujuan untuk melakukan manajemen dan mempromosikan Open Source Definition (OSD) bagi komunitas. Secara umum, OSI melakukan uji kelayakan terhadap suatu perangkat lunak agar dapat dikatakan Open Source. Definisi lain dari Open Source adalah metodologi pengembangan yang mengijinkan kita untuk mempelajari, memodifikasi kode sumber dan mendistribusikan kembali perangkat lunak. FS dan OSI adalah dua gerakan yang hampir sama dalam berbagai hal kecuali pada prinsip, etika, dan idealisme yang dibawa. Walaupun begitu keduanya terus melakukan kontribusi dan kerjasama secara praktis di dunia perangkat lunak, oleh karena itu banyak orang sering menyebutnya dengan Free and Open Source Software (FOSS) atau dalam bahasa Indonesia menjadi Perangkat Lunak Bebas dan Open Source (PLBOS). Dengan PLBOS, perangkat lunak berkembang dengan cepat, semua orang dapat bebas menggunakan, bahkan ikut serta dalam pengembangannya.
17
Linux adalah sebuah kernel atau sistem operasi bergaya UNIX yang bebas – free, Stabil, dan berjalan di banyak platform perangkat keras. Linus Benedict Torvalds Pembuatnya pada saat beliau menjadi mahasiswa di Universitas Helsinki, Finlandia. Pada saat itu Linus terinspirasi oleh system operasi MINIX buatan Andrew S Tanenbaum dan menjadikan Linux sebagai proyek hobinya. Kernel Linux dirilis ke publik di bawah GNU General Public License (GPL) pada tahun 1991 –versi 0.01, dan sampai sekarang dikembangkan oleh ribuan orang di dunia. Versi terakhir pada saat modul ini ditulis adalah 2.6.16.x.GNU/Linux system merupakan istilah yang disarankan oleh RMS untuk sistem dengan kernel Linux dan aplikasi-aplikasi dari proyek GNU, tapi sebagian besar orang umumnya menyebut sistem tersebut dengan Linux saja. Di sini akan dijelaskan beberapa kelebihan dari sistem operasi Linux/UNIX dibandingkan dengan dengan sistem operasi yang lain. Dan berikut ini adalah beberapa fakta dari hal-hal yang menguntungkan dengan menggunakan program dan file-file Linux/UNIX : 1. Pada dasarnya semua data tersimpan di dalam harddisk walau ada beberapa kondisi dimana data tersimpan di disket. Linux/UNIX memberikan beberapa proses spesial dimana terminal, printer dan device hardware lainnya dapat diakses seperti kita mengakses file yang tersimpan dalam harddisk atau disket. 2. Ketika program dijalankan, program tersebut dijalankan dari harddisk ke dalam RAM dan setelah dijalankan akan dinamakan sebagai proses. 3. Linux/UNIX menyediakan servis untuk membuat, memodifikasi program, proses dan file.
18
4. Linux/UNIX mendukung struktur file yang bersifat hirarki. 5. Linux/UNIX adalah salah satu sistem operasi yang termasuk ke dalam kelas sistem operasi yang dapat melakukan multitasking. Multitasking sendiri adalah keadaan dimana suatu sistem operasi dapat melakukan banyak kerjaan pada saat yang bersamaan. 6. Selain multitasking, Linux/UNIX juga dapat mendukung multiuser. Yaitu sistem operasi yang pada saat bersamaan dapat digunakan oleh lebih dari satu user yang masuk ke dalam sistem. Bahkan untuk Linux juga mendukung untuk multiconsole dimana pada saat bersamaan di depan komputer langsung tanpa harus melalui jaringan dan memungkinkan lebih dari satu user masuk ke dakam sistem. Tugas akhir ini penelitii mengambil platform untuk OS yang akan kita pakai adalah Linux sehingga pengenalan terhadap seluk beluk linux perlu di pahami benar.
2.3 Pengolahan Sinyal Suara Suara adalah suatu sinyal yang sangat dipengaruhi oleh frekuensi dan merupakan bentuk sinyal diskrit yang sangat di pengaruhi oleh waktu. Proses terjadinya suara adalah sebagai berikut, Vocal tract yang berbentuk tabung resonansi dalam system speech production memiliki bagian utama pharynx, nasal cavity dan oral cavity. Bentuk pada vocal tract memiliki variasi berdasarkan soft plate (velum), tongues, lips dan jaw yang secara keseluruhan disebut sebagai articulators. Proses
19
pembentukan vocal tract untuk menghasilkan bentuk speech berbeda-beda disebut articulation. Gambar berikut ini mengilustrasikan sebuah segmen pada vokal /ix/. Sebuah sinyal quasi-periodicity (hampir periodik) pada voiced speech dapat dilihat disini
G aGambar 2.2 Ilustrasi segment vocal /ix/
Fricative sounds dibangkitkan dari pembatasan vocal tract pada titik sepanjang vocal tract dan tekanan aliran udara yang mengalir pada kecepatan cukup tinggi untuk menghasilkan suatu turbulensi. Turbulensi suara udara ini misalnya /hh/ atau /s/
20
Gambar 2.3 Fricative /s/ Plosive atau stop sounds dihasilkan dari proses pemblokiran vocal tract dengan cara penutupan bibir dan nasal cavity, memungkinkan tekanan udara kesamping, dan diikuti dengan sebuah hentakan. Mekanisme ini menghasilkan suara seperti /p/ dan /g/. Gambar berikut menujukkan penghentian pada /g/. Kondisi tenang sebelumnya dan munculnya sebuah burst sepetal proses penghentian penutupan
Gambar 2.4 Plosive atau stop sounds /g/ Affricates adalah sebuah kombinasi pada stop dan fricative sounds. Stops, fricatives, dan affricates secara kolektif disebut sebagai obstruent phonemes yang mana cukup lemah dan periodic, dan pada dasarnya merupakan bentuk yang dihasilkan dari rangsangan halangan pada vocal tract utama. Sementara manner of articulation dan voicing membagi fonem menjadi tiga kelas besar, hal ini menempatkan articulation (ditekankan pada halangan terpendek yang terjadi pada
21
vocal tract) yang memungkinkan untuk menemukan perbedaan pada fonem-fonem tersebut. Vokal-vokal pada dasarnya digambarkan dalam terminology posisi tongue (lidah) dan lip (bibir) disekitarnya. Penempatan yang signifikan pada articulation adalah lips (bilabial), lips dan teeth (labio-dental), teeth (dental), upper gums (alveolar), hard plate (palatal), soft plate (velar), dan glottis (glottal).
2.3.1 Sistem Pengolahan Sinyal Suara Manusia 2.3.1.1 Sinyal suara manusia Susunan rongga mulut manusia adalah sebagai berikut:
Lintasan vokal
Rongga hidung/nasal cavity
Langitlangit Lunak/vel um
Langitlangit
Bibir/labia
Pita
Gambar 2.5 Sistem Suara manusia
Klasifikasi Bunyi Bahasa Berdasarkan Model Terminal Analog. Bunyi bahasa dibagi menjadi dua bagian besar, yaitu bunyi bahasa yang bersuara dan yang tidak
22
bersuara. Untuk bunyi bahasa yang bersuara menurut cara artikulasi dibagi lagi menjadi: •
Bunyi vokal (/a/, /i/, /u/, /e/, /o/)
•
Bunyi sengau (/n/, /ng/, /m/)
•
Konsonan letup bersuara (/b/, /d/, /g/)
Sedangkan untuk bunyi yang tidak bersuara menurut letak artikulasi dibagi menjadi: • Konsonan letup bilabial tak bersuara /p/ • Konsonan letup dental tak bersuara /t/ • Konsonan geseran labio dental /f/ • Konsonan geseran lamino-alveolar /s/ • Dll
2.3.1.2 Sinyal Diskrit Sinyal suara dapat direpresentasikan menjadi sebuah fungsi. Dimana fungsi itu berisi informasi - informasi yang merupakan pola dari sinyal suara tersebut. Fungsi sinyal dinyatakan sebagai x (fungsi waktu) dengan menyertakan variable dalam tanda (...). Untuk membedakan sinyal waktu kontinyu dengan sinyal diskrit adalah menggunakan simbol t untuk menyatakan variable kontinyu dan symbol n untuk menyatakan variable diskrit.sinyal waktu diskrit hanya menyatakan nilai integer dari variable independent.
23
Pada teori sistem diskrit, lebih ditekankan pada pemrosesan sinyal yang berderetan. Pada sejumlah nilai x, dimana nilai yang ke-x pada deret x(n) akan dituliskan secara format sebagai: x ={x (n) };
(2.1)
meskipun x(n) menyatakan nilai yang ke-n dari suatu deret, persamaan (1.0) biasanya tidak disarankan untuk dipakai.
Gambar 2.6 Bentuk sinyal diskrit 2.3.1.3 Proses Sampling Sinyal suara merupakan sinyal yang tidak terbatas dalam domain waktu (finite time interval). Suara manusia akan menghasilkan sinyal analog yang terus kontinyu. Untuk keperluan pemrosesan dalam transformasi fourier maka sinyal wicara harus dibentuk dalam potongan-potongan waktu yang terbatas (infinite time interval). Karena itu sinyal yang ada dipotong-potong dalam slot-slot interval waktu tertentu. Berdasarkan pada teori sampling Nyquist, maka syarat dari frekuensi sampling adalah minimal dua kali frekuensi sinyal. Fsampling 2 x Fsignal
(2.2)
24
Gambar 2.7 Bentuk sinyal sinus
Gambar 2.8 Bentuk sinyal sinus yang telah di sampling
2.3.1.4 Frame Blocking Frame Blocking merupakan pembagian suara menjadi beberapa frame dan satu frame terdiri dari beberapa sampel. Pengambilan sampel tersebut tergantung dari tiap berapa detik suara akan disampel dan berapa besar frekuensi samplingnya. Di dalam proyek akhir ini menggunakan frekuensi sampling 12000 Hz dan pengambilan sampel tiap 20 ms. Hal ini berarti dalam tiap frame terdapat 240 sampel. Perhitungannya dapat kita lihat sebagai berikut : Frekuensi sampling = 12000 Hz
25
berarti dalam tiap 1 dt terdiri dari 12000 sampel Disampling tiap 20 ms = 0.002 dt Jadi jumlah sampel tiap frame = (12000 x 0.002) / 1= 240 sampel
2.3.1.5 Windowing Windowing digunakan untuk menghilangkan discontinuitas yang diakibatkan oleh proses Frame Blocking atau Framing. Pada proses ekstraksi file MFCC ini jenis window yang dipakai adalah jenis Hamming Window. Disini digunakan Hamming window karena hamming window mempunyai side lobe yang paling kecil dan Main lobe yang paling besar sehingga hasil windowing akan lebih halus dalam mengghilangkan efek diskontinuitas. Pada HCopy untuk menambahkan Proses windowing dapat ditambahkan konfigurasi USEHAMMING=T WINDOWSIZE=250000 Pada konfigurasi diatas menunjukkan bahwa proses akan menggunakan windowing jenis Hamming dengan ukuran window adalah 25 ms.
Gambar hasil proses windowing adalah :
26
Gambar 2.9 Sinyal di windowing Kemudian ketentuan hamming adalah
Pada gambar diatas garis merah menunjukkan sinyal hasil windowing.
2.4 Hidden Markov Model (HMM) Adalah sebuah sistem pengenalan suara yang pada dasarnya mengasumsikan bahwa sinyal suara merupakan realisasi dari beberapa kode pesan yang berupa satu atau beberapa urutan simbol. Untuk mendapatkan simbol-simbol itu, sinyal suara pertama kali diubah menjadi urutan vektor parameter diskrit dengan space yang sama. Vektor parameter diskrit ini diasumsikan membentuk representasi yang tepat terhadap sinyal suara dengan selang waktu selama kurang lebih 10 ms untuk satu vektornya, karena sinyal suara dapat dianggap stasioner. Walaupun tidak sepenuhnya benar, tetapi hal itu adalah tafsiran yang rasional. Dasar dari pengenalan adalah pemetaan antara rangkaian vektor suara dan rangkaian simbol yang diinginkan. Dua hal yang menjadi masalah yaitu : 1. Pemetaan dari simbol menjadi suara tidak satu per satu karena perbedaan simbol yang mendasar dapat mempengaruhi bunyi suara yang hampir sama. 2. Batasan antar simbol tidak dapat diidentifikasikan secara langsung pada sinyal suara. Oleh karena itu adalah tidak mungkin menganggap sinyal suara sebagai
27
rangkaian gabungan pola-pola statis. Masalah kedua dapat diatasi dengan membagi sinyal menjadi simbol yang dikenali terpisah (word isolated recognition). Secara umum permasalahan yang terjadi pada sistem pengenalan suara seperti di atas dapat diselesaikan dengan menggunakan metode hidden markov model ini. Blok pengenalan ucapan dengan HMM dapat dibagi menjadi tiga tahap yaitu bagian depan, tahap feature extraction dan tahap sistem pengenalan HMM. Pada tahap yang pertama dilakukan pemfilteran sinyal suara dan mengubah sinyal suara analog ke digital. Tahap feature extraction adalah untuk mendapatkan parameterparameter yang dapat merepresentasikan sinyal suara tersebut dan dilakukan analisis serta kuantisasi vektor. Tahap yang ketiga, dapat dibagi menjadi dua tugas yaitu tugas pemodelan dan tugas pengenalan . Untuk tugas pemodelan dibuatkan suatu model HMM dari data-data yang berupa sampel ucapan dari sebuah kata. HMM yang dipakai adalah densitas diskrit. 2.4.1 Observasi Pemisahaan kata menjadi simbol yang dilafalkan (phone) menghasilkan rangkaian observasi o untuk setiap kejadian yang mungkin pada saat transisi antar state. Aggap suara sebagai sebuah rangkaian vektor suara atau observasi, yang didefinisikan sebagai berikut : persamaan ( 2.3) Dimana ot adalah vektor suara yang diobservasi pada saat t. Observasi pada dasarnya menentukan nilai dari persamaan berikut
28
persamaan (2.4) Dimana wi adalah pengucapan yang ke-i, probabilitas ini tidak dapat dihitung secara langsung tetapi dapat dihitung dengan menggunakan aturan Bayes
persamaan ( 2.5 ) Maka, prioritas kemungkinan P(wi) sangat tergantung pada P(O|wi) Dalam pengenalan suara berbasis hmm, diasumsikan bahwa rangkaian vektor observasi berkorespondensi dengan masing masing word yang dihasilkan oleh markov model1. Markov model adalah mesin finite state yang mengalami perubahan state sekali setiap satuan waktu t pada saat state j dimasuki, vektor suara ot dihasilkan berdasarkan nilai kemungkinan bj(ot). Selanjutnya transisi antara state i ke state j juga merupakan probabilitas diskrit aij. Gambar di bawah menunjukkan contoh dari proses ini dimana lima model state berupa rangakaian state X = 1,2,3,4,5,6 untuk membangun urutan o1 sampai o6.
Gambar 2.10 State HMM
1
HTK book (for HTK Version 3.3)
29
Untuk membangun rangkaian observasi O dengan jumlah state 6. probabilitas diskrit untuk transisi dari state i ke state j ditentukan oleh aij sedangkan bj(ot) adalah probabilitas yang membentuk observasi pada saat t (ot) untuk state j Probabilitas O dibangun oleh model M yang melalui seluruh urutan state X dihitung sabagai hasil perkalian antara kemungkinan transisi dan kemungkinan hasil. Jadi untuk rangkaian state X pada gambar di atas persamaan (2.6)
Meskipun demikian hanya rangkaian observasi O yang diketahui dan rangkaian state X yang mendasari adalah tersembunyi. Itu mengapa ini disebut hidden markov model.
persamaan ( 2.7)
2.4.2 Inisialiasi Inisialisasi dapat dilakukan dengan menggunakan algoritma viterbi untuk menemukan
jalur terbaik
dalam sebuah
matrik dimana dimensi vertikal
merepresentasikan state-state hmm dan dimensi horisontal merepresentasikan frame suara. Masing masing titik pada gambar dibawah menunjukkan kemungkinan terhadap frame saat itu dan daerah antar titik menunjukkan kemungkinan transisi.
30
35
menunjukkan kemungkinan transisi dari state 3 ke state 5 dan b3(o4) adalah probabilitas pembentukan observasi o3 pada state 3 Kemungkian masing masing jalur dihitung dengan menjumlah kemungkinan transisi dan kemungkinan keluaran sepanjang path. Pada waktu t masing masing bagian path
diketahui untuk semua state i.
dapat dihitung dengan
persamaan di bawah persamaan (2.8) Konsep path ini sangat berguna untuk suara kontinyu pada umumnya.
2.4.3 Estimasi Proses estimasi dilakukan dengan menggunakan metode Baum-Welch Reestimation. Formula Baum-Welch re-estimasi untuk mean dan kovarian pada masing masing state HMM adalah :
persamaan (2.9) dan
persamaan (2.10)
31
Estimasi dilakukan terhadap mean dan varian hmm yang mana distribusi keluaran masing masing state adalah komponen gausian, didefinisikan sebagai berikut :
persamaan (2.11)
Parameter vector akan diestimasi dengan menggunakan algoritma forewardbackward hingga diperoleh nilai probabilitas P(O|M) terbesar berdasarkan observasi pada masing masing state. Perhitungan algoritma Baum-Welch dilakukan berdasarkan diagram alir berikut :
Gambar 2.11 Diagram alir untuk estimasi Estimasi dilakukan terhadap parameter vector pada initial HMM dengan menggunakan metode forward/backward hingga diperoleh parameter vektor yang
32
konvergen (tidak dapt diestimasi lagi). Kriteria update adalah nilai probabiltias observasi terhadap model P(O|M) lebih tinggi dari nilai iterasi sebelumnya.
untuk beberapa model M dan N state
Nilai kemungkinan foreward didefinisaikan sebagai
persamaan (2.12) kemungkinan ini dapat dihitung berdasarkan rumus :
persamaan ( 2.22) sedangkan nilai kemungkinan backward
untuk model M dan N state
didefinisikan sebagai persamaan (2.13) dan dapat dihitung dengan persamaan :
persamaan (2.14) berdasarkan persamaan persamaan maka didapat persamaan untuk menentukan nilai sebagai berikut :
persamaan (2.16)
33
(2.15) probabilitas
Lj(t
dimana P = P(O|M). Algoritma untuk membentuk re-estimasi parameter hmm dengan Baum-Welch re-estimasi adalah sebagai berikut : 1. Untuk setiap vektor parameter/matrik, alokasikan storage untuk pembilang dan penyebut formula Baum-Welch sebagai acumulator. 2. Hitung kemungkinan foreward dan backward untuk semua state j pada waktu t. 3. Untuk setiap state j dan waktu t, gunakan probabiltas Lj(t) dan vektor observasi saat ini ot untuk merubah acumulator pada state itu. 4. Gunakan nilai acumulator terakhir untuk menghitung nilai parameter yang baru. 5. Jika nilai P = P(O|M) iterasi saat ini kurang dari iterasi sebelumnya maka berhenti jika tidak ulangi langkah diatas dengan menggunakan nilai parameter yang baru. Berikut contoh proses pembelajaran dan pengenalan untuk rangkaian observasi.
34
Gambar 2.12 Contoh Proses Pembelajaran Pada awalnya HMM dibelajari untuk memodelkan beberapa contoh kata dalam hal ini adalah “one, two, three”. Hasil dari pembelajaran adalah model yang telah diestimasi(M). Kemudian HMM digunakan untuk mengenali kata/observasi (O) berdasarkan hasil pembelajaran tersebut. P(O|M) adalah kemungkinan rangkaian observasi O terhadap model M.
2.5 HMM Toolkit Sistem pengenalan suara pada umumnya mengasumsikan bahwa sinyal suara merupakan realisasi dari beberapa kode pesan yang berupa satu atau beberapa urutan simbol. Untuk mendapatkan simbol simbol itu, sinyal suara pertama kali diubah menjadi urutan vektor parameter diskrit dengan space yang sama. Vektor parameter diskrit ini diasumsikan membentuk representasi yang tepat terhadap sinyal suara dengan selang waktu selama kurang lebih 10 ms untuk satu vektornya, karena sinyal suara dapat dianggap stasioner. Walaupun tidak sepenuhnya benar, tetapi hal itu adalah tafsiran yang rasional. Dasar dari pengenalan adalah pemetaan antara rangkaian vektor suara dan rangkaian simbol yang diinginkan. Dua hal yang menjadi masalah yaitu : 1. Pemetaan dari simbol menjadi suara tidak satu per satu karena perbedaan simbol yang mendasar dapat mempengaruhi bunyi suara yang hampir sama.
35
2. Batasan antar simbol tidak dapat diidentifikasikan secara langsung pada sinyal suara. Oleh karena itu adalah tidak mungkin menganggap sinyal suara sebagai rangkaian gabungan pola pola statis. Masalah kedua dapat diatasi dengan membagi sinyal menjadi simbol yang dikenali terpisah (word isolated recognition). Secara umum permasalahan yang terjadi pada sistem pengenalan suara seperti di atas dapat diselesaikan dengan menggunakan metode hidden markov model. Pada implementasinya sistem pengenalan suara berbasis hidden markov model dibagi menjadi beberapa bagian sebagai berikut : 1. Data preparasi : pembentukan parameter vector (observasi) 2. Training : inisialisasi dan estimasi parameter vector 3. Testing : pengenalan
Hidden Markov Model Toolkit (HTK) adalah tool atau perangkat lunak yang mudah digunakan untuk membangun dan memanipulasi Hidden Markov Model. HTK pada dasarnya digunakan untuk penelitian mengenai pengenalan suara meskipun juga digunakan untuk sejumlah aplikasi yang lain termasuk penelitian dalam suara sintetis, pengenalan karakter, dan pengurutan DNA. HTK terdiri dari kumpulan beberapa modul librabry dan tool dalam bahasa C. Perangkat–perangkat tersebut memberikan fasilitas yang handal untuk speech analysis, HMM training, testing dan results analysis. Perangkat lunak ini mendukung HMM baik yang menggunakan continuous density mixture Gaussians atau discrete distributions dan juga bisa digunakan untuk
36
membangun sistem HMM yang komplek. Dalam buku ini akan disinggung secara singkat mengenai arsitektur HTK dan perangkat-perangkat yang terlibat pada masing masing tahap.
2.5.1 Arsitektur perangkat lunak HTK HTK dibangun dari modul modul sebagaimana yang dapat dilihat seperti pada gambar di bawah ini :
Gambar 2.13 Arsitektur HMM Input / output dan interaksi dengan sistem operasi ditangani oleh modul library HSHELL dan semua management memori di kontrol oleh HMEM. Perhitungan matematika di ditangani oleh HMATH dan opersai pemrosesan sinyal yang dibutuhkan untuk analisa sinyal suara terdapat pada modul HSIGHP. Semua
37
tipe file yang berhubungan dengan perhitungan HTK didefinisikan pada modul interface. HLABEL menyediakan interface untuk melabeli file, HLM untuk model bahasa, HNET untuk network (jaringan) dan lattice (pola-pola), HDICT untuk dictionaries (pembuatan kamus), HVQ untuk VQ codebooks (kode Kuantisasi Vektor) dan HMODEL untuk definisi HMM. Semua sinyal masukan dan keluaran pada level waveform adalah via HWAVE dan pada level parameter adalah via HPARM. HWAVE dan HLABEL mendukung multiple file format yang mengijinkan data diimport dari sistem yang lain. Input audio secara langsung (direct audio input) didukung oleh modul HAUDIO dan grafik interaktif yang sederhana di sediakan oleh HGRAF. HUTIL menyediakan sejumlah fasilitas routin untuk manipulasi HMM dimana HTRAIN dan HFB sangat mendukung macam - macam perangkat pembelajaran HTK. HADAPT mendukung berbagai perangkat adaptasi HTK. Terakhir HREC berisi fungsi utama untuk proses pengenalan.
2.5.2 HTK (Hidden Markov Model Toolkit) HTK toolkit adalah alat atau fasilitas yang digunakan selama tahapan proses pengenalan suara oleh HTK. HTK memiliki perangkat-perangkat untuk membangun pengenalan suara yang secara garis besar dikelompokkan dalam 4 bagian, yaitu : data preparation, training, testing, dan analysis. 1.
Perangkat-perangkat yang digunakan dalam tahap data preparation a.
HParse
38
b.
HDMan
c.
HLEd
d.
HSLab
e.
HCopy
2. Perangkat-perangkat yang digunakan dalam tahap training a.
HCompV
b.
HERest
c.
HHed
3. Perangkat-perangkat yang digunakan dalam tahap testing a.
Hvite
4. Perangkat-perangkat yang digunakan dalam tahap analysis a.
HResults
Gambar 2.14 Tahapan proses pengenalan dalam HTK
39
2.5.3 Penggunaan HTK tool Proses pembuatan language model dengan menggunakan HTK dapat dibedakan menjadi beberapa proses. Yaitu: 1. Persiapan database 2. Menbuat Accoustic model 3. Mendefinisikan HMM 4. Training 5. Mendefinisikan task grammar 6. Proses recognition 7. Evaluasi hasil recognition
Dari beberapa langkah diatas dapat diketahui beberapa langkah yang harus dilakukan untuk membuat language model dimana langkah tersebut adalah langkah standard yang harus dilakukan untuk pembuatan language model. Persiapan database adalah proses perekaman sinyal yang akan dipakai dalam proses training sistem, pada proses perekaman ini terdapat dua file yang dihasilkan, yaitu file label dan file waveform yang akan diekstraksi fiturnya. Pada proses perekaman ini dapat digunakan tool bawaan HTK dan juga dapat digunakan wavesurfer. Kemudian pada proses membuat accoustic model dapat digunakan tool Hcopy pada proses Hcopy inilah speech dilakukan prosessing yaitu proses ekstraksi fitur
40
dimana sinyal akan dikonversi menjadi vektor mfcc,vektor mfcc adalah vektor yang diperoleh dari analisis sinyal suara dengan metode Mel Frequency Cepstrum. Kemudian setelah diperoleh hasil dari vektor mfcc ini kemudian parameter yang telah diperoleh dimasukkan kedalam sebuah file prototipe yang nantinya akan digunakan untuk proses training. Setelah diperoleh file yang menyimpan keterangan fitur yang didapat pada maka kemudian ini akan di analisis dengan dibandingkan dengan vektor standard yang digunakan sebagai referemsi, seluruh proses ini akan di iterasi hingga model mencapai keadaan kovergen. Proses ini akan diulangi beberapa kali untuk setiap kata yang di daftar dan akan digunakan pada speech recognition sistem.
Setelah diperoleh suatu language model langkah selanjutnya adalah membuat dictionary untuk sistem yang akan dibuat, dictionary ini terdiri dari plain text yang kemudian di generate kemungkinan yang mungkin terjadi dari susunan kata yang terdapat dalam file.
Dari beberapa proses diatas proses yang terakhir adalah proses pengenalan dan proses perhitungan kecepatan dan akurasi untuk proses.
2.6
MFCC Vektor Seperti yang telah dijelaskan sebelumnya bahwa HTK hanya dapat
memproses pengenalan pada fitur yang telah di ekstraksi, proses ekstraksi inilah yang akan menghasilkan file ynag disebut dengan Vektor MFCC. Pada dasarnya vektor
41
MFCC dihasilkan dengan melakukan langkah-langkah seperti yang ditunjukkan pada gambar dibawah:
Gambar 2.15 Flowchart Urutan Generasi MFCC
2.6.1
Proses Sampling
42
Sinyal suara merupakan sinyal yang tidak terbatas dalam domain waktu (finite time interval). Suara manusia akan menghasilkan sinyal analog yang terus kontinyu. Untuk keperluan pemrosesan dalam transformasi fourier maka sinyal wicara harus dibentuk dalam potongan-potongan waktu yang terbatas (infinite time interval). Karena itu sinyal yang ada dipotong-potong dalam slot-slot interval waktu tertentu. Berdasarkan pada teori sampling Nyquist, maka syarat dari frekuensi sampling adalah minimal dua kali frekuensi sinyal. Fsampling ≥ 2 x Fsignal
(2.2)
Gambar 2.16 Bentuk sinyal sinus
Gambar 2.17 Bentuk sinyal sinus yang telah di sampling
Sinyal suara disampling 16 Khz
43
Adalah sinyal suara yang telah di digitalisasi dengan menggunakan proses sampling. Sinyal ini dapat berupa file wav atau sejenisnya. Dalam proses Hcopy dapat ditambahkan baris SOURCERATE=625 Untuk menginisialisasi bahwa sinyal suara akan sisampling dengan 16 KHz dimana 625 adalah rate data dalam secon.
GaGambar 2.18 Sinyal suara dengan sample 16 Khz 2.6.2
Pre-Emphasis Pre-emphasis digunakan untuk mengambil envelope dari sinyal tersampel
untuk memperhalus bentuk sinyal.
44
Gambar 2.19 Sinyal suara telah di Pre-Emphasis Pada gambar diatas ditunjukkan dengan garis merah adalah hasil proses preemphasis dimana kedua gambar diatas adalah proses preemphasis pada domain waktu dan pre-emphasis pada domain frekwensi. Syarat pre-emphasis adalah
Pada proses Hcopy dapat ditambahkan Baris PREEMCOEF=0.97 Hal ini menunjukkan adanya preemphasis, dimana coefisien preemphasis berkisar antara 0.96-0.99
2.6.3
FFT (Fast Fourier Transform)
Transformasi fourier adalah suatu metode yang sangat efisien untuk menyelesaikan transformasi fourier diskrit yang banyak dipakai untuk keperluan analisa sinyal seperti pemfilteran, analisa korelasi, dan analisa spectrum. Diskrit Fourier Transformasi (DFT) adalah deretan yang terdefinisi pada kawasan frekuensi – diskrit yang merepresentasikan Transformasi Fourier terhadap suatu deretan terhingga (finite duration sequence). DFT berperan penting untuk implementasi algoritma suatu varitas pengolahan sinyal, karena efisien untuk komputasi berbagai aplikasi.
45
Fast fourier Transformation atau transformasi Fourier cepat, merupakan proses lanjutan dari DFT ( Diskrit Fourier Transformation ). Transformasi Fourier ini dilakukan untuk mentransformaikan sinyal dari domain waktu ke domain frekuensi. Hal ini bertujuan agar sinyal dapat diproses dalam spectral substraksi. FFT adalah bentuk khusus dari persamaan integral fourier : H = ∫ h(t) e-jwt dt
persamaan (2.17)
Dengan mengubah variable-variabel, waktu (t), frekuensi (w) kedalam bentuk diskrit diperoleh transformasi fourier diskrit (DFT) persamaanya yaitu : N −1
H(kwo) =
∑ h(nT ) e
-jkwonT
persamaan (2.18)
n =0
Disederhanakan dengan T=1 sampel waktu N=sample waktu N=sample frekuensi k sehingga menjadi : H(k) = ∑ h(n)e
persamaan (2.19)
Dengan k : 0,1,2,…,N-1 Pemakaian FFT karena untuk penghitungan komputasi yang lebih cepat dan mampu mereduksi jumlah perkalian dari N2 menjadi NlogN perkalian. FFT yang digunakan memakai 512 point dan arena hasil FFT simetris, maka keluaran FFT tersebut hanya diambil sebanyak 256 data. Hasil dari proses FFT akan diperoleh titiktitik sinyal yang simetris sehingga data yang dimbil hanya setengah dari data keseluruhan yang selanjutnya akan diambil nilai maksimumnya.
46
Di dalam proses fast fourier transform akan menghasilkan dua buah nilai yaitu nilai real dan nilai imajiner. Dan untuk proses selanjutnya dibutuhkan nilai real saja untuk itu diperlukan proses mutlak log.
Gambar 2.20 Sinyal sinus di domain waktu
Gambar 2.21 Sinyal sinus di domain frequency
2.6.4
2
Mel2 Schale Filetrbank
Representasi dari ukuran Pitch
47
Mel schale filterbank digunakan untuk menyeseuaikan pendengaran manusia dengan sistem, dimana frekwensi yang tinggi akan mendapatkan band yang tinggi pula sehingga pada telinga manusia akan mendengar suatu sinyal yang konstan. Pada Hcopy dapat digunakan baris berikut untuk menambahkan konfigurasinya pada Hcopy dapat digunakan baris beriktu pada file konfigurasi TARGETKIND=MFCC_X_X_X_X Pada parameter diatas terdapat parameter X disana adalah menunjukkan operasi yang dilakukan pada file dimana dapat dimasukkan dengan parameter berikut: _E
mempunyi energi
_N
Energi absolut disuppress
_D
Menggunakan Delta Koefisien
_A
Menggunakan Koefisien Akselerasi
_C
Terkompress
_Z
Zero Mean koefisien statis
_K
Menggunakan CRC ceksum
_0
Cepstral Koefisien dimulai dari 0
48
Gambar 2.22 Mel Schale Filterbank
2.6.5
Me-Log Sinyal Proses logaritmis sinyal digunakan untuk mengadaptasikan sistem seperti
telinga manusia, karena sinyal suara yang berada dibawah frekuensi 1 Khz (Low order) akan terdengar linear namun apabila lebih dari 1 Khz (High Order) maka akan grafiknya akan menjadi logaritmis, untuk menyamakan persepsi itu maka digunakan proses logaritmis pada sinyal agar sinyal dapat di proses.
2.6.6
Inverse Fast Fourier Transform (IFFT) Inverse Fast Fourier Transform merupakan kebalikan dari algoritma Fast
Fourier Transform yaitu suatu algoritma untuk mengubah sinyal suara dari domain frekuensi menjadi domain waktu. Cepstrum atau cepstral coefficient juga dapat digambarkan sebagai IFFT dari spektrum. Istilah cepstrum meliputi kebalikan dari bentuk spektrum. Parameter untuk cepstrum disebut dengan quefrency dimana quefrency merupakan kebalikan dari kata frequency. Cepstrum merupakan inverse dari transformasi fungsi domain frekuensi, quefrency menjadi parameter dalam domain waktu. Feature khusus dari cepstrum yaitu berupa fundamental period dan spectral envelope
2.6.7
Liftering
49
Pada proses ini mengambil 16 buah data yang dapat mewakili seluruh data. 16 buah data inilah yang nantinya dipakai sebagai fitur yang dapat mempresentasikan masing – masing frame. Liftering merupakan proses dari pemisahan elemen cepstrum dalam dua faktor yaitu fundamental period dan spectral envelope. Dimana untuk mendapatkan spectral envelope, elemen quefrency yang rendah harus melalui proses FFT. Sedangkan untuk mendapatkan fundamental period, elemen quefrency yang tinggi harus melalui proses ekstraksi puncak
2.7 Speech Recognition Speech Recognition adalah suatu teknologi yang memungkinkan computer dengan peripheral input untuk dapat menterjemahkan apa yang diucapkan oleh manusia,pada dasaranya speech recognition adalah suatu urutan algoritma yang memproses sinyal analog menjadi suatu sinyal digital dan kemudian dari sinyal digital ini dicari parameter-parameter tertentu kemudian diinterpretasikan oleh computer sebagi suatu kata, fase dari speech recognition secara diagram dapat digambarkan dalam diagram dibawah ini:
50
Gambar 2.23 Garis Besar Speech Recognition Sistem
Semua SR system dioperasikan dengan dua fase, yaitu fase training dan fase pengenalan. Dalam fase training system di ajari dengan bentuk referensi yang menyatakan sinyal suara yang berbeda misalnya kata, frase atau fonem yang merupakan kata yang nantinya akan diapakai sebagai vocabulary,setiap referensi diajarkan kepada sistem dengan cara diucapkan dan system akan mengambil rata-rata dari paramater kata yang diucapkan yang akan menjadi karakteristik statistik dari sinyal suara. Kemudian fase yang kedua adalah pengenalan yaitu membandingkan input yang belum diketahui dengan refernsi yang telah didapat pada proses training.kemudian untuk urutan proses ekstraksi ciri adalah sebagai berikut:
Gambar 2. 26 Urutan Proses ekstraksi ciri Berikut ini merupakan penjelasan urutan Prose eksreksi ciri:
51
1. PreEmphasis Sinyal suara pertama kali di filter dengan filter PreEmphasis filrter yang ditekankan pada model speech production, dari speech production model ini dari sinyal yang mempunyai level (Voiced Speech) yaitu kurang kurang lebih -6 dB/oktaf yaitu hasil pengurangan dari -12/oktaf dB sinyal input ditambah dengan +6 dB /oktaf compensasi radiasi dari suara yang di suarakan dari mulut sebagaimana peningkatan frekuensi, spectrum sinyal suara di normalisasi dengan PreEmphasis filter pada 1az^-1 seperti ditunjukkan pada gambar dibawah,pada filter ini memfilter untuk Voiced Speech ini menyebabkan a+12 dB/oktaf naik pada Unvoiced Speech.
Gambar 2.27 Preemphasis
2. Blocking and Windowing Untuk mengekstrak short-time feature dari sinyal suara,dibutuhkan blok dari sinyal suara pada potongan pendek yang disebut frame. Durasi dari tiap frame bervariasi antara 20-30 ms, sinyal speech dari tiap frame diasumsikan stasioner.
52
Kemudian untuk mengurangi efek batas dari tiap-tiap segmen
perlu dilakukan
Windowing (misalkan Hamming Window) untuk tiap-tiap frame,dapat juga dilakukan dengan frame yang satu dengan frame yang lain saling overlap sehingga akan didapatkan feture yang lebih halus pada setiap waktu.
3. Temporal Feature Extraction (Ekstraksi ciri sementara) Mengekstrak ciri dari sinyal suara setiap frame pada domain waktu sangat membantu
untuk
menyederhanakan
dan
mempercepat
perhitungan
dan
mempermudah interpretasi secara fisik. Ciri sementara ini termasuk level rata-rata short-time amplitudo, Short-time Zero Crossing rate, short-time auto correlation, Pitc Period, RMS, Amplitudo maximal dari sinyal, kualitas suara, perbedaan antara nilai maximum dan minimum pada positif dan negative yang membagi dua sinyal,dan autocorekkation peak.
4. Spectral Analysis Spectral Analysis adalah modul yang paling penting dalam proses pengenalan speech tingkat pertama, beberapa parameter yang sangat berguna pada Speech Processing didapatkan pada proses ini, ada beberapa cara untuk mengekstrak spectral information dari sinyal suara termasuk FIR filter bank dan linear predictive coding (LPC) ,banyak sekali variasi dari teknik-teknik ini yang telah dikembangkan termasuk mel schale FFT Filter-bank dan perceptual linear predictive(PLP) .
53
5. Features in Frequency Domain and Feature Enhancement Setelah didapatkan spectral information, maka dapat langsung dilakukan ekstraksi beberpaa ciri yang dapat dipakai dalam pengenalan. Ciri yag didapat pada frekwensi domain termasuk perbedaan puncak dan lembah,daya dari masing-masing daerah frekwensi, radasi spektral dan variasi kontur dari spektrum. Parameter-parater ini sering digunakan dalam Speech Recognition.
2.7.1 Reduction of Information Rate and Feature Dimension Kecepatan informasi adalah frekwensi generasi vector ciri, penurunan kecepatan informasi ini dapat dilakukan dalam dua proses yaitu selama
Modul
Blocking dan Windowing yang merepresentasikan analisa Short-time atau setelah ciri yang dibutuhkan diekstrak. Dalam sebuah desain filter-bank kecepatan informasi di kurangi pada output dari filterbank atau output dari auditory model. Pada umumnya output rectifier setengah gelombang, low pass dan didesimalkan. Kecepatan informasi 100 Hz sudah cukup memadai untuk sinyal suara. Kebanyakan Output dari teknik Ekstraksi ciri dari spectrum mempunyai dimensi antara 30-40, dimensi dari vector ini dapat dikurangi dengan analisa cepstral atau prinsip analisis komponen. Untuk pangambilan parameter koefisien dari LPC dihasilkann dari tiap frame bervariasi antara 8-14. pengurangan dari dimensi ciri tidak dibutuhkan disini, walaupun begitu kebanyakan system akan mengkonversi koefisien LPC ke koefisien cepstral, karena koefisien cepstral lebih stabil.
54
Dalam Speech Recognition terdapat 3 metode yang paling sering digunakan, metode pengenalan ini mempunyai kelebihan dan kekurangan masing-masing,metode tersebut adalah:
1. Patern recognition adalah suatu metode dengan membandingkan dua ciri spektrum sinyal,marupakan metode yang paling tua yang pernah digunakan dalam speech recognition. 2. Hidden Markov Model adalah suatu metode analisis yang merepresentasikan struktur dari sinyal suara, Algoritma yang digunakan adalah algoritma Viterbi merupakan metode yang paling banyak digunakan. 3. Neural Network Adalah metode ini banyak digunakan untuk pengelompokan fonem,pada suatu sistem yang hybrid.
Pada modul SRM ini SR engine yang digunakan adalah Julius SR engine. Julius adalah SR engine berkecepatan tinggi berdasarkan word N-Grams dan dapat mengenali wicara dengan vocabulary dari puluhan hingga ribuan vocabulary, Julius sendiri dapat melakukan pengenalan mendekati realtime yaitu lebih dari 90% dengan 20000 word yang dimasukkan. Julius sendiri adalah sifatnya opensource sehingga
55
memudahkan untuk mempelajari cara kerja dari Julius dan khususnya nanti untuk mempelajari alur dari SRM. N-Grams adalah pemotongan dari n urutan kata yang diberikan yang diberikan, Parameter yang digunakan dalam proses pemotongan ini adalah N-Gram pertama kali yang didapat pada saat dilakukan training pada system. Kemudian hasil inilah yang dipakai untuk perbandingan dengan N-Gram-N-Gram selanjutnya. N-Gram sendiri sangat populer dalam statistik dan teknik pemrosesan bahasa, pengenalan wicara dan fonem. N disini adalah banyaknya variasi yang bisa didapat dari sebuah urutan, misalkan diberikan kata “selamat pagi bapak bagaimana kabar anda” maka jika dibutuhkan trigram (3-Gram) maka dari kata tersebut menjadi “selamat pagi bapak” atau “pagi bapak bagaimana” atau juga “bapak bagaimana kabar” dan seterusnya.
2.7.2 Julius speech recognition Julius speech recognition adalah speech recongnition berkecepatan tinggi yang berbasis N-Gram dan HMM accoustic model. Julius dapat melakukan pengenalan dengan kecepatan tinggi dengan level vocabulary berkisar pada puluhan sampai pada ribuan vocab. Keunggulan julius yang lain adalah dapat melakukan pengenalan yang mendekati hingga 90% dari 20.000 kata yang di inputkan. Fitur terbaik dari julius adalah dapat melakukan recombinasi cara pengucapan dari dictionary, bahasa dan accoustic model sehingga dapat digunakan untuk membangun speech recognition dengan tujuan sistem tertentu3.
32
Large Vocabulary Continous Speech recognition Julius
56
Platform yang didukung julius adalah Linux, Solaris, dan Versi lain dari Unix dan Windows.
2.7.2.1 Struktur sistem dari julius Struktur dari julius sistem adalah seperti yang ditunjukkkan pada gambar dibawah ini:
Gambar 2.28 Struktur dari julius
Pada gambar terlihat sistem julius menggunakan N-Gram dan HMM, input suara di proses menggunakan dua proses yaitu: 1. Proses pertama yaitu proses pemecahan dengan 2-Gram dengan menggunkan algoritma Frame synchronous beam search. 2. Pada proses kedua adalah menggunakan 3-gram dengan menggunakan algoritma penncarian N-best stack decoding.
57
Pada masing-masing proses algoritma yang digunakan vocabulary yang digunakan adalah sesuai dengan jenis N-Gram yang dipakai. Kemudian hasil ini dicocokkan dengan template yang didapat dari proses training (hmmdefs) dan dictionary serta lexiconnya untuk diketahui kemungkinan dari kata yag diinputkan untuk kemudian di hasilkan susunan kata. Seluruh file untuk monophone triphone dan language model dapat dibangun dengan menggunakan HTK tool. 2.7.2.2 Grammar Grammar digunakan untuk menentukan aturan yang digunakan dalam julius, julius menggunakan grammar untuk menentukan kemungkinan kata yang mungkin diucapkan dalam sebuah proses pengenalan. Dengan grammar inilah julius dapat melakukan pengenalan hingga mencapai kalimat. 2.7.2.3 Dictionary Dictionary digunakan untuk menyimpan kata-kata yang akan diucapkan pada grammar. Pada dictionary inilah ditentukan cara pengucapan dari suatu kata.
2.8 Linux Voice Command IGOS Linux Voice Command merupakan perangkat lunak pengenal wicara bahasa Indonesia pertama yang digunakan untuk mengoperasikan komputer. Aplikasi ini dikembangkan BPPT bekerja sama dengan Telkom RDC dan Advance Telecommunication Research (ATR) Institute Jepang (sebagai mitra diskusi) dengan pendanaan dari Asia Pasific Telecommunity (APT). Pengembangan aplikasi ini
58
bertujuan meningkatkan aksesibilitas komputer sehingga seseorang yang memiliki keterbatasan dalam menggunakan keyboard dan mouse seperti penyandang cacat maupun penderita lumpuh (tuna daksa) dapat menggunakan komputer dengan suaranya. Dengan aplikasi ini kesenjangan digital antara manusia normal dengan penyandang cacat dapat dikurangi.
2.9 Flowchart
Flow Chart atau dalam
bahasa indonesia disebut sebagai diagram alir
merupakan konversi sebuah algoritma dengan menggunakan simbol baku, yang terdiri dari runtun, alternatif , dan berulang , gambar 2.5 (Santika, 2003). lowchart adalah represantasi grafik dari langkah-langkah yang harus diikuti dalam menyelesaikan suatu permasalahan yang terdiri atas sekumpulan simbol, dimana masing-masing simbol merepresentasikan suatu kegiatan tertentu. Flow chart diawali dengan penerimaan input, pemrosesan input, dan diakhiri dengan penampilan output (Santika, 2003)..
Penerimaan input, pemrosesan input, dan penampilan output merupakan kegiatan yang utama yang membentuk silus dari semua kegiatan yang dilakukan oleh komputer. Siklus ini disebut dengan siklus I-P-O (Input-Proses-Output). Seperti yang diketahui, komputer terdiri atas banyak komponen seperti monitor, keyboard, mouse, CPU, printer, scanner, speaker. Setiap komponen yang digunakan untuk memasukkan perintha atau data ke dalam kompter adalah keyboard dan mouse,
59
selanjutnya masukkan tersebut akan diproses oleh CPU dan akhirnnnya akan mengeluarkan hasil eksekusi pada monitor, printer, atau speaker
Tabel 2.1 Penjelasan simbol Flow Chart
No. Simbol
Keterangan
1
Simbol yang merepresentasikan awal atau mulainya data untuk dialirkan
2
Simbol merepresentasikan data
3
Simbol yang merepresentasikan keputusan
4
Simbol yang merepresentasikan objek
5
Simbol yang merepresentasikan arah data mengalir
60
BAB III ANALISIS DAN IDENTIFIKASI PENGEMBANGAN
Pada bab III ini berisi analisis paket ILVC dan pengembangannya di mana pada pembahasan bab ini akan membahas paket ILVC yang telah disediakan dan berisi juga tatacara untuk mengembangkan aplikasi tersebut. Pada sub bab pertama mengenai lingkungan implementasi. Lingkungan implementasi akan membahas tentang elemen-elemen pendukung untuk membangun ILVC. Sub bab kedua installasi aplikasi ILVC, installasi ini dimaksudkan untuk mengetahui cara kerja dan penyempurnaan yang harus dikembangkan. Penjelasan ini diperlukan karena berisi tata cara installasi mulai cara mendapatkan aplikasi tersebut hingga cara pemakaianya yang akan dibahas pada sub bab selanjutnya. Sub bab ketiga yaitu cara kerja. Sub bab ini membahas cara kerja ILVC pada sistem operasi Linux dan juga mengetahui system apa saja yang harus di non aktivkan. Bab ini juga dibutuhkan tahap pengujian dalam rangka penyempurnaan untuk mendapatkan sesuatu yang harus dikembangkan.
Sub bab Selanjutnya tentang pembangunan sistem pada aplikasi ILVC. Pada pembangunan system ini membutuhkan tools yang disebut dengan HTK tools. Penjelasan sub bab ini mengenai langkah awal pembuatan sistem yang sangat
61
menentukan bagaimana sistem aplikasi ini dapat di bangun dengan mengggunakan HTK Tools mulai dari instalasi HTK dan juga langkah-langkah pengggunaannya agar file suara dapat berubah menjadi model akustik. Sub bab keenam akan membahas tentang pembuatan model tata bahasa. Sub bab ini harus dibuat agar system mempunyai acuan dalm mengenali suara. Sub bab selanjutnya mengenai Decoding. Decoding ini dilakukan dengan menggunakan julius 4.0.2 tujuan nya adalah untuk mengetahui akurasi system untuk mengenali suara yang di inputkan. Pada sub bab terakhir adalah pengujian voice command untuk mendapatkan hasil yang maksimal. Berdasarkan uraian diatas maka susunan sub bab yang akan dibahas pada Bab III ini adalah sebagai berikut : •
Lingkungan implementasi
•
Installisasi paket ILVC
•
Pengoperasian ILVC
•
Pengujian recognition
•
Pembuatan sistem dengan HTK tools
•
Definisi kata atau word
•
Decoding dan analisis
3.1 Lingkungan Implementasi Pada penelitian ini, implementasi dari sistem pengendalian yang akan dibangun didukung oleh berbagai elemen pendukung, seperti perangkat keras dan
62
perangkat lunak. Pada sub bab berikut akan dijelaskan spesifikasi kebutuhan sistem konversi teks menjadi suara untuk bahsa Indonesia.
3.1.2 Spesifikasi Perangkat Keras (Hardware) Perangkat keras yang digunakan dalam penelitian ini sebagai lingkungan implementasi sistem voice command untuk bahasa Indonesia. Perangkat keras cukup berpengaruh terhadap implementasi sistem pengendalian yang akan dibuat. Berikut spesifikasi kebutuhan sistem dimana sistem dibuat dan dijalankan. Kelengkapan dan spesifikasi komputer yang digunakan penulis adalah: 1. Prosesor Intel Pentium IV 2,66 GHz 2. DDR RAM 128 Mb 3. Harddisk sebesar 40 GB 4. Microphone 5. Speaker
3.1.2 Spesifikasi Perangkat Lunak Implementasi sistem voice command untuk bahasa Indonesia dapat berjalan pada komputer yang memiliki spesifikasi perangkat lunak sebagai berikut : 1. Sistem Operasi : Linux 2. Aplikasi
: HTK Tools
63
1.
Instalisasi paket ILVC
Untuk
paket
aplikasi
ILVC
ini
di
Silakan
bergabung
ke
milist
[email protected] untuk mendownload file-filenya . Proses penginstallan digunakan secara manual. Berikut adalah langkah-langkah penginstallan : 1. Buat direktori spechRecognition di /usr/local # mkdir /usr/local/ ptik-bppt 2. Ektraks file ilvc.tar.bz2 ke /usr/local/ ptik-bppt # cp ilvc.tar.bz2 /usr/local/ ptik-bppt # cd /usr/local/ ptik-bppt # tar xvfj ilvc.tar.bz2 3. buat simbolik link file-file speechcmd, julius dan mkdfa.pl ke /usr/local/bin # ln -sf /usr/local/ ptik-bppt /ilvc/speechcmd /usr/local/bin # ln -sf /usr/local/ ptik-bppt /ilvc/julius.bin /usr/local/bin/julius # ln -sf /usr/local/ ptik-bppt /ilvc/mkdfa.pl /usr/local/bin Sebelum menjalankan aplikasi speechcmd, yang perlu dilakukan adalah mengcopy file “ILVC.cfg” dari /usr/local/ ptik-bppt /ilvc ke home direktori. Contoh: 5. $ cp /usr/local/spechRecognition /ilvc/ILVC.cfg /home/nhia
3.3 Pengoperasian ILVC Sebelum menjalankan aplikasi voice commnad langkah pertama yang harus dilakukan yaitu menginstall beberapa software terlebih dahulu, di antaranya HTK
64
Tools 3.4.1 dapat di download http://htk.eng.cam.ac.uk/download. Pastikan sound driver sudah terinstall pada Personal Computer (PC) dan pastikan juga Anda sudah mengaktifkan “Assistive Technology Preferences” yang terdapat pada menu “System” dan mematikan fungsi 3D Desktop.
Gambar 3.1 Aktivasi “Assistive Technology Preferrences”
Gambar 3.2 Pilih “Enable assistive technologies” Setelah itu untuk PC diperlukan speaker untuk alat output suara. Untuk notebook pada umumnya sudah terinstall sound driver dan sudah tersedia speaker. Setelah kebutuhan perangkat keras dan perangkat lunak terpenuhi, kini saatnya menjalankan aplikasi speechcmd dari terminal.
65
Gambar 3.3 Menjalankan speechcmd dari terminal Hasilnya akan lihat proses aktivasi dan posisi standby ILVC.
Gambar 3.4 Aktivasi dan posisi standby ILVC Saat pertama kali dijalankan tampilan yang muncul pertama kali yaitu tampilan Menu Input suara dapat dilihat pada gambar 3.5 di bawah ini :
Gambar 3.5 Tampilan menu input voice Jika aplikasi telah keluar maka terdapat state yang bertuliskan “idle”. State ini merupakan respon sistem ketika tidak ada suara yang masuk dalam beberapa waktu, pada bagian ini sistem akan melakukan aktifitas lain. Disamping state idle terdapat label dimana jika pengguna aplikasi bersuara maka suara tersebut akan dikenali dan outputnya dapat berupa tulisan yang tentunya suara tersebut telah direkam. Dan aplikasi ini siap dijalankan.
66
3.4 Pengujian Pada pengujian tugas akhir ini jenis ujian yang dilakukan adalah dengan melakukan uji pengenalan terhadap suara yang telah di jadikan kedalam file dan kemudian suara ini dianalisis setelah itu baru kemudian dilakukan operasi dengan menggunakan HTK. Tahap ini bertujuan dalam rangka penyempurnaan untuk mendapatkan sesuatu yang harus dikembangkan.
3.4.1 Pengujian menu utama dan system pengenalan Pada pengujian ini peneliti menguji pengenalan suara yang dapat dideteksi oleh system. Menu input suara ini dapat langsung diproses dengan menggunakan microphone secara langsung. Hanya dengan mengucapkan perintah kata “tulis (“text yang ingin dituliskan”)”. Dibawah ini merupakan hasil input speech menjadi teks :
Gambar 3.6 Tampilan menu input speect to text
67
3.4.2 Pengujian Analisis Speech Pada pengujian ini bertujuan untuk mengetahui hasil dari proses analisis yang dilakukan HTK tool dimana konfigurasinya telah ditentukan sesuai dengan kebutuhan. Untuk melakukan proses ini menurut refrensi yang ada telah dipersiapkan data suara yang terdiri dari 50 pria dan 50 wanita dengan total kata yang digunakan aalah 351 buah dengan masing masing labelnya. Untuk melakukan analisis ini tool yang digunakan adalah mencakup dalam HCopy, HCompv, Dan HRest. Kemudian file-file ini akan dianalisis dengan konfigurasi sebagai berikut:
# t= 0.1 ms SOURCEKIND = WAVEFORM SOURCERATE = 625 # Source Sampling 16 khz TARGETKIND = MFCC_0_D_N_Z TARGETRATE=100000.0 # frame interval is 10 [msec] WINDOWSIZE=250000.0 # window length is 25 [msec] USEHAMMING=T # use HAMMING window PREEMCOEF=0.97 # apply highpass filtering NUMCHANS=24 # of filterbank for MFCC is 24 NUMCEPS=12 # parameters for MFCC presentation ZMEANSOURCE=T LOPASS=300 HIPASS=3400 ENORMALISE=F ESCALE=1.0 TRACE=0 RAWENERGY=F SOURCEFORMAT=NOHEAD TARGETFORMAT=HTK
Dari konfigurasi diatas menentukan alur operasi yang akan dilakukan pada file, kemudian proses analisis menjadi vektor kuantisasi dapat dijalankan dengan perintah berikut
68
HCopy -A -D -T 1 -C analysis.conf
Dimana sample rate yang akan dipakai adalah 16 Khz dan dengan encoding MFCC_0_D_N_Z HTK Configuration Module/Tool # # # # # # # # # # # # # # # # # #
Parameters[18] Parameter TARGETFORMAT SOURCEFORMAT RAWENERGY TRACE ESCALE ENORMALISE HIPASS LOPASS ZMEANSOURCE NUMCEPS NUMCHANS PREEMCOEF USEHAMMING WINDOWSIZE TARGETRATE TARGETKIND SOURCERATE SOURCEKIND
Value HTK NOHEAD FALSE 0 1.000000 FALSE 3400 300 TRUE 12 24 0.970000 TRUE 250000.000000 100000.000000 MFCC_E_D_Z 625 WAVEFORM
Dapat dilihat pada output dari proses yang dijalankan program diatas, bahwa file wav di translasi menjadi vektor mfcc dengan menggunakan konfigurasi pada file analysys.conf, dimana seluruh proses yang kerjakan oleh proses analisis urutannya ditentukan dengan analysis.conf ini. Seperti yang telah dijelaskan pada bab yang sebelumnya.
File wav akan mengalami beberapa proses sebelum dihasilkan output berupa file mfcc yang sebenarnya adalah parameter yang didapat dari file wav yang telah mengalami pemprosesan. Sehingga akan memudahkan untuk pengambilan fiturnya. Ada beberapa hal yang harus diperhatikan dalam penganalisisan file wav ini, karena akan sangat berpengaruh pada hasil output dan prototipe yang akan dihasilkan dan
69
juga apabila konfigurasi yang diterapkan pada saat analisis tidak cocok dengan jenis file yang dianalisis maka akan menyebabkan error pada saat analisis. Hal-hal yang harus diperhatikan dalam konfigurasi adalah: 5. Secara default format yang akan dihasilkan pada saat analisis adalah file dengan format HTK. Sehingga target format di sini adalah digunakan untuk menentukan target format yang akan di outputkan oleh analisis. Dimana hal ini dikarenakan HTK tool hanya dapet memformat file dengan format HTK 6. HTK tool mendukung secara default akan mengoperasi file yang berformat HTK, untuk menentukan file tersebut file dengan format HTK atau bukan maka HTK tool akan membaca header dari file. Disini ditentukan bahwa SOURCEFORMART adalah NOHEAD, ini menunjukkan bahwa file yang dioperasi bukanlah file yang berformat HTK. Dalam hal ini adalah file WAV. 7. SOURCEKIND disini akan memberitahu HTK tool mengenai jenis file yang akan di analisis, bedanya dengan header file adalah pada header file berhubungan dengan ekstensi file yang akan dioperasi, namun dalam source kind ini lebih mengacu pada sebutan file tersebut. 8. TARGETKIND adalah parameter yang sangat penting dimana di sini akan sangat menentukan hasil output file dan parameter file yang akan diperoleh, karena di sini jenis targetkind akan menentukan panjang vector yang akan dihasilkan, kemudian Normalisasi energi, rata-rata energi dan Zero mean source. Disini semuanya diwakili dengan target encoding MFCC_E_D_Z dengan panjang vector adalah 26.
70
9. SOURCERATE disini adalah jumlah data tiap detiknya, hal ini karena sampling yang digunakan adalah 16 KHz. Apabila diinginkan hasil output model dapat dipakai dalam aplikasi speech recognition secara realtime maka konfigurasi diatas harus dipenuhi. Namun konfigurasi untuk jenis file dapat disesuaikan dengan file yang tersedia.
3.5 Pembangunan sistem pada aplikasi ILVC Untuk tahap pembangunan sistem ini dibutuhkan data suara yang telah direkam dan dilabelkan agar suara dapat dikenali dan dapat diterima oleh sistem komputer . Tahap selanjutnya pembuatan model akustik. Tahap ini dilakukan untuk mendapatkan ketepatan pengenalan kata yang digunakan dan menganalisis file suara yang telah dimasukkan yang terdapat pada database suara.
1. 3.5.1 Installasi HTK Setelah sistem operasi dan konfigurasi untuk multimedianya selesai diinstall, kemudian langkah selanjutnya adalah menginstall paket HTK yang dapat didownload di situs resminya pada http://htk.eng.cam.ac.uk/download.html dan kemudian ekstrak file hasil download kedalam directory /usr/src untuk dilakukan kompilasi disini yang digunakan adalah HTK versi 3.4 terbaru. Perintah yang digunakan untuk ekstrak adalah :
# tar xzvf alsa-sourf HTK-3.4.tar.gz
71
Setelah proses ekstraksi selesai langkah selanjutnya adalah mengkompilasi source yang telah diekstrak, pertama pindahkan terlebih dahulu kedalam direktori tempat
file source HTK diekstrak kemudian jalankan perintah configure, utuk
menjalankan perintah tersebut harus dilakukan sebagai root. # ./configure # make all # make install
Pada proses ini file executable di simpan dalam direktori /bin, dan langsung dapat digunakan atau dieksekusi untuk proses analisis.
3.5.2 Persiapan data suara Menurut jurnal IGOS Linux Voice Command pada tahap awal pembuatan aplikasi ini dibutuhkan persiapan data suara. Data suara terdiri dari 50 pria dan 50 wanita dengan masing-masing mengucapkan 367 kalimat. Total kata yang digunakan pada aplikasi ini adalah 351. Data suara kemudian melalui proses pemeriksaan dan pencocokkan kata untuk mendapatkan ketepatan, kecepatan dan kekuatan pelafalan. Proses perekaman ini dapat digunakan tool bawaan HTK yaitu HSLab. HSLab adalah tool yang disertakan HTK yang digunakan sbeagai tool standard yang digunakan untuk merekam
dengan file output yang sesuai dengan format yang
dibutuhkan oleh HTK tool. Untuk merekam menggunakan HSLAB maka pertama harus diketahui parameter yang terdapat pada HSLAB, untuk mengetahui parameter
72
apa saja yang terdapat pada HSLAB, gunakan perintah HSLab tanpa parameter maka akan ditampilkan help dari HSLab dalam paremeter ini ditampilkan argumenargumen yang dapat diberikan pada HSLab. HSLab dapat merekam waveform sekaligus melabelinya., untuk memulai merekam sinyal speech sekaligue melabelinya dapat digunakan perintah sebagai berikut : # HSLab
HSLab akan menampilkan Graphical User Interface yang dapat digunakan untuk merekam sinyal dan sekaligus melabelinya, GUI yang ditampilkan adalah sebagai berikut
Gambar 3.7 GUI dari HSLab Proses perekaman dapat dimulai dengan mengklik “Rec” dan ucapkan kata yang hendak direkam kemudian tekan “Stop” untuk mengakhiri. Proses ini secara otomatis akan membuat sebuah file buffer selain file utama. File buffer ini bernama
73
satu1_1.wav setelah perekaman selesai kemudian langkan selanjutnya adalah melabeli file yang telah direkam. Proses pelabelan kata dapat dilakukan dengan tool yang sama. Untuk melabeli kata yang telah direkam adalah 6. Tekan “Mark” kemudian pilih bagian yang akan dilabeli, setelah bagian yang ingin dilabeli terpilih ditandai dengan bagian yang di pilih tersebut di blok hitam, lalu klik “Labelas” 7. Ketikkan nama label untuk sinyal yang direkam. Misal kata yang direkam adalah “satu“ maka labelnya adalah “satu” dengan diawali dan di akhiri dengan dengan short silence (sil), kemudian dengan catatan disini yang dibuat adalah database untuk untuk word recognition apabila yang dibuat adalah database untuk fonem recognition maka perlu ditambahkan datialagi yaitu short pause (sp).hal yang perlu diperhatikan dalam melabeli kata adalah antara label satu dengan label yang lain tidak boleh saling overlapping namun diperbolehkan untuk memberi sedikit jarak antara label satu dengan label yang lain.
74
Gambar 3.8 Label Speech Apabila proses melabeli sudah selesai maka langkah selanjutnya adalah sebagai berikut: c. Menyimpan hasil label dan file wav yang telah direkam yaitu dengan mengklik “save” kemudian pada direktori yang sama dengan direktori file akan dibuat file yang bernama satu1_1.lab file ini adalah file label yang telah dibuat tadi.kemudian yang teakhir adalah tekan “Quit” untuk mengakhiri dan melakukan perekaman kata yang selanjutnya.File yang didapat dari hadil perekaman ini kemudian di-rename dengan nama seperti yang telah disebutkan pada paragraf sebelumnya, tujuannya adalah untuk mempermudah dalam mengopreasi file tersebut nantinya. Berikut ini adalah contoh isi dari label file : 4171250 9229375 sil 9229375 15043750 satu 15043750 20430625 sil
75
d. Angka-angka diatas menunjukkan panjang daerah yang dilabeli, dimana yang ditulis adalah awal dari label dan akir dari label, file label ini dapat di ubah secara manual dengan text editor.
3.5.3 Pembuatan model akustik Pada model akustik data suara diproses untuk menghasilkan model akustik bahasa indonesia menggunakan HTK 3.4. Pemodelan akustik diperlukan karena speech recognition tidak dapat memproses data yang waveform yang di inputkan secara langsung dari mikropon, sehingga data harus dirubah kedalam bentuk yang lebih kompak dan efisien, tool yang digunakan untuk mengubah atau menganalisis file speech ini adalah tool yang terdapat dalam paket HTK yang disebut dengan HCopy. Adapun Langkah awal syntax penggunaan HCopy untuk menganalisis speech adalah seperti dibawah :
# HCopy –A –D –T 1 –C analysis.conf
Analysis.conf ini merupakan file pengaturan parameter untuk mendapatkan sinyal akustik. Berikut adalah isi dari file analysis.conf :
# t= 0.1 ms SOURCEKIND = WAVEFORM SOURCERATE = 625 # Source Sampling 16 khz TARGETKIND = _D(MFCC_0_D) TARGETRATE=100000.0 # frame interval is 10 [msec] WINDOWSIZE=250000.0 # window length is 25 [msec] USEHAMMING=T # use HAMMING window PREEMCOEF=0.97 # apply highpass filtering NUMCHANS=24 # of filterbank for MFCC is 24 NUMCEPS=12 # parameters for MFCC presentation ZMEANSOURCE=T LOPASS=300 HIPASS=3400 ENORMALISE=F ESCALE=1.0 TRACE=0 RAWENERGY=F 76 SOURCEFORMAT=NOHEAD TARGETFORMAT=HTK
Keterangan : SOURCEKIND adalah parameter yang menunjukkan jenis file input yang akan di analisis, disini yang akan di analisis adalah file wav sehingga yang isi parameter untuk SOURCEKIND adalah WAVEFORM. SOURCERATE
adalah menunjukkan waktu yang dibutuhkan untuk sampling, dimana
frekwensi sampling sari sinyal input adalah 16 Khz
sehingga: t=
TARGETKIND
1 = 0,0000625 m sec 16000
adalah jenis koefisien yang dipakai adalah MFCC Energy Delta dan Zero
TARGETRATE menunjukkan jeda antara frame pada saat sampling. WINDOWSIZE adalah lebar proses windowing sinyal. USEHAMMING adalah jenis windowing yang digunakan adalah hamming. PREMCOEF
adalah koefisien untuk pre emphasis
NUMCHANS
adalah jumlah channel untuk filterbank
NUMCEPS
adalah banyaknya parameter untuk cepstral.
ZMEANSOURCE menunjukkan Zero Mean Source LOPASS,HIGHPASS adalah frekwensi cuttoff untuk filter di sini bernilai 300 dan 3400 dimana range frekwensi tersebut adalah range frekwensi untuk suara manusia.
77
ENORMALISE normalisasi untuk energi ESCALE
energi skalarisasi
TRACE
menelusuri memory, untuk mengetahui besar memory yang digunakan.
RAWENERGY=F perhitungan level dilakukan setelah dilakukan windowing dan preephasis. SOURCEFORMAT=NOHEAD digunakan untuk menentukan format file input adalah bukan HTK format, atau tidak terdapat HTK header. TARGETFORMAT=HTK , menetukan format dari file output yaitu format HTK.
Parameter yang digunakan pada HTK Tools adalah MFCC yang merupakan jenis koefisien yang dipakai. MFCC adalah vektor yang diperoleh dari analisis sinyal suara dengan metode Mel Frequency Cepstrum. MFCC yang dipakai dengan zero cepstral coefficient _0 dan delta coefficient _D(MFFC_0_D) 25 Cepstral. Alasan digunakannya parameter _D(MFCC_0_D) untuk menyesuaikan pendengaran manusia dengan sistem. Untuk jenis ektraksi fitur encoding diJulius, parameter yang dipakai adalah dengan type MFCC_0_D_N_Z dengan penambahan absolute log energy suppresed _N dan zero cepstral mean subtrace _Z dengan total 25 parameter agar dapat digunakan untuk perintah secara realtime. Maksud penambahan absolute log energy suppresed _N dan zero cepstral mean subtrace _Z adalah penambahan penekanan suara agar didapatkan frekuensi sesuai dengan yang diterima oleh sistem dengan pengurangan rata-rata pengaruh noise shipping dan post filtering agar lebih stabil
78
pada sistem. Langkah kedua menconvert file wav ke dalam bentuk mfcc dengan perintah : Hcopy namafile.wav namafile.mfcc
3.5.4 HMM Definition Sebelum data yang diperoleh dapat digunakan untuk perintah feature yang telah diperoleh harus dimodelkan terlebih dahulu ke dalam Hidden Markof Model (HMM). Karena SR engine hanya dapat memproses data yang telah direprentasikan. Untuk dapat membuat model dari bahasa yang akan dipakai kedalam SR engine maka dibutuhkan master model yang akan di isi dengan parameter dari feature yang telah diperoleh. Master ini disebut dengan prototype yang ditempatkan pada folder model/proto prototipe ini berisi tentang matrix banyaknya state, kemudian panjang vektor, dan jenis encoding yang digunakan dalam ekstraksi fitur dan juga sebuah matrix diagonal yang menggambarkan distribusi gaussian.
Prototipe digunakan sebagai wadah untuk menampung hasil analisis, dimana susunan prototipe ini disesuaiken dengan jenis encoding, step, dan Vector size dari tipe encoding.
79
Contoh prototype dapat dilihat pada contoh dibawah : State definition HMM name
Pada daftar diatas dapat kita lihat sebuah prototipe dengan jenis encoding E_D_N_Z dengan jumlah state adalah 5 dengan vecsize adalah 25 dimana di sini sesuai dengan jenis encoding yang dipakai. Buat prototipe untuk setiap kata yang terdapat dalam label dalam hal ini adalah label pada file .lab sehingga didapatkan file sebanyak kata itu pula, yang perlu diperhatikan adalah untuk kata yang sama hanya diperlukan satu prototipe, walaupun dalam file label yang berbeda.
Setelah didapatkan prototipe dari seluruh label maka seluruh prototipe ini kemudian disimpan dalam direktori untuk kemudian dilakukan proses training untuk mendapatkan parameter dari MFCC.
80
2. 3.5.5 HMM Training Proses training dimaksudkan agar sistem yang dibuat dapat mengenali suatu input yang berfariasi, untuk dapat mencapainya maka sistem perlu dikenalkan terlebih dahulu dengan apa yang akan dikenali nantinya hal inilah yang disebut dengan training. Untuk memulai proses training dengan menggunakan HTK maka terdapat beberapa langkah yang perlu diperlukan, langkah tersebut dapat dapat dilihat dalam diagram.
Gambar 3.9 Proses training pada HTK Penjelasan gambar Proses training pada HTK diatas adalah :
3.5.5.1 Inisialisasi Sebelum dimulai proses traning. HMM parameter perlu diinisialisasikan dengan data yang akan ditraining dengan tujuan pada saat training system dapat melakukan presesi pada saat pengambilan parameter dengan cepat. Pada proses traning ini HTK mempunyai dua algoritma yang berbeda yaitu Hinit dan HcompV untuk dapat mengetahui perbedaanya dapat dilihat pada bab sebelumnya. Berikut ini adalah gambar bagan inisialisasi dengan Hinit:
81
Gambar 3.10 Inisialisasi HMM 4.
HInit
Hinit menginisialisasi HMM berdasarkan durasi waktu yang berdasarkan Algoritma Viterbi.Untuk menginisialisasi HMM dengan Hinit dapat digunakan perintah dibawah ini # HInit -A -D –T 1 -S trainlist.txt -M model/hmm0 \ -H model/proto/PrototipeFile -l label –L FolderLabel NamaHmm Dimana masing-masing paremater dapat diterangkan sebagai berikut: NamaHmm adalah nama dari HMM yang akan di inisialisasi, pada sistem ini nama dari HMM yang akan di inisialisasi adalah sesuai dengan kata yang ada pada labelfile PrototipeFile adalah prototipe dari masing-masing kata yang terdapat pada label. Trainlist.txt adalah daftar seluruh file yang terdapat dalam direktori /ILVC /train/mfcc DirektoriLabel adalah tempat dimana file label (.lab) disimpan pada sistem ini file tersebut di simpan dalam direktori /ILVC/train/lab Label
menunjukan nama lebel yang akan di training, dalam hal ini label harus sesuai kata yang terdapat dalam file label.
82
Model/hmm0 adalah direktori yang digunakan untuk menyipan file output hasil inisialisasi.
Proses diatas harus dilakukan untuk masing-masing model yang akan dibuat dalam hal ini adalah banyaknya kata atau fonem yang terdapat pada semua label file. Pada proses ini HMM file output dari Hinit mempunyai nama yang sama dengan nama prototipe.
b. HCompV HcompV digunakan untuk melakukan algortima dengan
operasi “flat
initialisation” dari sebuah model. Setiap state dari HMM menghasilkan mean dan vektor varian yang sama, maksudya adalah setiap file mfcc dihitung secara global. Perintah digunakan adalah: # HcompV –T 1yang -S trainlist.txt -M model/hmm0flat -H model/proto/PrototipeFile -l label –L FolderLabel NamaHmm Keterangan mengacu pada keterangan untuk Hinit. model/hmm0flat : output direktori untuk HCompV nama direktori dibedakan dengan Hinit agar hasil output tidak saling menimpa.
HcompV tidak digunakan pada sistem ini karena inisialisasi telah dilakukan oleh HInit, proses
yang membutuhkan HcompV pada proses ini adalah untuk
menghasilkan file yang disebut dengan vFloors, vFloors adalah global variance yang
83
didapat dari seluruh variance vektor yang dikalikan dengan sebuah faktor, vFloors ini dihasilkan selama proses inisialisasi model. Faktor yang digunakan untuk mengalikan pada vFloors ini juga dapat di set dengan mamberikan argumen –f. Berikut ini adalah contoh vFloors yang dihasilkan selama proses inisialisasi: ~v varFloor1 25 5.140713e-01 1.873684e-01 3.225037e-01 2.088984e-01 1.866914e-01 1.669776e-01 3.353958e-01 1.772541e-01 2.371772e-01 1.702521e-01 2.007007e-01 2.486046e-01 1.779870e-02 1.232511e-02 1.400547e-02 1.338244e-02 1.303514e-02 1.416202e-02 1.897111e-02 1.488360e-02 1.543967e-02 1.511660e-02 1.429769e-02 1.323496e-02 2.637478e-03 Nilai yang disimpan pada varFloor1 disebut dengan Variance floor macro dapat digunakan nanti pada pada saat estimasi vektor varian. Pada sistem ini HcompV akan digunakan sekali untuk menghasilkan sebuah file vFloors yang akan digunakan untuk melakukan reestimasi pada proses training. Output tempat untuk vFloors di sini adalah pada direktori yang sama dengan output dari inisialisasi yaitu pada folder /model/hmm0flat.
3.4.5.2 Training Setelah semua data diinisialisasikan maka proses selanjutnya adalah proses training, dimana proses training ini adalah mereestimasi nilai parameter yang paling optimal yang diperoleh dari proses inisialisasi, proses reestimasi ini melibatkan macro yang terdapat pada Floors sebagai acuan, parameter yang di reestimasi adalah
84
probabilitas transisi serta mean dan varian dari vector dari setiap observasi. Proses trainning di lakukan secara berulang-ulang sampai didapatkan parameter model yang paling optimal. Training di sini dilakukan dengan tool HRest, berikut adalah bagan alur HRest adalah sebagai berikut :
Gambar 3.11 Training HMM
Untuk memulai training model lakukan perintah dibawah ini : # HRest -A -D -T 1 -S trainlist.txt -M model/hmmi -H vFloors \ -H model/hmmi-1/hmmfile -l masing-masing label -L DriektoriLabel Dari perintah diatas, parameternya
d
Dapat dijelaskan sebagai berikut : NamaHmm adalah nama dari HMM yang akan di inisialisasi, pada sistem ini nama dari HMM yang akan di inisialisasi adalah sesuai dengan kata yang ada pada labelfile Model/hmmi adalah model input yang akan di reestimasi dengan vFloors
85
vFloors
adalah macro yang dipakai pada proses reestimasi dimana macro ini adalah file yang dihasilkan selama proses inisialisasi.
Model/hmmi-1/hmmfile adalah file output dari proses reestimasi yang dijalankan, nama file dari hmfile disini adalah sesuai dengan nama model yang di reestimasi. Trainlist.txt adalah daftar seluruh file yang terdapat dalam direktori /data/train/mfcc DirektoriLabel adalah tempat dimana file label (.lab) disimpan pada sistem ini file tersebut di simpan dalam direktori /ILVC/train/lab Label
menunjukan nama lebel yang akan di training, dalam hal ini label harus sesuai kata yang terdapat dalam file label.
Isi file trainlist.txt /home/isno/julius/kataku/satu_0.wav /home/isno/julius/buattrain/satu_0.mfcc /home/isno/julius/kataku/satu_1.wav /home/isno/julius/buattrain/satu_1.mfcc
Proses reestimasi ini harus diulangi beberapa kali pada setiap model, gunanya adalah untuk proses training HMM. pada sistem ini banyaknya reestimasi dilakukan sebanyak 2 kali. Pada proses reestimasi ini juga dihasilkan suatu file yang bernama macro, macro inilah yang digunakan untuk proses reestimasi HMM yang selanjutnya. Terdapat sedikit perbedaan antara file macro dengan file vFloors, yaitu file macro di sini adalah file vFloors yang telah diberi header mengenai jenis encoding yang
86
dipakai dan juga ukuran vector dari HMM yang direestimasi. Sehingga dalam pembuatan file macro ini perlu diperhatikan strukturnya untuk menghindari kesalahan pada saat reestimasi. Setelah proses reestimasi dihasilkan beberapa model yang disimpan dalam direktori hmm0, hmm0flat, hmm1, hmm2, hmm3 dimana
masing-masing
direktori ini telah kita buat sebelumnya dalam direktori model. Sampai disini proses training untuk model yang akan dipakai dalam speech recgonition telah selesai dilakukan.
3.6 Definisi kata atau word Pendefinisian word atau kata pada pembuatan aplikasi ini dapat dibagi menjadi 2 langkah yaitu 1. Pembuatan Grammar dan Dictionary 2. Network
3.6.1 Pembuatan Grammar dan Dictionary Sebuah speech recognition dapat melakukan perintah terhadap input, baik dari microphone ataupun dari file, untuk dapat melakukan semua itu sebuah Speech recognition memerlukan aturan-aturan mengenai kata-kata yang dapat dikenali, aturan ini juga akan membatasi jumlah kata yang dapat dikenali oleh speech recognition. Aturan-aturan ini biasa di sebut dengan grammar, dalam pembuatan grammar pertama yang kita tentukan adalah kelompok kata yang akan kita buat menjadi grammar tersebut, dimana kelompok kata ini nantinya sangat membantu
87
dalam pembuatan grammar dengan jumlah kata yang lebih banyak sehingga grammar yang kita buat tidak terlalu panjang. Sebuah grammar dilengkapi dengan file dictionary, file dictionary ini digunakan untuk menyimpan semua kata yang terdapat dalam dictionary. Dalam dictionary didefinisikan nama kata dan cara pengucapanya berdasarkan pada languge model. Pada HTK grammar ditulis dengan format file teks yang ditulis dengan aturan penulisan yang telah ditentukan. Sebuah grammar yang dibuat untuk system speech recognition pada dasarnya untuk mengatur susunan kata yang didapat dari system tujuan adalah agar hasil perintah yang didapat dapat dipahami maksudnya. Untuk melakukan itu maka perlu didefinisikan tentang cara daftar kata dan cara pengucapnya masing-masing kata tersebut. Aturan-aturan tersebut biasa disebut dictionary. Dictionary dibuat berdasarkan kata yang terdapat pada model yang telah dibuat sebelumnya.
3.6.2 Network Grammar yang telah dihasilkan perlu decompile dengan tool HTK yang di sebut dengan HParse, tujuanya adalah untuk mengenali semua kemungkinan yang mungkin dibentuk oleh grammar dalam hal ini adalah banyaknya kombinasi kata yang dibentuk oleh recognizer, kemungkinan inilah yang disebut dengan Network. Dari HParse ini nantinya akan menghasilkan sebuah file yang berisi parameter kemungkinan yang berisi kombinasi kata-kata yang dihasilkan. Syntak penulisan untuk HParse adalah : HParse -A -D -T 1 gram.txt net.slf
88
Perintah diatas akan Mem-parsing grammar dan dicari kemungkinan yang mungkin dibentuk oleh recognizer dan direpresentasikan dengan parameterparameter. Sampai pada tahap ini speech recognition yang dibuat telah siap untuk diuji.
3.7 Decoding dan analisis Pada sistem speech recognition,decoding yang digunakan adalah Julius versi 4.0.2 untuk mengetahui keakuratan sistem. Untuk mengintegrasikan language model yang telah kita buat dengan sistem ada beberapa file yang perlu disesuaikan dengan sistem yang telah ada. Sebelum language model yang dibuat di integrasikan dengan sistem maka terlebih dahulu harus diuji dengan julius dan memastikan apakah language model yang telah dibuat dapat berjalan dengan baik. Julius dapat dijalankan dengan memberikan argumen-argumen yang dibutuhakan untuk menjalankan speech recognition. Masing-masing argumen tersebut dapat kita berikan satu per satu atupun dengan mengumpulkan seluruh argumen dalam satu file dan memanggil file tersebut. Disini diasumsikan seluruh argumen yang akan dipakai dalam pengujian. Seluruh konfigurasi yanag akan dipakai talah di jadikan satu dalam paket julius. File konfigurasi ini bernama julian.jconf file tersebut menyimpan argumen-argumen yang dapat ditambahkan pada saat menjalankan julius. Beberapa argumen yang dipakai dalam julius adalah seprti yang ditunjukkan pada file konfigurasi berikut:
89
# Copyright (c) 1991-2002 Kyoto University # Copyright (c) 2000-2002 NAIST # All rights reserved # -d julius/ILVC/ilvc.dfa -silhead 0 -siltail 1 -v Julius/ILVC/ilvc.dict -input mic
Penjelasan : Opsi –d menunjukkan dfa file dari dictionari -silhead menunjukkan nomor urutan silence awal pada dfa file -siltail menunjukkan nomor urut silence akhir pada dfa file -v menunjukkan jenis dictionary yang akan dipakai -input mic menunjukkan input yang akan digunakan dapat menggunaka mfcfile mic dan sebagainya Setelah mensetting dalam konfigurasi yang dibutuhkan untuk menjalankan julian maka selajutnya adalah menjalankan julian dengan konfigurasi yang telah dibuat dengan menjalankan perintah berikut: Julian –C julian.jconf
Maka julian akan memulai memproses dictionary serta accoustic model yang dimasukkan kedalam konfigurasi dimana prosenya akan berjalan sebagai berikut:
90
# HVite Configuration Variables for DIRECT AUDIO INPUT # # Parameters of the input signal SOURCERATE = 625.0 # = 16 kHz SOURCEKIND = HAUDIO SOURCEFORMAT = HTK # Conversion parameters of the input signal TARGETKIND = MFCC_0_D_A # Identifier of the coefficients to use WINDOWSIZE = 250000.0 # = 25 ms = length of a time frame TARGETRATE = 100000.0 # = 10 ms = frame periodicity NUMCEPS = 12 # Number of MFCC coeffs (here from c1 to c12) USEHAMMING = T # Use of Hamming function for windowing frames PREEMCOEF = 0.97 # Pre-emphasis coefficient NUMCHANS = 26 # Number of filterbank channels CEPLIFTER = 22 # Length of cepstral liftering # Defines the signal to be used for remote control AUDIOSIG = -1 # Negative value = key-press control # The End
Agar input dari microphone dapat dikenali maka konfigurasi untuk proses pengenalan ini harus berisi konfigurasi yang digunakan pada saat proses Accoustical analisis untuk taining data. Struktur directory pada julius pada dasarnya terdiri dari dua buah file yaitu file .grammar dan file .voca. disini dibuat file dengan nama ilvc.voca dan ilvc.grammar yang perlu diperhatikan dalam pembuatan dictionary ini adalah nama file dari dua buah file ini haruslah sama karena akan digunakan untuk proses generate nantinya. Setelah dibuat kedua file tersebut sekanjutnya adalah mengenerate dictionary dengan menjalankan perintah $ mkdfa.pl julius $ generate julius
91
Kedua proses tersebut akan menghasilkan file dengan ekstensi .term .dfa dan .dict, masing-masing file ini menyimpan keterangan mengenai konfigurasi dan variasi yang dapat dihasilkan oleh dictionary. Setelah itu yang perlu disiapkan adalah konfigurasi yang akan dipakai, file ini disimpan dengan nama julian.jconf file tersebut berisi konfigurasi yang akan mengatur julius, dimana isi konfigurasi tersebut adalah sebagai berikut -dfa digunakan untuk menentukan file dfa yang digunakan -v digunakan untuk menentukan file directory yang digunakan untuk proses recognisi -h hmm def yang dipakai untuk acuan -input untuk menentukan proses input dari sistem Kemudian untuk menjalankan speech recognition maka jalankan perintah berikut: $julius –C julian.jconf
92
BAB IV EVALUASI TERHADAP USAHA PENGEMBANGAN ILVC
Bagian ini membahas tentang evaluasi terhadap usaha yang telah dilakukan peneliti berdasarkan kesalahan-kesalahan yang muncul pada saat pengujian. Berikut ini adalah evaluasi terhadap usaha pengembangan ILVC : 3. Langkah-langkah yang dilakukan pada penelitian ini antara lain mempelajari, menggunakan (testing), dan lalu mengubah vocabulary yang telah ada dalam aplikasi ILVC. Untuk mengetahui apakah vocabulary yang telah diubah dapat digunakan oleh sistem, maka selanjutnya penulis mencoba memberikan beberapa kata baru ke sistem. Hasil pengujian yang diperoleh adalah sistem tidak dapat mengenali kata-kata baru tersebut.
93
Berdasarkan pesan kesalahan (error message) yang diberikan sistem, diketahui bahwa harus dilakukan perubahan pada file dfa. Berikut ini adalah pesan kesalahan yang diberikan oleh sistem :
Gambar 4.1 Gambar pesan kesalahan 4. Berdasarkan referensi yang diperoleh dari http://htk.eng.cam.ac.uk/ untuk menambahkan
atau
mengembangkan
aplikasi
speech
recognition
diperlukan file perekaman dan training untuk proses pengenalan suara. Dan untuk memperbaiki kesalahan file dfa, penulis mencoba membuat file perekaman
dan pelabelan terhadap kata-kata baru yang akan
ditambahkan.. Langkah untuk mendapatkan solusi dari masalah diatas adalah dengan cara perekaman ulang dengan tahapan sebagai berikut : 1.
Langkah awal yang telah dilakukan adalah tahap pembuatan file perekaman
94
dan pelebelan dengan menggunakan HTK tool yaitu HSLab dengan perintah sebagai berikut :
# HSLab
Untuk tahap ini belum didapatkan masalah yang mendetail. 2. Tahap selanjutnya membuat file konfigurasi untuk menganalisis speech dengan perintah dibawah ini :
# HCopy –A –D –T 1 –C analysis.conf
berikut merupakan tampilan dari hasil analisis.conf (file konfigurasi):
Gambar 4.2 File Konfigurasi
95
3.
Setelah pembuatan file konfigurasi adalah pembuatan sinyal akustik
dengan mengubah file wav menjadi file file mfcc.
Perubahan file dapat menggunakan htk tools dengan perintah sebagai berikut : #HSLAB src tgt
dengan perintah diatas maka akan terbentuk file mfcc. Setelah menghasilkan file mfcc. Langkah selanjutnya adalah file mfcc digabung ke dalam file dfa pada aplikasi ILVC.
4. Setelah file dfa diubah, selanjutnya penulis melakukan pengujian ulang dengan memasukkan kata-kata baru ke sistem. Namun, kata-kata baru tersebut masih tidak dapat dikenali oleh sistem seperti yang diperlihatkan pada tampilan berikut ini :
Gambar 4.3 Error message vocabulary Berdasarkan tampilan di atas, dapat disimpulkan bahwa data rekaman dari kata yang digunakan pada proses pengujian, tidak terdapat di dalam file
96
rekaman ILVC. Hal ini ditunjukkan oleh teks yang berada di dalam lingkaran merah pada tampilan di atas. Dikarenakan penulis tidak memiliki file rekaman
ILVC,
maka proses pengujian
pengembangan ILVC hanya dapat dilakukan sampai tahap ini.
97
terhadap
BAB V PENUTUP
5.1 Kesimpulan Berdasarkan pembahasan dan pemaparan pada bab-bab sebelumnya, maka didapatkan kesimpulan pada laporan penelitian ini bahwa untuk membuat voice recognition system ini dibangun dengan sangat kompleks. Oleh karena itu, pengembangan yang dilakukan terhadap ILVC, memerlukan seluruh komponenkomponen
pengembangannya.
Berdasarkan
hasil
pengujian
pada
usaha
pengembangan ILVC dalam penelitian ini, diketahui bahwa dalam penelitian ini kata-kata baru yang ditambahkan kedalam vocabulary tidak dikenali oleh aplikasi ILVC. Hal ini dikarenakan tidak adanya salah satu komponen pembangun ILVC, yakni file rekaman suara.
98
5.2 Saran Dari hasil evaluasi dan kesimpulan yang ada pada bab sebelumnya masih terdapat beberapa kelemahan khususnya pada proses penggabungan hasil file accoustic dan proses training. Kelemahan tersebut dikarenakan tidak adanya file awal perekaman pada paket tersebut. Saran yang diberikan untuk pengembangan paket ILVC lebih lanjut adalah sebagai berikut : 5. Sebelum mengembangkan sistem ILVC, sebaiknya mendapatkan seluruh komponen yang berhubungan dengan pembangunan sistem telah diperoleh. Karena ini merupakan inti yang harus dianalisis dan dicoba karena sangat berpengaruh pada proses training. 6. Ketika merekam suara, usahakan ruangan dalam keadaan tenang (kedap suara), karena akan mempengaruhi kualitas pengenalan suara jika terlalu banyak noise (gangguan). 7. Pada saat menggabungkan hasil accoustic, yang harus diperhatikan adalah konfigurasi untuk menentukan path dari dictionary dari kata yang kita buat tersebut. Misalnya file hasil convert mfcc dan file wav diletakkan pada satu folder yang sama. 8. Untuk pembuatan file konfigurasi harus diperhatikan ketika pengambilan parameter karena disini jenis encoding sangat menentukan terutama untuk menentukan panjang vector yang digunakan.
99
100
LAMPIRAN I
Tabel Perintah pada HCopy Option
Function
Default
-a i
Use level i labels
1
-e t
End copy at time t
EOF
-i mlf
Save labels to mlf s
null
-I dir
Output target label files to dir
-m t
Set margin of t around x/n segs
-n i[j]
Etract i’th [to j’th] label
-s t
Start copy at time to
0
-t n
Set trace line width to n
70
-x s [n]
Extract [n’th occ of] label s
off
-A
Print command line arguments
off
-C cf
Set config file to cf
-D
Display configuration variables
-F fmt
Set source data format to fmt
as config
-G fmt
Set source label format to fmt
As config
-I mlf
Load master label file mlf
-L dir
Set input label (or net) dir
-O
Set target data format to fmt
As config
-P
Set target data format to fmt
As config
-S f
Set script file to f
-T N
Set trace flags to N
-V
Print version information
off
-X ext
Set input label (or net)file ext
lab
curent 0 off
default off
current
None 0
107
LAMPIRAN 2
Tabel Perintah pada HInit Option
Function
Default
-e f
Set convergence factor epsilon
-i N
Set max iterations to N
20
-l s
Set segment label to s
none
-m N
Set min segments needed
-n
Update hmm (suppress uniform seg)
off
-o fn
Store new hmm def in fn (name only)
outDir/srcfn
-u mvwt
Update m)eans v)ars w)ghts t)rans
outDir/srcfn
-v f
Set minimum variance to f
-w f
Set mix wt/disc prob floor to f
0.0
-A
Print command line arguments
off
-B
Save HMMs/transforms as binary
off
-C cf
Set config file to cf
-D
Display configuration variables
-F
fmt Set source data format to fmt
as config
-G
fmt Set source label format to fmt
as config
-H
mmf Load HMM macro file mmf
-I mlf
Load master label file mlf
-L dir
Set input label (or net) dir
Current
-M dir
Dir to write HMM macro files
current
-S f
Set script file to f
-T N
Set trace flags to N
-V
Print version information
off
-X
ext
lab
Set input label (or net) file ext
1.0E-4
3
1.0E-2
default off
none 0
108
Lampiran III
109
Table Tools Specific Configuration Variables
110
111