Post on 08-Aug-2015
PEMBENTUKAN BASIS DATA UCAPAN DALAM BAHASA
INDONESIA DAN PENGKODEANNYA BERDASARKAN LINEAR
PREDICTIVE CODING (LPC)
Elly Oktarina
zonalee_cho@yahoo.com
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.
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:
w nn
N( ) , , cos= −
−
0 54 0 46
2
1
π , 0 1≤ ≤ −n N (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.
Pemilihan
Bingkai
Windowing Metode
Autokolerasi Sinyal
ucapan Koefisien
LPC
r m x n x n ml l ln
N m
( ) ~ ( )~ ( )= +
=
− −
∑0
1
(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.
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
Pemilihan
Bingkai
Windowing Metode
Autokolerasi Sinyal
ucapan Koefisien
LPC
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
bentuk w nn
N( ) , , cos= −
−
0 54 0 46
2
1
π0 1≤ ≤ −n N , dan tahap Analisis Autokorelasi
dengan bentuk r m x n x n ml l ln
N m
( ) ~ ( )~ ( )= +
=
− −
∑0
1
. Dengan M menunjukkan orde LPC dan N
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.00009154079016
0.000000056820815
0.000273895161424
0.000213442384569
0.00024316126925
0.000273586226186
-0.000027016183939
0.00012003468914
0.00012343645739
0.000062900623859
-0.000026660706119
0.000234206216057
0.00023532567913
-0.000018326022748
0.000050355482693
0.000011377247173
-0.000018798843179
-0.000049403117284
-0.00006028924545
0.000094863036145
0.00014227941067
0.000015911444338
0.000021231124447
-0.000105752523877
-0.000009993283026
0.000107422418807
-0.000074526253934
-0.000184830004835
-0.000184878238984
-0.000085997127377
-0.000392397189324
-0.00010485818691
-0.000261258170954
-0.00033110476397
-0.000061158586498
0.000119602553648
-0.000167912137696
-0.000268282049354
0.000044164581423
-0.000104735177338
0.00016594242649
0.000110026534544
0.000044002456801
0.000001551735474
-0.000224524534931
-0.000357673656071
-0.000035269623946
0.000017929450551
-0.000279169532329
-0.00008426619399
-0.000347042571818
-0.000199411176042
-0.000289130257384
-0.000249908291014
-0.000263081419733
-0.00029108638265
-0.000249016489861
-0.000081826431447
-0.000076441086464
-0.000141422111822
0.000108505677266
0.000156669246094
-0.000019033612487
0.000061913737078
-0.00020819953393
-0.000102970445199
-0.000134001380601
-0.000053521351643
-0.000054178833768
-0.000044064522945
0.000029599669414
-0.000037365109706
-0.000005049433221
0.000056202960211
0.000240625389215
0.000076831168263
0.000084293890011
0.00001925203283
0.000080692274006
0.000003208169833
-0.000009167392098
0.000054742910156
-0.000044742743433
-0.000090477316328
-0.000068793894835
0.000067321226884
-0.000023289053349
-0.000134880217551
-0.000172684004187
-0.000058981274375
-0.000050639407466
-0.000060766990566
-0.00012736730534
-0.000111559901367
-0.000207275993693
0.000051222604827
-0.000148210471079
-0.000051797705617
-0.000077659034857
-0.000097690682114
0.000115472620907
-0.00018656947769
-0.00006533899596
-0.000122377386079
-0.000182145894903
-0.000052014081109
-0.000090387027492
-0.000225978593375
-0.000052995684869
-0.000193467489898
-0.000075190039337
-0.00030854790749
-0.000020483335791
-0.000368373959778
-0.000195365594208
-0.000099491783635
0.000042306038151
-0.000039074448876
-0.000194741872589
-0.000167288281323
-0.000200916780638
0.000076465543715
-0.000228350621399
-0.000259060224093
0.000029108092128
0.000022977282178
0.000144438020445
-0.000053255648085
-0.000303668458433
0.000024449277951
-0.000127356747222
0.00005022560859
-0.000257768740604
0.000093858954584
-0.000223594757598
0.000153058950267
-0.000169253844497
-0.000044161387957
-0.000047516316964
0.0001608239196
-0.000230061177454
-0.000358873851959
-0.000046365595823
-0.000216889583211
0.000114578986494
-0.000324462763141
-0.000329194067808
-0.000000403394282
-0.000174518987507
-0.00023497928265
-0.00008313581166
-0.000284463148114
-0.000198767696242
-0.00005117330245
-0.000150174569721
-0.000244624355999
-0.000231660193975
-0.000052594989738
-0.000429727918417
-0.000431120220079
-0.000025979000942
-0.000241326192316
-0.000272177711427
-0.000182657859997
-0.000001637295657
-0.000153816268549
-0.000236673381831
-0.000079289931772
0.000007167397416
-0.000260464529599
0.000021405002395
0.000007834238595
-0.000211762385744
-0.000233997396835
-0.000229253341505
-0.000157151813274
-0.00020895865747
-0.000547808308471
-0.000309854994306
0.000000068747285
-0.000225520183328
-0.000150222219662
-0.000187567794663
-0.000038122003354
0.000040635235543
-0.000262692063599
-0.000157809935194
0.000092263968845
-0.000236067519921
0.000157023231786
-0.000127781002102
-0.000097603182485
-0.000354610281361
-0.000078041009928
-0.000232191091429
-0.000269539186616
0.000220864901918
-0.000219208833922
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-2008-
077.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 Wicara.
http://www.eepisits.edu/~tribudi/LN_SIP_Prak/rev_01_Speech_prak_6_Matlab.pdf
Sugiharto, Aris. 2006. Pemrograman GUI dengan MATLAB. Yogyakarta : ANDI.