1
PENDAHULUAN Latar Belakang Mengenali sebuah kata atau kalimat bukanlah hal yang sulit dilakukan bagi manusia. Apalagi kata tersebut merupakan ‘Bahasa Utama’ yang digunakannya sehari-hari. Berbagai logat ataupun cara bicara tidak menjadi halangan untuk mengenali kata tersebut. Namun pekerjaan ini bukanlah hal yang mudah dilakukan oleh sebuah sistem komputer. Berbagai sistem pengenalan suara atau yang dapat disebut juga Automatic Speech Recognition (ASR) telah banyak dikembangkan di berbagai negara dengan berbagai bahasa. Berikut merupakan beberapa sistem pengenalan suara yang telah dikembangkan: • Spoken Dialoque System, sistem yang dapat melakukan dialog singkat guna mendapatkan informasi tertentu. Seperti pada seorang customer servive, pengguna hanya perlu menjawab ‘ya’ atau ‘tidak’ untuk mendapatkan informasi tertentu. • Speed Dialing System, sistem yang dapat mengenali sebuah nama atau ID seseorang dan mencarinya dalam buku telepon untuk segera dihubungi. Pengguna tidak perlu mencari nomor telepon seseorang, biasanya dalam telepon selular, untuk dapat menghubunginya, namun cukup dengan menyebutkan nama atau ID orang yang akan dihubungi dan system secara otomatis menghubunginya. • Speech to Text Translation System, sistem yang secara otomatis mengetikkan kata-kata yang diucapkan pengguna. Sistem-sistem tersebut memang telah banyak dikembangkan, namun kata yang dikenali ialah kata berbahasa Inggris. Oleh sebab itu, pengembangan sistem pengenalan kata berbahasa Indonesia perlu dilakukan mengingat bahasa Indonesia memiliki pola dan cara pengucapan yang berbeda dengan bahasa Inggris. Agar sistem komputer dapat mengenali sebuah kata, maka dibutuhkan representasi yang baik terhadap sinyal-sinyal yang masuk berikut perubahan frekuensinya terhadap rentang waktu tertentu. Hal ini tidak mudah dilakukan mengingat Indonesia merupakan sebuah bangsa yang sangat besar dengan berbagai ragam suku dan logat atau cara bicara. Kesulitan lainnya ialah sistem tidak dapat membedakan sinyal suara yang masuk dengan sinyal noise. Tujuan Penelitian Tujuan penelitian ini ialah menerapkan Hidden Markov Model (HMM) menggunakan algoritme Baum-welch untuk mengenali sebuah kata.
Ruang Lingkup Adapun ruang lingkup dari penelitian ini antara lain : 1. Kata-kata yang digunakan ialah kata berbahasa Indonesia. 2. Penelitian ini terbatas pada pengenalan kata (Isolated word), bukan pengenalan kalimat. 3. Kata yang digunakan sebanyak 40 kata yang dibedakan ke dalam 2 suku kata dan 3 suku kata. 4. Kata yang dikenali harus berasal dari pembicara yang telah terlatih (Dependent speaker).
TINJAUAN PUSTAKA Definisi Speech Recognition Pengenalan suara atau speech recognition adalah proses konversi sebuah sinyal akustik, yang berasal dari mikropon atau telepon, menjadi satu atau sekumpulan kata (Zue, et al., 2007). Pengenalan suara merupakan masalah besar dan sulit untuk dipecahkan, karena terdapat faktorfaktor tak tetap yang terkait dengan sebuah sinyal. Beberapa faktor tak tetap tersebut di antaranya ialah: • Phonetic variabilities, atau yang biasa kita kenal sebagai homofon, dimana terdapat 2 kata atau lebih yang memiliki penulisan berbeda namun pengucapannya sama, contohnya: bang dengan bank. • Acoustic variabilities, yang dapat terjadi karena perbedaan lingkungan tempat berbicara. • Within-speaker variabilities, yang dapat terjadi karena kondisi fisik dari pembicara yang dapat disebabkan oleh emosi yang sedang dirasakan. • Across-speaker variabilities, hal ini dapat terjadi karena perbedaan logat atau cara pengucapan seseorang. Sinyal suara sendiri merupakan gelombang yang tercipta dari tekanan udara yang berasal dari paru-paru yang berjalan melewati lintasan suara menuju mulut dan rongga hidung, sehingga memiliki frekuensi yang berbeda (Al-Akaidi, 2007). Sistem pengenalan suara dapat dikelompokkan menurut beberapa parameter, di antaranya : • Cara bicara: Isolated word atau Continous speech, • Gaya bicara: Read speech atau Spontaneous speech, • Pembicara: speaker dependent atau speaker independent, • Kosakata: kecil (< 20 kata) hingga besar (>20.000 kata) • Model Bahasa: Finite state hingga context sensitive, • Keberadaan Noise: high (>30 dB) hingga low (10 dB).
2
Isolated Word Recognition Misalkan kita mempunyai W kata yang harus dikenali menggunakan HMM, maka setiap kata akan direpresentasikan sebagai rangkaian vektor suara atau observasi O O , O , … , OT . O sendiri merupakan speech vector yang diobservasi saat waktu t. Permasalahan Isolated Word Recognition dapat diselesaikan oleh fungsi berikut : arg maxPW |O. W merupakan kata ke-i dalam W. Probabilitas PW |O dapat dihitung menggunakan aturan Bayes, PW |O PO|W PW . PO
Dalam HMM yang berbasis pada speech recognition, diasumsikan bahwa speech vektor yang diobservasi berhubungan dengan setiap potongan kata (subword) yang dibangkitkan oleh Markov Model, seperti Gambar 1.
Gambar 1 Isolated Word Processing (Jurafsky,2007). Secara garis besar, untuk melakukan pengenalan kata dibutuhkan langkah-langkah berikut: 1. untuk setiap word dalam W, kita harus membuat sebuah HMM-nya. 2. untuk setiap kata yang tidak dikenal dan harus dilakukan proses pengujian pada model-model HMM yang ada. Setiap model HMM mewakili 1kata dan HMM yang memberikan nilai probabilitas PW |O terbesarlah yang dipilih sebagai kata yang disebutkan, seperti yang terlihat pada Lampiran 1. Ekstraksi Fitur Suara Sinyal suara berubah secara perlahan seiring dengan berjalannya waktu, atau biasa disebut sebagai quasi-stationary. Sepanjang itu, sinyal yang dihasilkan akan berubah karakteristiknya sesuai dengan kata yang disebutkan. Short-time spectral analysis ialah cara umum yang digunakan untuk mengkarakterisasi sinyal. Terdapat banyak cara untuk merepresentasikan sinyal yang diucapkan seseorang, antara lain dengan Linear
Prediction Coding (LPC), Mel-Frequency Cepstrum Coefficients (MFCC), dll. MFCC merupakan cara yang paling sering digunakan, karena dianggap cukup baik dalam merepresentasikan sinyal. Cara kerja MFCC yang didasarkan pada perbedaan frekuensi yang dapat ditangkap oleh telinga manusia menyebabkannya mampu merepresentasikan sinyal suara sebagaimana manusia mempersesikannya. Untuk lebih jelasnya proses MFCC dapat dilihat pada Lampiran 2. Input suara biasanya direkam dalam sampling rate di atas 10000 Hz (Do, 1994). Frekuensi ini diambil untuk meminimalisasi aliasing effect saat konversi sinyal analog ke sinyal digital. Sinyal sampel ini dapat menangkap semua frekuensi hingga 5 kHz, yang mana pada range tersebut sebagian besar energi suara dihasilkan oleh manusia. Berikut ialah proses MFCC : • Frame Blocking • Dalam proses ini, sinyal suara dibagi ke dalam beberapa frame. Saat melakukan Frame Blocking, mungkin saja terjadi overlap antar frame, ini ditujukan agar tidak ada sedikitpun sinyal yang hilang (deletion). • Windowing Proses selanjutnya ialah windowing setiap frame untuk meminimalisasi ketidakberlanjutan sinyal antara akhir frame satu ke awal frame selanjutnya. • Fast Fourier Transform (FFT) FFT merupakan Fast algorithm dari Discrete Fourier Transform (DFT) yang berguna untuk konversi setiap frame dari domain waktu menjadi domain frekuensi, sebagaimana didefinisikan sebagai berikut : ∑() *+
!"#$%& '
, k = 0,1,2,…, N-1
hasil rangkaian {Xk} direpresentasikan sebagai berikut : • frekuensi positif 0≤ f , . yang merepresentasikan nilai 0 ≤ n ≤ )-.
(
/ 1,
merepresentasikan nilai 1 1 ≤ n ≤ N-1. Disini, Fs berarti frequency sampling. Hasil akhir dari langkah ini seringkali ditujukan sebagai spectrum atau periodogram. • Mel-Frekuency Wrapping Penerimaan suara pada setiap orang tidak dapat diukur dalam skala linear, hal ini disebabkan setiap orang memiliki kemampuan memberikan persepsi yang berbeda terhadap suara. Untuk setiap nada dengan frekuensi aktual, f, diukur dalam Hz, sebuah subjective pitch diukur dalam sebuah skala yang disebut skala ‘mel’. Nama ‘mel’ sendiri didapat dari kata melodi.
• frekuensi
negatif
(
<
f
<
0
yang
3
Skala ‘mel-frequency’ ialah sebuah linear frequency spacing di bawah 1000 Hz dan sebuah logarithmic spacing di atas 1000 Hz.
Gambar 2 Mel-spaced filterbank (Ganchev, 2005).
• Cepstrum Langkah terakhir ialah mengonversi mel spectrum kembali ke waktu. Hasil akhirnya disebut MFCC. Representasi cepstral dari spectrum suara menyediakan sebuah representasi yang cukup baik dari ciri-ciri local spectral sebuah sinyal untuk analisis frame. Karena koefisien mel spectrum adalah sebuah nilai riil sehingga kita dapat mengkonversinya ke dalam domain waktu menggunakan Discrete Cosine Transform (DCT). Selanjutnya kita dapat menghitung MFCC sebagai 2̃ , sebagai B 8 2̃ ∑: *4log 7 9 2;< => ?@ / A : C , dimana 78+ , @ 0, 2, . . G / 1 dan > 0, 1, … , G / 1. Hidden Markov Model Lima belas tahun belakangan ini, HMM sangat dominan dalam menangani masalah-masalah pengenalan. Salah satu alasan mengapa HMM digunakan dalam speech recognition ialah karena sebuah sinyal suara dapat dilihat sebagai sebuah potongan sinyal stasioner atau sinyal stasioner waktu pendek. Apabila diasumsikan bahwa range waktu yang digunakan ialah 10 milisecond (ms), sinyal suara dapat didekati sebagai sebuah proses stasioner. Terdapat banyak keuntungan dalam pemakaian algoritme Baum-Welch. Menurut Shu, Et al. (2003), ” Many studies have found that for HMM-based systems, the Baum-Welch trained acoustic models outperform Viterbi-trained ones. In Viterbi training, each observation is assigned to a single acoustic model. For most based speech systems, the acoustic models are trained with HMM Baum-Welch training, in which each observation is assigned to a set of acoustic models with weights. However, it is not known whether Baum-Welch training of segment-based acoustic models would improve recognition performance. Baum-Welch training is slower since it has to iterate through the training data a number of times”. Algoritme Viterbi digunakan dalam pelatihan HMM menggunakan segmented K-Means.
Pelatihan tersebut dapat berlangsung lebih cepat dibanding pelatihan menggunakan algoritme Baum-welch, karena algoritme Baum-welch harus melakukan iterasi terhadap seluruh data uji secara berulang-ulang. Di sisi lain, algoritme Baum-welch tidak memerlukan nilai inisialisasi tertentu agar dapat menghasilkan model HMM yang optimal, dimana model tersebut mampu memaksimalkan nilai probabilitas yang dihasilkan. Pada algoritme segmented K-means nilai inisialisasi yang cukup dekat dengan nilai optimalnya sangat diperlukan guna menghasilkan HMM yang lebih baik, namun seringkali inisialisasi tersebut sulit didapatkan. Alasan lain mengapa HMM cukup populer ialah karena ia dapat dilatih secara otomatis, sederhana dan memungkinkan dalam proses perhitungan. Berikut ini ialah simbol-simbol yang dipakai dalam HMM (Dugad dan Desai, 1996): N = jumlah state yang dibutuhkan dalam HMM, M = jumlah simbol yang terobservasi / terlihat, T = panjang rangkaian observasi, contohnya : jumlah simbol yang terobservasi 1,2,...,N merupakan jumlah N yang dibutuhkan, H I , . . . , IJ kumpulan simbol yang diobservasi, dalam kasus ini ialah word yang akan diobservasi K L , . . . , LJ , π = {πM } , πM Pi i, probabilitas ia berada pada state i saat pertama kali percobaan, O PQR dimana PQR SQTU R|QT Q, probabilitas ia berada pada state j saat waktu t+1 apabila diketahui bahwa ia berada pada state i saat waktu t, dimana V WX @ WX @ SvZ saat t | i j , probabilitas simbol yang diobservasi ialah vk saat waktu t bila diketahui bahwa ia berada di state j, O = merupakan yang diobservasi saat waktu t, Keseluruhan HMM dapat diwakili dengan persamaan simbol berikut : ^ O, V, _. HMM terbagi ke dalam 3 masalah utama, yaitu : 1. Evaluation, dalam hal ini HMM harus mampu menghitung probabilitas PW |O secara efisien menurut observasi yang diberikan. Algoritme yang dapat digunakan ialah algoritme Forward atau Algoritme Backward. 2. Decoding, HMM harus mampu memilih rangkaian state yang optimal menurut observasi yang diberikan. Algoritme yang dapat digunakan ialah algoritme Viterbi. 3. Learning, permasalahan perlatihan terhadap model HMM juga perlu diselesaikan guna memaksimalkan nilai probabilitas PW |O. Algoritme yang dapat digunakan ialah algoritme K-Means dan Algoritme Baum-Welch. Algoritme Baum-Welch Baum-Welch algorithm merupakan algoritme Generalized Expectation-Maximization (GEM)
4
yang digunakan untuk menemukan estimasi maximum likelihood dan estimasi posterior mode dari parameter-parameter dalam sebuah HMM, ketika diberikan sekumpulan vektor ciri yang terlihat (emission) sebagai data pelatihan. Algoritme yang ditemukan oleh Leonard E. Baum and Lloyd Welch ini, dalam prosesnya menggunakan algoritme Forward-backward. Apabila sebuah HMM ^ O, V, _ diberikan nilai observasi Ο, maka algoritme Baumwelch ^` maxa Sb|^ akan menemukan sebuah HMM λ yang memaksimumkan probabilitas dari observasi Ο. Algoritme Baum-Welch : • Inisialisasi: set ^ O, V, _ dengan kondisi inisial yang random. • Prosedur Forward: definisikan cM d SO O , O , … , OT , Q i|^, sebagai probabilitas melihat rangkaian b , b , . . . , bT yang berakhir pada state i dan waktu t. secara rekursif cM d dapat dihitung sebagai berikut: 1. cM 1 _M WM b 2. cM d 1 1 WX bTU ∑( M* cM d. PMX
• Prosedur Backward: merupakan probabilitas melihat rangkaian b , b , . . . , bT yang dimulai dari state i dan waktu t. secara rekursif fM d dapat dihitung sebagai berikut: 1. fM g 1 2. fM d ∑( X* fM d 1 1 PMX WX bTU
• Nilai γ dan ξ yang didapat selanjutnya digunakan untuk mengupdate nilai berikut : _vM hM 1 PvMX
∑x!o tno wl" T ∑x!o tno yl T
WzM bT {
}zM
µ |M
∑x tno yl T x ∑tno yl T.4st ) µl 94st ) µl 9′ ∑x tno yl T
∑lno kl Tml T
pMX d i SjT Q, jTU R|b, ^ kl Tql"ml TUr" stuo
' ∑' lno ∑"no kl Tql" ml TUr" stuo
~
• Proses di atas dilakukan secara rekursi hingga didapatkan nilai A, B, dan π yang dianggap cukup baik. Hal ini dapat terlihat dari nilai probabilitas PW |O yang didapat. Apabila proses pelatihan sudah tidak mampu lagi memaksimalkan PW |O, maka proses di atas dihentikan. Gaussian Multivariate Distribusi Gaussian dikenal juga dengan nama distribusi normal, dimana ia merupakan sebuah fungsi yang diparameterisasi oleh Mean dan Variance (Jurafsky, 2007). Sebuah sinyal observasi akustik (suara) merupakan vektor dari fitur atau ciri sebuah sinyal suara. State pada sebuah HMM bersifat tersembunyi, sehingga kita tidak dapat mengetahui secara pasti vektor observasi bT mana yang dihasilkan oleh state yang mana. Untuk mengatasi permasalahan di atas maka digunakanlah distribusi Gaussian Multivariate untuk menghitung nilai probabilitas simbol yang diobservasi bT saat waktu t bila diketahui bahwa ia berada di state j. Adapun persamaan yang digunakan ialah sebagai berikut : ′ WM bT ?/ 4bT / µM 9 }M ) 4bT / µM 9 A . B | | l
Scaling Pada proses perhitungannya, Algoritme BaumWelch sering kali menghasilkan nilai yang sangat kecil hingga mendekati 0. Hal ini menjadi masalah penting, ketika proses komputasi terdapat operasi pembagian dimana nilai pembaginya mendekati 0. Contohnya saja pada perhitungan di bawah ini : PvMX
• Nilai α dan β digunakan untuk menghitung: k Tm T hM d i SjT Q|b, ^ ' l l
∑x tno yl T.st
∑x!o tno wl" T
hM d
∑x!o tno yl T
, dimana
kl Tml T
∑' "no kl Tml T
.
Ketika nilai hM d = 0, maka PvMX menjadi tidak terdefinisi. Untuk mengatasi masalah di atas, digunakanlah fungsi scaling. Fungsi ini bertujuan untuk mengubah nilai-nilai pada setiap state sehingga lebih rasional. Nilai koefisien C pada setiap state t dihitung melalui fungsi berikut ini: T ∑' T . lno kl
Nilai koefisien scaling di atas digunakan untuk menransformasi nilai cM d dan fX d 1 1 agar nilai-nilai tersebut tetap dalam range sehingga dapat dihitung. Persamaan yang digunakan untuk
5 meng-update nilai cM d dan fM d 1 1 ialah (Rabiner, 1989): cvM d 1 1 ∏TU * cM d 1 1 fX d = ∏*T fX d . METODE PENELITIAN Kerangka Pemikiran Langkah-langkah yang dilakukan pada penelitian ini sesuai dengan apa yang disarankan oleh Jurafsky ataupun Rabiner. Namun dilakukan beberapa penyesuaian yang diperlukan. Secara umum, langkah-langkah yang dilakukan dalam penelitian ini digambarkan pada Gambar 3 berikut:
Gambar 3 Proses Pengenalan Kata.
Studi Pustaka Studi pustaka dilakukan guna memahami langkah-langkah dalam metode yang digunakan dalam penelitian ini. Selain itu, perlu dipelajari perkembangan mengenai Signal Processing pada umumnya dan Speech Recognition pada khususnya, agar metode yang digunakan tepat sasaran. Referensi-referensi yang digunakan pada penelitian ini dapat dilihat pada daftar pustaka. Pengambilan Data Suara Pengambilan data suara dilakukan dengan Frekuensi Sampel (Fs) 11 KHz selama 5 detik untuk setiap kata, karena menurut Do (1994) frekuensi ini dapat meminimalisasi efek aliasing saat konversi sinyal analog ke sinyal digital.
Data suara sendiri terbagi dalam 2 macam jumlah suku kata, yaitu : 2 suku kata dan 3 suku kata. Pemilihan ini dilakukan karena sebagian besar kata dalam bahasa Indonesia terdiri oleh 2 atau 3 suku kata. Setiap kelompok kata terdiri dari 20 kata sehingga total seluruh kata yang digunakan ialah 40 kata. Daftar kata yang digunakan dapat dilihat pada Tabel 1 di bawah ini: Tabel 1 Daftar Kata
2 Suku kata Alam Bogor Citra Data Ganda Hasil Ilmu Jumlah Keras Lulus Matriks Nama Program Robot Sistem Temu Umum Virus Warna Yakin
3 Suku Kata Aljabar Bahasa Digital Empati Fakultas Gelombang Institut Jaringan Kembali Komputer Laporan Metode Numerik Ornamen Perangkat Revisi Sarjana Teori Usaha Wisuda
Sistem ini dibatasi dalam hal pembicaranya (Speaker Dependent), sehingga pembicara hanya terdiri dari 4 orang, yaitu : 2 orang wanita dan 2 orang laki-laki. Setiap Pembicara mengucapkan kata dengan pengulangan sebanyak 10 kali untuk setiap kata. Tempat yang digunakan untuk proses pengambilan suara bersifat hening, karena jenis noise yang digunakan bersifat Low yaitu di bawah 30 db. Bila Noise yang terdapat pada ruangan terlalu besar, maka hal tersebut akan menyulitkan saat proses pembersihan/cleaning data suara. Selain itu, sangat sulit bagi sistem untuk dapat membedakan gelombang suara dengan noise dari lingkungan. Preprocessing Data suara yang terkumpul merupakan data suara kotor, karena masih terdapat blank atau jeda pada awal atau akhir suara, seperti yang terlihat pada Gambar 4 di bawah ini. Data suara tersebut selanjutnya dibersihkan dari blank pada awal atau akhir suara, proses ini disebut sebagai proses pembersihan data.