TRANSKRIPSI SUARA KE TEKS BAHASA INDONESIA BERBASIS SUKU KATA MENGGUNAKAN CODEBOOK DAN 2-LEVEL DYNAMIC PROGRAMMING
SINTYA ROSDWIANTY
DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR BOGOR 2014
PERNYATAAN MENGENAI SKRIPSI DAN SUMBER INFORMASI SERTA PELIMPAHAN HAK CIPTA Dengan ini saya menyatakan bahwa skripsi berjudul Transkripsi Suara ke Teks Bahasa Indonesia Berbasis Suku Kata Menggunakan Codebook dan 2-level Dynamic Programming adalah benar karya saya dengan arahan dari komisi pembimbing dan belum diajukan dalam bentuk apa pun kepada perguruan tinggi mana pun. Sumber informasi yang berasal atau dikutip dari karya yang diterbitkan maupun tidak diterbitkan dari penulis lain telah disebutkan dalam teks dan dicantumkan dalam Daftar Pustaka di bagian akhir skripsi ini. Dengan ini saya melimpahkan hak cipta dari karya tulis saya kepada Institut Pertanian Bogor. Bogor, Juli 2014 Sintya Rosdwianty NIM G64100085
ABSTRAK SINTYA ROSDWIANTY. Transkripsi Suara ke Teks Bahasa Indonesia Berbasis Suku Kata Menggunakan Codebook dan 2-level Dynamic Programming. Dibimbing oleh AGUS BUONO dan MUHAMMAD ASYHAR AGMALARO. Transkripsi suara ke teks sangat berguna karena memudahkan manusia berinteraksi dengan sistem secara lebih cepat. Akan tetapi, sistem sulit mengenali suara berupa rangkaian kata. Penelitian ini mengembangkan sistem yang dapat mengenali rangkaian kata dengan menggunakan metode MFCC sebagai teknik ekstraksi ciri, codebook sebagai metode pengenalan pola, dan 2-level dynamic programming sebagai metode pengenalan rangkaian kata. Teknik cluster yang digunakan pada penelitian ini adalah K-means. Parameter yang digunakan pada teknik MFCC adalah overlap, time frame, dan jumlah koefisien cepstral. Adapun parameter pada teknik K-means adalah jumlah cluster. Penelitian ini menggunakan 900 data suara suku kata yang terdiri atas 18 kelas dan 120 data suara berisi rangkaian kata yang terdiri atas 60 data uji hasil gabungan data latih dan 60 data uji sebenarnya. Hasil penelitian menunjukkan bahwa nilai K optimum adalah 15, dan nilai word error rate terendah yang diperoleh adalah 0.1, diperoleh pada rangkaian kata kelas ‘Ide Anda’ hasil gabungan suku kata data latih, saat overlap 0.25, time frame 25 ms, koefisien cepstral 13, dan jumlah cluster 20. Kata kunci: codebook, connected word, dynamic programming, K-means, MFCC
ABSTRACT SINTYA ROSDWIANTY. Voice to Text Transcription based on Indonesian Syllable using Codebook and 2-level Dynamic Programming. Supervised by AGUS BUONO and MUHAMMAD ASYHAR AGMALARO. Voice to text transcription is very useful because it allows people to interact with a system more quickly. However, it is hard for a system to recognize a speech which contains of connected words. This research aims to develop a system that recognize a connected word speech. The proposed approach uses MFCC as a feature extraction, codebook as pattern recognition method, and 2-level dynamic programming as connected words recognition method. The parameters used in feature extraction using MFCC are overlap, time frame, and number of cepstral coefficients. Moreover the parameter used in K-means clustering is the number of clusters. This research uses 900 syllable’s speech data from 18 classes, and 120 connected word’s speech data which consist of 60 testing data joined from training data and 60 real testing data. The results showed that the optimum value of K was 15, with the minimum word error rate of 0.1 for the ‘Ide Anda’ words resulted from joining words of training data with the overlap value of 0.25, the time frame value of 25 ms, the number of cepstral coefficients of 13, and the number of clusters of 20. Keywords: codebook, connected word, dynamic programming, K-means, MFCC
TRANSKRIPSI SUARA KE TEKS BAHASA INDONESIA BERBASIS SUKU KATA MENGGUNAKAN CODEBOOK DAN 2-LEVEL DYNAMIC PROGRAMMING
SINTYA ROSDWIANTY
Skripsi sebagai salah satu syarat untuk memperoleh gelar Sarjana Ilmu Komputer pada Departemen Ilmu Komputer
DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR BOGOR 2014
Penguji: Auzi Asfarian, SKomp, MKom
Judul Skripsi : Transkripsi Suara ke Teks Bahasa Indonesia Berbasis Suku Kata Menggunakan Codebook dan 2-level Dynamic Programming Nama : Sintya Rosdwianty NIM : G64100085
Disetujui oleh
Dr Ir Agus Buono, MSi MKom Pembimbing I
Muhammad Asyhar Agmalaro, SSi MKom Pembimbing II
Diketahui oleh
Dr Ir Agus Buono, MSi MKom Ketua Departemen
Tanggal Lulus:
PRAKATA Puji dan syukur penulis panjatkan kepada Allah subhanahu wa ta’ala atas segala karunia-Nya sehingga karya ilmiah ini berhasil diselesaikan. Tema yang dipilih dalam penelitian yang dilaksanakan sejak bulan Januari 2014 ini ialah pemrosesan bahasa alami, dengan judul Transkripsi Suara ke Teks Bahasa Indonesia Berbasis Suku Kata Menggunakan Codebook dan 2-level Dynamic Programming. Penulis menyadari bahwa penelitian ini masih memiliki kekurangan. Adapun penulis mengucapkan terima kasih kepada: 1 Kedua orangtua dan kakak yang telah memberikan perhatian, doa, dan dukungan sehingga penulis dapat menyelesaikan penelitian ini. 2 Bapak Dr Ir Agus Buono, MSi MKom dan Bapak Muhammad Ashyar Agmalaro, SSi MKom, selaku pembimbing yang telah memberikan arahan dan saran kepada penulis. 3 Bapak Auzi Asfarian, SKom MKom, selaku penguji yang telah banyak memberi saran dan masukan kepada penulis. 4 Teman-teman Ilmu Komputer 47 atas segala dukungan, ilmu, perhatian dan kasih sayangnya. 5 Teman-teman UKM MAX!! IPB dan kelas TPB A01 2010 atas segala pengalaman yang diberikan selama kuliah. Semoga karya ilmiah ini bermanfaat.
Bogor, Juli 2014 Sintya Rosdwianty
DAFTAR ISI DAFTAR TABEL
viii
DAFTAR GAMBAR
viii
DAFTAR LAMPIRAN
viii
PENDAHULUAN
1
Latar Belakang
1
Perumusan Masalah
1
Tujuan Penelitian
2
Manfaat Penelitian
2
Ruang Lingkup Penelitian
2
METODE
2
Pengambilan Suara
3
Praproses
4
Ekstraksi Ciri MFCC
4
Perangkaian Kata
5
Codebook
5
Time Alignment
6
2-level Dynamic Programming
6
Lingkungan Pengembangan
7
Pengujian
7
HASIL DAN PEMBAHASAN
8
Pengambilan Suara
8
Praproses
8
Ekstraksi Ciri MFCC
8
Perangkaian Kata
8
Codebook
8
Time Alignment
9
2-level Dynamic Programming
9
Pengujian
9
Implementasi Sistem SIMPULAN DAN SARAN
12 13
Simpulan
13
Saran
13
DAFTAR PUSTAKA
14
LAMPIRAN
15
RIWAYAT HIDUP
17
DAFTAR TABEL 1 2 3 4
Daftar suku kata sebagai data latih Daftar rangkaian kata sebagai data uji Word error rate untuk kelas data uji sebenarnya Word error rate untuk kelas data uji hasil gabungan data latih
3 4 9 10
DAFTAR GAMBAR 1 2 3 4 5 6 7 8
Diagram alur penelitian 3 Blok diagram MFCC 4 Perbedaan data suara asli, setelah pemotongan silent, setelah dinormalisasi 8 Rata-rata WER setiap kelas data uji untuk semua nilai K 10 Pengaruh nilai K terhadap rata-rata WER untuk semua kelas data uji 11 Tingkat akurasi suku kata pada kelas data uji gabungan data latih 12 Tingkat akurasi suku kata pada kelas data uji sebenarnya 12 Antarmuka program transkripsi suara ke teks berbasis suku kata 13
DAFTAR LAMPIRAN 1 Matriks konfusi tingkat akurasi suku kata pada data uji gabungan data latih 15 2 Matriks konfusi tingkat akurasi suku kata pada data uji sebenarnya 16
PENDAHULUAN Latar Belakang Perkembangan penelitian tentang pemrosesan suara dan bahasa alami saat ini telah meningkat pesat. Hal tersebut disebabkan karena penelitian di bidang ini dapat diimplementasikan untuk kemudahan berbagai aktivitas manusia. Salah satu contohnya ialah penelitian tentang transkripsi suara ke teks (speech to text recognition), yang memungkinkan suatu sistem komputer berinteraksi dengan manusia selayaknya interaksi antarmanusia. Proses penting dalam transkripsi suara ke teks adalah proses pengenalan suara yang mengambil suatu gelombang sebagai data input dan menghasilkan sebuah deretan string kata sebagai data output (Jurafsky dan Martin 2007). Sistem transkripsi suara ke teks sangat berguna karena memudahkan manusia untuk berinteraksi dengan sistem secara lebih cepat. Contoh aplikasi terapan yang banyak ditemui sehari-hari adalah fungsi voice dial pada telepon genggam. Penelitian tentang transkripsi suara ke teks pun sudah banyak dilakukan, misalnya penelitian yang dilakukan oleh Luthfi (2013). Penelitian tersebut mendeteksi kata dengan MFCC sebagai ekstraksi ciri dan codebook sebagai pengenalan pola. Pada penelitian tersebut, Luthfi berhasil membangun codebook yang terdiri atas hasil klustering K-means untuk data latih berupa kata, dengan nilai codeword pada codebook 16 dan 32, dan parameter MFCC yang digunakan ialah time frame 23.7 ms, overlap 0.5, dan koefisien cepstral 13. Penelitian tersebut mendapatkan akurasi rata-rata 98%, dan berhasil mengenali input rangkaian kata yang diproses secara isolated words, atau pemrosesan tiap unit kata. Atas dasar tersebut, penelitian ini membangun sistem transkripsi suara menggunakan model codebook, yang dapat mengenali rangkaian kata berbasis suku kata, dan diproses secara connected words. Suku kata dipilih sebagai unit transkripsi karena suatu suku kata dapat divariasikan menjadi banyak kata sehingga sistem dapat mentranskripsi lebih banyak kemungkinan kata dibandingkan dengan transkripsi dengan unit berupa kata. Penelitian ini akan dikombinasikan dengan metode 2-level dynamic programming (DP), yaitu salah satu metode yang dapat mengatasi transkripsi suara untuk rangkaian kata/connected words (Juang dan Rabiner 1993).
Perumusan Masalah Transkripsi sinyal suara ke teks membutuhkan proses yang tidak mudah, karena membutuhkan suatu metode tertentu agar dapat mengenali struktur suara dengan tepat. Atas dasar tersebut, muncul pertanyaan penelitian sebagai berikut: 1 Bagaimana proses membangun metode codebook untuk sistem transkripsi rangkaian kata berbasis suku kata? 2 Bagaimana proses transkripsi suku kata untuk data input yang terdiri atas rangkaian beberapa kata dengan metode 2-level DP? 3 Bagaimana tingkat akurasi yang dihasilkan dari sistem tersebut?
2 Tujuan Penelitian 1 2 3
Tujuan dari penelitian ini, yaitu: Membangun codebook suku kata yang akan digunakan sebagai model referensi untuk sistem transkripsi. Menerapkan metode 2-level DP untuk transkripsi rangkaian kata berbasis suku kata. Mengetahui tingkat akurasi transkripsi suara ke teks dengan metode codebook dan 2-level DP.
Manfaat Penelitian Penelitian ini diharapkan mampu memberikan informasi tentang pengolahan suara untuk rangkaian kata/connected words dan tingkat akurasi transkripsi suara ke teks bahasa Indonesia berbasis suku kata. Selain itu, hasil penelitian ini diharapkan dapat dikembangkan untuk pengenalan semua suku kata dalam bahasa Indonesia dan dikembangkan menjadi sistem yang bersifat speaker independent sehingga sistem yang dikembangkan dapat dimanfaatkan oleh masyarakat umum.
Ruang Lingkup Penelitian 1
2
3 4
Ruang lingkup penelitian ini adalah: Jumlah suku kata yang mampu dikenali dalam sistem berjumlah 18 suku kata. Daftar suku kata tersebut mengacu pada 18 suku kata yang memiliki frekuensi kemunculan terbanyak pada teks penelitian Buono dan Kusumoputro (2007) berjudul Pengembangan Model HMM Berbasis Maksimum Lokal Menggunakan Jarak Euclid Untuk Sistem Identifikasi Pembicara pada halaman 1 sampai 3. Sistem yang dikembangkan bersifat speaker dependent karena sistem hanya dapat mengenali suara yang menjadi data latih (Jurafsky dan Martin 2007) yaitu suara penulis berjenis kelamin wanita. Parameter MFCC yang digunakan pada penelitian ini adalah time frame 25 ms, overlap 0.25, dan koefisien cepstral sebesar 13. Rangkaian kata yang mampu dikenali hanya rangkaian kata yang terdiri atas deretan 4 suku kata.
METODE Penelitian ini dikembangkan dengan metode yang terdiri atas beberapa tahap, seperti disajikan pada Gambar 1.
3 Pengambilan Suara Mulai Pengambilan suara 18 suku kata x 50 = 900 suara suku kata 6 rangkaian kata x 10 = 60 suara rangkaian kata
Praproses Ekstraksi Ciri MFCC Data Uji
Data Latih Perangkaian Kata
Codebook Time Alignment
2-Level Dynamic Programming Pengujian Selesai Gambar 1 Diagram alur penelitian Data suara yang digunakan dalam penelitian ini berasal dari satu pembicara yaitu suara penulis, dengan rincian 18 kelas suku kata dan 6 kelas rangkaian kata. Masing-masing data suku kata direkam selama 1 detik dengan pengulangan tiap kelas sebanyak 50 kali sehingga total data suku kata berjumlah 900 data. Suku kata tersebut digunakan sebagai data latih untuk pembangunan codebook seperti disajikan pada Tabel 1, yang diurutkan berdasarkan jumlah kemunculan suku kata terbanyak pada teks yang diacu. Tabel 1 Daftar suku kata sebagai data latih Suku Kata Si A Da Di An Se I Kan Ra De Ma Ni Ti Ter Pe Lah Ka Ta Data suara berupa rangkaian kata disusun berdasarkan kombinasi suku kata dari data latih yang tersedia, dan direkam selama 3 detik dengan pengulangan tiap kelas 10 kali. Total data yang direkam sebanyak 60 data dan akan digunakan untuk data uji sebenarnya. Data tersebut berjumlah 6 kelas karena keenam kelas kata
4 tersebut sudah mewakili setiap suku kata yang terdapat pada data latih, seperti disajikan pada Tabel 2. Tabel 2 Daftar rangkaian kata sebagai data uji Rangkaian Kata Suku Kata Ide anda i, de, an, da Peti tani pe, ti, ta, ni Sesi makan se, si, ma, kan Dia kalah di, a, ka, lah Terka ini ter, ka, i, ni Ada rasi a, da, ra, si
Praproses Setiap data suara memiliki silent pada awal dan akhir kata. Pada tahap ini dilakukan penghapusan silent agar data suara murni hanya terdiri atas data yang akan diproses. Selain itu, suara memiliki range amplitudo yang berbeda-beda. Oleh karena itu proses normalisasi amplitudo dilakukan agar setiap suara memiliki range amplitudo yang sama.
Ekstraksi Ciri MFCC Ekstraksi ciri merupakan proses untuk mencari suatu nilai atau vektor yang menjadi ciri khusus dari suatu variabel atau objek. Salah satu teknik ekstraksi ciri yang banyak digunakan dan sesuai dengan persepsi sistem pendengaran manusia adalah Mel Frequency Cepstrum Coefficient (MFCC). Tahapan MFCC disajikan pada Gambar 2. Continuous Speech Mel Spectrum Cepstrum
Frame Blocking Mel-frequency Wrapping
Frame
Windowing
Spectrum
FFT
Mel Cepstrum Gambar 2 Blok diagram MFCC
Tahap pertama MFCC adalah frame blocking yaitu teknik pembagian sinyal menjadi blok-blok (frame) dengan ukuran/lebar tertentu, dan di antara kedua blok yang berdekatan terdapat overlap. Overlap adalah keadaan suatu sinyal yang saling tumpang tindih untuk mencegah adanya informasi yang hilang. Tahap selanjutnya adalah windowing, yaitu proses mengalikan sinyal digital dengan suatu fungsi window tertentu. Tujuan windowing adalah untuk mengurangi distorsi antar frame yang berdekatan. Formula windowing yang digunakan pada penelitian ini adalah Hamming window karena formula ini memiliki kinerja yang baik dan perhitungan sederhana (Buono et al. 2009), seperti disajikan pada Persamaan 1.
5 2πn
𝑤(n) = 0.54 - 0.46 cos (N - 1) , 0 ≤ n ≤ N-1 (1) Tahap selanjutnya adalah Fast Fourier Transform (FFT), yaitu salah satu algoritme untuk mengimplementasikan Discrete Fourier Transform (DFT) untuk mentransformasi frame dari domain waktu ke domain frekuensi. Hasil dari tahap ini dinamakan spektrum. Fungsi FFT disajikan pada Persamaan 2. xk = ∑ Nn =- 10 xn e-
j2πkn N
(2)
dengan k = 0, 1, 2, ..., N-1 Xk = nilai-nilai sampel yang akan diproses ke dalam domain frekuensi Xn = magnitudo frekuensi N = jumlah data pada domain frekuensi j = bilangan imajiner Secara umum, Xk adalah bilangan kompleks dan hanya dilihat bilangan absolutnya. Setelah itu, dilakukan mel-frequency wrapping, yaitu proses pemfilteran spektrum setiap frame menggunakan sejumlah M filter segitiga dengan tinggi satu. Filter ini dibuat berdasarkan persepsi manusia terhadap suatu suara. Hubungan skala mel dengan frekuensi (Hz) dinyatakan pada Persamaan 3. F Fmel = 2595 log10 (1+ Hz ) (3) 700 Cepstrum adalah tahap terakhir yang berfungsi mengubah log mel hasil proses sebelumnya kembali menjadi domain waktu. Hasil dari tahap ini disebut MFCC dengan jumlah koefisien MFCC tertentu yang diinginkan. Pada penelitian ini proses MFCC menggunakan auditary toolbox Matlab yang dikembangkan oleh Slaney (1998).
Perangkaian Kata Perangkaian kata dilakukan dengan cara merangkaikan data latih berupa suku kata menjadi rangkaian kata seperti data uji. Hal ini dilakukan untuk membandingkan kinerja sistem terhadap data yang terdiri atas gabungan data latih dan data uji sebenarnya.
Codebook Codebook adalah barisan simbol yang merepresentasikan suatu objek tertentu (Jurafsky dan Martin 2007). Codebook merupakan salah satu metode pengenalan pola yang menghasilkan sebuah cetakan suara. Setiap titik pada codebook dinamakan codeword. Nilai pada codeword diambil dari hasil pengelompokkan/clustering semua data latih berupa vektor ciri masing-masing suara. Algoritme clustering yang digunakan pada penelitian ini adalah K-means, karena algoritme ini memiliki kinerja cepat dan perhitungan sederhana. Ide dasar K-means adalah membuat kluster untuk data yang memiliki karakteristik mirip, dan memisahkan data yang memiliki karakteristik berbeda. Langkah pertama dalam K-means adalah menentukan nilai K, yaitu initial centroid yang merepresentasikan jumlah kluster yang diinginkan. Setelah itu, semua data pada data latih akan dimasukkan pada kluster yang memiliki jarak terdekat dengan data tersebut.
6 Time Alignment Time alignment merupakan metode untuk mengatasi pencarian jarak antara sinyal suara input dan sinyal suara pada model referensi dengan panjang vektor berbeda. Time alignment bekerja dengan cara mencari pasangan frame untuk sebuah sinyal suara input, dan mencari jarak totalnya dengan frame-frame pada sebuah kelas referensi. Karena kemampuannya dalam mengatasi perbedaan panjang vektor frame, time alignment cocok untuk diterapkan pada pengenalan rangkaian kata/connected words, dengan cara diterapkan untuk pencarian jarak di setiap kemungkinan lebar frame. Pencarian jarak pada time alignment dilakukan dengan fungsi squared euclidian distance, seperti disajikan pada Persamaan 4. dist(p,q) = √∑ ni = 1 (Qi-Pi)2
(4)
2-level Dynamic Programming Sebuah sistem transkripsi suara yang menggunakan metode dynamic programming (DP), harus bisa mendeteksi jumlah kata pada sebuah kalimat, ending point sebuah kata, dan klasifikasi setiap kata (Morgan dan Silverman 1990). Salah satu metode DP adalah 2-level DP. Metode ini dipilih karena 2-level DP merupakan metode pengenalan rangkaian kata yang sederhana, dan dapat dikembangkan lebih lanjut dengan menambahkan metode lainnya. Ide dasar dari 2-level DP adalah mencari jarak dan jalur/path terbaik dari sebuah matriks data. Level pertama adalah pencarian jarak minimum dari sebuah barisan vektor input dengan semua vektor pada model referensi (Juang dan Rabiner 1993). Pencarian tersebut direpresentasikan dengan matriks jarak berukuran NxN, N menunjukkan jumlah frame hasil ekstraksi ciri. Nilai jarak ini dicari untuk setiap kemungkinan barisan frame tertentu dengan tiap kelas suku kata pada codebook, dengan asumsi tidak ada suku kata yang direpresentasikan dalam panjang 1 frame. Oleh karena itu, jarak sepanjang 1 frame tidak disertakan dalam penelitian ini. Setelah itu, perbandingan nilai antara satu kelas suku kata dan kelas lainnya dilakukan dan hasil yang memiliki nilai paling kecil diambil. Level kedua adalah mencari jarak total dan melakukan backtrack terhadap jarak total tersebut. Jarak total dicari dengan perhitungan rekursif sebanyak jumlah suku kata yang akan dikenali. Langkah-langkah pencarian jarak total dan backtrack jalur terbaik disajikan pada persamaan berikut. 1 Inisialisasi D(0)=0, Dc(0)= ∞, 1≤ c ≤ Cmax (5) 2 Loop pada e untuk c=1 D1(e)=D(1,e), 2≤e≤M (6) 3 Rekursi pada e untuk c=2, 3, ..., Cmax D2(e)= min[D(b,e)+D1(b-1)] , 1 ≤ b ≤ e, 3 ≤ e ≤ M (7) D3(e)= min[D(b,e)+D2(b-1)], 1 ≤ b ≤ e, 4 ≤ e ≤ M (8) Dc(e)= min[D(b,e)+Dc-1(b-1)], 1 ≤ b ≤ e, c+1 ≤ e ≤ M (9) 4 Solusi akhir D* = min [Dc (M)], 1 ≤ c ≤ Cmax (10) dengan D = matriks jarak yang diperoleh dari level 1
7 b = awal frame pada data uji e = akhir frame pada data uji c = jumlah suku kata yang ada pada suatu rangkaian kata M = jumlah frame pada data uji. Algoritme backtrack pada penelitian ini diterapkan dengan langkah awal menyimpan semua indeks kelas pada matriks jarak yang memiliki nilai paling kecil. Setelah itu, pencarian path diselesaikan dengan menyusuri hasil indeks dari indeks suku kata terakhir, dan berlanjut mundur untuk mencari jarak terkecil berikutnya untuk pencarian suku kata lainnya. Kompleksitas algoritme 2-level DP menurut Juang dan Rabiner (1993) disajikan pada Persamaan 11. Kompleksitas total = VMN (2R+1), (11) dengan V = jumlah data referensi M = jumlah starting frame data referensi N = range frame data uji R = rata-rata banyaknya jumlah frame data uji.
Lingkungan Pengembangan Pada penelitian ini lingkungan pengembangan yang digunakan ialah perangkat keras CPU Intel-Core i5, 4 GB RAM, dan microphone frekuensi 2020000 Hz, dengan sensitivitas 103 dB, sedangkan untuk perangkat lunak menggunakan Windows 7 Professional, Microsoft Excel 2013, dan Matlab R2010a 64 bit.
Pengujian Pengujian dilakukan dengan cara mencocokan hasil output sistem dengan hasil transkripsi seharusnya. Setelah itu, tingkat akurasi dihitung dengan menggunakan word error rate (WER). WER adalah salah satu metode untuk menghitung jarak antara barisan kata pada model referensi dengan keluaran/output sistem transkripsi (Bourlard et al. 2005). Semakin kecil nilai WER, semakin baik kinerja sistem transkripsi. WER didefinisikan pada Persamaan 12. S+D+I Word Error Rate = N (12) dengan S = banyaknya terjadi output substitution D = banyaknya terjadi output deletion I = banyaknya terjadi output insertion N = jumlah kata yang diuji.
8
HASIL DAN PEMBAHASAN Pengambilan Suara Semua data direkam langsung pada perangkat lunak Matlab dengan sampling rate 11000 Hz dan disimpan dalam format *.wav. Perekaman data dilakukan di tempat yang hening untuk meminimumkan noise dari lingkungan sekitar. Praproses Penghapusan silent dilakukan secara manual untuk 900 data latih dengan cara menghapus langsung data yang terdiri atas data suara silent, dan untuk data uji dilakukan dengan cara menetapkan nilai ambang batas/threshold untuk setiap kelas. Selanjutnya, dilakukan normalisasi amplitudo, yaitu pembagian setiap nilai amplitudo dengan nilai maksimumnya sehingga diperoleh data suara yang lebih seragam. Contoh plot data uji ‘Ide Anda’ sebelum dan sesudah dinormalisasi disajikan pada Gambar 3.
Gambar 3 Perbedaan data suara asli, setelah pemotongan silent, setelah dinormalisasi
Ekstraksi Ciri MFCC Parameter-parameter MFCC yang digunakan dalam penelitian ini di antaranya: time frame 25 ms, sampling rate 11000 Hz, overlap 0.25, dan jumlah koefisien yang digunakan pada setiap frame ialah 13. Nilai-nilai ini dipilih agar jumlah frame data yang dihasilkan tidak terlalu besar.
Perangkaian Kata Perangkaian kata dilakukan dengan cara menyatukan vektor suku kata yang diinginkan sebanyak 10 kali untuk masing-masing kelas data uji sehingga total rangkaian kata yang diperoleh ialah 60 data untuk semua kelas data uji.
Codebook Pembangunan codebook dilakukan dengan menggabungkan setiap vektor data latih dari tahapan sebelumnya untuk setiap kelas, lalu dilakukan clustering
9 dengan algoritme K-means. K yang digunakan sebagai intitial centroid pada penelitian ini adalah 5, 10, 15, 20, 25, dan 30. Nilai-nilai ini dipilih karena nilai K yang biasa digunakan pada penelitian pengenalan suara berkisar antara 5 sampai 32. Hasil klustering inilah yang dijadikan sebagai nilai-nilai codeword pada codebook. Time Alignment Time alignment dilakukan dengan perhitungan euclid untuk setiap kemungkinan lebar frame antara data uji dengan data referensi pada codebook. Hasil time alignment direpresentasikan dalam bentuk matriks jarak.
2-level Dynamic Programming Level pertama DP adalah matriks jarak minimum untuk setiap kemungkinan panjang frame data uji dengan semua suku kata pada codebook. Level kedua yaitu pencarian rekursif jarak total menghasilkan matriks berukuran 4xN yang berarti pencarian jarak terbaik untuk 4 suku kata dari N jumlah frame data uji. Tahap terakhir yaitu backtrack jalur terbaik untuk setiap data uji akan menghasilkan path dengan total jarak paling minimum.
Pengujian Pada hasil pengujian dilakukan percobaan dengan nilai K 5, 10, 15, 20, 25, dan 30 untuk setiap kelas data uji. Parameter MFCC yang digunakan pada pengujian ini sama dengan parameter pada data latih. Data uji sendiri terbagi menjadi data uji sebenarnya berjumlah 60 data, dan data uji hasil gabungan data latih berjumlah 60 data, sehingga total data uji untuk semua kelas adalah 120 data. Word error rate berdasarkan nilai K untuk setiap kelas data uji pada data uji sebenarnya dan data uji hasil gabungan data latih, disajikan pada Tabel 3 dan 4.
K 5 10 15 20 25 30
Tabel 3 Word error rate untuk kelas data uji sebenarnya Ide Anda Peti Tani Sesi Makan Dia Kalah Terka Ini 0.98 0.25 0.75 1.00 0.75 0.48 0.50 0.90 0.88 0.78 0.23 0.65 0.78 0.98 0.75 0.70 0.55 0.85 1.00 0.50 0.78 0.73 0.75 0.60 0.73 0.88 0.88 0.38 0.33 0.83
Ada Rasi 0.88 0.73 0.50 0.83 0.90 0.88
Dari Tabel 3 terlihat bahwa kelas data uji ‘Ide Anda’ mendapatkan WER terendah yaitu 0.23 saat nilai K 15, sedangkan WER tertinggi didapatkan kelas data uji ‘Dia Kalah’ pada saat K 5 dan 20 yaitu 1. Di sisi lain, pada kelas data uji hasil gabungan data latih, nilai WER terendah didapatkan kelas ‘Ide Anda’ saat K 20 yaitu 0.1, sedangkan nilai WER tertinggi didapatkan kelas ‘Dia Kalah’ saat K 10 yaitu 0.98. Hal ini dapat disebabkan oleh pengucapan suatu kata. Pada kelas data uji sebenarnya, pengucapan kata seperti intonasi yang digunakan dan rentang waktu
10 pengucapan suatu suku kata memiliki variasi lebih tinggi dibandingkan dengan kelas data uji hasil gabungan data latih. Oleh karena itu, sistem lebih sulit mengenali suku kata pada kelas data uji sebenarnya. Tabel 4 Word error rate untuk kelas data uji hasil gabungan data latih K 5 10 15 20 25 30
Ide Anda 0.60 0.40 0.15 0.10 0.33 0.43
Peti Tani 0.75 0.48 0.25 0.43 0.28 0.50
Sesi Makan 0.70 0.55 0.65 0.43 0.40 0.40
Dia Kalah 0.95 0.98 0.80 0.83 0.73 0.55
Terka Ini 0.90 0.73 0.75 0.75 0.68 0.73
Ada Rasi 0.60 0.75 0.60 0.55 0.65 0.48
Gambar 4 menunjukkan nilai rata-rata WER setiap kelas data uji hasil gabungan data latih dan data uji sebenarnya untuk semua nilai K. Dari gambar tersebut dapat disimpulkan bahwa pada penelitian ini, kelas data uji ‘Ide Anda’ merupakan kelas yang paling mudah dikenali, dengan nilai rata-rata WER sebesar 0.51 untuk semua kelas data dan nilai K. Sementara itu, kelas data uji ‘Dia Kalah’ merupakan kelas yang paling sulit dikenali, dengan nilai rata-rata WER sebesar 0.805 untuk semua kelas data dan nilai K. Hal ini dapat disebabkan karena ada beberapa pengucapan suku kata yang tidak mirip dengan data latih, seperti suku kata ‘a’ pada kelas data uji ‘Dia Kalah’ cenderung terdengar seperti ‘ya’, sehingga tidak mirip dengan suku kata ‘a’ pada data latih.
Word Error Rate
1.00 0.80
0.7
0.7
0.6
0.60 0.40
0.5
0.8 0.8
0.8
0.8 0.7 0.6
0.5
0.3
0.20 0.00 Ide Anda
Peti Tani
Sesi Makan Dia Kalah Kelas Data Uji
Gabungan Data Latih
Terka Ini
Ada Rasi
Data Uji Sebenarnya
Gambar 4 Rata-rata WER setiap kelas data uji untuk semua nilai K Selain itu, kelas data uji hasil gabungan data latih mendapatkan rata-rata WER sebesar 0.58, sedangkan kelas data uji sebenarnya mendapatkan rata-rata WER sebesar 0.72 untuk semua kelas data dan nilai K. Hal ini menunjukkan bahwa kelas data uji hasil gabungan data latih lebih mudah dikenali oleh sistem dibandingkan dengan kelas data uji sebenarnya. Gambar 5 menggambarkan pengaruh nilai K terhadap nilai rata-rata WER untuk semua kelas data. Dari grafik tersebut, kurva nilai WER cenderung menurun pada nilai K 5 sampai 15, sedangkan pada nilai K 15 sampai 30 nilai WER cenderung stabil dan memiliki nilai yang berdekatan. Oleh karena itu, pada
11 penelitian ini dapat disimpulkan bahwa semakin besar nilai K nilai rata-rata WER akan semakin kecil dan mengartikan bahwa kinerja sistem semakin baik. Nilai K terbaik pada penelitian ini adalah 15, dengan rata-rata nilai WER sebesar 0.59, sedangkan nilai K dengan rata-rata WER tertinggi adalah 5 ialah sebesar 0.76.
Word Error Rate
Gabungan Data Latih
Data Uji Sebenarnya
1 0.8 0.6 0.4 0.2 0 5
10
15
20
25
30
Nilai K
Gambar 5 Pengaruh nilai K terhadap rata-rata WER untuk semua kelas data uji Gambar 6 dan 7 menunjukkan tingkat akurasi suku kata yang berhasil dikenali sistem pada kelas data uji hasil gabungan data latih dan kelas data uji sebenarnya. Tingkat akurasi dihitung berdasarkan jumlah kemunculan suku kata hasil transkripsi dan dibagi dengan kemunculan suku kata tersebut seharusnya. Pada kelas data uji hasil gabungan data latih, rata-rata akurasi untuk semua kelas suku kata adalah 43.24%, lebih baik dibandingkan dengan rata-rata akurasi pada kelas data uji sebenarnya yaitu 27.31%. Akan tetapi, terdapat perbedaan signifikan antara nilai akurasi tiap suku kata pada kedua kelas data uji tersebut. Hal ini menunjukkan bahwa tingkat akurasi sangat bergantung kepada data suara itu sendiri. Suku kata yang berhasil dikenali paling baik dari semua kelas data uji adalah ‘ta’ dengan ratarata akurasi sebesar 65.83% dan paling sulit dikenali adalah suku kata ‘ter’ dengan rata-rata akurasi sebesar 8.33%. Nilai WER dan tingkat akurasi suku kata sangat bergantung kepada hasil backtracking path pada algoritme DP. Berdasarkan hasil penelitian ini, sistem masih memiliki kekurangan dalam menentukan path terbaik untuk suatu rangkaian kata/connected words. Hal ini menyebabkan output sistem belum sepenuhnya tepat dalam transkripsi suara tersebut dan menghasilkan error yang cukup tinggi, misalnya terjadi substitusi suatu suku kata dengan suku kata lainnya. Kesalahan backtracking tersebut dapat disebabkan oleh beberapa faktor, seperti penetapan threshold untuk pemotongan silent yang dilakukan terhadap kelas data uji sebenarnya. Apabila silent dapat dihilangkan dengan baik, output sistem yang dihasilkan juga akan lebih baik karena mendekati data pada model codebook yang tidak memiliki model silent. Faktor lainnya ialah pengucapan kata itu sendiri, seperti intonasi yang digunakan dan lamanya pengucapan kata tersebut. Pengucapan yang semakin mirip dengan data pada model codebook akan menghasilkan nilai WER yang semakin rendah dan akurasi suku kata semakin tinggi. Penggunaan parameter-parameter lain seperti time frame, overlap, koefisien
12
Tingkat Akurasi (%)
cepstral, dan pemilihan nilai K juga dapat berpengaruh terhadap nilai error rate sistem secara keseluruhan pada penelitian ini. 100 90 81.7 78.3 76.7 80 70.0 70 61.7 58.3 58.3 53.3 51.7 60 50 40.8 38.3 37.5 40 31.7 30 19.2 20 10.0 5.0 4.2 1.7 10 0 i pe ta an ti kan de da ma si se a di ka ra lah ni ter Suku Kata
Tingkat Akurasi (%)
Gambar 6 Tingkat akurasi suku kata pada kelas data uji gabungan data latih 100 91.7 90 80 63.3 70 55 52.5 60 50 40 31.7031.7 26.7 30 21.7 20.8 18.3 16.7 15.8 15 20 11.7 8.3 8.3 10 1.7 0.8 0 ni de ta si ma lah ra an a se pe i ter di da kan ti ka Suku Kata
Gambar 7 Tingkat akurasi suku kata pada kelas data uji sebenarnya
Implementasi Sistem Gambar 8 menunjukkan tampilan antarmuka program pada penelitian ini. Terdapat tombol cari untuk memilih data uji yang akan ditranskripsi, tombol mainkan untuk mendengarkan data uji yang dipilih, dan tombol transkripsi yang disertai dengan radio button 5, 10, 15, 20, 25, dan 30 untuk memilih nilai K pada initial centroid K-means. Tombol reset digunakan untuk menghapus hasil transkripsi sebelumnya. Grafik di kiri bawah berfungsi untuk menunjukkan plot suara data uji, jarak total menunjukkan jumlah jarak untuk satu data uji dengan semua kemungkinan lebar frame yang tidak lain merupakan hasil rekursif level 2
13 DP, sedangkan hasil transkripsi akan menunjukkan hasil backtrack jalur terbaik yang merupakan hasil akhir dari DP.
Gambar 8 Antarmuka program transkripsi suara ke teks berbasis suku kata
SIMPULAN DAN SARAN Simpulan Penelitian ini sudah berhasil diselesaikan dengan menerapkan codebook sebagai pengenalan pola dan 2-level DP sebagai metode pengenalan rangkaian kata. Penelitian ini menunjukkan bahwa data uji hasil gabungan data latih lebih mudah dikenali dibandingkan dengan data uji sebenarnya karena memiliki tingkat kemiripan pengucapan kata yang lebih tinggi. Penggunaan nilai K pada clustering K-means juga memiliki pengaruh tinggi terhadap nilai WER. Selain itu, pemilihan nilai parameter lainnya seperti time frame, overlap, koefisien cepstral, dan threshold untuk pemotongan silent juga penting untuk diperhatikan. Nilai K paling optimum pada penelitian ini didapatkan saat K 15. Nilai WER terendah berhasil didapatkan kelas data uji hasil gabungan data latih pada kelas ‘Ide Anda’ dengan nilai K 20 ialah sebesar 0.1.
Saran Penelitian ini memungkinkan untuk dikembangkan lebih baik lagi. Saran untuk pengembangan selanjutnya adalah: 1 Menggunakan parameter time frame, overlap, koefisien cepstral, threshold untuk pemotongan silent, dan K initial centroid yang berbeda untuk membandingkan nilai WER yang dihasilkan. 2 Menambahkan suku kata lain agar kamus kata menjadi lebih lengkap. 3 Melakukan percobaan dengan panjang suku kata berbeda untuk mengetahui tingkat keberhasilan algoritme dynamic programming.
14 4 5
Menambahkan metode pemrosesan bahasa alami dalam bidang linguistik agar hasil transkripsi sesuai dengan kaidah tata bahasa Indonesia. Menggunakan metode pengenalan connected words lainnya seperti level building atau one stage DP untuk mengetahui kinerja metode tersebut.
DAFTAR PUSTAKA Buono A, Jatmiko W, Kusumo P. 2009. Perluasan Metode MFCC 1D ke 2D sebagai ekstraksi ciri pada sistem identifikasi pembicara menggunakan hidden markov model (HMM). Jurnal Makara Sains 13(1):87-93. Buono A, Kusumoputro B. 2007. Pengembangan Model HMM Berbasis Maksimum Lokal Menggunakan Jarak Euclid Untuk Sistem Identifikasi Pembicara. Di dalam: Proceeding of National Conference on Computer Science & Information Technology; 2007 Januari 29-30; Depok, Indonesia. Bourlard H, Dines J, Flynn M, McCowan I, Moore D, Perez D, Wellner P. 2005. On the Use of Information Retrieval Measures for Speech Recognition Evaluation. Switzerland: IDIAP Research Institute. Juang BH, Rabiner L. 1993. Fundamentals of Speech Recognition. New Jersey (US): Prentice Hall. Jurafsky D, Martin JH. 2007. Speech and Language Processing An Introduction to Natural Language Processing, Computational Linguistic, and Speech Recognition. Ed ke-2. New Jersey (US): Prentice Hall. Luthfi MS. 2013. Pendeteksian Kata dengan MFCC sebagai Ekstraksi Ciri dan Codebook sebagai Pengenalan Pola [skripsi]. Bogor (ID): Institut Pertanian Bogor. Morgan DP, Silverman HF. 1990. The Application of Dynamic Programming to Connected Speech Recognition. Di dalam: IEEE ASSP Magazine; 1990 Juli. Slaney Malcolm. 1998. Auditory Toolbox [Internet]. [Diakses pada 2014 Maret 1]. Tersedia pada https://engineering.purdue.edu/~malcolm/interval/1998-010/.
Lampiran 1 Matriks konfusi tingkat akurasi suku kata pada data uji gabungan data latih Suku Kata Si A Da Di An Se I Kan Ra De Ma Ni Ti Ter Pe Lah Ka Ta
Si A Da Di An Se I Kan Ra De Ma Ni Ti Ter 40.8 0 0 10.8 0 0 15.0 0 0 0 0 0.8 30.8 0 0 37.5 0 9.2 9.2 0 28.3 1.7 0 0 13.3 0 0 0 0.8 8.3 53.3 0 5.8 0 0 0 4.2 0 25.8 0 0 0 0 0 0 31.7 0 13.3 50.0 0 0 0 0 5.0 0 0 0 0 5.0 0 70.0 0 0 0 5.0 16.7 3.3 0 0 0 18.3 0 0 5.0 3.3 38.3 0 1.7 3.3 5.0 0 0 16.7 0 0 0 0 18.3 0 0 81.7 0 0 0 0 0 0 0 0 3.3 0 0 16.7 0 0 58.3 1.7 0 18.3 0 0 0 0 0 1.7 0 33.3 0 0 25.0 10.0 0 1.7 0 18.3 1.7 0 0 0 1.7 1.7 0 38.3 0 0 58.3 0 0 0 0 10.0 5.0 0 0 3.3 3.3 0 3.3 15.0 0 51.7 0 1.7 0 10.8 0 0 15.0 0 2.5 66.7 0 0 0 0 4.2 0.8 0 0 0 0 1.7 0 0 6.7 1.7 0 0 0 0 61.7 0 0 0 1.7 0 0 0 0 8.3 5.0 0 3.3 0 0 1.7 0 0 0 0 0 0 0 0 1.7 0 3.3 0 5.0 0 0 6.7 0 0 5.0 0 0 16.7 10.0 0 1.7 0 0 0 0 16.7 0 4.2 7.5 0 27.5 3.3 0.8 0 4.2 0 0.8 0.8 0 3.3 0 1.7 0 0 5.0 11.7 0 0 0 0 0 0
Pe Lah Ka Ta 0 1.7 0 0 0 0 0 0.8 0 0.8 0 0.8 0 0 0 0 0 0 0 0 5.0 1.7 0 1.7 0 0 0 0 0 0 1.7 0 0 5.0 1.7 1.7 0 0 0 0 0 6.7 0 0 0 0 0 0 1.7 0 0 26.7 1.7 0 33.3 45.0 78.3 0 0 11.7 0 5.0 36.7 18.3 0 0 19.2 15.0 0 0 1.7 76.7
15
16
16 Lampiran 2 Matriks konfusi tingkat akurasi suku kata pada data uji sebenarnya Suku Kata Si A Da Di An Se I Kan Ra De Ma Ni Ti Ter Pe Lah Ka Ta
Si 52.5 0.8 0 11.7 0 1.7 20.0 0 0 0 20.0 8.3 31.7 0 5.0 8.3 0 0
A Da Di An Se I Kan Ra De Ma Ni Ti Ter Pe Lah Ka 0.8 0 1.7 0.8 2.5 0 8.3 5.0 0 0 10.0 14.2 1.7 0.8 0 0.8 20.8 5.0 1.7 5.8 0.8 1.7 20.8 8.3 0 12.5 0 0 0.8 1.7 0 3.3 0.8 8.3 0 0 1.7 0 12.5 30.8 5.0 5.0 0 0 0.8 10.8 0 0.8 0 3.3 11.7 0 26.7 16.7 0 11.7 5.0 0 11.7 1.7 0 0 0 0 30.0 0 0 21.7 10.0 1.7 3.3 0 15.0 15.0 0 0 0 0 0 0 0 6.7 1.7 0 18.3 6.7 0 15.0 0 0 20.0 11.7 0 6.7 0 3.3 0 0 1.7 0 10.8 15.8 13.3 1.7 29.2 0 1.7 0 0 0 1.7 0 18.3 5.0 0 20.0 0 0 8.3 0 0 3.3 36.7 0 3.3 0 0 0 11.7 0 0 5.0 0 0 11.7 26.7 0 13.3 0 0 0 10.0 1.7 0 11.7 0 0 1.7 3.3 0 5.0 5.0 63.3 8.3 0 0 0 0 0 0 23.3 3.3 0 6.7 0 0 0 8.3 0 31.7 0 0 0 0 3.3 1.7 0 0 0 0 0 0 0 0 0 0 91.7 0 0 0 0 0 1.7 0 0 0 0 0 1.7 0 0 0 41.7 1.7 0 6.7 0 8.3 0 31.7 0 0 0 0 1.7 25.0 0 6.7 3.3 0 15.0 16.7 0 0 0 10.0 8.3 0 5.0 8.3 1.7 6.7 0 0 16.7 10.0 5.0 16.7 3.3 0 10.0 0 0 15.0 0 0 0 0 0 0 35.0 0 0 0 31.7 0 31.7 0 0 21.7 0 0 10.0 14.2 0 5.8 0 0 1.7 0.8 1.7 0.8 3.3 0 0 1.7 1.7 0 1.7 5.0 0 0 1.7 0 0 11.7 0 18.3
Ta 0.8 15.8 23.3 0 3.3 8.3 4.2 5.0 20.0 1.7 1.7 0 6.7 0 3.3 0 11.7 55.0
17
RIWAYAT HIDUP Penulis dilahirkan di Bandung pada tanggal 1 Januari 1992 dari pasangan Asep Roswanda dan Asih Setiawaty. Penulis adalah putri kedua dari dua bersaudara. Tahun 2010 penulis lulus dari SMA Negeri 1 Bogor dan pada tahun yang sama penulis lulus seleksi masuk Institut Pertanian Bogor (IPB) melalui Undangan Seleksi Masuk IPB dan diterima di Departemen Ilmu Komputer, Fakultas Matematika dan Ilmu Pengetahuan Alam. Selama mengikuti perkuliahan, penulis pernah melaksanakan Praktik Kerja Lapang (PKL) di Kementerian Pekerjaan Umum Indonesia selama 35 hari. Penulis juga pernah menjadi asisten praktikum mata kuliah struktur data dan metode kuantitatif. Dalam bidang organisasi, penulis menjadi anggota Himpunan Profesi Ilmu Komputer tahun 2011-2013. Penulis juga aktif menjadi pengurus UKM MAX!! IPB tahun 2010-2013, dan anggota komunitas Public Relation Community IPB tahun 2014. Kegiatan lain penulis adalah mengikuti pelatihan-pelatihan nonformal yang ada, seperti pelatihan jurnalistik, pelatihan desain menggunakan Adobe Flash dan Adobe Indesign, pelatihan web developing dengan framework YII, dan pertemuan komunitas UI/UX Indonesia.