APLIKASI KONVERSI TEKS MENJADI SUARA

advertisement
APLIKASI KONVERSI TEKS MENJADI SUARA DENGAN MENGGUNAKAN
METODE PENGGAL KATA FINITE STATE AUTOMATA (FSA)
Isrokah dan Mohamad Yasin
Universitas Negeri Malang
e-mail: [email protected]; [email protected]
ABSTRAK: Konversi teks menjadi suara (text to speech) merupakan perangkat lunak yang
dapat menyuarakan tulisan yang diinputkan oleh pemakai (user). Sistem konversi teks menjadi
suara tersusun atas dua sistem yaitu analisa teks dan penghasil suara percakapan. Untuk
mewujudkan program konversi teks mejadi suara tersebut, pada penelitian ini memanfaatkan
metode penggal kata Finite State Automata. Dengan mengimplementasikan metode Finite State
Automata pada Delphi, pada penelitian diperoleh aplikasi konversi teks menjadi suara dengan
input dan output bahasa Indonesia.
Kata kunci: text to speech, teori automata, GoldWave, Delphi
ABSTRACT: text to speech convertion is a software for voicing text that inputed by user. text to
speech convertion system’s arrenged into two systems they are natural language processing and
digital signal processing. To create text to speech convertion program’s, in this research use
spelling word method is Finite State Automata. By implementation of Finite State Automata
method into Delphi, was gotten an application of text to speech convertion with input and output
Indonesian language.
Keyword: text to speech, automata theory, GoldWave, Delphi
Salah satu perkembangan di bidang komputasi yang mengalami penelitian yang lama
adalah pensintesa ucapan. Pensintesa ucapan memiliki kinerja untuk menyuarakan tulisan yang
diinputkan oleh pemakai (user). sehingga untuk mewujudkan adanya pensintesa ucapan,
haruslah terdapat perangkat lunak yang seolah-olah membacakan tulisan kepada pemakai (user).
Seiring perkembangannya, pensintesa ucapan dengan input bahasa Inggris telah banyak
diciptakan karena mmayoritas perangkat keras telah dibekali dengan bahasa Inggris. Jika
kalimat yang diinputkan adalah bahasa Indonesia, output yang dihasilkan berupa bahasa Inggris.
Padahal output yang diharapkan berupa bahasa Indonesia.
Untuk mewujudkan konversi teks menjadi suara dengan input dan output bahasa
Indonesia, diperlukan adanya metode untuk mengonversi kalimat yang diinputkan berdasarkan
ketatabahasaan. Dari kalimat yang sesuai dengan ketatabahasaan digunakan untuk menciptakan
realisasi fonetik dari setiap fonem yang ada.
TATA BAHASA BAKU BAHASA INDONESIA
Tata bahasa baku bahasa Indonesia adalah aturan tentang berbagai hal yang berhubungan
dengan penulisan bahasa Indonesia. Beberapa istilah dalam tata bahasa baku bahasa Indonesia
adalah sebagai berikut.
a. Abjad
b. Fonem
c. Vokal, merupakan puncak dari suku kata. Dalam bahasa Indonesia dikenal enam vokal,
yaitu:
1. /i/ yang merupakan vokal tinggi depan, misalkan i pada kata air.
2. /u/ yang merupakan vokal tinggi belakang, misalkan u pada kata udara.
3. /a/ yang merupakan vokal rendah tengah, mialkan a pada kata saya.
4. /o/ yang merupakan vokal sedang belakang, memiliki dua kelompok pengucapan yaitu
kelompok “orang”, “obat”, “protes” dan kelompok “bakso”, “soto”, “toko”.
5. /e/ yang merupakan vokal sedang depan, memiliki dua kelompok pengucapan, yaitu
kelompok “sore”, “kare” dan kelompok “perak”, “remeh”, “ejaan”.
e yang merupakan vokal sedang tengah. Contoh “emas”, “bandeng”, “tipe”.
d. Diftong
e. Gugus konsonan
f. Suku kata
Untuk pengklasifikasian suku kata bahasa Indonesia terdapat beberapa pola umum yaitu:
1. V misalnya pada kata: a-ku, a-lam, u-sap, o-rang, dan sebagainya.
2. VK misalnya pada kata: an-da, am-bang, in-dah, un-tuk, or-gan, dan sebagainya.
3. KV misalnya pada kata: ka-sur, gu-ling, li-ur, ko-lam, ke-las, dan lain sebagainya.
4. KVK misalnya pada kata: ka-sur, ban-tal, a-sik, ba-tok, ka-len-der, dan lain sebagainya.
5. KKV misalnya pada kata: pro-yek, pra-ju-rit, pri-ma-do-na, swa-da-ya, dan lain
sebagainya.
6. KKVK misalnya pada kata: prak-tek, truk, trak-tor, dan lain sebagainya.
7. VKK misalnya pada kata: ins-tru-men, eks-po-nen, ons, dan lain sebagainya.
8. KVKK misalnya pada kata: am-bang, kam-pung, ba-yang, sa-yang, dan lain sebagainya.
9. KKVKK misalnya pada kata: kom-pleks dan lain sebagainya.
10. KKKV misalnya pada kata: stra-te-gi dan lain sebagainya.
11. KKKVK misalnya pada kata: struk-tur dan lain sebagainya.
Karena terdapat bermacam-macam cara dalam pemenggalan kata, maka untuk
mempermudah dalam mengingat-ingatnya maka dikelompokkan menjadi:
a. Pemenggalan kata pada kata dasar
 Jika di tengah kata ada vokal yang berurutan, pemenggalan itu dilakukan diantara kedua
huruf vokal.
 Jika di tengah kata terdapat konsonan diantara dua vokal, termasuk gabungan huruf
konsonan diantara dua huruf vokal.
 Jika di tengah kata terdapat dua huruf konsonan yang berurutan, pemenggalan dilakukan
diantara kedua huruf konsonan.
 Jika di tengah kata terdapat tiga huruf konsonan atau lebih, pemenggalan dilakukan
diantara huruf konsonan pertama dan kedua. Misalnya
b. Imbuhan akhiran dan imbuhan awalan, termasuk awalan yang mengalami perubahan bentuk
serta partikel yang biasanya ditulis serangkai dengan kata dasarnya, dapat dipenggal pada
pergantian baris.
TEKNOLOGI TEXT TO SPEECH
Menurut Arry Akhmad A (2003: 1) sistem text to speech pada prinsipnya terdiri dari dua
sub sistem yaitu bagian konverter teks ke fonem dan bagian konverter fonem ke ucapan.
Bagian konverter teks ke fonem berfungsi untuk mengubah kalimat masukan dalam suatu
bahasa tertentu yang berbentuk teks menjadi rangkaian kode-kode bunyi yang biasanya
direpresentasikan dengan kode fonem, durasi serta pitchnya.
Bagian konverter fonem ke ucapan akan menerima masukan berupa kode-kode fonem
serta pitch dan durasi yang dihasilkan oleh bagian sebelumnya. Berdasarkan kode-kode tersebut,
bagian konverter fonem ke ucapan akan menghasilkan bunyi atau sinyal ucapan yang sesuai
dengan kalimat yang diucapkan. Ada beberapa alternatif teknik yang digunakan untuk
implementasi bagian ini. dua teknik yang digunakan adalah formant synthesizer dan diphone
concatenation.
FINITE STATE AUTOMATA (FSA)
Menurut Thomas Anung Basuki FSA merupakan salah satu mesin pengenal pada bahasa
kelas sederhana. Oleh karena itu, dalam pemenggalan suku kata dapat menggunakan metode
Finite State Automata (FSA). Finite State Automata (FSA) yang digunakan dirancang menjadi
tiga tingkatan.
Pada tingkat pertama yang akan dikenali adalah pola-pola: V, K, atau VK. Hasil
pengenalan FSA tingkat pertama akan menjadi masukan pada tingkat berikutnya.
Pada tingkatan kedua FSA akan mengenali suku kata dengan pola V, VK, KV, KVK,
KKV, KKVK, KKKV, KKKVK.
Pada hasil tingkatan kedua, terlihat bahwa pola suku kata VKK, KVKK, dan KKVKK
belum bisa dikenali. Oleh karena itu, diperlukan FSA tingkatan ketiga agar dapat mengenalinya.
Berikut merupakan diagram FSA untuk mengenali bahasa regular.
Keterangan:
q0 = status awal
q1 = status awal
q2 = mengenali vokal
q3 , q4 , q5 , q7 = mengenali konsonan
q6 = mengenali konsonan yang terdiri dari 2
huruf
q8 = mengenali konsonan - vokal
Gambar 1. Diagram transisi FSA tingkatan pertama
Hasil pada FSA tingkatan pertama dapat menjadi masukan pada transisi FSA tingkatan
kedua.
Keterangan:
q1 = mengenali blank/spasi
q2 = mengenali V
q3 = mengenali VK
q4 = mengenali K
q5 = mengenali KKV atau KKKV
q6 = mengenali KKVK atau KKKVK
q7 = mengenali KV
q8 = mengenali KVK
Gambar 2. Diagram transisi FSA tingkatan kedua
Hasil pada FSA tingkatan kedua dapat menjadi masukan pada FSA tingkatan ketiga.
Keterangan:
q1 = mengenali blank/spasi
q2 = mengenali VK
q3 = mengenali VKK
q4 = mengenali KVK
q5 = mengenali KVKK
q6 = mengenali KKVK
q7 = mengenali KKVKK
q8 = mengenali V
q9 = mengenali KV
q10 = mengenali KVV
q11 = mengenali KKV/KKKV
q12 = mengenali KKVV/KKKVV
Gambar 3. Diagram transisi FSA tingkatan ketiga
GOLDWAVE
Menurut Strombon (2007:4) goldwave adalah suatu perangkat lunak audio editor yang
cukup handal. Selain itu, goldwave dapat mengedit audio dari hal yang paling sederhana seperti
merekam sampai mengedit hal yang sangat kompleks seperti audio processing. Fitur-fitur yang
disediakan oleh GoldWave adalah sebagai berikut.
 Mendukung hampir semua jenis format audio
 Dapat memproses berapapun banyaknya audio yang diinginkan dengan batch processing
 Dapat merekam audio dari source apapun yang mendukung kinerja PC
 Dilengkapi dengan perintah dasar audio editing seperti cut, copy, trim, paste, replace,
overwrite, dan lain-lain.
 Dilengkapi dengan puluh an audio efek variasi
 Dapat mengatur equalizer sesuai yang diinginkan
 Dapat mengcopy audio langsung dari CD
 Dapat menganalisa audio berdasarkan frekuensi dan amplitude visualnya
HASIL
Aplikasi program konversi teks menjadi suara menghasilkan tabel sebagai berikut.
Gambar 14. Form awal program
Keterangan:
1. Memo box Input kalimat tempat pemakai (user) menginputkan kalimatnya.
2. Button Verifikasi, tombol yang digunakan untuk menormalkan input dari simbol. Setelah
Verifikasi ditekan, tampilan form berubah menjadi gambar berikut.
Gambar 15. Tampilan setelah verifikasi ditekan
A merupakan tempat hasil pemenggalan kata.
3. Button Hapus, tombol yang digunakan untuk menghapus tulisan yang terdapat pada Input
kalimat. Jika Hapus ditekan, maka tampilan kembali seperti Gambar 11.
4. Button Suarakan, tombol yang digunakan untuk menyuarakan hasil pemenggalan kata.
5. Button Keluar, tombol yang digunakan untuk keluar dari program yang sedang dijalankan.
Hasil uji coba beberapa kata disajikan pada tabel berikut.
No
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Teks
Kamar
Anak
Ikat
Enak
Emak
Orang
Saya
Kurma
Sisir
Sardo
Telegram
Indra
Ultra
Influenza
Saat
Ikrar
Ikhlas
Makhluk
Instrumen
Instruktur
Barang
Bangga
Angkasa
Anggaran
Kompleks
Pertanggungjawaban
Aula
Harimau
Universitas
Malang
Mengukur
Foto-grafi
Penyiksaan
Hasil penggal kata
Ka-mar
A-nak
I-kat
E-nak
E-mak
O-rang
Sa-ya
Kur-ma
Si-sir
Sar-do
Te-le-gram
In-dra
Ul-tra
In-flu-en-za
Sa-at
I-krar
Ikh-las
Makh-luk
In-stru-men
In-struk-tur
Ba-rang
Bang-ga
Ang-ka-sa
Ang-ga-ran
Kom-pleks
Per-tang-gung-ja-wa-ban
Au-la
Ha-ri-mau
U-ni-ver-si-tas
Ma-lang
Meng-u-kur
Fo-to-gra-fi
Pe-nyik-sa-an
Hasil suara
Ka-mar
A-nak
I-kat
-nak
-mak
O-rang
Sa-ya
Kur-ma
Si-sir
Sar-do
Te-le-gram
In-dra
Ul-tra
In-flu-en-za
Sa-at
I-krar
Ikh-las
Makh-luk
In-stru-men
In-struk-tur
Ba-rang
Bang-ga
Ang-ka-sa
Ang-ga-ran
Kom-pleks
Per-tang-gung-ja-wa-ban
Au-la
Ha-ri-mau
U-ni-ver-si-tas
Ma-lang
Meng-u-kur
Fo-to-gra-fi
Pe-nyik-sa-an
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
Kompleksitas
Saung
Saudagar
Australia
Koifisien
Mengikis
Perasaan
Merasai
Menikmati
Bau
Strategi
Teks
Suara
Selisih
Transaksi
Permusyawaratan
Skripsi
Kom-plek-si-tas
Sa-ung
Sau-da-gar
Aus-tra-li-a
Koi-fi-si-en
Meng-i-kis
Pe-ra-sa-an
Me-ra-sai
Me-nik-ma-ti
BauStra-te-gi
TeksSu-a-ra
Se-li-sih
Tran-sak-si
Per-mu-sya-wa-ra-tan
Skrip-si
Kom-plek-si-tas
Sa-ung
Sau-da-gar
Aus-tra-li-a
Koi-fi-si-en
Meng-i-kis
Pe-ra-sa-an
Me-ra-sai
Me-nik-ma-ti
BauStra-te-gi
TeksSu-a-ra
Se-li-sih
Tran-sak-si
Per-mu-sya-wa-ra-tan
Skrip-si
PEMBAHASAN
1. Tahap Perencanaan
Pada tahap ini, direncanakan bahwa input, output dan proses dari program ini adalah
sebagai berikut.
 Input : teks/kalimat
 Output : suara
 Proses antara input teks dengan mendapatkan output suara membutuhkan proses yang tidak
singkat. Proses-proses tersebut sering disebut sebagai tahapan, tahapan-tahapan dapat dilihat
pada diagram berikut :
Input teks
Menghapus simbolsimbol pada input teks
Pemenggalan suku
kata
Output (suara)
 Perekaman suara
2. Tahap Pelaksanaan
Tahap pelaksanaan ini merupakan tahap terapan dari perencanaan yang telah dibuat.
Pelaksanaan dari proses yang telah direncanakan adalah sebagai berikut.
 Menghapus Simbol-Simbol pada Input Teks
Simbol-simbol pada input teks terdiri dari (:), (;), (,), (.), (‘), (“), (?), (!), (@), (#), ($),
(%), (&), (*), ( ( ), ( ) ), ({), (}), ([), (]), (~), (/). Proses penghapusan simbol-simbol pada teks
yang telah diinputkan bertujuan agar terdapat keseragaman antara input teks dengan file suara
yang dibuat, sehingga mengurangi kemungkinan ketidakadaan data pada file suara.
Pada software Delphi, penghapusan simbol-simbol pada input teks memanfaatkan fungsi
delete(input.Text, letak simbol, jumlah simbol).
 Pemenggalan Suku Kata
Pada proses pemenggalan suku kata ini terdapat dua macam metode yaitu menggunakan
metode Finite State Automata (FSA) dan pemenggalan suku kata berdasarkan pola umum
bahasa Indonesia. Berdasarkan dua metode tersebut diperoleh perbandingan sebagai berikut :
No
Finite State Automata (FSA)
Tingkat pertama
1
V*
2
KV**
Tingkat kedua
1
V*
2
VK
3
VKK***
4
KV**
5
KVK
6
KKV
7
KKVK
8
KKKV
9
KKKVK
Tingkat ketiga
1
VKK***
2
KVKK
3
KKVKK
No
1
2
3
4
5
6
7
8
9
10
11
Pola umum bahasa Indonesia
V
VK
KV
KVK
KKV
KKVK
VKK
KVKK
KKVKK
KKKV
KKKVK
Dari tabel tersebut disimpulkan bahwa metode menggunakan Finite State Automata
(FSA) ataupun pola umum bahasa Indonesia memiliki kesamaan dalam pemenggalan suku kata,
sehingga jika ketiga tingkatan pada metode Finite State Automata (FSA) digabungkan sama
dengan pola umum bahasa Indonesia.
 Output Suara
Pada proses akhir yaitu output suara, suara yang dihasilkan dari proses rekaman
berekstensi .wav. Sehingga dalam aplikasi pada Delphi 7 memanfaatkan
sndPlaySound(lpszSoundName:PAnsiChar;uFlags:Cardinal). Selain itu, untuk mendapatkan
suku kata-suku kata yang telah dipenggal memanfaatkan fungsi split(const Delimiter:Char;
Input:String; const String:TString).
 Perekaman Suara
File suara pada program aplikasi konversi teks menjadi suara ini diperoleh dari hasil
perekaman suara pada GoldWave. Proses pengambilan file suara adalah sebagai berikut.
1. Buka aplikasi GoldWave.
2. Klik rekam
pada GoldWave (terletak pada tab control). Perekaman suara dapat
berbentuk persuku kata atau kumpulan dari suku kata.
3. Jika perekaman berbentuk kumpulan suku kata, maka langkah selanjutnya adalah
pemotongan kumpulan suku kata menjadi persuku kata. Cara pemotongannya adalah blok
suku kata yang diinginkan, kemudian klik trim
(terdapat pada tab GoldWave). Pada
pemotongan suku kata, diusahakan terdapat ruang jeda dari suara suku kata. Hal ini
bertujuan agar saat program aplikasi konversi teks menjadi suara dapat terdengar secara
keseluruhan.
4. Jika perekaman berbentuk persuku kata, maka dapat diatur ruang jeda dari suara suku kata
seperti nomor 3.
5. Klik
untuk menyimpan suara persuku kata dengan nama file seperti suara persuku
kata. Hal ini bertujuan untuk memudahkan pengambilan suara suku kata berdasarkan
penggal kata saat program aplikasi konversi teks menjadi suara dijalankan.
3. Tahap Akhir
Setelah melalui tahap perencanaan dan tahap pelaksanaan, pada tahap akhir ini
diharapkan semua rekaman suku kata yang berkaitan sudah tersimpan pada saat tahap
pelaksanaan. Sehingga untuk mengetahui data suku kata yang belum tersimpan diperlukan
pendataan suku kata-suku kata.
4. Perancangan Uji Coba Program
Pada tahap perancangan uji coba program ini, dilakukan pengujian untuk menguji
ketepatan pemenggalan kata dan kesesuaian suara yang dihasilkan. Uji coba program dilakukan
dengan jumlah teks sebanyak 50 sehingga akan diperoleh hasil uji sebanyak 100 dengan rincian
50 hasil uji penggal kata dan 50 hasil suara. Teks yang dipilih diusahakan mencakup semua kata
yang terdapat pada jenis-jenis pemenggalan kata seperti konsonan rangkap ditengah, konsonan
lebih dari dua di tengah, vokal rangkap di tengah, gugus konsonan, kata berimbuhan. Berikut
merupakan Tabel Rancangan Uji Kata.
Tabel 2. Rancangan Uji Kata
No
Teks
Hasil penggal kata
Penggal kata
EYD
Keterangan
Hasil suara
Hasil penggal kata menunjukkan hasil pemenggalan dari teks yang diinputkan. Hasil suara
menunjukkan hasil suara yang sesuai dengan hasil penggal kata dan data yang diinputkan.
KESIMPULAN
Berdasarkan uraian di atas, diperoleh kesimpulan sebagai berikut.
1. Tahapan – tahapan pada aplikasi konversi teks menjadi suara bahasa Indonesia adalah
menginputkan kalimat ke dalam program kemudian program akan menghapus simbol-simbol
yang terdapat pada kalimat yang diinputkan, jika kalimat yang diinputkan tidak mengandung
simbol tidak dilakukan proses apapun. Setelah proses penghapusan simbol, program akan
melakukan pemenggalan suku kata-suku kata dari kalimat hasil proses sebelumnya. Dari
hasil pemenggalan suku kata-suku kata kemudian disuarakan sehingga program
menghasilkan suara yang sesuai dengan hasil pemenggalan kata.
2. Metode yang digunakan untuk memenggal kata menjadi suku kata pada program aplikasi
konversi teks menjadi suara bahasa Indonesia adalah metode Finite State Automata (FSA).
Dalam menerapkan metode terebut pada Delphi memanfaatkan beberapa fungsi yaitu:
 Insert
 Delete
 Copy
3. Untuk menyuarakan suku kata-suku kata pada program aplikasi konversi teks menjadi suara
bahasa Indonesia memanfaatkan fungsi
sndPlaySound(lpszSoundName:PAnsiChar;uFlags:Cardinal).
DAFTAR RUJUKAN
Arman, Arry Akhmad. 2003. Konversi dari Teks ke Ucapan.
(online)(http://indotts.melsa.net.id/Karakteristik Sinyal Ucapan.pdf) diakses pada tanggal
5 September 2012.
Arman, Arry Akhmad. 2003. Proses Pembentukan dan Karakteristik Sinyal Ucapan.
(online)(http://indotts.melsa.net.id/Karakteristik Sinyal Ucapan.pdf) diakses pada tanggal
5 September 2012.
Basuki, Thomas Anung. 2000. Pengenalan Suku Kata Bahasa Indonesia Menggunakan Finite
State Automata. Integral vol.5 no.2: hlm.67, (Online), dalam Integral
(http://home.unpar.ac.id/integral/Volume/Integral/No5/AnungFinal.pdf) diakses 23
Januari 2013.
Dermawan. 2005. Perancangan dan Pembuatan Perangkat Lunak Simple Word Processor with
Spell Checker and Word Suggestor (SWPSCWS) dengan Metode Non Deterministic
Finite Automata. Skripsi tidak diterbitkan. Surabaya: Universitas Kristen Petra.
Divisi Penelitian dan Pengembangan. 2002. Pemrograman Borland Delphi 7 Lengkap dengan
Contoh Aplikasi. Penerbit Andi: Yogyakarta.
Hamzah, Amir. 2009. Teori Bahasa dan Otomata, (Online),
(http://amir.dosen.akprind.ac.id/files/2012/09/TBO_FULL.pdf), diakses pada tanggal 5
Februari 2013.
Hollands, Roy. 1995. Kamus Matematika. Erlangga: Jakarta.
Kadir, Abdul. 2007. Pemrograman Database dengan Delphi 7 Menggunakan Access dan ADO.
Penerbit Andi : Yogyakarta.
Prasetyo, Bambang Eko. 2010. Perbandingan Algoritma Brute Force dan Algoritma Boyer
Moore dalam Pencocokan String pada File Teks. Skripsi tidak diterbitkan. Malang: UM.
Pusat Bahasa Departemen Pendidikan Nasional. 2008. Kamus Bahasa Indonesia. Pusat Bahasa:
Jakarta.
Strombon. 2007. GoldWave Manual, (online), (http://www.ahlalhdeeth.com), diakses pada
tanggal 27 Maret 2013.
Tjiputra, Sudarmono. 2003. Perangkat Lunak Text to Speech dalam Bahasa Indonesia dengan
Metode Phoneme Synthesis. Skripsi tidak diterbitkan. Surabaya: Universitas Kristen
Petra.
Tritoasmoro, Iwan Iwut. ([email protected]). 26 Februari 2013. Text to Speech Bahasa
Indonesia dengan Pembangkit Prosodi Menggunakan Metoda Multirate Reccurrent
Neural Network. E-mail kepada Isrokah ([email protected]).
Waridah, Ernawati. 2008. EYD & Seputar Kebahasa-Indonesiaan. Kawan Pustaka: Jakarta
Selatan.
Download