PEMBENTUKAN BASIS DATA UCAPAN DALAM BAHASA INDONESIA DAN PENGKODEANNYA BERDASARKAN LINEAR PREDICTIVE CODING (LPC) Elly Oktarina
[email protected] Universitas Gunadarma Jl. Margonda Raya No. 100 Pondok Cina Depok 16424
ABSTRAK Basis data (database) adalah kumpulan dari data yang saling berhubungan satu dengan yang lainnya, tersimpan di simpanan luar komputer dan digunakan perangkat lunak tertentu untuk memanipulasinya. Pembentukan basis data ucapan ini terdiri dari beberapa proses yaitu perekaman suara per suku kata, simpan suara dalam bentuk .wav, pengkodean menggunakan metode Linear Predictive Coding (LPC), dan simpan ke dalam basis data dalam bentuk .mat. LPC merupakan proses untuk mendapatkan parameter-parameter sinyal suara berupa koefisien-koefisien LPC. Secara umum, LPC di bagi menjadi 3 tahap, tahap pertama adalah pembingkaian sinyal suara, tahap kedua adalah penjendelaan, dan tahap ketiga adalah metode autokorelasi. Basis data ucapan ini berisi suara yang sudah direkam sebanyak 1202 suku kata dalam Bahasa Indonesia. Kata Kunci : LPC, speech recognition. PENDAHULUAN Pengertian basis data (database) adalah kumpulan dari data yang saling berhubungan satu dengan yang lainnya, tersimpan di simpanan luar komputer dan digunakan perangkat lunak tertentu untuk memanipulasinya. Sebuah mesin database (atau "penyimpanan mesin") adalah komponen perangkat lunak yang mendasari bahwa suatu sistem manajemen database (DBMS) digunakan untuk membuat, mengambil, update dan hapus data dari database. Seseorang mungkin perintah mesin database melalui DBMS itu sendiri antarmuka pengguna, dan kadang-kadang melalui port jaringan.
Suara bisa dibuat database engine untuk pengenalan kata. Dengan aplikasi ini, dapat secara otomatis melakukan transkripsi suara, sehingga dapat mengurangi biaya tulis dan memudahkan penyimpanan arsip berupa rekaman suara digital dan teks elektronik dalam bentuk database. Juga kesenjangan digital antara manusia normal dan yang memiliki keterbatasan fisik bisa dikurangi. Maka dari itu database sangat penting dibuat, untuk membandingkan suara dengan database dan diketahui hasil inputan suaranya. Pada mode diktasi pengguna komputer dapat mengucapkan kata / kalimat yang selanjutnya akan dikenali oleh komputer dan diubah menjadi data teks. Kemungkinan jumlah kata yang dapat dikenali dibatasi oleh jumlah kata yang telah terdapat pada database. Keakuratan pengenalan mode ini bergantung pada pola suara dan aksen pembicara serta pelatihan yang telah dilakukan.
Sedangkan pada mode command and control pengguna komputer
mengucapkan kata/kalimat yang sudah terdefinisi terlebih dahulu pada database dan selanjutnya akan digunakan untuk menjalankan perintah tertentu pada aplikasi komputer. Jumlah perintah yang dapat dikenali tergantung dari aplikasi yang telah mendefinisikan terlebih dahulu pada database jenis-jenis perintah yang dapat dieksekusikan.
Linear Predictive Coding (LPC) LPC didefinisikan sebagai metode digital untuk encoding sinyal analog di mana nilai tertentu diperkirakan oleh fungsi linier dari nilai-nilai masa lalu sinyal. Ini pertama kali diusulkan sebagai metode untuk pengkodean suara manusia oleh Amerika Serikat Departemen Pertahanan di standar federal 1015, yang diterbitkan pada tahun 1984. Suara manusia diproduksi dalam saluran vokal yang dapat diperkirakan sebagai variabel diameter tabung. LPC model didasarkan pada pendekatan matematika dari saluran vokal diwakili oleh tabung dengan diameter yang bervariasi. Pada waktu tertentu, t sampel suara s(t) direpresentasikan sebagai penjumlahan linear dari p sampel sebelumnya. Aspek yang paling penting dari LPC adalah linear predictive filter yang memungkinkan nilai sampel berikutnya akan ditentukan oleh kombinasi linear dari sampel sebelumnya. Teori LPC yang dipakai dalam analisa suara, telah dipahami dengan baik dalam beberapa tahun yang lalu. Ada beberapa alasan yang menjadikan teori LPC telah banyak digunakan dalam sistem pengenalan suara, antara lain: [Rabiner 1993]
1. LPC membuktikan suatu model yang baik untuk pengenalan suara, yaitu memberikan parameter model yang tepat untuk sinyal suara, dapat dilihat pada spektrum koefisien peramalan yang mirip dengan spektrum sinyal aslinya. 2. Perhitungan yang dibutuhkan untuk mencari parameter sinyal suara relatif lebih singkat dibandingkan dengan metode lainnya. 3. Metode untuk mendapat parameter-parameter sinyal ucapan, seperti jalur forman ( Saluran vokal (tenggorokan dan mulut) membentuk tabung, yang dicirikan oleh resonansi, yang disebut forman.) dan amplitudo. Prinsip Dasar LPC LPC dimulai dengan asumsi bahwa sinyal suara diproduksi oleh dengungan pada akhir sebuah pita suara. The glotis (ruang antara pita suara) menghasilkan dengungan, yang dicirikan oleh intensitas (kerasnya suara) dan frekuensi (pitch). Saluran vokal (tenggorokan dan mulut) bentuk pipa, yang dicirikan oleh resonansi, yang disebut forman. LPC menganalisis sinyal suara dengan memperkirakan forman, menghapus pengaruhnya dari sinyal suara, dan memperkirakan intensitas dan frekuensi dari dengungan tersisa. Proses menghapus forman disebut invers penyaringan, dan sinyal sisa disebut residu. LPC mensintesis sinyal suara dengan membalik proses : menggunakan residu untuk menciptakan sumber sinyal, menggunakan forman untuk membuat penyaring, dan menjalankan sumber sinyal melalui filter, sehingga menghasilkan pengaruh pada suara. Karena sinyal suara yang bervariasi dengan waktu, proses ini dilakukan pada potongan pendek dari sinyal suara, yang disebut frame. Biasanya 30-50 frame per detik memperlihatkan suara yang jelas dengan kompresi yang baik. Proses LPC LPC membuktikan suatu model yang baik untuk pengenalan suara, yaitu memberikan parameter model yang tepat untuk sinyal suara. Blok diagram dari LPC seperti Gambar 1.
Pemilihan Bingkai
Sinyal ucapan
Metode Autokolerasi
Windowing
Koefisien LPC
Gambar 1. Blok Diagram Analisis LPC
Langkah-langkah dari pemrosesan sinyal dengan LPC sebagai berikut : 1. Pemilihan Bingkai Pada tahap ini sinyal ucapan dikelompokkan ke dalam bingkai-bingkai dengan ukuran masing-masing bingkai sebesar N data. Bingkai ini berurutan dengan pemisahan antara kedua bingkai sebesar M data. Biasanya M = 1/3 N. Blok pemilihan bingkai dari sinyal suara dapat dilihat pada Gambar 2.
Gambar 2. Blok pemilihan bingkai dari sinyal suara
2. Penjendelaan Setiap
frame
kemudian
dijendelakan
(proses
windowing)
untuk
meminimalkan diskontinuitas sinyal pada awal dan akhir bingkai. Jendela yang biasa digunakan untuk metode autokorelasi LPC adalah jendela Hamming dengan bentuk: 2πn w(n) = 0,54 − 0,46 cos ,0 ≤ n ≤ N −1 N − 1
(1)
3. Analisis Autokolerasi Pada
tahap
ini
masing-masing
frame
yang
telah
di
windowing
diautokorelasikan dengan nilai autokorelasi yang tertinggi adalah orde dari analisa LPC, biasanya orde LPC tersebut 8 sampai 16.
N −1− m
rl (m) =
∑ x~ (n) x~ (n + m) l
l
n=0
(2)
Perencanaan Dalam pembuatan perangkat lunak ini, penulis melakukan serangkaian kegiatan berupa langkah-langkah penelitian, seperti yang tertera di bawah ini: -
Merekam suara per-suku kata.
-
Simpan dalam bentuk .wav
-
Pengkodean dengan LPC.
-
Simpan ke dalam basis data dalam bentuk .mat
Problem Mendapatkan basis data suara yang berupa koefisien-koefisien LPC dalam bentuk .mat
Solusi Berikut ini merupakan tahapan-tahapan solusi :
Melakukan Perekaman Data Suara Proses rekaman ini diambil menggunakan alat rekam mikrofon dengan bantuan software Pro Tools 8. Setiap suara mempunyai waktu rekam yang berbeda satu sama lain, tergantung pengucapan tiap suku kata. Misal pada suku kata ba, bi, bu, be, bo, tiap suku kata membutuhkan waktu rekam 1 detik. Setelah suara direkam akan secara otomatis tersimpan dalam folder yang telah dibuat sebelumnya. Suara yang kita rekam tadi, kita buka kembali dengan menggunakan Matlab untuk di LPC. Waktu yang dibutuhkan untuk merekam suara 1 suku kata hingga tersimpan dalam database kira-kira 3 menit 29 detik. Jumlah suku kata yang direkam adalah 1202 suku kata, jadi waktu yang dibutuhkan untuk memproses 1202 suku kata adalah 1202 dikali 3 menit 29 detik sama dengan 69.78 jam.
Gambar 3. Tampilan ucapan suku kata “ba” pada Matlab
Gambar 4. Tampilan ucapan suku kata “bi” pada Matlab
Gambar 5. Tampilan ucapan suku kata “bu” pada Matlab
Gambar 6. Tampilan ucapan suku kata “be” pada Matlab
Gambar 7. Tampilan ucapan suku kata “bo” pada Matlab
Pengkodean dengan LPC Secara umum, LPC di bagi menjadi 3 tahap, tahap pertama adalah pembingkaian sinyal suara, tahap kedua adalah penjendelaan, dan tahap ketiga adalah metode autokorelasi. Blok diagram LPC dapat dilihat pada gambar 8. Sinyal ucapan
Pemilihan Bingkai
Windowing
Metode Autokolerasi
Koefisien LPC
Gambar 8. Blok Diagram Analisis LPC
LPC digunakan untuk mendapatkan koefisien-koefisien LPC dan disimpan dalam basis data. Hasil LPC ini dapat dilihat pada gambar 9 sampai gambar 13.
Gambar 9. Tampilan suku kata “ba” hasil analisis LPC pada matlab
Gambar 10. Tampilan suku kata “bi” hasil analisis LPC pada matlab
Gambar 11. Tampilan suku kata “bu” hasil analisis LPC pada matlab
Gambar 12. Tampilan suku kata “be” hasil analisis LPC pada matlab
Gambar 13. Tampilan suku kata “bo” hasil analisis LPC pada matlab
Dari hasil LPC pada gambar di atas dapat dilihat bahwa LPC menganalisis sinyal suara dengan memperkirakan forman, menghapus pengaruhnya dari sinyal suara, dan memperkirakan intensitas dan frekuensi dari dengungan tersisa. Proses menghapus forman disebut invers penyaringan, dan sinyal sisa disebut residu. Maka dari itu gelombang suara asli dengan hasil LPC lebih besar daripada gelombang suara hasil LPC. Uji Coba Aplikasi Uji coba aplikasi ini dilakukan terhadap ucapan suku kata “ba.wav”, “bi.wav”, “bu.wav”, “be.wav”, “bo.wav”. Output dari suara tersebut dapat dilihat pada gambar 15. Setelah proses LPC selesai, hasil suara yang telah di LPC akan secara otomatis tersimpan ke dalam database dalam bentuk file dengan nama “ba.wav-lpc.mat”.
Gambar 14. Tampilan awal program
Gambar 15. Output dari suara “ba” yang dianalisis oleh LPC
Pembahasan Dari hasil uji coba program diatas, dapat disimpulkan bahwa aplikasi yang telah dibuat berjalan sesuai dengan rancangan dan aplikasi berhasil melakukan analisis suara dengan baik karena setiap sinyal suara dengan ucapan suku kata ba, bi, bu, be, bo yang di
uji coba dapat menghasilkan koefisien-koefisien LPC. Hasil koefisien-koefisien LPC dapat dilihat dibawah ini.
Hasil koefisien LPC Hasil koefisian LPC ini didapat dari pemrosesan sinyal tahap Windowing dengan 2πn bentuk w(n) = 0,54 − 0,46 cos 0 ≤ n ≤ N − 1 , dan tahap Analisis Autokorelasi N − 1 N −1− m
dengan bentuk rl (m) =
∑ x~ (n) x~ (n + m) . l
l
Dengan M menunjukkan orde LPC dan N
n=0
panjang bingkai. Maka didapat angka-angka koefisien LPC yang dihitung dari nilai amplitudo suara tersebut.
Koefisien LPC suku kata ba.mat Di bawah ini merupakan koefisien LPC dari suku kata ba.mat yang diperoleh dari sinyal suara yang telah dianalisis dengan LPC. Pertama suara di bingkai kemudian setiap bingkai suara tersebut di-windowing dan dilakukan proses autokorelasi sehingga menghasilkan koefisien LPC.
Tabel 1. Hasil koefisien LPC dari suku kata ba.mat 0.000091552734375
0.000050355482693
-0.000085997127377
-0.000224524534931
0.00009154079016
0.000011377247173
-0.000392397189324
-0.000357673656071
0.000000056820815
-0.000018798843179
-0.00010485818691
-0.000035269623946
0.000273895161424
-0.000049403117284
-0.000261258170954
0.000017929450551
0.000213442384569
-0.00006028924545
-0.00033110476397
-0.000279169532329
0.00024316126925
0.000094863036145
-0.000061158586498
-0.00008426619399
0.000273586226186
0.00014227941067
0.000119602553648
-0.000347042571818
-0.000027016183939
0.000015911444338
-0.000167912137696
-0.000199411176042
0.00012003468914
0.000021231124447
-0.000268282049354
-0.000289130257384
0.00012343645739
-0.000105752523877
0.000044164581423
-0.000249908291014
0.000062900623859
-0.000009993283026
-0.000104735177338
-0.000263081419733
-0.000026660706119
0.000107422418807
0.00016594242649
-0.00029108638265
0.000234206216057
-0.000074526253934
0.000110026534544
-0.000249016489861
0.00023532567913
-0.000184830004835
0.000044002456801
-0.000081826431447
-0.000018326022748
-0.000184878238984
0.000001551735474
-0.000076441086464
-0.000141422111822
-0.000207275993693
0.000024449277951
-0.000001637295657
0.000108505677266
0.000051222604827
-0.000127356747222
-0.000153816268549
0.000156669246094
-0.000148210471079
0.00005022560859
-0.000236673381831
-0.000019033612487
-0.000051797705617
-0.000257768740604
-0.000079289931772
0.000061913737078
-0.000077659034857
0.000093858954584
0.000007167397416
-0.00020819953393
-0.000097690682114
-0.000223594757598
-0.000260464529599
-0.000102970445199
0.000115472620907
0.000153058950267
0.000021405002395
-0.000134001380601
-0.00018656947769
-0.000169253844497
0.000007834238595
-0.000053521351643
-0.00006533899596
-0.000044161387957
-0.000211762385744
-0.000054178833768
-0.000122377386079
-0.000047516316964
-0.000233997396835
-0.000044064522945
-0.000182145894903
0.0001608239196
-0.000229253341505
0.000029599669414
-0.000052014081109
-0.000230061177454
-0.000157151813274
-0.000037365109706
-0.000090387027492
-0.000358873851959
-0.00020895865747
-0.000005049433221
-0.000225978593375
-0.000046365595823
-0.000547808308471
0.000056202960211
-0.000052995684869
-0.000216889583211
-0.000309854994306
0.000240625389215
-0.000193467489898
0.000114578986494
0.000000068747285
0.000076831168263
-0.000075190039337
-0.000324462763141
-0.000225520183328
0.000084293890011
-0.00030854790749
-0.000329194067808
-0.000150222219662
0.00001925203283
-0.000020483335791
-0.000000403394282
-0.000187567794663
0.000080692274006
-0.000368373959778
-0.000174518987507
-0.000038122003354
0.000003208169833
-0.000195365594208
-0.00023497928265
0.000040635235543
-0.000009167392098
-0.000099491783635
-0.00008313581166
-0.000262692063599
0.000054742910156
0.000042306038151
-0.000284463148114
-0.000157809935194
-0.000044742743433
-0.000039074448876
-0.000198767696242
0.000092263968845
-0.000090477316328
-0.000194741872589
-0.00005117330245
-0.000236067519921
-0.000068793894835
-0.000167288281323
-0.000150174569721
0.000157023231786
0.000067321226884
-0.000200916780638
-0.000244624355999
-0.000127781002102
-0.000023289053349
0.000076465543715
-0.000231660193975
-0.000097603182485
-0.000134880217551
-0.000228350621399
-0.000052594989738
-0.000354610281361
-0.000172684004187
-0.000259060224093
-0.000429727918417
-0.000078041009928
-0.000058981274375
0.000029108092128
-0.000431120220079
-0.000232191091429
-0.000050639407466
0.000022977282178
-0.000025979000942
-0.000269539186616
-0.000060766990566
0.000144438020445
-0.000241326192316
0.000220864901918
-0.00012736730534
-0.000053255648085
-0.000272177711427
-0.000219208833922
-0.000111559901367
-0.000303668458433
-0.000182657859997
0.000125246962729
PENUTUP Berdasarkan pada hasil pengujian dan analisa terhadap hasil yang didapatkan, maka dapat diambil kesimpulan yaitu : 1. Suara sudah direkam sebanyak 1202 suku kata dalam Bahasa Indonesia.
2. Aplikasi ini dapat menyimpan hasil koefisien – koefisien LPC dalam bentuk tabel ke dalam basis data.
Saran penulis untuk aplikasi ini dalam hal interface yang digunakan sebagai berikut : 1.
Agar penerapan aplikasi ini dapat dilakukan secara optimal, sebaiknya sebelum aplikasi ini digunakan oleh user, sehendaknya diberikan pelatihan mengenai bagaimana mengoperasikan aplikasi tersebut dalam hal fungsi-fungsi menu yang terdapat didalam aplikasi, agar kesalahan dalam menggunakan aplikasi ini dapat di minimalisir sekecil mungkin.
2.
Fitur yang tersedia pada aplikasi telah dapat mengatasi permasalahan yang ada pada sistem lama. Namun demikian, seiring dengan berjalannya waktu dunia teknologi informasi akan terus meningkat, karena manusia menginginkan efektifitas dan efisiensi dalam pekerjaannya. Oleh karena itu diperlukan pengembangan yang lebih lanjut terhadap fitur yang sudah ada.
3.
Diharapkan aplikasi ini selanjutnya dapat dikembangkan untuk pengenalan kata.
DAFTAR PUSTAKA Away, Gunaidi Abdia. 2006. The shortcut of MATLAB programming, Bandung : Informatika. Becchetti, Claudio dan Ricotti, Lucio Prina. 1999. Speech Recognition Theory and C++ Implementation. Chichester : John Willey & Sons. Bradbury,
Jeremy.
Linear
Predictive
Coding.
http://my.fit.edu/~vkepuska/ece5525/lpc_paper.pdf Chou, Wu dan Juang, B. H., 2003. Pattern Recognition in Speech and Language Processing. Washington DC : CRC PRESS. Melissa, Gressia. Pencocokan Pola Suara (Speech Recognition) dengan Algoritma FFT dan
DIVIDE
and
CONQUER.
http://www.informatika.org/~rinaldi/Stmik/20072008/Makalah2008/MakalahIF2251-2008077.pdf
Rabiner, Lawrence. 1989. A Tutuorial on Hidden Markov Model and Selected Application in Speech Recognition. vol. 77. no. 2. pp. 257-286. IEEE. Rabiner, Lawrence. 1993. Fundamental of Speech Recognition. New Jersey : Prentice Hall. Rabiner, Lawrence dan Juang, B. H., 1991. Hidden Markov Models for Speech Recognition. vol. 33. no. 3. pp. 251-272. TECHNOMETRICS. Santoso,
Tri
Budi.
dan
Miftahul
Huda.
Topik
Lanjutan
Pengolah
http://www.eepisits.edu/~tribudi/LN_SIP_Prak/rev_01_Speech_prak_6_Matlab.pdf Sugiharto, Aris. 2006. Pemrograman GUI dengan MATLAB. Yogyakarta : ANDI.
Wicara.