BAB 3 PERANCANGAN SISTEM
3.1 Gambaran Umum Sistem Voice Command pada demonstrasinya merupakan aplikasi pengenalan suara yang akan menjalankan perintah-perintah yang dikenali. Sistem ini dibuat untuk menampung perintah suara dan mengenali suara untuk menjalankan aplikasi atau perintah yang dipanggil. Dengan antarmuka ini, semisal pengguna memberikan input berupa perintah suara melalui mikrofon seperti “Shutdown”, maka komputer pun akan mengakhiri sesi sistem operasinya.
Voice Command mengikuti aplikasi Windows pada umumnya, menyediakan perintah yang pengguna dapat katakan. Dasarnya, untuk menggunakan perintah suara, seorang pengguna membentuk suatu pola perintah suara yang berhubungan dengan perintah-perintah yang dapat dijalankan dengan menggunakan keyboard atau alat input lainnya. Ketika pengguna mengatakan suatu perintah ke alat input suara seperti mikrofon, maka inference machine, yang merupakan jaringan Hidden Markov Model, akan mengolah input suara ke bentuk teks. Jika inference machine berhasil mengenalinya, maka akan dibandingkan dengan perintah teks dan menjalankan perintah.
35
36
3.1.1
State Transition Diagram Adapun Diagram Transisi dari sistem secara keseluruhan adalah sebagai berikut: Inisialisasi Sistem (Load Database)
Input suara (analog)
Konverter A/D (Sound Card)
Input suara (digital)
Filtrasi Suara (FFT dan LPC)
Input suara (digital) Restart aplikasi
Tambah, hapus, ubah perintah Unit Matching System Update Database
Output teks perintah suku kata Input matriks suku kata
Lexical Decoding Output teks perintah kata
Input matriks kata
Kontrol Aplikasi Windows
Syntactic Analysis Output teks perintah frase
Gambar 3.1 Diagram Transisi Sistem
37
3.1.2
Flowchart Diagram Sistem secara keseluruhan memiliki diagram alir sebagai berikut:
Start Ya
Inisialisasi Sistem (Load Database) Kontrol Aplikasi Windows
Input Suara
Input Perintah A/D Konverter
Tambah / Hapus Perintah Tidak
Ekstraksi Fitur
Masukkan Perintah Lain
Ya
Tidak
End Sistem Inferensi HMM
Output Teks Ada
Gambar 3.2 Diagram Alir Sistem
38
3.2 Proses Akusisi Data Langkah awal dari pengembangan pengenalan suara adalah proses akusisi data. Data suara dibutuhkan baik untuk pelatihan maupun untuk pengujian. Pada sistem yang dibuat, suara yang direkam untuk pelatihan merupakan tiap-tiap suku kata yang memiliki kemungkinan untuk dipanggil oleh pengguna. Untuk merekam data suara tersebut diperlukan suatu modul program yang akan mengaturnya. Pada saat pengujian data, modul lainnya seperti modul antarmuka akan diperlukan untuk mengukur banyaknya perintah yang berhasil dikenali.
3.2.1
Pengambilan Suara Pada proses pengambilan suara, suara yang diambil merupakan suara dalam bentuk suku kata, dimana durasi pengambilan suara pun tidak terlalu lama, yaitu hanya sekitar 0.3 milidetik. Suara diambil dengan merekam suara input pada kondisi suara normal (tidak dalam keadaan sakit) dan dengan kecepatan standar (satu suku kata berdurasi 0.3 milidetik). Gambar 3.1 merupakan grafik pengambilan suara kata “explorer” dengan frekuensi sampling 11025 Hz, dan waktu pengambilan 1 detik.
39
Gambar 3.3 Kata “explorer” pada sampling frekuensi 11025Hz Dan waktu 1 detik
3.2.2
Pengaplikasian Linear Predictive Coding dan Fast Fourier Transform 3.2.2.1
Linear Predictive Coding (LPC) Linear Predictive Coding (LPC) merupakan teknik analisis suara yang mempunyai kinerja cukup baik. Menyediakan keakuratan terhadap perkiraan parameter-parameter suara, dan relatif efisien untuk perhitungan kuantitatif10). LPC dimulai dengan asumsi sinyal suara dihasilkan oleh dengungan tabung. Celah suara (jeda diantara vocal cord) menghasilkan dengungan, yang dikarakteristikkan dengan intensitas (kekerasan) dan frekuensi (puncak). Saluran suara (tenggorokan dan mulut) membentuk tabung, yang dikarakteristikkan dengan resonansi, yang disebut formants.
40 LPC menganalisis sinyal suara dengan memperkirakan formants, menghapus efeknya dari sinyal suara, dan memperkirakan intensitas dan frekuensi dengungan yang tersisa. Proses penghapusan formants disebut inverse filtering, dan disinyal yang tersisa disebut residue. Formants dan Residue dapat disimpan atau ditranmisi ke tempat yang lain. LPC menghasilkan sinyal suara dengan membalikkan proses, menggunakan residue untuk membuat sumber sinyal, menggunakan formants untuk membuat filter (mewakili tabung), dan menjalankan sumbernya melalui filter, menghasilkan suara. Karena sinyal suara beragam tiap waktu, proses ini dilakukan pada jarak yang pendek dari sinyal suara, yang disebut frames. Biasanya 30 sampai 50 frames per detik memberikan suara yang bagus.
3.2.2.2
Fast Fourier Transform (FFT) Discrete Fourier Transform (DFT), biasanya juga disebut sebagai finite Fourier Transform, merupakan transformasi Fourier yang banyak digunakan dalam pemrosesan sinyal dan bidang-bidang terkait seperti menganalisa frekuensi pada sinyal yang sudah disampling, menyelesaikan persamaan diferensial parsial, dan melakukan operasi konvolusi13). Sedangkan Fast Fourier Transform (FFT) merupakan suatu algoritma DFT yang dapat mengurangi sejumlah perhitungan yang diperlukan untuk N nilai, dari 2N2 menjadi 2N log N, dimana log
merupakan
logaritma
berbasis-214).
Jika
fungsi
yang
41 ditransformasikan tidak berhubungan dengan frekuensi sampling, tanggapan FFT berbentuk seperti fungsi sinus. Jika kita memiliki sebuah sinyal x(t) = A sin(wt) dengan -~ < t < +~ seperti ditunjukkan pada gambar dibawah ini,
Gambar 3.4 Bentuk Gelombang Sinusoidal
Selanjutnya dari continuous Fourier Transform akan digunakan untuk menemukan frekuensi batas yang dikehendaki. Dalam domain frekuensi ini diperoleh dua pulsa sieperti disajikan pada gambar dibawah ini.
Gambar 3.5 Pulsa dalam domain frekuensi
42
Kondisi ini benar hanya jika terdapat sinyal yang tanpa batas, tetapi tidak pernah dijumpai gelombang sinyal sinus yang tanpa batas. Kenyataan yang ada adalah sinyal akan ada untuk waktu T tertentu. Oleh karena itu dapat diperoleh dengan mengalikan sinyal tanpa batas dengan fungsi window w(t) sehingga yang ada hanya pada waktu T, seperti disajikan pada gambar dibawah ini.
Gambar 3.6 Kondisi sinyal untuk waktu T tertentu Hasil perkalian x(t) dengan w(t) disajikan pada gambar dibawah ini.
-T/2
T/2
Gambar 3.7 Fungsi sinyal x(t)w(t)
43 Perkalian x(t) dan w(t) sebagai sinyal waktu akan menghasilkan frekuensi baru yang merupakan gulungan frekuensi x(t) dan w(t). Hasil frekuensi dari fungsi window seperti disajikan pada gambar dibawah ini:
Gambar 3.8 Frekuensi fungsi window
Jika dilakukan konvolusi terhadap sinyal X(w), dihasilkan sinyal berbentuk berikut:
Gambar 3.9 Frekuensi dari gelombang sinyal yang terbatas Uraian diatas adalah perkiraan dari frekuensi yang ideal, sementara
kondisi
demikian
jarang
dijumpai.
Cara
untuk
memperbaiki resolusi yaitu dengan menaikkan panjang data dan panjang fungsi window. Sejauh ini hanya berhubungan dengan waktu yang kontinyu, untuk mengetahui apa yang terjadi dengan sinyal diskrit diperlukan langkah-langkah sebagai berikut: -
Pertama, Sampling atau pencuplikan data; hal ini dilakukan dengan cara mengalikan sinyal dalam domain waktu x(t)
44 dengan rangkaian pulsa c(t). Fungsi pulsa c(t) disajikan pada gambar di bawah ini:
Gambar 3.10 Fungsi Pulsa c(t)
Frekuensi tanggapan (frekuensi respon) dari pulsa c(t) disajikan pada gambar dibawah ini:
Gambar 3.11 Respon sinyal pulsa dalam domain frekuensi Sampling sinyal sinus terbatas memberikan sinyal x(t)*w(t)*c(t) yang memberikan frekuensi tanggapan X(w)*W(w)*C(w), seperti disajikan pada gambar berikut ini:
45
Gambar 3.12 Sinyal tersampling x(t)w(t)c(t)
-
Kedua, mengalikan dengan rangkaian pulsa. Jika dilihat frekuensi tanggapan dari sinyal sampel, frekuensi sampling sudah periodik. Namun masih ada masalah, yaitu frekuensi tanggapan masih kontinyu walaupun sinyal waktu asli diskrit. Oleh karena itu diperlukan frekuensi tanggapan untuk penggunaan komputer. Hal ini diperoleh dengan cara mengalikan frekuensi domain dengan rangkaian pulsa, seperti disajikan pada Gambar 3.9.
-
Ketiga, mengalikan dengan frekuensi domain, dimana diperlukan konvolusi rangkaian waktu diskrit dengan rangkaian pulsa pada domain waktu. Apa yang terjadi, rangkaian sampel menjadi periodik panjang dari rangkaian input. Jika input sinyal berupa input seperti Gambar 3.12, maka rangkaian sampel diskrit untuk DFT disajikan pada Gambar 3.13
46
Gambar 3.13 Rangkaian sinyal DFT
Pada Discrete Fourier Transform terlihat sangat kompleks dan sangat sulit untuk dilakukan karena meliputi banyak penjumlahan dan perkalian. Sebagai contoh untuk sinyal tersampling yang sederhana, akan diperlukan 49 perkalian kompleks dan 56 penjumlahan. Dengan DFT. Jika memiliki 1024 sample, maka diperlukan kompleksitas penjumlahan dan perkalian yang sangat tinggi, sehingga jumlah perhitungan memerlukan peningkatan yang tidak tekendali lagi.
Gambar 3.14 Perbandingan jumlah sampling dengan kompleksitas perhitungan
47
Untuk mengurangi kesulitan tersebut, digunakan Fast Fourier Transform yang merupakan metode sederhana pada perhitungan, sehingga bisa lebih cepat untuk nilai besar N, dengan N adalah jumlah sample. Ide dasar dari FFT adalah menggunkan metode divide and conquer, yakni dengan cara memecahkan N nilai sampel menjadi dua (N/2) rangkaian. Hal ini membuat rangkaian permasalahan lebih sederhana dan lebih mudah dicari solusinya dibandingkan dengan satu permasalahan yang besar. DFT memerlukan (N-1)2 kompleksitas perkalian dan N(N-1) kompleksitas penjumlahan. Dengan metode FFT suatu permasalahan dipecah menjadi dua kelompok nilai sampel yang hanya memerlukan satu perkalian dan dua pertambahan serta kombinasi ulang yang nilainya minimal.
48 3.3 Proses Pengujian Dalam sistem yang dibuat, proses pengujian menggunakan matriks data dari suku-suku kata yang terdapat di database sebelumnya. Setiap matriks suku kata yang ada diberi label sesuai dengan suku katanya. Setiap input perintah yang diucapkan oleh pengguna kemudian dipisahkan berdasarkan waktu yang telah ditentukan. Pemisahan perintah menjadi suku kata-suku kata didasarkan pada waktu rata-rata pengguna untuk mengucapkan satu suku kata (kurang lebih 0.3 detik per suku kata). Setiap suku kata terpisah dari input tersebut menjadi input matriks dalam HMM. HMM bekerja dengan cara mencari probabilitas tertinggi dari tiap-tiap grammar (kumpulan perintah yang telah disimpan sebelumnya) dengan kumpulan matriks input dari pengguna. Probabilitas tertinggi dari grammar
yang ditemukan
merupakan hasil kata yang telah dikenali oleh sistem.
Setiap input suara masuk kedalam sistem, dilakukan filtrasi suara dengan menggunakan LPC dan FFT. Setelah mendapatkan spektral suara yang sudah difilter, spektral suara tersebut kemudian dipecah menjadi matriks-matriks suku kata berdasarkan waktu. Semisal terdapat lima grammar, yaitu ‘explorer’, ‘powerpoint’, ‘access’, ‘word’, dan ‘excel’. Saat pengguna memasukkan perintah berupa ‘explorer’, maka kata input tersebut akan dipecah menjadi 3 suku kata berdasarkan waktu untuk kemudian dijadikan input oleh HMM. Setiap grammar yang ada kemudian dicari probabilitas tertinggi dengan input kata ‘explorer’ tersebut, sehingga ditemukan probabilitas tertinggi, yang pada hal ini merupakan grammar ‘explorer’.
49
3.4 Rancangan Layar 3.4.1 Rancangan Layar Menu Utama Rancangan layar menu utama memiliki elemen-elemen sebagai berikut: -
Toolbar navigasi untuk akses ke file, edit dan help.
-
List Box nama perintah yang berisi perintah-perintah yang telah ada dalam database.
-
Textfield hypothesis yang berisi pengenalan parsial atas input perintah dari pengguna.
-
Textfield recognition yang berisi pengenalan atas grammar yang ada dimana merupakan salah satu dari perintah-perintah pada List Box kalimat-kalimat perintah yang dapat dipanggil.
Navigasi ( File, Edit, Help) Kalimat-kalimat perintah yang dapat dipanggil 1. Word 2. Excel 3. Powerpoint 4. Access 5. dll
Hypothesis: Recognition: Status bar Gambar 3.15 Rancangan Layar Menu Utama
50
3.4.2 Rancangan Layar Menu Add Command (Tambah Perintah) Rancangan layar menu tambah perintah memiliki elemen-elemen sebagai berikut: -
Textfield Nama perintah yang berisi perintah baru yang akan ditambahkan.
-
Textfield path ke program yang berisi alamat absolut program yang akan dijalankan bila nama perintah diatas disebut oleh pengguna.
-
Button browse yang jika diklik akan membuka dialog buka file (open file dialogue), untuk menunjuk file yang akan dipanggil.
-
Button add untuk menyimpan nama perintah beserta alamat absolutnya ke database.
-
Button cancel untuk menggagalkan penambahan perintah dan kembali ke menu awal.
Nama perintah
Absolute Path ke program
Browse…
Add
Cancel
Gambar 3.16 Rancangan Layar Menu Tambah Perintah
51
3.4.3 Rancangan Layar Menu Delete Command (Hapus Perintah) Rancangan layar hapus perintah memiliki elemen-elemen sebagai berikut: -
List Box berisi perintah-perintah yang telah tersedia di database.
-
Button delete yang berfungsi untuk menghapus perintah yang dipilih dari database grammar.
-
Button cancel yang berfungsi untuk menggagalkan operasi hapus perintah dan kembali ke layar utama.
Nama perintah yang tersedia (contoh) 1. Borgchat 2. My Document 3. Power dvd 4. Paint 5.
Delete
Cancel
Gambar 3.17 Rancangan Layar Menu Hapus Perintah
52
3.4.4 Rancangan Layar Menu Update Command (Ubah Perintah) Rancangan layar menu ubah perintah memiliki elemen-elemen sebagai berikut: -
Table dengan dua kolom yang berisi nama perintah dan alamat absolutnya dalam komputer pengguna.
-
Button update yang berfungsi mengubah tiap-tiap sel dalam tabel perintah.
-
Button cancel yang berfungsi menggagalkan operasi ubah perintah dan kembali ke layar utama.
Nama Perintah 6. Borgchat 7. My Document 8. Power dvd 9. Paint 10. ……
Absolut Path C:\Program Files\Borgchat\Borgchat.exe C:\My Document\ C:\Program Files\Cyberlink PowerDVD\... C:\Windows\System32\Paint ………
Update
Cancel
Gambar 3.18 Rancangan Layar Menu Ubah Perintah
53
3.5 Spesifikasi Modul 3.5.1
Spesifikasi Modul Inisialisasi Mulai Buka koneksi ke database Ulangi hingga akhir record Ambil data name dan path Masukkan ke grammar Tutup koneksi ke database Selesai
3.5.2
Spesifikasi Modul Menu Utama Mulai Masukkan perintah suara Pengenalan suara dengan engine speechlib Hasil pada hypothesis Jika dikenali dengan grammar yang ada maka Hasil pada recognition Jika tidak Recognition kosong Jika hypothesis sama dengan recognition maka Ubah label info dengan path program yang hendak dijalankan Jalankan program yang bersangkutan
54 Jika tidak Label info tidak berubah Program tidak dijalankan Selesai
3.5.3
Spesifikasi Modul Menu Tambah Perintah Mulai Masukkan nama perintah Masukkan path program Buka koneksi ke database Tambahkan data (nama, path) Tutup koneksi ke database Selesai
3.5.4
Spesifikasi Modul Menu Hapus Perintah Mulai Memilih data yang hendak dihapus Buka koneksi database Delete data yang dipilih dari database Tutup koneksi database Selesai
55
3.5.5
Spesifikasi Modul Menu Ubah Perintah Mulai Memilih perintah dan atau path yang akan diupdate Ganti nama atau pathnya Buka koneksi database Update database dengan data yang baru Tutup koneksi database Selesai