1
PENERAPAN METODE POWER SPEKTRUM PADA PROSES KONVERSI SUARA UCAPAN MENJADI TEKS Yoga Arifianto, Drs. Nurul Hidayat, M. Kom Jurusan Matematika, FMIPA, Institut Teknologi Sepuluh Nopember (ITS) Jl. Arief Rahman Hakim, Surabaya 60111 E-mail:nurul
[email protected], nurul
[email protected]
Abstrak – Dalam membangun sistem pengenalan suara ucapan berbahasa Indonesia, dibutuhkan acoustic model, language model, dan kamus berisi kata-kata dalam Bahasa Indonesia yang dapat dikenali sistem. Akan tetapi, acoustic model yang sudah diteliti secara luas dan bersifat open source belum banyak tersedia dalam Bahasa Indonesia. Hal ini disebabkan karena dibutuhkan banyak sumber suara ucapan berbahasa Indonesia pada proses training agar sistem dapat mengenali ucapan secara akurat. Oleh karena itu, dalam tugas akhir ini dikembangkan aplikasi pengenalan suara ucapan yang berfungsi untuk melakukan konversi suara ucapan manusia menjadi teks. Metode Power Spektrum dalam sistem pengenalan ucapan CMU Sphinx akan diterapkan untuk mengenali ucapan dalam Bahasa Indonesia. Jumlah kata yang dijadikan objek penelitian sebanyak 219 kata dan 98 frasa/kalimat dengan tingkat akurasi dalam uji coba pengucapan kata mencapai 86.4%, dan akurasi mencapai 58.8% dalam uji coba pengucapan frasa/kalimat. Hasil penelitian ini bisa dikembangkan lebih lanjut oleh peneliti nusantara agar menghasilkan pengenalan ucapan dengan Bahasa Indonesia yang jauh lebih akurat dan lebih kompleks. Kata Kunci: Power Spektrum, pengenalan ucapan, teks, CMU Sphinx, Bahasa Indonesia. 1. PENDAHULUAN Teknologi pengenalan suara ucapan memungkinkan suatu perangkat untuk mengenali dan memahami kata-kata yang diucapkan. Ucapan diubah bentuknya menjadi sinyal digital dengan cara mengubah gelombang suara ucapan menjadi sekumpulan angka yang kemudian dicocokkan dengan pola-pola tertentu dalam sistem pengenalan ucapan. Hasil dari identifikasi kata yang diucapkan dapat ditampilkan dalam bentuk tulisan atau dibaca oleh perangkat teknologi sebagai komando untuk melakukan pekerjaan, misal menjalankan program dalam komputer dengan komando suara. Pengembangan perangkat untuk mengenali ucapan manusia telah dilakukan sejak tahun 1940 oleh perusahaan American Telephone and Telegraph Company (AT&T) yang berhasil membuat suatu perangkat teknologi yang dapat mengidentifikasi kata yang diucapkan manusia. Sekitar ta-
hun 1960-an, para peneliti dari perusahaan tersebut berhasil membuat suatu perangkat yang dapat mengidentifikasi kata-kata terpisah dan pada tahun 1970-an mereka berhasil membuat perangkat yang dapat mengidentifikasi kata-kata kontinu. Perangkat pengenal suara ucapan kemudian menjadi sangat fungsional sejak tahun 1980-an dan masih dikembangkan dan terus ditingkatkan keefektifannya hingga sekarang [5]. Salah satu tim peneliti yang telah berhasil mengembangkan aplikasi pengenal suara ucapan adalah peneliti dari Carniege Mellon University, menghasilkan suatu sistem pengenalan ucapan bernama Sphinx untuk melakukan berbagai tugas yang diperintahkan oleh pengguna. Akan tetapi, bahasa yang digunakan dalam software tersebut adalah Bahasa Inggris, dan tidak tersedia dalam Bahasa Indonesia. Oleh karena itu, dalam tugas akhir ini akan dikembangkan perangkat lunak untuk melakukan konversi suara ucapan menjadi teks dengan Bahasa Indonesia. Dengan menggunakan metode Power Spektrum dalam perangkat pengenalan suara Sphinx, kita bisa berbicara pada komputer via microphone dan kata-kata yang kita ucapkan secara otomatis diterjemahkan menjadi teks tanpa melakukan pengetikan dengan keyboard. 2. TINJAUAN PUSTAKA 2.1. Studi Penelitian Pada tahun 2008, Ripul Gupta melakukan penelitian tentang pengenalan suara ucapan secara real time dalam bahasa Hindi dengan menggunakan metode Power Spectrum dalam ekstraksi ciri, dan Hidden Markov Model (HMM) dalam pengenalan pola. Tingkat pengenalan suara yang dihasilkan dalam penelitian tersebut cukup bagus, dengan tingkat akurasi 83.24%, akan tetapi kata-kata yang digunakan hanyalah kata yang merepresentasikan angka dalam Bahasa India, sehingga jumlah kata yang dijadikan objek penelitian relatif sedikit. Beberapa tahun kemudian, tepatnya tahun 2010, seorang mahasiswa Pascasarjana BRAC University (Bangladesh), Shammur Absar Chowdhury, juga melakukan penelitian mengenai pengenalan suara ucapan, tapi dilakukan dengan menggunakan Bahasa Bangladesh, Bangla. Dalam penelitiannya, digunakan metode Power Spectrum dan HMM dalam perangkat CMU-Sphinx. Penelitian
2 tersebut meneliti pengenalan suara dalam pengenalan suara ucapan secara kontinu dengan kata-kata yang lebih banyak dari penelitian yang dilakukan oleh Ripul Gupta, yakni sejumlah 30 kata. Tingkat pengenalan suara yang dihasilkan dalam penelitian tersebut sedikit lebih tinggi, dengan tingkat akurasi rata-rata 86.79%, tetapi kata-kata yang digunakan hanya kata berbahasa Bangla, sehingga kata-kata dengan Bahasa Indonesia tidak bisa dikenali. Penelitian sejenis selain dilakukan oleh peneliti luar negeri, juga dilakukan oleh peneliti dalam negeri , yaitu oleh Veri Ferdiansyah dan Ayu Purwarianti tahun 2011 [3]. Penelitian dilakukan untuk membandingkan sistem pengenal suara ucapan berbasis Sphinx antara Bahasa Indonesia dengan sistem berbahasa Inggris. Akan tetapi, tingkat pengenalan suara yang dihasilkan dalam penelitian tersebut memiliki akurasi yang tidak lebih tinggi dari penelitian Shammur dan Ripul, yakni hanya 63.33% untuk input berupa kata, dan 49.32% untuk input berupa kalimat dari 100 kata yang diteliti. 2.2. Proses Konversi Suara Ucapan menjadi Teks Ada beberapa proses yang perlu dilakukan untuk membangun perangkat lunak untuk konversi suara ucapan menjadi teks. Berikut ini merupakan bagan yang menjelaskan proses konversi suara ucapan menjadi teks [1]:
dari pemfilteran ini adalah untuk mendapatkan bentuk spectral frekuensi sinyal ucapan yang lebih halus, dimana bentuk spectral yang relatif bernilai tinggi untuk daerah rendah dan cenderung turun secara tajam untuk daerah frekuensi diatas 2000 Hz. Proses pre-emphasis filter diaplikasikan pada input berupa gelombang suara[9]. y[n] = x[n] − αx[n − 1] y = input gelombang suara setelah pre-emphasis. x = input gelombang suara sebelum pre-emphasis. α = konstanta filter pre-emphasis. Nilai α ditentukan oleh penulis, yaitu 0.97.
2.2.4. Frame Blocking Dalam Frame Blocking, sinyal ucapan kontinu diblok menjadi N sample frame. Frame-frame saling berdekatan dengan spasi M (M < N ). Frame pertama terdiri dari N sampel pertama. Frame kedua terdiri dari M sampel setelah frame pertama, dan overlap dengan N − M sampel. Dengan cara yang sama, frame ketiga dimulai 2M sampel setelah frame pertama atau M sampel setelah frame kedua, dan overlap dengan N − 2M sampel. Proses ini berlanjut hingga semua ucapan dihitung dalam satu atau banyak frame. Nilai untuk N dan M adalah N = 256 dan M = 100 [6]. 2.2.5. Windowing
2.2.1. Akuisisi Sinyal Suara Pada proses akuisisi, sinyal suara akan dideteksi melalui microphone agar bisa diproses dalam Ekstraksi Ciri.
Langkah berikutnya adalah proses windowing pada masingmasing frame individual untuk meminimalkan diskontinuitas sinyal pada awal dan akhir masing-masing frame. Frame lalu dikalikan dengan Hamming Window: 2πn w[n] = 0.54 − 0.46 cos N −1 w = window N = panjang f rame.
2.2.2. Ekstraksi Ciri Ekstraksi ciri bertujuan untuk mengurangi jumlah data pada sinyal suara agar mempermudah proses pengenalan suara ucapan dengan tetap mempertahankan nilai atau feature tertentu yang membedakan pola suara input. Nilai atau feature khusus inilah yang nantinya akan menjadi input pada proses Mel-Spectrum. Dalam proses ekstraksi ciri, ada beberapa sub-proses yang akan dilakukan, yaitu Pre-emphasis, Frame Blocking, Windowing, Power Spectrum, Mel-Spectrum, dan MelCepstrum.
2.2.3. Pre-emphasis Dalam proses pengolahan sinyal suara ucapan, Preemphasis filter diperlukan setelah proses sampling. Tujuan
y[n] = x[n]w[n], 0 ≤ n ≤ N − 1 x[n] = sinyal input y[n] = hasil proses windowing. 2.2.6. Power Spectrum Power spectrum dari setiap frame dihitung dengan menggunakan Transformasi Fourier Cepat (Fast Fourier Transform/FFT). FFT berfungsi untuk mengubah masingmasing frame N sampel dari domain waktu menjadi domain frekuensi. FFT adalah algoritma cepat untuk mengimplementasikan Discrete Fourier Transform (DFT) dengan didefinisikan pada kumpulan N sampel, {Xn }, seperti berikut: Xn =
N −1 X k=0
xk e−2πikn/N , n = 1, 2, ..., N − 1
3 xk = deret aperiodik dengan nilai N N = jumlah sampel Setelah proses FFT selesai dilakukan, magnitude kuadrat dari power spectrum dihitung sebagai hasil dari proses. 2
2
S[k] = (real(X[k])) + (imag(X[k]))
S = Magnitude (panjang vektor antara titik asal (0,0) sampai akhir dari koordinat kompleks). 2.3. Pengenalan Pola Suara Ucapan Komponen pengenalan pola suara ucapan dalam Tugas Akhir ini menggunakan HMM Pattern Matching. HMM Pattern Matching adalah komponen sistem yang paling penting dan bertanggungjawab untuk menemukan kesesuaian terbaik antara data (Language Model dan Acoustic Model) dengan vektor-vektor hasil Ekstraksi Ciri[1]. Bagan dari Proses pengenalan suara ucapan dapat dilihat dalam bagan berikut.
karakteristik tertentu dari sinyal, dan parameter dari acoustic model ini kemudian diestimasi dengan menggunakan vektor-vektor tersebut (biasa disebut feature). Proses ini disebut training acoustic model. Selama proses pengenalan suara, feature yang berasal dari suara ucapan masuk dengan cara yang sama seperti dalam proses training. Komponen dari sistem pengenal suara yang menghasilkan feature ini disebut front end. feature-feature langsung dinilai terhadap acoustic model. Skor yang diperoleh menunjukkan seberapa besar kecenderungan satu set feature tertentu yang diambil dari live audio dengan fonem dari acoustic model yang sesuai. Gambar berikut menunjukkan diagram arsitektur Sphinx-4 [9].
3. IMPLEMENTASI SISTEM
2.4. CMU-Sphinx CMU-Sphinx, dengan perangkat Sphinx-4 adalah sistem pengenalan suara terkini yang seluruhnya ditulis dalam bahasa pemrograman Java. Sphinx-4 diciptakan melalui kolaborasi antara anggota Sphinx group yang berasal dari Carnegie Mellon University, Sun Microsystems Laboratories, Mitsubishi Electric Research Labs (MERL), dan Hewlett Packard (HP), juga dengan kontribusi dari University of California di Santa Cruz (UCSC) dan Massachusetts Institute of Technology (MIT) [9]. Sphinx-4 dimulai sebagai penghubung Sphinx-3 untuk bahasa pemrograman Java, tapi berkembang menjadi pengenal suara ucapan yang dirancang untuk menjadi jauh lebih fleksibel daripada Sphinx-3, sehingga menjadi platform yang sangat baik untuk penelitian mengenai suara ucapan. Sphinx-4 adalah sebuah pengenal suara ucapan berbasis Hidden Markov Model, yang merupakan jenis dari model statistika. Dalam pengenalan suara ucapan berbasis HMM, setiap unit suara (fonem) diwakili oleh model statistika yang menunjukkan distribusi semua petunjuk (data) untuk fonem tersebut. Model statistika biasa disebut acoustic model. Saat membuat acoustic model, sinyal suara pertama kali diubah menjadi deretan vektor yang mewakili
Untuk membangun sistem pengenalan suara ucapan menjadi teks dengan menggunakan CMU Sphinx, diperlukan beberapa data dalam jumlah yang cukup besar. Data-data yang diperlukan adalah sebagai berikut: 1. Speech Corpus Setelah menentukan teks untuk proses pengenalan suara, dibutuhkan proses perekaman dari tiap kata yang telah ditentukan. Dalam tugas akhir ini, perekaman dilakukan pada suara satu orang, yaitu penulis. Data suara yang digunakan dalam proses training berjumlah 3208 file .wav. Setelah proses perekaman dilakukan, file audio tiap kata disimpan dalam format .wav, dimana setiap file wav akan diberi nama yang tersusun dari ID nama pemilik suara, dan ID kata. Sebagai contoh: file ID yoga satu mengandung informasi ID nama pemilik suara: Yoga, dan ID kata: satu. 2. Language Dictionary Sebuah file language dictionary merupakan file yang berisi setiap pasangan kata beserta pelafalan (fonem) nya. Setiap kata yang akan melalui proses training dan testing akan dicantumkan kedalam language dictionary. Jumlah kata yang dijadikan objek penelitian adalah 219 kata. Contoh Language Dictionary
4 adalah sebagai berikut: ayah AA Y AA H satu S AA T UW polisi P OW L IY S IY 3. Language Model Language model(LM) merupakan file yang berupa teks. Format yang digunakan adalah format ARPA sebagai standar dalam penelitian pengenalan suara ucapan[2]. File LM mendaftar bentuk 1-gram, 2gram dan 3-gram beserta peluang kata dipanggil (pada field pertama) dan back-off factor pada field ketiga. Contoh file LM: -2.1271 AYAH -0.4755 -2.1271 SATU -0.4755 -2.1271 POLISI -0.4755 4. Filler Dictionary Filler dictionary merupakan Language Dictionary yang berisi non-speech sounds yang dipetakan sesuai dengan non-speech sound unit. Khusus untuk suara ”BATUK”, ”EHM”, dan ”HUH” juga dikelompokkan dalam kategori filler, sehingga tidak diterjemahkan menjadi teks oleh sistem. Contoh Filler Dictionary adalah sebagai berikut: <s> SIL <sil> SIL SIL ++BATUK++ ++EHM++ ++HUH++ 5. Phone File Sebuah teks sederhana yang memberi penjelasan pada trainer bahwa fonem yang dicantumkan merupakan bagian dari file training. File terdiri dari satu fonem pada tiap baris, harus sesuai dengan fonem dalam Language Dictionary dan tidak diperbolehkan adanya duplikasi. Contoh Phone file: AA C EH P R UW 6. Transcription File Sebuah transkrip diperlukan untuk merepresentasikan apa yang pembicara ucapkan dalam file audio. Jadi, dalam sebuah file dialog pembicara dicatat sehingga kata yang diucapkan/direkam sama persis dengan kata yang dituliskan, dengan diapit silence tag (tag dimulai dengan <s> dan diakhiri dengan ), kemudian diikuti oleh file ID yang merepresentasikan suara yang direkam. File ini selanjutnya disebut transcription file. Pada dasarnya,
ada dua macam transcription file. Satu file untuk proses training, dan satu lagi untuk proses testing. Dalam tugas akhir ini, transcription file dinamakan teks revision train.transcription untuk proses training dan untuk proses testing dinamakan teks revision test.transcription. Sebagai contoh: <s> ayah (yoga ayah) <s> satu (yoga satu) <s> polisi (yoga polisi)
4. HASIL PENELITIAN Tabel 1 menunjukkan tingkat akurasi rata-rata dari sistem pengenal suara ucapan yang dibangun dari 219 kata. Dari penelitian, didapatkan adanya hasil berbeda dari tiap kata maupun kalimat yang telah diuji coba. Adanya variasi akurasi kata/kalimat bisa dipengaruhi oleh ketidaktepatan penulis dalam merancang acoustic model, serta tingkat kemiripan beberapa kata yang memiliki kemiripan pengucapan satu sama lain. Sebagai contoh, terjadi kesalahan sistem dalam mengenali kata yang mirip, seperti ”bilang”, ”gilang”, ”hilang”, ”silang”, dan ”tilang”. Untuk kata ”gilang”, ”silang”, dan ”tilang”, tingkat pengenalan sistem mencapai 100%. Akan tetapi, untuk kata ”bilang” dan ”hilang”, sistem lebih sering menterjemahkan ucapan menjadi ”tilang”(97%), dan ”silang”(60%).
Input Ucapan Kata Kalimat
Tabel 1: Hasil uji coba sistem Jumlah Perco- Jumlah Percobaan baan Akurat 6570 5675 2940 1728
Presentase 86.4% 58.8%
Kesalahan sistem dalam menterjemahkan kata juga berpengaruh pada kemampuan sistem dalam menterjemahkan kalimat, seperti yang ditunjukkan pada Tabel 2. Kesalahan sistem dalam menterjemahkan input berupa kata sangat mempengaruhi kinerja sistem dalam menterjemahkan kalimat karena satu kata yang tidak dikenali saja menyebabkan kalimat tidak diterjemahkan secara sempurna. Sehingga presentase keberhasilan sistem dalam menterjemahkan kalimat secara sempurna (58.8%) lebih kecil dari presentase keberhasilan sistem dalam menterjemahkan kata (86.4%).
Tabel 2: Kesalahan pengenalan kalimat oleh sistem Kalimat yang diucapkan Kalimat yang dikenali nama adik saya gilang nama pagi saya gilang ani sering pergi ke per- ani sore pagi pak perpustakaan pustakaan
5 5. KESIMPULAN Berdasarkan analisis hasil pengujian perangkat lunak untuk konversi suara ucapan menjadi teks dengan metode Power Spektrum dalam perangkat Sphinx-4, maka dapat diambil beberapa kesimpulan sebagai berikut: 1. Tahap-tahap yang dilakukan dalam konversi suara ucapan menjadi teks adalah Akuisisi Sinyal Suara, Ekstraksi Ciri dan Pengenalan Pola Suara Ucapan. 2. Metode pengenalan suara dengan Power Spektrum memiliki kinerja yang bagus dalam mengekstraksi dan merepresentasikan suara ucapan. Hal ini dapat diketahui berdasarkan presentase tingkat keberhasilan sistem dalam melakukan konversi suara ucapan menjadi teks yang mencapai 86.4% pada pengujian pengucapan 219 kata berbeda, dan 58.8% pada pengujian 98 frasa/kalimat berbeda. 3. Adanya variasi akurasi kata/kalimat dipengaruhi oleh ketidaktepatan penulis dalam merancang acoustic model, serta tingkat kemiripan pengucapan kata satu sama lain pada saat uji coba perangkat lunak. 4. Sistem konversi suara ucapan menjadi teks berhasil diimplementasikan menjadi sebuah perangkat lunak komputer. Hal ini ditunjukkan dengan keberhasilan sistem dalam melakukan konversi suara ucapan menjadi teks. Selain itu, desain interface yang sederhana membuat perangkat lunak bersifat user friendly. DAFTAR PUSTAKA [1] Bachtiar, Irfan Syafur. 2007. Aplikasi Pengenalan Wicara HMM untuk Kendali Robot PDA. Surabaya: Politeknik Elektronika Negeri Surabaya. [2] Chowdhury, Shammur Absar. 2010. Implementation of Speech Recognition System for Bangla. Dhaka: School of Engineering and Computer Science BRAC University. [3] Ferdiansyah, Veri dan Purwarianti, Ayu. 2011. ”Indonesian Automatic Speech Recognition System Using English-Based Acoustic Model”. Bandung: Institut Teknologi Bandung [4] Gupta, Ripul. 2005. Speech Recognition for Hindi. Mumbai: Indian Institute of Technology [5] LumenVox. History of Speech Recognition. http://www.lumenvox.com/resources/tips/ historyOfSpeechRecognition.aspx (diakses tanggal 19 Oktober 2012). [6] Mustofa, Ali. ”Sistem Pengenalan Penutur dengan metode Mel-frequency Wrapping”. Jurnal Teknik Elektro. Vol.7, No.2.pp 88-96, 2007. [7] Seltzer, Michael. 1999. SPHINX III Signal Processing Front End Specification. Oakland: CMU Speech Group.
[8] Sigurdsson, S., dkk. 2006. ”Mel Frequency Cepstral Coefficient: An Evaluation of Robustness of MP3 Encoded Music”. Lyngby: University of Denmark. [9] Walker, Willie, dkk. 200. Sphinx-4: A Flexible Open Source Framework for Speech Recognotion. Oakland: Sun Microsystem. [10] Young, Steve, dkk. 2009. The HTK Book. Cambridge: Cambridge University.