21
PERANCANGAN DAN IMPLEMENTASI APLIKASI PANDUAN BELAJAR MENGEJA BAHASA INDONESIA DENGAN HIDDEN MARKOV MODEL TEXT TO SPEECH DAN PENGENALAN KARAKTER OPTIS PADA ANDROID Rizaq Nanda Pratama, Astri Novianty ST.,MT. , Gelar Budiman ST.,MT. Fakultas Elektro dan Komunikasi Institut Teknologi Telkom Abstraksi Kemampuan untuk membaca dan menulis adalah salah satu modal utama siswa dalam menyerap dan mengembangkan ilmu yang diterima. Kemampuan baca tulis menjadi sangat vital dalam perkembangan kecerdasan manusia. Namun sayangnya, masih banyak anak-anak usia sekolah dasar yang masih mengalami kesulitan dalam hal baca tulis. Hal ini diperparah dengan kurang minatnya anak usia sekolah dasar dalam belajar dan lebih memilih bermain. Kurangnya akses ke tenaga pendidik yang bermutu dan berdedikasi dalam dunia pendidikan juga ikut turut andil dalam memperburuk angka buta huruf indonesia. Oleh karena itu, perlu adanya suatu terobosan dalam hal pendidikan, khususnya dalam pendidikan bahasa indonesia usia sekolah dasar. Salah satunya dengan membangun sebuah aplikasi mobile yang mempermudah pengguna dalam belajar mengeja kata-kata dalam bahasa indonesia. Aplikasi ini akan berjalan diatas platform android. Dengan memanfaatkan teknologi OCR untuk pengenalan image teks serta text to speech, sehingga pengguna bisa mengetahui bagaimana cara baca suatu kata-kata yang dia temui dengan cara mengambil gambarnya lalu akan diproses menjadi cara baca. Aplikasi ini akan menggunakan library OCR Tesseract serta tool Flite. Diharapkan keluaran dari aplikasi ini dapat membantu pengguna dalam mengeja kata-kata dalam bahasa indonesia, serta berlatih menulisnya. Hasil konversi dari citra ke teks amat dipengaruhi oleh kondisi saat pengambilan citra. Hasil pengujian mendapatkan tingkat akurasi hingga 93%. Sementara hasil sintetis suara masih dinilai jelek oleh pengguna karena masih menggunakan leksikon dan database suara bahasa inggris. Keyword : tesseract, flite, android, ocr, HMM Abstract The ability to read and write is one of the main requirement to absorb and develope knowledge that student have received. Literacy is vital in the development of human intelligence. But unfortunately, there are still many children of primary school age are still having difficulty with reading and writing. This is compounded by the lack of interest in primary school age children in learning and prefer to play. Lack of access to quality educators and dedicated in the world of education also contribute to exacerbating illiteracy Indonesia. Therefore, there needs to be a breakthrough in education, especially in Indonesian education of primary school age. One of them is by building

PERANCANGAN DAN IMPLEMENTASI APLIKASI PANDUAN BELAJAR MENGEJA BAHASA INDONESIA DENGAN HIDDEN MARKOV MODEL TEXT TO SPEECH DAN PENGENALAN KARAKTER OPTIS PADA ANDROID

Embed Size (px)

DESCRIPTION

PERANCANGAN DAN IMPLEMENTASI APLIKASI PANDUAN BELAJAR MENGEJA BAHASA INDONESIA DENGAN HIDDEN MARKOV MODEL TEXT TO SPEECH DAN PENGENALAN KARAKTER OPTIS PADA ANDROID

Citation preview

PERANCANGAN DAN IMPLEMENTASI APLIKASI PANDUAN BELAJAR MENGEJA BAHASA INDONESIA DENGAN HIDDEN MARKOV MODEL TEXT TO SPEECH DAN PENGENALAN KARAKTER OPTIS PADA ANDROIDRizaq Nanda Pratama, Astri Novianty ST.,MT. , Gelar Budiman ST.,MT.Fakultas Elektro dan Komunikasi Institut Teknologi TelkomAbstraksiKemampuan untuk membaca dan menulis adalah salah satu modal utama siswa dalam menyerap dan mengembangkan ilmu yang diterima. Kemampuan baca tulis menjadi sangat vital dalam perkembangan kecerdasan manusia. Namun sayangnya, masih banyak anak-anak usia sekolah dasar yang masih mengalami kesulitan dalam hal baca tulis. Hal ini diperparah dengan kurang minatnya anak usia sekolah dasar dalam belajar dan lebih memilih bermain. Kurangnya akses ke tenaga pendidik yang bermutu dan berdedikasi dalam dunia pendidikan juga ikut turut andil dalam memperburuk angka buta huruf indonesia.Oleh karena itu, perlu adanya suatu terobosan dalam hal pendidikan, khususnya dalam pendidikan bahasa indonesia usia sekolah dasar. Salah satunya dengan membangun sebuah aplikasi mobile yang mempermudah pengguna dalam belajar mengeja kata-kata dalam bahasa indonesia.Aplikasi ini akan berjalan diatas platform android. Dengan memanfaatkan teknologi OCR untuk pengenalan image teks serta text to speech, sehingga pengguna bisa mengetahui bagaimana cara baca suatu kata-kata yang dia temui dengan cara mengambil gambarnya lalu akan diproses menjadi cara baca.Aplikasi ini akan menggunakan library OCR Tesseract serta tool Flite. Diharapkan keluaran dari aplikasi ini dapat membantu pengguna dalam mengeja kata-kata dalam bahasa indonesia, serta berlatih menulisnya.Hasil konversi dari citra ke teks amat dipengaruhi oleh kondisi saat pengambilan citra. Hasil pengujian mendapatkan tingkat akurasi hingga 93%. Sementara hasil sintetis suara masih dinilai jelek oleh pengguna karena masih menggunakan leksikon dan database suara bahasa inggris.Keyword : tesseract, flite, android, ocr, HMMAbstractThe ability to read and write is one of the main requirement to absorb and develope knowledge that student have received. Literacy is vital in the development of human intelligence. But unfortunately, there are still many children of primary school age are still having difficulty with reading and writing. This is compounded by the lack of interest in primary school age children in learning and prefer to play. Lack of access to quality educators and dedicated in the world of education also contribute to exacerbating illiteracy Indonesia.Therefore, there needs to be a breakthrough in education, especially in Indonesian education of primary school age. One of them is by building a mobile application that help user to learn to spell words in Indonesian.This application will be running on android platform. By utilizing OCR technology for image text recognition and text to speech, so that the user can learn how to read the words he encounters by taking a picture and then be processed into pronunciation.This application will use the Tesseract OCR library and tool Flite.The expected output from this application can help users to spell words in Indonesian.Results from image to text conversion are heavily influenced by the current state of the image retrieval. The test results get up to 90% accuracy rate. While the results of the synthetic voice is still considered ugly by users because it still uses English lexicon and voice database.

Keyword: Tesseract, flite, android, OCR, HMM

1. PENDAHULUANKemampuan baca dan menulis merupakan tonggak besar pencapaian peradaban umat manusia yang menandakan peralihan dari masa prasejarah ke masa modern. Begitu pentingnya peran tulisan di kehidupan sehari-hari manusia dari komunikasi, perdagangan, pendidikan, hiburan dan lain-lain.Namun setelah beribu-rabu tahun ditemukannya tulisan pertama, angka buta huruf di dunia masih cukup tinggi, khususnya di Indonesia. Menurut data Kementerian Pendidikan Indonesia, angka buta huruf Indonesia mencapai 8.5 juta jiwa, 5.1 juta diantaranya adalah perempuan, tentunya angka ini akan lebih besar jika dibandingkan dengan kondisi nyata di lapangan.Pemerataan pendidikan yang didalamnya tercakup kemampuan baca dan menulis telah menjadi agenda bersama PBB melalui Millenium Development Goals. Berbagai pihak tentunya diharapkan turut ambil bagian dalam misi bersama ini.Melihat nilai urgenitasnya yang begitu tinggi tentunya menjadi salah satu pendorong utama untuk membuat sebuah solusi untuk memberantas buta huruf khususnya di Indonesia. Salah satunya dengan pembuatan sebuah aplikasi untuk membantu mengeja kata-kata dalam bahasa Indonesia.Dalam tugas akhir ini, akan dibangun sebuah aplikasi yang mampu memproses gambar yang ditangkap melalui kamera dan memprosesnya menjadi pelafalan dan ejaan dalam bahasa Indonesia.2. DASAR TEORI2.1 Bahasa IndonesiaBahasa Indonesia merupakan bahasa resmi Indonesia sekaligus sebagai bahasa persatuan. Penggunaannya sendiri sebagai bahasa resmi ditetapkan pada tanggal 18 Agustus 1945 oleh PPKI. Hingga saat ini, Bahasa Indonesia merupakan bahasa yang hidup, yang terus menghasilkan kata-kata baru, baik melalui penciptaan maupun penyerapan dari bahasa daerahdanbahasa asing.Meskipun dipahami dan dituturkan oleh lebih dari 90% warga Indonesia, Bahasa Indonesia bukanlahbahasa ibubagi kebanyakan penuturnya. Sebagian besar warga Indonesia menggunakan salah satu dari 748 bahasa yang ada di Indonesia sebagaibahasa ibu.Penutur Bahasa Indonesia kerap kali menggunakan versi sehari-hari (kolokial) dan/atau mencampuradukkan dengan dialek Melayu lainnya atau bahasa ibunya. Meskipun demikian, Bahasa Indonesia digunakan sangat luas di perguruan-perguruan, di media massa, sastra, perangkat lunak, surat-menyurat resmi, dan berbagai forum publik lainnya,sehingga dapatlah dikatakan bahwa Bahasa Indonesia digunakan oleh semua warga Indonesia.

2.2 Ejaan Yang Disempurnakan (EYD)Ejaan Yang Disempurnakan (EYD) adalah ejaan resmi Bahasa Indonesia yang berlaku saat ini. Ejaan ini mulai digunakan dari tahun 1972 menggantikan ejaan yang dipakai sebelumnya yaitu Ejaan Republik.Pada 23 Mei 1972, sebuah pernyataan bersama ditandatangani oleh Menteri PelajaranMalaysia Tun Hussein Onn dan Menteri Pendidikan dan Kebudayaan Indonesia, Mashuri. Pernyataan bersama tersebut mengandung persetujuan untuk melaksanakan asas yang telah disepakati oleh para ahli dari kedua negara tentang Ejaan Baru dan Ejaan Yang Disempurnakan. Pada tanggal16 Agustus 1972, berdasarkan Keputusan Presiden Nomor 57 Tahun 1972, berlakulah sistem ejaan Latin bagibahasa Melayu("Rumi" dalam istilah bahasa Melayu Malaysia) danbahasa Indonesia. Di Malaysia, ejaan baru bersama ini dirujuk sebagaiEjaan Rumi Bersama(ERB).Selanjutnya pada tanggal 12 Oktober 1972, Panitia Pengembangan Bahasa Indonesia Departemen Pendidikan dan Kebudayaan menerbitkan buku "Pedoman Umum Ejaan Bahasa Indonesia yang Disempurnakan" dengan penjelasan kaidah penggunaan yang lebih luas. Setelah itu, Menteri Pendidikan dan Kebudayaan dengan Keputusan Menteri Pendidikan dan Kebudayaan tanggal 27 Agustus 1975 Nomor 0196/U/1975 memberlakukan "Pedoman Umum Ejaan Bahasa Indonesia yang Disempurnakan" dan "Pedoman Umum Pembentukan Istilah".2.3 Suku KataSetiap kata terdiri atas satu segmen atau lebih. Di dalam kajian fonologi segmen disebut suku. Suku kata merupakan bagian atau unsur pembentuk suku kata. Setiap suku paling tidak harus terdiri atas sebuah bunyi vokal atau merupakan gabungan antara bunyi vokal dan konsonan.Bunyi vokal di dalam sebuah suku kata merupakan puncak penyaringan atau sonority, sedangkan bunyi konsonan bertindak sebagai lembah suku. Di dalam sebuah suku hanya ada sebuah puncak suku dan puncak ini di tandai dengan bunyi vokal. Lembah suku yang di tandai dengan bunyi konsonan bisa lebih dari satu jumlahnya. Bunyi konsonan yang berada di depan bunyi vokal disebut tumpu suku, sedangkan bunyi konsonan yang berada di belakang bunyi vokal disebut koda suku.Di dalam bahasa Indonesia ditemukan kata-kata yang setiap sukunya bisa hanya berupa sebuah bunyi vokal, bunyi vokal dengan bunyi semi konsonan, satu vokal dengan sebuah bunyi semi konsonan, satu vokal dengan sebuah bunyi konsonan, dan sebuah vokal dengan dua buah bunyi konsonan. Berdaserkan ketentuan inilah, maka didalam bahasa indonesia ditemukan beberapa jenis pola persukuan. Jenis jenis vola persukuan itu dapat dilihat dibawah ini.a) Suku kata berpola V, suku kata ini dibangun olh sebuah bunyi vokal saja sebagai puncakContoh :I + bu [ I ] + [ bu ]b) Suku kata berpola VK, suku ini dibangun oleh sebuah bunyi vokal sebagai puncak dan sebuah bunyi konsonan sebagai kode.Contoh :an + tar [ an ] + [ tar ]c) Suku kata berpola KV , suku ini dibangun oleh sebuah bunyi konsonan, sebagai tumpu suku dan sebuah bunyi vokal sebagai puncak.Contoh :Pu + lang [ pu ] + [ lAn ]d) Suku kata yang berpola KVK , suku ini dibangun oleh sebuah bunyi konsonan sebagai tumpu suku, sebuah bunyi vokal, sebagai puncak sebuah bunyi konsonan sebagai koda suku.Contoh :Pan + tat [ pan ] + [ tat ]e) Suku kata yang berpola KKV , suku ini dibangun oleh dua buah bunyi konsonan sebagai tumpu suku, dan sebuah bunyi vokl sebagai puncak suku.Contoh:Dra + ma [ dra ] + [ ma ]f) Suku kata yang berpola KKVK, suku ini dibangun oleh dua buah bunyi konsonan yang bertindak sebagaitumpu suku, sebuah bunyi vokal sebagai puncaknya dan sebuah bunyi konsonan sebagai koda suku.Contoh :Prak + tik [ prak ] + [ tIk ]g) Suku kata yang berpola KV, suku ini dibangun oleh sebuah bunyi semi konsonan sebagai tumpu suku, dan sebuah bunyi vokal sebagai puncak.Contoh :Wa + jah [ wa ] + [ jah ]h) Suku kata yang berpola KVK, yaitu sebuah suku yang di bangun oleh bunyi semi konsonan sebagai tumpu suku, sebuah bunyi vokal sebagai puncak dan sebuah bunyi konsonan sebagai koda suku. Hal ini dapat dilihat dalam contoh di bawah ini.Contoh :Wak + tu [ wak ] + [ tu ]i) Suku kata yang berpola KKVKK, yaitu suku kata yang dibangun oleh dua buah bunyi konsonan yang bertindak sebagai tumpu suku, sebuah bunyi vokal sebagai sonarity dan dua buah bunyi konsonan yang bertindak sebagai koda suku. Hal ini dapat dilihat pada contoh berikut.Contoh :Trans + mi + gra + si [ trans ] + [ mi ] + [ gra ] + [ si ]2.4 Pengenalan Karakter OptisPengenalan Karakter Optis / Optical Character Recognition (OCR) adalah sebuah sistem yang menyediakan kemampuan pengenalan alfanumerik pada teks tercetak maupun tertulis dengan cara menscan teks tersebut. (Sihar Lumbantobing,Nachrowi,Wendi Hartono, 2001).Dengan OCR, teks tertulis bisa diubah dalam bentuk data teks digital dengan cepat, sehingga lebih menghemat waktu dan biaya dalam proses konversi data yang biasanya dilakukan secara manual.Proses OCR secara besar terbagi menjadi 3 proses utama, yaitu :a. Documment scanning/capturingb. Recognizing processc. Verifying processTerdapat banyak pustaka/tools yang tersedia di pasaran. Salah satunya adalah Tesseract OCR dari Google. Pada awalnya tesseract ocr dikembangkan oleh HP-UX pada tahun 1985-1994 dan ditujukan untuk mesin pemindai desktop. Namun pustaka ini tidak pernah digunakan pada produk-produk HP, dan pada tahun 2005 berubah menjadi project open source.Secara umum, cara kerja Tesseract OCR dapat dilihat dari diagram dibawah ini.

Gambar 2.1 Proses konversi teks pada Tesserac OCR2.5 Text to SpeechText to speech (TTS) adalah sebuah sistem yang mengubah text menjadi suara ucapan manusia yang diproduksi secara artificial. Suara yang dihasilkan dapat disintetis dengan berbagai cara, diantaranya dengan mengkonkatenasi (menyambungkan) potongan unit suara menjadi sebuah pelafalan kata-kata. Ada pula yang menggunakan rekaman suara penuh, umumnya digunakan pada sistem yang terbatas penggunaannya misal mesin absensi, jam digital. Selain itu terdapat pula yang proses produksi suaranya benar-benar sintesis dengan menggunakan parameter-parameter tertentu.Penerapan text to speech sendiri sangat luas, salah satunya adalah sebagai screen reader pada untuk orang-orang yang memiliki keterbatasan visual, voice assitant pada smartphone ( siri, svoice), dan masih banyak lagi lainnya.Secara umum, TTS terbagi menjadi dua bagian, front end dan back end. Tugas bagian front end adalah mengubah text masukan menjadi symbolic linguistic representation, di bagian ini terdapat proses analisa teks dan menambah transkripsi fonetik tiap kata-kata. Secara garis besar terdapat proses-proses dibawah ini (Taylor, 2009)1. Pre-Processing : identifikasi genre teks, encoding karakter, multi-lingual.2. Sentence Splitting : Segmentasi dokumen teks menjadi list kalimat.3. Tekenization : Segmentasi tiap-tiap kalimat menjadi beberapa token.4. Text Analysisa. Semiotic classification : klasifikasi tiap-tiap token menjadi salah satu kelas-kelas semiotic yang diantaranya natural language, singkatan, kuantitas, tanggal, waktu dll.b. Decoding/parsing : mencari identitas dari token menggunakan decoder atau parser yang sesuai dengan kelas semiotiknyac. Verbalisation : konversi non-natural language menjadi kata-kata.5. Homograph resolution : Mendeterminasi kata-kata yang tepat untuk token language yang ambigu.6. Parsing : Menambahkan struktur sintaksis ke kalimat.7. Prosody Prediction : memprediksikan bentuk prosody dari tiap teks.Sementara bagian back end berfungsi untuk mengubah keluaran front end menjadi suara, bagian ini sering disebut dengan synthesizer.

Gambar 2.2 Proses pada text to speechTerdapat dua teknik utama dalam produksi suara sintetis, yaitua. Concatenative SynthesisPrinsip kerja utama dari teknik ini adalah menggabungkan potongan unit suara yang telah direkam. Terdapat 3 sub tipe Concatenative Synthesis, yaitu1. Unit Selection.2. Diphone Synthesis.3. Domain-specific Synthesis.

b. Formant SynthesisFormnat synthesis tidak menggunakan rekaman suara pada saat runtime produksi suara. Melainkan murni disintetis dengan berdasarkan parameter-parameter yang telah didapatkan saat training data. Terdapat beberapa sub tipe , antara lain1. Articulory Synthesis.2. HMM based Synthesis.3. Sinewave Synthesis.2.6 Hidden Markov Model (HMM) based TTSHidden Markov Model (HMM) adalah sebuah finite state machine yang mengenerate sequence waktu pengamatan diskrit. Pada unit waktu (misal frame), HMM mengubah state tergantung distribusi probabilitas transisi state, dan lalu menghasilkan pengamatan Ot pada waktu t tergantung kepada keluaran distribusi probabilitas pada current state. Sehingga, HMM merupakan sebuah stochastic random process model. (Masuko, 2002)Sebuah N-state HMM didefinisikan sebagai state transition probability distribution , output probability distribution dan initial state probability distribution . Untuk lebih sederhananya dapat dituliskan sebagai berikut = (A,B,)HMM dapat direpresentasikan dalam diagram state dibawah ini

Gambar 2.3 State Diagram HMM left to rightSistem HMM based TTS terdiri dari bagian training dan sintetis. Pada bagian training, model statistic HMM mewakili spectrum, eksitasi, dan durasi state dari context-dependent speech unit. Setiap HMM model memiliki state transisi kiri ke kanan tanpa skip, seperti ang diperlihatkan pada gambar di atas. Spektrum dan frekeunsi dasar F0 ( misalnya pitch) bergantung pada bentuk vocal tract/larynx dan sumber eksitasi suara. Untuk analisa spectrum, digunakan metode mel-cepstrum. (Sang-Jin Kim, Jong-Jin Kim, and Minsoo Hahn , 2006 )Pada bagian sintesis, masukan dari sistem adalah sequence label kontekstual dari teks yang dihasilkan oleh front-end. Format yang digunakan harus sama dengan yang digunakan pada saat training HMM. Pertama-tama, unit speech HMM yang berkorespondensi dengan masukan dikonkatenasi, lalu durasi state untuk sequence HMM dideterminasikan. Setelah parameter speech seperti mel-cepstral dan nilai F0 dalam skala log degenerate dari sequence HMM, suara keluaran disintetis dengan MLSA (Mel Log Spectrum Approximation).

Gambar 2.4 Arsitektur sistem TTS HMM2.9 Flite TTSPada sistem operasi Android, sudah terdapat sistem TTS, yaitu Pico TTS, namun karena kendala kurang ekstensibel terutama dari dukungan database Bahasa Indonesia, maka dipilihlah Flite TTS sebagai alternative.Flite menawarkan sebuah sistem TTS yang efisien dan dengan footprint yang kecil. Flite didesain untuk embedded system seperti PDA, Smartphone dan juga server-server yang harus melayani sintetis suara untuk beberapa port sekaligus. (Alan W Black,Kevin A. Lenzo, 2009) Flite ditulis dengan menggunakan ANSI C dan didesain agar portable di hampir semua platform termasuk hardware minimalis. Flite sendiri bisa didownload di http://www.cmuflite.orgFlite adalah library sintesis suara, sehingga dapa digunakan untuk berbagai program, termasuk pada Android. (S. Saychum, A. Thangthai et all, 2009) Desain dari Flite sendiri banyak didasarkan pada TTS Festival (http://www.festvox.org/festival).3.PERANCANGAN SISTEM DAN IMPLEMENTASI

Tujuan dari perancangan sistem ini adalah untuk mempermudah pengguna dalam mengeja sebuah kata atau kalimat yang ada di sekitarnya dengan menggunakan teknologi pengenalan karakter optis sebagai inputnya dan text to speech sebagai outputnya.3.1 Model Sistem

Gambar 3.1 Desain umum sistem

Secara umum sistem terbagi menjadi beberapa komponen pokok yang saling terhubung, yaitu antara lain :1. Sumber CitraMasukan dari sistem berupa citra teks yang ditangkap melalui kamera handset Android pengguna yang selanjutnya akan diolah.2. Database SuaraKomponen ini mengandung parameter-parameter yang diperlukan unuk sintetis suara menggunakan HMM text to speech. Database suara didapatkan sebagai hasil pada fase training HMM.3. Android DeviceSistem berjalan pada handset yang menggunakan sistem operasi Android. Pada tugas akhir ini, penulis membangun sistem pada sebuah handset IMO S78 dengan RAM 512 MB serta CPU ARM v7 1 GHz Single Core pada sistem operasi Android 2.3.63.2 Gambaran Umum Sistem

Sistem Pengenalan Karakter OptisSistem Text to SpeechSuara ejaanGambar teksText Analyzer

Gambar 3.2 Arsitektur umum sistemDari bagan diatas, sistem terdiri dari 3 buah subsistem, yaitu subsistem OCR, subsistem Text analyzer, dan subsistem HMM text to speech. Adapun penjelasan detail mengenai tiap-tiap subsistem adalah sebagai berikut3.2.1 Subsistem OCRMasukan dari sistem yang dibangun pada Tugas Akhir ini adalah sebuah citra berisi teks yang akan dibaca.Citra diambil melalui kamera pada handset Android. Secara umum, subsistem OCR terdiri atas:1. Pengambilan CitraProses pengambilan citra dilakukan dengan memanfaatkan kamera pada handset android, melalui intent camera. Pada proses ini, kualitas kamera amat menentukan hasil yang akan dihasilkan oleh subsistem OCR.2. PreProcessingCitra dari yang ditangkap oleh kamera kemudian akan melalui tahap preprocessing. Di dalamnya terdapat proses cropping, rotasi, serta konversi format encoding. Citra hasil preprocessing akan menjadi input tahap pengenalan teks.3. `Pengenalan TeksProses ini memanfaatkan Google Tesseract API sebagai engine proses pengenalan teks. Engine ini berjalan secara native pada platform Android dengan menggunakan bantuan teknologi Java Native Interface (JNI) untuk berkomunikasi dengan layer Java di atasnya

citra

Line & word finding

Static Character Classiefier

Teks

Adaptive classifierLinguistic analysis

Gambar 3.3 Bagan alur proses OCRa. Line and Word FindingTerdapat empat tahap pada proses ini, yaitu line finding, baseline fitting, fixed pitch detection and chopping serta yang terakhir proportional word finding.Pada tahap line finding diasumsikan citra sudah melawati tahap analisa layout halaman dan mempunyai ukuran karakter yang hampir serupa. Sebuah filtering sederhana menghilangkan drop caps, yaitu karakter pertama dari sebuah artikel pada surat kabar atau majalah yang ditulis dengan ukuran huruf yang jauh lebih besar dari ukuran huruf standar pada artikel tersebut . Tinggi huruf diaproksimasi dengan menggunakan median ketinggian dari setiap huruf. Kemudian citra difilter menjadi potongan-potongan perbaris yang disebut blob. Tiap-tiap blob lalu ditempatkan pada sebuah garis, kemudian diestimasikan baseline dari tiap-tiap blob menggunakan least median of square fit.Tahap baseline fitting mempersisikan posisi baseline hasil tahap sebelumnya dengan metode quadratic spline. Tiap blob akan dipartisi menjadi beberapa grup. Lalu dilakukan proses qudratic spline pada grup partisi yang paling padat. Dari qudratic spline akan didapatkan baseline blob yang lebih presisi.Fixed pitch Detection and Chopping, pada tahap ini dilakukan proses segmentasi karakter berdasarkan celah antar karakter. Proportional Word Finding berfungsi untuk melakukan pengenalan karakter pada karakter-karakter yang susah dibedakan batas nyata diantaranya. Untuk itu dilakukan pemisahan berdasarkan kata-kata. b. Static Character ClassiefierProses klasifikasi karakter menggunakan aproksimasi poligonal. Outline dari gambar yang akan diproses dibentuk menjadi poligonal lalu dibandingkan dengan data training. Dari proses pembandingan akan muncul beberapa list karakter yang kemungkinan besar cocok. c. Linguistic AnalysisSelain dengan pengenalan tiap karakter,sistem juga menggunakan analisa linguistic untuk mempercepat proses pengenalan. Setiap sistem menemukan segmentasi kata, sistem akan melakukan proses lookup ke list kata-kata pada data training.d. Adaptive ClassifierSama seperti static classifier, adaptive classifier juga menggunakan approksimasi poligonal. Namun bedanya, adaptive classifier menggunakan data training dari keluaran static classifier. Serta menggunakan normalisasi baseline, sehingga lebih mampu dalam membedakan pola pencetakan teks seperti superscript, sub script ataupun lowercase. Luaran dari tahap ini menjadi hasil akhir dari subsitem OCR.Keluaran dari sistem adalah berupa teks raw yang masih perlu diproses sebelum disintetis oleh sub sistem HMM text to speech.3.2.2 Subsistem Text Analyzer Keluaran dari subsistem OCR masih banyak mengandung noise dan bahasa tidak natural (seperti angka, singkatan dll.), untuk itu dilakukan tahap text analyzer, adapun tahap-tahapnya dapat dilihat dari bagan alur di bawah ini

Mulai

selesaiTeks hasil OCR

Text untuk proses sintetis suara

Text filtering

Pemisahan suku kataFiltering angka & simbol

Gambar 3.4 Bagan alur proses text analyzer1. Text FilteringPada tahap ini dilakukan proses filtering terhadap teks hasil OCR, pemfilteran dilakukan untuk menghilangkan karakter tidak standar seperti misal , , yang muncul karena adanya noise pada proses pengambilan gambar. Karakter yang bukan termasuk alfabet a s.d. z dan angka 0 s.d. 9 akan dihilangkan. Hal ini dilakukan karena keterbatasan pada proses sintetis suara. 2. Filtering angkaAngka termasuk bahasa tidak natural, perlu adanya pemetaan antara angka dengan pengucapannya. Angka juga mempunyai bentuk-bentuk khusus seperti mata uang (currency), nomor telepon, penanggalan, bilangan biasa dll. Oleh karena itu diperlukan perlakuan khusus terhadap angka.Secara umum proses dalam bagian ini adalah sebagai berikut, pertama-tama angka dikelompokkan menjadi blok-blok dengan panjang tiga karakter. Kemudian blok-blok ini dipetakan menjadi pelafalannya. Kemudian tiap blok akan kembali disambungkan dengan blok-blok lain sesuai dengan tingkatnya (ribu,juta,milyar).3. Pemisahan suku kataTeks hasil tahap sebelumnya telah siap untuk disintetis, namun karena dalam sistem ini akan memunculkan pengejaan maka diperlukan sebuah proses untuk memisahkan ejaan suku kata dari tiap kata-kata yang dihasilkan. Proses pemecahan suku kata yang penulis terapkan menggunakan metode finite state automata (FSA), dimana terdapat tiga buah FSA yang masing masing berfungsi untuk mengenali suku kata dengan pola-pola tertentu.Tahap awal dari proses ini adalah memecah kalimat menjadi kata-kata. Secara umum pada kasus bahasa Indonesia (dan bahasa dengan abjad latin lainnya), pemisahan kata dari tiap kalimat cukup berdasarkan tanda spasi ( )Tahap selanjutnya adalah tahap fsa tingkat 1. Pada tahap ini dilakukan pengelompokkan suku kata. Sehingga akan dikenali suku kata dengan pol v, k, dan kv. Sebagai contoh kata anda akan dipisah kan menjadi [a,n,,da]. Adapun sistem dimodelkan berdasarkan model finite state automota yang diajukan oleh Basuki Thomas (Thomas, 2000) dengan beberapa pennyederhanaan dan penyesuain. Penyederhanaan yang dilakukan adalah dengan memfilter konsonan dengan dua karakter seperti ny,ng,sy,kh, gr menjadi simbol pengganti pada tahap sebelumnya. Model FSA yang penulis pakai adalah sebagai berikut.

Gambar 3.5 Diagram Transisi FSA 1Keluaran dari FSA 1 akan menjadi masukan bagi FSA 2. Pada FSA dua akan dikenali suku kata dengan pola V, VK, VKK, KV,KVK, KKV, KKVK, KKKV, KKKVK. Adapun model FSA 2 adalah sebagai berikut.

Gambar 3.6 Diagram Transisi FSA 2Output dari FSA 2 akan menjadi masukan bagi FSA 3. Pada tahap ini suku kata dengan pola VKK, KVKK dan KKVKK akan dapat dikenali. Adapun model FSA yang digunakan pada tahap ini adalah sebagai berikut.

Gambar 3.7 Diagram Transisi FSAKeluaran dari FSA tingkat ini adalah hasil akhir dari sub sistem text analyzer yang akan menjadi masukan bagi sub sistem HMM Text to Speech.3.2.3 Subsistem HMM Text to SpeechPada tugas akhir ini, penulis memanfaatkan pustaka Flite dan HTS Engine untuk proses sintetis suara. Kedua pustaka ini ditulis dalam bahasa C yang ditujukan untuk penggunaan di lingkungan linux/unix, untuk itu, sebelum bisa digunakan dalam proyek android perlu adanya proses porting kedua library ini. Adapun proses porting penulis secara detail pada lampiran.Adapun pustaka dan database voice yang digunakan untuk membangun sub sistem ini adalah sebagai berikut.a. Flite+hts_engine 1.00b. Flite 1.3c. HTS engine API 1.02d. Database hts_voice_cmu_us_arctic_slt 1.01Secara umum proses dalam blok ini adalah sebagai berikut.a. Inisialisasi enginePada tahap ini, sebuah instance engine HMM diinisialisasi terlebih dahulu sebelum digunakan dalam proses sintetis. Pada proses inisialisasi ini disertakan parameter-parameter umu yang akan digunakan untuk proses sintetis, diantaranya adalah sampling rate, ukuran buffer audio, threshold MSD, log gain serta bobot untuk koefisien mel-cepstral dan F0.b. Load database voicePada tahap ini, engine yang telah diinisialisai diperintah untuk memuat database voice yang akan digunakan pada proses sintetis. Database ini nantinya akan menjadi acuan proses HMM pada saat sintetis.Database voice ini merupakan hasil training HMM dari database cmu_artic_us yang dilatih menggunakan HTK. Database ini berupa decision tree serta fungsi kepadatan probabilitas (probability density function/PDF) masing masing dari durasi, mel-cepstrall koefisien dan F0. c. Konversi teks ke sekuens labelProses konversi ini dilakukan dengan menggunakan pustaka Flite. Flite mengubah teks masukan menjadi rangkaian label. Yang dimaksud dengan label disini adalah representasi tiap fonem yang terkandung dalam sebuah teks. Proses ini masih menggunakan data leksikon dan fonem dalam bahasa inggris agar sesuai dengan database voice yang masih dalam bahasa inggris juga. Hal ini menyebabkan terdapat beberapa fonem/difon dalam bahasa indonesia yang tidak dapat diproduksi oleh sistem. Misal fonem e (sepert pada setelah).d. HMM generationPada tahap ini, akan dibentuk sebuah rangkaian HMM berdasarkan rangkain label yang diproduksi tahap sebelumnya. Rangkain HMM yang dihasilkan berasal dari database yang pada tahap sebelumnya telah di load. Proses ini dilakukan secara internal oleh pustaka HTS_engine.e. Generate state duration, mel cepstral coefficient and F0 based on HMMDari rangkaian HMM yang dibentuk akan dideterminasi state duration, koefisien mel-cepstral dan frekuensi dasar F0. Proses ini dilakukan berdasarkan decision tree yang sebelumnya telah di load oleh engine. f. Sintetis suara menggunakan MLSA filterDari yang dihasilkan oleh tahap sebelumnya, akan disintetis suara dari koefisien mel-cepstral menggunkan Mel Log Spectrum Approximation (MLSA) filter. Sementara itu f0 akan digunakan sebagai frekuensi dasar suara yang akan dihasilkan. Untuk lebih jelasnya dapat dilihat pada gambar berikut

Gambar 3.8 Proses Sintetis Suara MLSA filter Hasil dari sintetis akan disimpan dalam sebuah file wav yang nantinya akan diputar oleh instance MediaPlayer Android.Tahap d,e dan f secara implisit dilakukan oleh pustaka HTS Engine saat pemanggilan method flite_hts_engine_synthesize().

3.3 Perancangan SistemDesain sistem dirancang dengan menggunakan bantuan bahasa Unified Modelling Language (UML). Adapun diagram UML yang digunakan antara lain adalah use case diagram, class diagram, dan activity diagram.3.3.1 Use Case DiagramDari sisi pengguna, sistem dapat dilihat sebagai berikut

Gambar 3.10 Use Case Diagram sistem

3.3.2 Class DiagramSecara umum, aplikasi dibagi menjadi 6 package yang ditunjukan oleh class diagram dibawah ini.Pengelompokan kode sumber kedalam package-package dilakukan berdasarkan fungsionalitasnya masing masing. Penjelasannya adalah sebagai berikut1. Package com.rnp.flitePackage ini berisi Application Programming Interface (API) untuk mengakses dan melakukan operasi terhadap HTS Engine serta Flite.2. Package com.yuk.bacaPackage ini merupakan package utama yang berisi GUI dari aplikasi. Di dalamnya terdapat alur kerja aplikasi serta pemrosesan masukan dari pengguna.3. Package com.yuk.baca.adapterClass dalam package ini berfungsi untuk proses pemetaan data dalam pembuatan listview dan gridview pada GUI4. Package com.yuk.baca.databasePackage ini mengandung class yang berfungsi untuk mengontrol operasi pada database.5. Package com.yuk.baca.lang.utilPackage ini berisi kelas-kelas untuk operasi yang berkaitan dengan pemrosesan teks.

3.2.1.1 Class Diagram MainActivityDiagram ini menampilkan relasi yang ada pada kelas MainActivity. Kelas ini merupakan kelas utama yang menghubungkan fungsionalitas yang ada pada aplikasi ini.

Gambar 3.11 Class Diagram MainActivity

3.2.1.2 Class Diagram CamActivityClass Diagram berikut memperlihatkan relasi kelas-kelas yang digunakan dalam proses konversi citra ke teks serta pengolahan teks

Gambar 3.12 Class Diagram Proses OCR

3.2.1.3 Class Diagram SukuKataPada diagram berikut ditunjukkan relasi antar kelas dalam ketika proses produksi suara oleh aplikasi

Gambar 3.13 Class Diagram SukuKata3.3.3 Activity DiagramAdapun alur proses secara garis besar dari sistem adalah sebagai berikut

Gambar 3.14 Activity Diagram sistem3.4 Kebutuhan SistemPada proses perancangan dan implementasi tugas akhir ini dibutuhkan perangkat keras dan perangkat lunak minimum agar bisa berjalan. Adapun kebutuhannya adalah sebagi berikut.3.4.1 Kebutuhan Perangkat KerasUntuk menjalankan aplikasi ini dibutuhkan sebuah handset Android dengan spesifikasi sebagai berikut :1. Layar berwarna 256K2. Random Access Memmory 512 MB3. CPU 1 GHz.4. Display ukuran HVGA (320 px x 480 px)3.4.2 Kebutuhan perangkat kerasSedangkan kebutuhan perangkat lunak dalam membangun aplikasi ini antara lain adalah.1. Sistem Operasi Android 2.3.62. Android Developer Tools v21.013. Android Software Development Kit (SDK) 21.14. Android Native Development Kit (NDK) r8e5. Java Development Kit (JDK) 1.73.5 Pembuatan ProgramProgram ditulis dalam bahasa Java, XML dan C. Bahasa Java menjadi bahasa pemrograman utama pada aplikasi ini. Bahasa ini digunakan sebagai bahasa utama dalam membangun logika aplikasi serta interaksi antar komponen program. XML digunakan untuk mempermudah pengembang dalam mendefinisikan layout tampilan dari aplikasi.Android juga dapat menggunakan bahasa C/C++ dalam pemrogramannya. Penggunaan C/C++ menawarkan performa eksekusi yang lebih tinggi karena berjalan langsung pada level OS tanpa melalui mesin virtual Dalvik seperti program yang ditulis dengan bahasa Java.Engine OCR dan HMM text to speech ditulis dalam bahasa C/C++, oleh karena itu untuk dapat mengintegrasikan dalam aplikasi android diperlukan proses porting dan compiling untuk arsitektur ARM Android. Adapun untuk engine OCR Tesseract sudah tersedia porting untuk digunakan dalam proyek Android, pengembang tinggal menghubungkan proyek Android ke proyek Tesseract OCR. Proyek porting ini bisa didownload di https://github.com/rmtheis/tess-twoSementara itu, untuk engine HMM text to speech, belum terdapat porting yang bisa digunakan. Maka untuk itu penulis membuat porting engine ini. Untuk dapat menggunakan library bahasa C/C++ agar bisa digunakan dalam sebuah proyek aplikasi Android, maka terlebih dahulu harus dilakukan proses compiling untuk arsitektur processor ARM yang digunakan oleh handset Android. Proses compiling ini sendiri dilakukan dengan menggunakan Android NDK. Android NDK mempermudah pengembang dalam proses building kode dengan cara mengabstraksi proses compiling dan linking kode sumber. Sehingga mempercepat proses porting.Proses porting diawali dengan menambahkan native support pada proyek android. Kemudian pada folder jni, masukan kode sumber C yang akan dipakai dalam project. Sebuah file android.mk dibutuhkan untuk memberi tahu build system NDK bagaimana kode sumber dikompilasi. File android.mk yang penulis pakai terlampir di bagian lampiran.Untuk bisa mengakses kode native tersebut, dibutuhkan file perantara untuk mengonversi perintah dari bahasa Java ke bahasa C/C++. Untuk itu dibutuhkan sebuah file Java yang me-load file binari kode C yang akan kita pakai, file ini akan digunakan dalam mengakses fungsi-fungsi atau perintah yang ada di dalam native library melalui java. Selain itu dibutuhkan pula sebuah file bahasa C yang bertugas mengkonversi antara java ke c/c++ ataupun sebaliknya. File C ini haruslah mereferensi pada file header jni.h. kedua file ini penulis lampirkan pula pada lampiran.4. PENGUJIAN DAN ANALISA4.1 Pengujian SistemTujuan pengujian sistem pada bab ini adalah sebagai berikut1. Mengetahui kondisi ideal agar sistem mampu mencapai hasil yang diharapkan2. Mengetahui performansi sistem secara keseluruhan4.2 Strategi PengujianDalam pengujian aplikasi ini akan dilakukan dalam beberapa aspek menyangkut subsistem aplikasi YukBaca. Adapun hal hal serta skenario pengujian adalah sebagai berikut4.2.1 Skenario 1 Pengaruh kamera terhadap akurasi OCRPada skenario ini akan dilakukan uji coba akurasi konversi image ke text oleh engine Tesseract OCR yang digunakan oleh sistem. Pengujian dilakukan dengan mengambil sebuah gambar teks yang telah dicetak. Pada pengujian kali ini, digunakan 3 buah handset Android yang memiliki spesifikasi resolusi kamera berbeda-beda. Handset yang dipakai dalam pengujian adalah sebagai berikut

Tabel 4.1 Data resolusi handset ujiHandsetResolusi Kamera

Imo S783.2 MP

Samsung Galaxy Ace5 MP

Sony Xperia P5 MP

Image yang dipakai adalah hasil cetakan kata-kata harapan dengan font Calibri ukuran 28 pt. Pengujian dilakukan pada hasil cetak dengan kondisi pencahayaan yang cukup.Hasil pengujian adalah sebagai berikutTabel 4.2 Hasil uji akurasi OCRDeviceAkurasi

Imo s7846 %

Xperia GO70 %

Galaxy Ace93 %

Dari hasil pengujian, device Imo s78 dengan kamera resolusi 3.2 MP tanpa autofokus, hanya mencapai akurasi 46%. Sementara itu Galaxy Ace dan Xperia GO yang sama-sama memiliki kamera dengan resolusi 5 MP dan tambahan fitur autofokus dapat mencapai akurasi 93 % dan 70%.Akurasi hasil konversi sendiri amat dipengaruhi oleh resolusi kamera serta kondisi saat pengambilan gambar seperti pencahayaan, guncangan, permukaan kertas yang difoto. Dari hasil pengujian ini disimpulkan bahwa agar mencapai hasil ideal, dibutuhkan device dengan resolusi kamera minimal 5 MP. Adanya fitur autofokus amat membantu dalam meningkatkan resolusi.4.2.2 Skenario 2 Lama waktu pemrosesan OCRProses pengenalan karakter optis (OCR) merupakan sebuah proses yang memakan banyak resource CPU handset. Dalam pengujian kali ini akan diuji seberapa lama handset mengubah image menjadi teks. Uji coba dilakukan dengan menggunakan 3 buah handset dengan spesifikasi clock CPU berbeda. Adapun spesifikasi CPU handset yang dipakai adalah sebagai berikut.Tabel 4.3 Data kecepatan clock CPU handset ujiHandsetKecepatan Clock CPU

Xperia Go1 GHz Single Core

Imo s781 GHz Single Core

Galaxy Ace800 MHz Single Core

Image teks yang dipakai masih sama seperti pada test sebelumnya. Adapun hasil pengujian secara lengkap dapat dilihat pada lampiran. Secara garis besar hasil pengujian dapat dilihat pada bagan dibawah iniTabel 4.5 Hasil pengujian lama konversi OCRDeviceLama konversi (ms)

Xperia Go1233.793

Galaxy Ace1801.067

Imo s781546.433

Proses konversi citra ke teks merupakan proses yang membutuhkan banyak resource dalam kalkulasinya. Dari hasil pengujian, dapat dilihat bahwa device dengan kecepatan clock CPU yang lebih besar memiliki rerata waktu konversi yang lebih cepat dibanding dengan device yang memiliki clock CPU yang lebih lambat.Dari segi lama konversi, delay yang muncul saat proses konversi masih bisa dikatakan ideal karena tidak mengakibatkan aplikasi menjadi not responding.4.2.3 Skenario 3 Akurasi dan performa algoritma nlpPada skenario ini, akan diuji sejauh mana akurasi algoritma numproc dalam mengubah string dengan angka menjadi dalam bentuk pelafalan. Selain akurasi, diuji juga performa algortima ini, berapa lama waktu yang dibutuhkan untuk memproses. Dalam pengujian kali ini kembali digunakan 3 buah handset Android seperti pengujian sebelumnya.String uji yang dipakai adalah sebagai berikut1. umur saya 23 tahun2. saya membeli 3786 ayam seharga 2367588 dolar3. dimana 3498 orang terluka, 9087 tewas dan 34568 masih hilangKarakter angka pada string uji diatas akan dikonversi menjadi bentuk pelafalan yang sesuai. Dan hasil pengujian adalah sebagai berikut.Pada pengujian tingkat akurasi mencapai 100% untuk semua device. Angka dengan sempurna diubah menjadi bentuk bacaannya tanpa meleset. Dapat disimpulkan algortima yang didesain sudah sesuai dengan yang diharapkan dari segi akurasi. Sementara dari segi performansi, dapat dilihat dari tabel lama eksekusi dibawah iniTabel 4.6 Hasil pengukuran lama parsing angkaDeviceLama waktu eksekusi (ns)

Test 1Test 2Test 3

Imo s78995417.9

2193915

2809021

Galaxy Ace1777000

3270000

5008167

Galaxy Mini2282611

5440555

5642056

Kecepatan clock prosesor sangat berpengaruh kepada performa algortima, dapat dilihat pada device Imo s78 dengan prosesor 1 Ghz mampu menyelesaikan test 1 dengan waktu 9995417.9 ns, dibandingkan dengan device Galaxy mini yang mempunyai kecepatan clock prosesor sebesar 2282611 ns atau sekitar 2.3 kali lebih lambat. Delay sebesar ini masih bisa dikatakan ideal tanpa menyebabkan pesan error Android Not Responding (ANR).Panjang angka dan jumlah banyak nya angka pada string juga menjadi faktor utama kecepatan konversi, semakin panjang angka semakin banyak perulangan untuk mem-parsing angka menjadi pelafalannya.4.2.4 Skenario 4 Akurasi dan performa algoritma suku kataSangat Baik40%

Baik60%

Cukup0%

Kurang0%

Sangat Kurang0%

Skenario ini berguna untuk menguji sejauh mana akurasi serta performansi dari algoritma suku kata yang penulis gunakan dalam sistem. Kembali pengujian dilakukan dengan menggunakan tiga buah handset Android yang berbeda. Dalam pengujian masing-masing handset Android melakukan percobaa sebanyak 30 kali. Terdapat 3 buah string uji, yaitu1. perubahan2. perubahan menyeluruh3. perubahan menyeluruh masyarakatDalam skenario ini, string uji akan dipecah menjadi suku kata sesuai dengan EYD. Adapun hasilnya adalah sebagai berikut.Ketiga string uji dapat dipecah menjadi suku kata secara sempurna pada ketiga device. Sehingga faktor device tidak mempengaruhi akurasi dari konversi. Algoritma dikatakan berkerja sesuai dengan harapan.Sementara dari hasil pengukuran lama eksekusi adalah sebagai berikutTabel 4.7 Hasil pengukuran pemecahan suku kataDeviceLama eksekusi (ns)

Test 1Test 2Test 3

Imo s78910235.8333

1587705.067

2352790

Galaxy Ace1074314

18818892771500

Galaxy Mini2629000

4525944

7077445

Pada device Imo s78, algoritma dapat dieksekusi untuk test 1, test 2 dan test 3 masing masing selama 1 ms, 1.5 ms dan 2.3 ms. Sementara pada device Galaxy Mini, membutuhkan waktu 2 ms, 4.5 ms dan 7 ms untuk memecah suku kata pada masing-masing string uji. Terlihat pengaruh kecepatan clock prosesor device sangat mempengaruhi kecepatan konversi.4.2 Pengujian BetaPengujian Beta dilakukan dengan cara mengambil langsung data kepada responden setelah melakukan demo aplikasi. Data diambil pada sebuah TPA, yaitu TPA Al Ghifari Sukabirus . Adapun responden yang mengisi adalah sebagai berikut

Tabel 4.9 Data pengisi kuesionerNamaKelas

Angga6

Ajika5

Salsabila Zahra6

Tiara Martiyas6

Agisna4

Chelsiliya6

Fina Anugraeni5

Dera4

Sandi4

Ian4

Berikut adalah pertanyaan-pertanyaan yang diajukan beserta hasilnya.Bagaimana ketepatan dari aplikasi "Yuk Baca" ini dalam membaca tulisan yang ditangkap kamera?

Gambar 4.2 Pengujian ketepatan OCRDari hasil kuesioner dapat ditangkap bahwa responden yang menyatakan sangat baik sebesar 40% sehingga bisa ditarik kesimpulan bahwa ketepatan hasil konversi OCR pada aplikasi ini sudah bisa diterima oleh kebanyakan pengguna.

Bagaimana ketepatan dari aplikasi "Yuk Baca" ini dalam melafalkan tulisan yang terdeteksi?Sangat Baik30%

Baik10%

Cukup60%

Kurang0%

Sangat Kurang0%

Gambar 4.3 Pengujian ketepatan sintetis suaraResponden dengan jawaban baik keatas terdapat sebesar 40%. Hasil ini menunjukkan bahwa kebanyakan responden belum puas dengan hasil sintetis suara yang dihasilkan oleh aplikasi.

Apakah menurut teman-teman aplikasi ini bisa membantu proses belajar membaca bagi anak?

Ya 100%

Tidak0%

Gambar 4.4 Pendapat pengguna tentang manfaat

100% suara responden menyatakan aplikasi ini membantu dalam proses belajar membaca. Sehingga bisa ditarik kesimpulan bahwa aplikasi ini telah memenuhi tujuannya untuk membantu proses belajar membaca.5. KESIMPULAN DAN SARAN5.1 Kesimpulan Dari hasil implemntasi dan pengujian, penulis dapat menarik kesimpulan bahwa1. Aplikasi YukBaca membutuhkan minimal kamera dengan resolusi 5 MP agar mampu berkerja dengan maksimal.2. Algoritma text analyzing yang diimplementasikan dalam sistem telah berkerja sesuai dengan yang diharapkan. Dengan akurasi mencapai 100% dan performa konversi dengan waktu eksekusi rata-rata sebesar 910235.8333 nano sekon. 3. Penggunaan lexicon dan database HMM bahasa Inggris masih belum maksimal dan belum mencukupi memenuhi kebutuhan dalam sintetis suara dalam bahasa Indonesia berdasarkan pengujian beta. Sebanyak 40 % responden menyatakan sudah bagus.5.2 SaranTugas akhir ini jauh dari sempurna, masih banyak bagian yang bisa dikembangkan. Antara lain adalah1. Menggunakan database bahasa Indonesia. Pembuatan database HMM untuk bahasa Indonesia bukanlah hal yang mudah dan cepat. Namun penggunaan database HMM yang sesuai akan menambah kualitas hasil sintetis.2. Mengubah cara penggunaan aplikasi menjadi realtime sehingga pengguna dapat langsung mengetahui cara baca seketika itu juga.Menambahkan fitur speech to text sebagai feedback. Sehingga manfaat aplikasi bertambah, tidak hanya menampilkan cara baca sebuah tulisan tapi juga mampu menilai apakah bacaan pengguna juga sudah sesuai.

Daftar Pustaka

Alan W Black,Kevin A. Lenzo. (2009). Flite: a small, fast speech synthesis engine. Carnegie Mellon University.Masuko, T. (2002). HMM-Based Speech Synthesis. Nagoya: Nagoya Institute of Technology.S. Saychum, A. Thangthai et all. (2009). A Bi-lingual Thai-English TTS System on Android Mobile Device. IEEE .Sang-Jin Kim, Jong-Jin Kim, and Minsoo Hahn . (2006 ). HMM-Based Korean Speech Synthesis System . IEEE Transactions on Consumer Electronics, Vol. 52 .Sihar Lumbantobing,Nachrowi,Wendi Hartono. (2001). Optical Character Recognition (OCR) Technology. In Application of New Technology in Population Data Collection, Processing, Dissemination and Presentation (p. 52).Taylor, P. (2009). Text-to-Speech Syntesis. Cambridge: Cambridge University Pers.Thomas, B. (2000). Pengenalan Suku Kata Bahasa Indonesia Menggunakan Finite-State Automata. Integral , 67-74.