35 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.
▸ Baca selengkapnya: perintah g01 adalah perintah yang berarti
(2)Inisialisasi Sistem (Load Database)
Konverter A/D (Sound Card)
Update Database
Unit Matching System
Lexical Decoding
Syntactic Analysis Kontrol Aplikasi
Windows Tambah, hapus,
ubah perintah Restart aplikasi
Input suara (analog)
Input suara (digital) Filtrasi Suara (FFT dan LPC) Input suara
(digital)
Input matriks suku kata
Output teks perintah suku kata
Output teks perintah kata
Input matriks kata
Output teks perintah frase
3.1.1 State Transition Diagram
Adapun Diagram Transisi dari sistem secara keseluruhan adalah sebagai berikut:
Gambar 3.1 Diagram Transisi Sistem
3.1.2 Flowchart Diagram
Sistem secara keseluruhan memiliki diagram alir sebagai berikut:
Input Suara
A/D Konverter
Ekstraksi Fitur
Sistem Inferensi HMM
Output Teks Ada Tidak
Ya
Kontrol Aplikasi Windows
End Start
Inisialisasi Sistem (Load Database)
Input Perintah
Tambah / Hapus Perintah
Masukkan Perintah Lain
Tidak Ya
Gambar 3.2 Diagram Alir Sistem
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.
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.
Gambar 3.3 Kata “explorer” pada sampling frekuensi 11025Hz Dan waktu 1 detik
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
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,
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.4 Bentuk Gelombang Sinusoidal
Gambar 3.5 Pulsa dalam domain frekuensi
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.
Hasil perkalian x(t) dengan w(t) disajikan pada gambar dibawah ini.
Gambar 3.6 Kondisi sinyal untuk waktu T tertentu
-T/2 T/2
Gambar 3.7 Fungsi sinyal x(t)w(t)
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:
Jika dilakukan konvolusi terhadap sinyal X(w), dihasilkan sinyal berbentuk berikut:
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)
Gambar 3.8 Frekuensi fungsi window
Gambar 3.9 Frekuensi dari gelombang sinyal yang terbatas
dengan rangkaian pulsa c(t). Fungsi pulsa c(t) disajikan pada gambar di bawah ini:
Frekuensi tanggapan (frekuensi respon) dari pulsa c(t) disajikan pada gambar dibawah ini:
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:
Gambar 3.10 Fungsi Pulsa c(t)
Gambar 3.11 Respon sinyal pulsa dalam domain frekuensi
- 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
Gambar 3.12 Sinyal tersampling x(t)w(t)c(t)
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.13 Rangkaian sinyal DFT
Gambar 3.14 Perbandingan jumlah sampling dengan kompleksitas perhitungan
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.
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’.
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
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.
Absolute Path ke program Nama perintah
Cancel Add
Browse…
Gambar 3.16 Rancangan Layar Menu Tambah Perintah
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.
Gambar 3.17 Rancangan Layar Menu Hapus Perintah Nama perintah yang
tersedia (contoh) 1. Borgchat 2. My Document 3. Power dvd 4. Paint 5.
Cancel Delete
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 Absolut Path
6. Borgchat C:\Program Files\Borgchat\Borgchat.exe 7. My Document C:\My Document\
8. Power dvd C:\Program Files\Cyberlink PowerDVD\...
9. Paint C:\Windows\System32\Paint
10. …… ………
Cancel Update
Gambar 3.18 Rancangan Layar Menu Ubah Perintah
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
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
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