Anda di halaman 1dari 15

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 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. PENDAHULUAN
Kemampuan 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 TEORI
2.1 Bahasa Indonesia
Bahasa 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
daerah dan bahasa asing.
Meskipun dipahami dan dituturkan oleh
lebih dari 90% warga Indonesia, Bahasa
Indonesia bukanlah bahasa ibu bagi kebanyakan
penuturnya. Sebagian besar warga Indonesia
menggunakan salah satu dari 748 bahasa yang ada
di Indonesia sebagai bahasa ibu. Penutur Bahasa
Indonesia kerap kali menggunakan versi seharihari (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, suratmenyurat 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
Pelajaran Malaysia 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 tanggal 16 Agustus 1972,
berdasarkan Keputusan Presiden Nomor 57 Tahun
1972, berlakulah sistem ejaan Latin bagi bahasa
Melayu ("Rumi" dalam istilah bahasa Melayu
Malaysia) dan bahasa Indonesia. Di Malaysia,
ejaan baru bersama ini dirujuk sebagai Ejaan
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 Kata
Setiap 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 katakata 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 puncak
Contoh :
I + bu [ I ] + [ bu ]

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)

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 [ si ]


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.

a.
b.
c.

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 ] +

2.4 Pengenalan Karakter Optis


Pengenalan 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 :
Documment scanning/capturing
Recognizing process
Verifying process
Terdapat banyak pustaka/tools yang tersedia di
pasaran. Salah satunya adalah Tesseract OCR dari
Google.
Pada
awalnya
tesseract
ocr
dikembangkan oleh HP-UX pada tahun 19851994 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.

5.
6.
7.

Homograph resolution : Mendeterminasi katakata yang tepat untuk token language yang
ambigu.
Parsing : Menambahkan struktur sintaksis ke
kalimat.
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.1 Proses konversi teks pada Tesserac


OCR
2.5 Text to Speech
Text 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.
2.
3.
4.
a.

b.
c.

Pre-Processing : identifikasi genre teks, encoding


karakter, multi-lingual.
Sentence Splitting : Segmentasi dokumen teks
menjadi list kalimat.
Tekenization : Segmentasi tiap-tiap kalimat
menjadi beberapa token.
Text Analysis
Semiotic classification : klasifikasi tiap-tiap token
menjadi salah satu kelas-kelas semiotic yang
diantaranya
natural
language,
singkatan,
kuantitas, tanggal, waktu dll.
Decoding/parsing : mencari identitas dari token
menggunakan decoder atau parser yang sesuai
dengan kelas semiotiknya
Verbalisation : konversi non-natural language
menjadi kata-kata.

Gambar 2.2 Proses pada text to speech


Terdapat dua teknik utama dalam produksi
suara sintetis, yaitu
a.

1.
2.
3.
b.

1.
2.
3.

Concatenative Synthesis
Prinsip kerja utama dari teknik ini adalah
menggabungkan potongan unit suara yang telah
direkam. Terdapat 3 sub tipe Concatenative
Synthesis, yaitu
Unit Selection.
Diphone Synthesis.
Domain-specific Synthesis.
Formant Synthesis
Formnat 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 lain
Articulory Synthesis.
HMM based Synthesis.
Sinewave Synthesis.
2.6 Hidden Markov Model (HMM) based TTS
Hidden 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

A={aij }iN, j=1


distribution

output

probability

B={b j ( o)}Nj =1 dan initial state

probability distribution

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.org
Flite 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).

={ i }i=1 . 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 right


Sistem 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 melcepstrum. (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).

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.

Gambar 2.4 Arsitektur sistem TTS HMM


2.9 Flite TTS
Pada sistem operasi Android, sudah terdapat
sistem TTS, yaitu Pico TTS, namun karena
kendala kurang ekstensibel terutama dari

2.

Sumber Citra
Masukan dari sistem berupa citra teks yang
ditangkap melalui kamera handset Android
pengguna yang selanjutnya akan diolah.
Database Suara
Komponen ini mengandung parameterparameter yang diperlukan unuk sintetis suara
menggunakan HMM text to speech. Database
suara didapatkan sebagai hasil pada fase training
HMM.

3.

Android Device
Sistem 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.6

Static
Character
Classiefier

Teks

3.2 Gambaran Umum Sistem


Linguistic
analysis

Adaptive
classifier

Gambar 3.3 Bagan alur proses OCR


Sistem Pengenalan Karakter Optis

a.

Text Analyzer Sistem Text to Speech

Suara ejaan

Gambar teks

Gambar 3.2 Arsitektur umum sistem

3.2.1

1.

2.

Dari 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 berikut
Subsistem OCR
Masukan 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:
Pengambilan Citra
Proses 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.
PreProcessing
Citra 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.

b.

`Pengenalan Teks
Proses 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

c.

Line and Word Finding


Terdapat 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.
Static Character Classiefier
Proses 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.
Linguistic Analysis
Selain 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 Classifier
Sama 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

Teks hasil OCR

selesai

Text filtering

Text untuk proses


sintetis suara

Filtering angka
& simbol

3.

blok
lain
sesuai
dengan
tingkatnya
(ribu,juta,milyar).
Pemisahan suku kata
Teks 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.

Pemisahan
suku kata

Gambar 3.4 Bagan alur proses text analyzer


1.

2.

Text Filtering
Pada 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.
Filtering angka
Angka termasuk bahasa tidak natural, perlu
adanya pemetaan antara angka dengan
pengucapannya. Angka juga mempunyai bentukbentuk 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-

Gambar 3.5 Diagram Transisi FSA 1


Keluaran 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.

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.
b.
c.
d.

Flite+hts_engine 1.00
Flite 1.3
HTS engine API 1.02
Database hts_voice_cmu_us_arctic_slt 1.01
Secara umum proses dalam blok ini adalah
sebagai berikut.

a.
Gambar 3.6 Diagram Transisi FSA 2
Output 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.
b.

c.

3.2.3

Gambar 3.7 Diagram Transisi FSA


Keluaran dari FSA tingkat ini adalah hasil
akhir dari sub sistem text analyzer yang akan
menjadi masukan bagi sub sistem HMM Text to
Speech.
Subsistem HMM Text to Speech
Pada 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

d.

e.

Inisialisasi engine
Pada 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.
Load database voice
Pada 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.
Konversi teks ke sekuens label
Proses 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).
HMM generation
Pada 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.
Generate state duration, mel cepstral coefficient
and F0 based on HMM
Dari rangkaian HMM yang dibentuk akan
dideterminasi state duration, koefisien mel-

f.

cepstral dan frekuensi dasar F0. Proses ini


dilakukan berdasarkan decision tree
yang
sebelumnya telah di load oleh engine.
Sintetis suara menggunakan MLSA filter
Dari 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

1.

2.

3.

4.
5.

Pengelompokan kode sumber kedalam


package-package
dilakukan
berdasarkan
fungsionalitasnya masing masing. Penjelasannya
adalah sebagai berikut
Package com.rnp.flite
Package ini berisi Application Programming
Interface (API) untuk mengakses dan melakukan
operasi terhadap HTS Engine serta Flite.
Package com.yuk.baca
Package ini merupakan package utama yang
berisi GUI dari aplikasi. Di dalamnya terdapat
alur kerja aplikasi serta pemrosesan masukan dari
pengguna.
Package com.yuk.baca.adapter
Class dalam package ini berfungsi untuk
proses pemetaan data dalam pembuatan listview
dan gridview pada GUI
Package com.yuk.baca.database
Package ini mengandung class yang berfungsi
untuk mengontrol operasi pada database.
Package com.yuk.baca.lang.util
Package ini berisi kelas-kelas untuk operasi
yang berkaitan dengan pemrosesan teks.

Gambar 3.8 Proses Sintetis Suara MLSA filter


Hasil dari sintetis akan disimpan dalam
sebuah file wav yang nantinya akan diputar oleh3.2.1.1 Class Diagram MainActivity
Diagram ini menampilkan relasi yang ada
instance MediaPlayer Android.
pada
kelas MainActivity. Kelas ini merupakan
Tahap d,e dan f secara implisit dilakukan oleh
kelas
utama
yang menghubungkan fungsionalitas
pustaka HTS Engine saat pemanggilan method
yang
ada
pada
aplikasi ini.
flite_hts_engine_synthesize().
3.3 Perancangan Sistem
Desain
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 Diagram
Dari sisi pengguna, sistem dapat dilihat
sebagai berikut

Gambar 3.11 Class Diagram MainActivity


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

Gambar 3.10 Use Case Diagram sistem


Gambar 3.12 Class Diagram Proses OCR
3.3.2 Class Diagram
Secara umum, aplikasi dibagi menjadi 6
package yang ditunjukan oleh class diagram
dibawah ini.

3.2.1.3 Class Diagram SukuKata


Pada diagram berikut ditunjukkan relasi antar
kelas dalam ketika proses produksi suara oleh
aplikasi

3.5 Pembuatan Program

Gambar 3.13 Class Diagram SukuKata


3.3.3 Activity Diagram
Adapun alur proses secara garis besar dari
sistem adalah sebagai berikut

Gambar 3.14 Activity Diagram sistem


3.4 Kebutuhan Sistem

1.
2.
3.
4.
3.4.2

Pada 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 Keras
Untuk menjalankan aplikasi ini dibutuhkan
sebuah handset Android dengan spesifikasi
sebagai berikut :
Layar berwarna 256K
Random Access Memmory 512 MB
CPU 1 GHz.
Display ukuran HVGA (320 px x 480 px)
Kebutuhan perangkat keras
Sedangkan kebutuhan perangkat lunak dalam
membangun aplikasi ini antara lain adalah.

1.
2.
3.
4.
5.

Sistem Operasi Android 2.3.6


Android Developer Tools v21.01
Android Software Development Kit (SDK) 21.1
Android Native Development Kit (NDK) r8e
Java Development Kit (JDK) 1.7

Program 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/tesstwo
Sementara 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 meload file binari kode C yang akan kita pakai, file
ini akan digunakan dalam mengakses fungsifungsi 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.

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
OCR
Proses 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 uji

4. PENGUJIAN DAN ANALISA


4.1 Pengujian Sistem
Tujuan pengujian sistem pada bab ini adalah
sebagai berikut
1.
2.

Mengetahui kondisi ideal agar sistem mampu


mencapai hasil yang diharapkan
Mengetahui
performansi
sistem
secara
keseluruhan
4.2 Strategi Pengujian
Dalam pengujian aplikasi ini akan dilakukan
dalam beberapa aspek menyangkut subsistem
aplikasi YukBaca. Adapun hal hal serta skenario
pengujian adalah sebagai berikut
4.2.1 Skenario 1 Pengaruh kamera terhadap
akurasi OCR
Pada 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 berbedabeda. Handset yang dipakai dalam pengujian
adalah sebagai berikut

Handset
Xperia Go
Imo s78
Galaxy Ace

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 ini
Tabel 4.5 Hasil pengujian lama konversi OCR

Device
Xperia Go
Galaxy Ace
Imo s78

Tabel 4.1 Data resolusi handset uji

Handset
Imo S78
Samsung Galaxy Ace
Sony Xperia P

Resolusi Kamera
3.2 MP
5 MP
5 MP

Akurasi
46 %
70 %
93 %

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.

Lama konversi (ms)


1233.793
1801.067
1546.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 nlp
Pada 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 berikut

Image yang dipakai adalah hasil cetakan katakata harapan dengan font Calibri ukuran 28 pt.
Pengujian dilakukan pada hasil cetak dengan
kondisi pencahayaan yang cukup.
Hasil pengujian adalah sebagai berikut
Tabel 4.2 Hasil uji akurasi OCR

Device
Imo s78
Xperia GO
Galaxy Ace

Kecepatan Clock CPU


1 GHz Single Core
1 GHz Single Core
800 MHz Single Core

1.
2.

umur saya 23 tahun


saya membeli 3786 ayam seharga 2367588 dolar

3.

dimana 3498 orang terluka, 9087 tewas dan


34568 masih hilang

Dalam 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 berikut
Tabel 4.7 Hasil pengukuran pemecahan suku kata

Karakter 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 ini
Tabel 4.6 Hasil pengukuran lama parsing angka

Imo s78

Lama waktu eksekusi (ns)


Test 1
Test 2
Test 3
995417.9 2193915 2809021

Galaxy

1777000 3270000

5008167

Galaxy
Mini

2282611 5440555

5642056

Device

Ace

Device
Imo s78
333
Galaxy

2.
3.

1. perubahan
perubahan menyeluruh
perubahan menyeluruh masyarakat

1074314

1881889

2771500

2629000 4525944

7077445

Ace
Galaxy
Mini

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 kata
Skenario ini berguna untuk menguji sejauh
mana akurasi serta performansi dari algoritma
suku kata yang penulis Sangat Baik
40%
gunakan
dalam
sistem.
60%
Kembali pengujian dilakukan Baik
dengan menggunakan tiga Cukup
0%
buah handset Android yang Kurang
0%
berbeda. Dalam pengujian
Sangat
Kurang
0%
masing-masing
handset
Android melakukan percobaa sebanyak 30 kali.
Terdapat 3 buah string uji, yaitu

Lama eksekusi (ns)


Test 1
Test 2
Test 3
910235.8 1587705.067 2352790

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 Beta
Pengujian 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 kuesioner

Nama
Angga
Ajika
Salsabila
Zahra
Tiara Martiyas
Agisna
Chelsiliya
Fina
Anugraeni
Dera
Sandi
Ian

Kelas
6
5
6
6
4
6
5
4
4
4

Berikut adalah pertanyaan-pertanyaan yang


diajukan beserta hasilnya.

Bagaimana ketepatan dari aplikasi "Yuk


Baca" ini dalam membaca tulisan yang
ditangkap kamera?
Ya
Tidak

S angat Baik
Baik
Cukup
Kurang
S angat Kurang

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
SARAN

Gambar 4.2 Pengujian ketepatan OCR


Dari 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 Baik
Baik
Cukup
Kurang
Sangat Kurang

30%
10%
60%
0%
0%

5.1 Kesimpulan
Dari hasil implemntasi dan pengujian, penulis
dapat menarik kesimpulan bahwa
1.
2.

3.

S angat Baik

5.2 Saran
Tugas akhir ini jauh dari sempurna, masih banyak
bagian yang bisa dikembangkan. Antara lain
adalah

Baik
Cukup
Kurang
S angat Kurang

1.

Gambar 4.3 Pengujian ketepatan sintetis suara


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

Aplikasi YukBaca membutuhkan minimal kamera


dengan resolusi 5 MP agar mampu berkerja
dengan maksimal.
Algoritma text analyzing yang diimplementasikan
dalam sistem telah berkerja sesuai dengan yang
diharapkan. Dengan akurasi mencapai 100% dan
performa konversi dengan waktu eksekusi ratarata sebesar 910235.8333 nano sekon.
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.

2.

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.
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
Apakah menurut teman-teman aplikasi ini hanya menampilkan cara baca sebuah tulisan tapi juga
bisa membantu proses belajar membaca bagi mampu menilai apakah bacaan pengguna juga sudah
anak?
sesuai.

Ya
Tidak

100%
0%

Daftar Pustaka

System . IEEE Transactions on Consumer


Electronics, Vol. 52 .

Alan W Black,Kevin A. Lenzo. (2009). Flite: a


small, fast speech synthesis engine. Carnegie
Mellon University.

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).

Masuko, T. (2002). HMM-Based Speech


Synthesis. Nagoya: Nagoya Institute of
Technology.
S. Saychum, A. Thangthai et all. (2009). A Bilingual Thai-English TTS System on Android
Mobile Device. IEEE .
Sang-Jin Kim, Jong-Jin Kim, and Minsoo Hahn .
(2006 ). HMM-Based Korean Speech Synthesis

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.

Anda mungkin juga menyukai