1
PERANCANGAN PROGRAM APLIKASI ANDROID SPEECH TO TEXT BAHASA INDONESIA DAN INGGRISMENGGUNAKANMETODE HIDDEN MARKOV MODEL Vera Monika Binus University, Jakarta, DKI Jakarta, Indonesia
ABSTRAK Penyampaian pesan secara lisan maupun tulisan merupakan penunjang komunikasi yang sangat penting dalam berinteraksi dengan sesama.Mempelajari bahasa baru tidaklah mudah karena memerlukan waktu dan biaya misalnya untuk membeli buku panduan, mengikuti kursus atau mempelajarinya secara otodidak melalui ebookserta modul-modulbaik dalam bentuk audio maupun video di internet.Oleh karena itu, diperlukan suatu perangkat berteknologi sebagai media komunikasi yang memungkinkan orang-orang dengan bahasa ibu yang berbeda-beda agardapat saling berkomunikasi dan mengerti apa yang disampaikan oleh lawan bicaranya dimana pun dan kapan pun mereka berada. Perangkat keras yang mudah dibawa dan digunakan oleh hampir semua orang di zaman yang modern ini adalah telepon seluler atau telepon pintar (smartphone). Dengan menggunakan sistem operasi Android dan metode Hidden Markov Model(HMM), penulis akan menciptakan program aplikasi penerjemah dari Bahasa Inggris ke Bahasa Indonesia dan sebaliknya. Aplikasi pengenalan suara (speech recognition)yaitu Androidspeech to textini akan bekerja dengan cara menangkap suara sebagai input. Suara tersebut diproses dengan metode HMM dimana akan dicari peluang terbesar yang cocok dengan model bahasa yang ada dan akan ditampilkan dalam 1
2 bentuk teks. Hasil teks tersebut dapat diterjemahkan ke bahasa yang berlawanan dalam hal ini antara Bahasa Inggris dan Bahasa Indonesia. Setelah dilakukan pengujian, program aplikasi menunjukkan hasil yaitu dapat mengidentifikasi suara penulis dengan tingkat akurasi sebesar 91.76% untuk versi Bahasa Indonesia dan 83.05% untuk versi Bahasa Inggris. Kata kunci: Hidden Markov Model, speech recognition, bahasa Inggris, bahasa Indonesia, Android.
2
1.
Pendahuluan Perusahaan ternama seperti Google sangat cepat dalam mengembangkan aplikasi speech recognition. Ketergantungan akan perlunya koneksi internet untuk mengakses aplikasi speech recognition buatan Google tersebut menjadi latar belakang penulis untuk membuat aplikasi speech recognition versi offline (tidak memerlukan koneksi internet).
Telepon pintar (smartphone) makin banyak diminati orang terutama oleh mereka yang termasuk dalam golongan ekonomi kelas menengah ke atas.Banyaknya fiturfitur menarik, atraktif, dan dapat menunjang kegiatan sehari-hari bahkan membantu dalam bisnis membuat smartphone selalu dibawa kapan pun dan kemana pun mereka pergi.Oleh sebab itu, agar penggunaan aplikasi ini dapat maksimal maka penulis memilih membuat aplikasi speech recognition khususnya speech to text (suara ke teks) pada smartphone.
Walaupun sudah ada beberapa jenis aplikasi speech to text baik dalam bentuk aplikasi desktop, aplikasi web atau aplikasi mobile, kita seringkali sulit membuat sistem mengerti pelafalan kata-kata yang kita ucapkan dalam Bahasa Indonesia.Hal ini dikarenakan banyaknya sistem yang lebih mengutamakan penggunaan Bahasa Inggris. Beragamnya aksen dalam Bahasa Indonesia merupakan suatu tantangan untuk memetakan cara pengucapan yang sedemikian rupa sehingga program yang dibuat dapat dengan mudah mengenali suara yang masuk lalu menampilkannya dalam bentuk teks. 3
Jumlah pengguna smartphone Android meningkat dari tahun ke tahun khususnya di Indonesia.Selain harganya yang terjangkau, banyak fitur menarik yang disediakan mulai dari yang gratis hingga berbayar yang dapat diakses melalui Android Market. Menanggapi peluang peningkatan antusiasme masyarakat terhadap smartphone Android maka dalam skripsi ini penulis menggunakan sistem operasi Android yang open source dan library Pocketsphinx untuk menciptakan aplikasi speech to text Bahasa Indonesia dan Bahasa Inggris.
2.
Pembahasan Pengenalan ucapan atau suara (speech recognition) adalah suatu teknik yang memungkinkan sistem komputer untuk menerima input berupa kata yang diucapkan. Kata-kata tersebut diubah bentuknya menjadi sinyal digital dengan cara mengubah gelombang suara menjadi sekumpulan angka lalu disesuaikan dengan kode-kode tertentu dan dicocokkan dengan suatu pola yang tersimpan dalam suatu perangkat. Hasil dari identifikasi kata yang diucapkan dapat ditampilkan dalam bentuk tulisan atau dapat dibaca oleh perangkat teknologi.
Pocketsphinx merupakan library pengenalan ucapan versi mobile application dari sistem Sphinx yang dirancang oleh Carnegie Mellon University.Metode yang digunakan dalam sistem speech recognitionPocketphinx ini yaitu metode Hidden Markov Model. Proses pembelajaran unit-unit suara disebut training, sedangkan proses menggunakan pengetahuan yang diperoleh untuk menyimpulkan urutan 4
yang paling mungkin dari unit dalam sinyal yang diberikan disebut decoding, atau secara sederhana disebut pengenalan (recognition). Karena terdapat dua proses tersebut maka diperlukan SPHINX trainer dan SPHINX decoder.
Komponen untuk training yaitu: 1.
Phonetic dictionary (kamus fonetik) dengan extention .dic
2.
Phoneset file dengan extention .phone
3.
Transcript file dengan extention .transcription
4.
Language model (model bahasa) dengan extention .DMP
5.
Daftar file untuk training dengan extention .fileids
6.
Filler dictionary dengan extention .fillers
7.
File suara dengan format wav 16 kHz, 16 bit, mono.
Sumber: (http://cmusphinx.sourceforge.net/wiki/tutorialam)
Sedangkan komponen yang diperlukan untuk proses decoding yaitu: 1.
Source code decoder
2.
Language dictionary
3.
Filler dictionary
4.
Language model
5.
Data uji
Penulisan fonetik pada pocketsphinx menggunakan sistem Arpabet.Arpabet adalah transkripsi fonetik yang dikembangkan oleh Advanced Research Projects Agency (ARPA) sebagai bagian dari Speech Understanding Project (1971-1976).Arpabet 5
mewakili setiap fonem dari dalam bahasa Inggris Amerika umum (General American English) dengan urutan yang berbeda dari karakter ASCII.
Dalam Arpabet, setiap fonem diwakili oleh satu atau dua huruf. Digit digunakan indicatorstress (penekanan) dan ditempatkan pada akhir suku kata vokal yang ditekankan. Sumber: (http://www.speech.cs.cmu.edu/cgi-bin/cmudict).
Gambar 1 Fonetik Bahasa Inggris aksen Amerika Sumber: (Lundsgaard 2006, 12)
Hidden Markov Model (HMM) adalah suatu model statistik dari sebuah sistem yang diasumsikan sebuah proses Markov dengan parameter yang tak diketahui. Kita harus menentukan parameter-parameter tersembunyi (state) dari parameterparameter yang dapat diamati. Parameter-parameter yang ditentukan kemudian dapat digunakan untuk analisis yang lebih jauh, misalnya untuk aplikasi pattern recognition. 6
Dalam HMM, state tidak dapat diamati secara langsung, akan tetapi yang dapat diamati adalah variabel-variabel yang terpengaruh oleh state. Setiap state memiliki distribusi probabilitas atas token-token output yang mungkin muncul.
Transisi pada rantai Markov yaitu: •
Transisi dari suatu keadaan tergantung pada keadaan sebelumnya.
•
Transisi keadaan bebas terhadap waktu.
Berikut ini adalah contoh gambar rantai Markov.
Gambar 2.Rantai Markov Sumber: (Ricky, 2004) Elemen pada HMM yaitu: 1. N, jumlah keadaan (state) dalam model. 2. M, jumlah simbol observasi yang berbeda tiap keadaan. 3. Distribusi
keadaan
transisi
7
A
=
{aij}
dengan
4. Distribusi probabilitas simbol observasi B = {bj(k)} dengan 5. Distribusi keadaan awal π
π
Algoritma rekursif yang efisien untuk perhitungan fungsi likelihood adalah
algoritma
maju-mundur.
Perhitungan
pada
metode
X|M(X|M)
maju-mundur
memanfaatkan struktur yang sangat teratur dan berulang.Dalam metode ini, variabel αt probabilitas maju (i) didefinisikan sebagai probabilitas gabungan dari urutan observasi parsial X = [x (0), x (1), ..., x(t)] dan statei pada waktu t, dari model M:
Variabel probabilitas maju
pada persamaan di atas dapat dinyatakan dalam
bentuk rekursif pada waktu t-1, αt-1(i):
Sebuah peluang mundur didefinisikan sebagai peluang statei pada waktu t yang diikuti oleh urutan observasi parsial [x(t+1), x(t+2), …., x(T-1)] 8
(Vaseghi 2008, p156-157)
Metode Baum-Welch adalah iterasi dari metode likelihood yang dimaksimalkan berdasarkan probabilitas maju-mundur. Untuk HMM sebuah M, probabilitas posterior dari transisi pada waktu t dari statei ke statej dari model M, diberikan sebuah urutan observasi berupa X.
dimana
s,x|M(s(t)=i,
s(t+1)=j, X|M) adalah pdf join dari state s(t) dan s(t+1) dan
urutan observasi X, dan
x|s
(x(t+1)|s(t+1)=i) adalah state observasi pdf untuk
statei. (Vaseghi 2008, p157-158)
Decoding sinyal berfungsi untuk mendapatkan perkiraan posterior maksimum (MAP)dari urutan state yang mendasarinya. Urutan state MAP dari model M diberikan sebuah sinyal observasi X=[x(0), …., x(T-1)] yang menghasilkan :
9
δ t (i) mencatat peluang kumulatif dari jalan terbaik untuk state i pada waktu t. ψt (i) mencatat urutan state terbaik untuk state i pada waktu t. (Vaseghi 2008, p162-164)
N-gram merupakan sebuah metode yang diaplikasikan untuk pembangkitan kata atau karakter.Metode ini digunakan untuk mengambil potongan-potongan karakter huruf sejumlah n dari sebuah kata atau kalimat yang secara kontinuitas dibaca dari teks sumber hingga akhir dari dokumen.Dokumen akan dibaca kata per kata, dan untuk
setiap
kata
akan
dibuat
n-gram-nya.
Sumber:
(http://digilib.ittelkom.ac.id/index.php?option=com_content&view=article&id=53 1:metode-n-gram&catid=20:informatika&Itemid=14).
Android merupakan sistem operasi berbasis Linux untuk telepon seluler (mobile) yang menyediakan platform terbuka (open source) sehingga para pengembang dapat menciptakan aplikasi sendiri. Tabel 1 Versi Android Versi
API Level
Distribusi
2.0.x / 2.1.x (Éclair)
7
24,5 %
2.2.x (Froyo)
8
65.9 %
2.3.x (Gingerbread)
10
4,0 %
3.x.x (Honeycomb)
11
0,3 %
10
Berdasarkan tabel di atas maka versi Android yang paling banyak digunakan adalah Froyo. Rancangan sistem untuk segmentasi ucapan dilakukan dengan memisahkan tiap huruf pada kata. Suara direkam lalu disegmentasikan tiap hurufnya dengan proses seperti diagram alir berikut.
Gambar 3 Diagram proses segmentasi ucapan Proses untuk mendapatkan parameter HMM yaitu: a.
Pengumpulan Data Data pelatihan yang digunakan adalah suara rekaman penulis yang mengucapkan kalimat-kalimat Bahasa Indonesia dan Bahasa Inggris tanpa penekanan (tanpa intonasi). Satu kalimat terdiri dari sekitar 7-13 kata dan suara rekaman akan disimpan dalam format WAV 16 bit 44.100 KHz mono.Penulisan kata-kata dalam bentuk kamus menggunakan sistem Arpabet dan mengabaikan tanda baca. 11
b.
Inisialisasi Parameter HMM Pada tahap ini akan dilakukan inisialisasi parameter HMM pada file-file yang dibutuhkan untuk training.
c.
Pelatihan Parameter HMM Dalam proses pelatihan ini parameter yang sudah didapatkan dari hasil inisialisasiparameterakan diestimasi sampai didapatkanerror terkecil.
d.
Penyimpanan Parameter HMM Penyimpanan parameter diperlukan karena parameter ini akan berfungsi untuk prosespengenalan kata pada handset Android.
Gambar 4 Diagram proses trainingparameter HMM Sequence diagram untuk speech to text versi Bahasa Indonesia dan versi Bahasa Inggris yaitu sebagai berikut:
12
Ucapkan Suara
Tekan tombol
Tampilkan Teks Bahasa Indonesia
“Tahan dan Bicara”
Tekan Tombol “Terjemahkan” Tampilkan Teks Bahasa Inggris
Gambar 6 Sequence diagram speech to text Bahasa Indonesia
Ucapkan Suara
Tekan tombol “Hold
Tampilkan Teks Bahasa Inggris
and Speak”
Tekan Tombol “Translate” Tampilkan Teks Bahasa Indonesia
Gambar 7Sequence diagram speech to text Bahasa Inggris Rancangan layar untuk aplikasi speech to text terdiri dari dua rancangan yaitu tampilan untuk versi Bahasa Indonesia dan versi Bahasa Inggris
13
Gambar 8Tampilan Layar
Gambar 9Tampilan Layar
Indonesian-English
English-Indonesian
Dalam membuat aplikasiAndroidspeech to textBahasa Indonesia dan Bahasa Inggris ini dibutuhkan perangkat keras (hardware) dan perangkat lunak (software) yang mendukung. a. Hardware 1. Laptop / PC. 2. Minimal RAM 2 GB untuk sistem operasi Windows 32 bit atau RAM 4 GB untuk sistem operasi Windows 64 bit. 3. Microphone. 4. HandsetAndroid (misalnya Samsung Galaxy Tab atau smartphone android lainnya).
14
b. Software 1. Ubuntu versi 10.04 2. EclipseClassic versi 3.7.1 untuk Windows 64 bit dan EclipseClassic 3.7.1 untuk Linux 64 bit 3. SDK (Software Development Kit)Android minimal versi 8 4. NDK (Native Development Kit) Android versi r5b 5. ADT (Android Development Tools) versi 0.9.7 6. Python versi 2.7.2 7. Perl versi 5.14.2 8. Kies Samsung untuk menghubungkan Eclipse dengan Samsung Galaxy Tab 9. jetAudio untuk konversi file suara dari format .wma ke format .wav 10. Pocketsphinx 0.7 11. PocketsphinxDemo 12. Sphinxbase 0.7 13. Sphinxtrain 1.0.7 14. An4 15. JDK 7 16. JRE 7 17. Web browser Mozilla Firefox Pada proses training Bahasa Indonesia, sepuluh kalimat diucapkan berulang hingga tujuh kali dengan total 70 kalimat yang terdiri dari 85 kosakata. Dari
15
seluruh kalimat dengan jumlah 775 kata terdapat 11 kata yang error dan tingkat akurasi training adalah 98.58%.
Hasil uji coba speech to text versi Bahasa Indonesia pada handsetAndroidSamsung Galaxy Tab 7, yaitu: • Jumlah kata yang dikenali = 78 kata •
Jumlah kata yang tidak dikenali = 7 kata
•
Persentase keakuratan =
. 100%
91.76%
Padaproses training Bahasa Inggristerdapatlima kalimat yang setiap kalimatnya terdiri dari 5-13 kata. Lima kalimat diucapkan berulang hingga 12 kali dengan total 60 kalimat yang terdiri dari 59 kosakata. Dari seluruh kalimat dengan jumlah 647 kata terdapat 7 kata yang ditambahkan, 3 kata yang dihilangkan dan 8 kata yang disubstitusi. Tingkat akurasi training adalah 98.58%.
Hasil uji coba speech to text versi Bahasa Inggris pada handsetAndroidSamsung Galaxy Tab 7, yaitu: •
Jumlah kata yang dikenali = 49 kata.
•
Jumlah kata yang tidak dikenali = 10 kata.
•
Persentase keakuratan =
. 100%
83.05%.
Hasil training suara dapat berbeda-beda walaupun jumlah kalimat dan file suara tetap sama karena perubahan parameter dan nilai-nilai variabel sangat 16
mempengaruhi hasil training yang akan berdampak pula pada hasil uji coba pengenalan suara. Penulis mengambil hasil training terbaik lalu dilakukan uji coba.
Setelah melihat hasil training dan hasil uji coba pada kedua versi bahasa, hasil pengenalan ucapan Bahasa Indonesia lebih baik dibanding pengenalan ucapan Bahasa Inggris. Hal ini terjadi karena beberapa faktor yaitu: - Rekaman suara versi Bahasa Inggris tidak semua dilakukan di ruang kedap suara (ruang rekaman khusus). - Kosakata agak sulit diucapkan karena harus mengikuti pola arpabet Inggris Amerika. - Terdapat beberapa kosakata yang pengucapannya hampir mirip sehingga sulit dikenali dengan baik oleh aplikasi.
Disamping itu masih terdapat kelemahan lainnya pada aplikasi speech to text ini yaitu keakuratan teks yang ditampilkan dapat menurun jika suara yang masuk bercampur dengan banyak noise (gangguan suara). Perbedaan intonasi dan cara pelafalan yang kurang mendekati suara pada saat training akan membuat aplikasi menampilkan teks yang salah. Hal ini menyebabkan pembicara terkadang harus mengulang pengucapannya untuk mendapatkan teks yang sesuai.
3.
Simpulan Dari implementasi dan evaluasi program aplikasi, maka dapat disimpulkan bahwa aplikasi speech to text Bahasa Indonesia dan Bahasa Inggris: 17
1.
Mudah digunakan tanpa memerlukan akses internet.
2.
Memudahkan bagi pengguna untuk belajar mengucapkan kata-kata sehari-hari dalam Bahasa Indonesia dan Bahasa Inggris.
3.
Metode Hidden Markov Model dapat digunakan untuk membuat aplikasi speech to text berbasis Android.
Saran dari penulis bagi para peneliti atau programmerlain untuk memperbaiki dan meningkatkan kualitas aplikasi speech to text Bahasa Indonesia dan Bahasa Inggris yaitu: 1. Perlu adanya variasi suara pria dan suara wanita. 2. Penambahan perbendaharaan kata, perekaman suara harus dilakukan di ruangan yang kedap suara agar tidak banyak noise yang ikut terekam dan harus menggunakan microphone yang kualitasnya bagus supaya suara terdengar lebih jelas. 3. Mengimplementasikan pengurangan noise pada aplikasi dengan mencari algoritma yang lebih baik selain metode Hidden Markov Model. 4. Menambah fitur bahasa-bahasa lain misalnya Bahasa Jepang, Bahasa Korea, dan lain-lain. 5. Menambah algoritma multiscreen sehingga aplikasi dapat tampil dengan baik di semua ukuran handset Android.
18
DAFTAR PUSTAKA
Anonymous.Android Beginners: NDK Setup Step by Step.(2010). Diperoleh 25 November 2011 dari http://mindtherobot.com/blog/452/android-beginners-ndksetup-step-by-step/ Anonymous.Setting up Automatic NDK Builds in Eclipse.Diperoleh 15 Desember 2011 dari.http://mobilepearls.com/labs/ndk-builder-in-eclipse/ Carnegie Mellon University. (2011). Building Pocketsphinx On Android. Diperoleh 20 November
2011
dari
http://cmusphinx.sourceforge.net/2011/05/building-
pocketsphinx-on-android/ Casacuberta, F., J.A. Sanchez, Vidal, E. (2011).Pattern Recognition Approaches to Machine
8
Translation.Diperoleh
September
2011
dari
http://web.iti.upv.es/~evidal/students/doct/ta/transp/t4mtS2S2p.pdf. Chou, Wu., Biing H. Juang. (2003). Pattern Recognition in Speech and Language Processing. Boca Raton: CRC Press. CMUSphinx.Training Acoustic Model For CMUSphinx. Diperoleh 16 Desember 2011 dari http://cmusphinx.sourceforge.net/wiki/tutorialam Cook, Stephen. (2002). Speech Recognition HOWTO. Diperoleh 10 Januari 2012 dari http://www.faqs.org/docs/Linux-HOWTO/Speech-Recognition-HOWTO.html EP., Swathi. (2011). Offline Speech Recognition With PocketSphinx.Diperoleh 10 Desember
2011
dari
http://swathiep.blogspot.com/2011/02/offline-speech-
recognition-with.html. Gales, Mark., Steve Young. (2007). The Application of Hidden Markov Models in Speech Recognition. Boston: now. Gouvêa,
Evandro.
(2008).
Robust
Group's
Open
Source
Tutorial.
URL
http://www.speech.cs.cmu.edu/sphinx/tutorial.html.Akses pada tanggal 16 Januari 2012. Hanafi,
Ahmad.
(2009).
Metode
N-gram.Diperoleh
20
Januari
2012
dari
http://digilib.ittelkom.ac.id/index.php?option=com_content&view=article&id=531 :metode-n-gram&catid=20:informatika&Itemid=14 19
Hermawan S., Stephanus. 2011. Mudah Membuat Aplikasi Android. Yogyakarta: Penerbit Andi. Lenzo, Kevin. The CMU Pronouncing Dictionary.Diperoleh 1 Desember 2011 dari http://www.speech.cs.cmu.edu/cgi-bin/cmudict. Lundsgaard, Mikael., Rasmussen, J.K., (2006). Jopspeech Embedded Java Speech Recognition SDK. Denmark: Copenhagen Business School. Noertjahyana, Agustinus, Rudy Adipranata. (2003). Implementasi Sistem Pengenalan SuaraMenggunakan SAPI 5.1 dan DELPHI 5.Diperoleh 19 Januari 2012 dari http://informatika.org/~rinaldi/Stmik/2009-2010/Makalah2009/MakalahIF30512009-050.pdf. Pradipta, Syafaat. (2009). Aplikasi Pengenalan Ucapan BerdasarkanSuku Kata Konsonan-Vokal Menggunakan Algoritma Hidden Markov Model.Diperoleh 29 Agustus
2011
dari
http://www.elektro.undip.ac.id/el_kpta/upload/L2F005581_MTA.pdf. Pressman, R. S. (2011). SoftwareEngineering a Practitioner’s Approach Seventh Edition. NewYork:McGraw-Hill. Ricky. (2004). Kamus Digital Dengar Tulis Ucap Bahasa Indonesia.Diperoleh 29 Agustus 2011 darihttp://eprints.undip.ac.id/25383/1/M_L2F_003_535.pdf. Srinivas, K.L., Pranav Jawale. (2011). Sphinx 3 Documentation.Diperoleh 20 Desember 2011 dari http://home.iitb.ac.in/~pranavj/daplabwork/SphinxDocumentationIITMumbai.pdf. Vaseghi, S. V. (2008). Advanced Digital Signal Processing and Noise Reduction Fouth Editon. West Sussex: John Wiley & Sons.
20