RANCANG BANGUN MODUL PENGENALAN SUARA MENGGUNAKAN TEKNOLOGI KINECT
Ratri Cahyarini NRP 5109100165 Dosen Pembimbing Umi Laili Yuhana, S.Kom., M.Sc. Abdul Munif, S.Kom., M.Sc.
LATAR BELAKANG
Teknologi pengenalan suara telah banyak berkembang Kinect mampu mengenali beberapa bahasa, tetapi tidak dengan bahasa Indonesia
RUMUSAN MASALAH
Bagaimana menerjemahkan suara yang diucapkan pengguna menjadi kata? Bagaimana memeriksa ketepatan suara yang diucapkan pengguna dengan suara yang ada pada basis data?
SOLUSI Perangcangan Modul Pengenalan Suara Menggunakan Teknologi Kinect
DESKRIPSI APLIKASI
Sebuah modul pengenalan suara berbahasa Indonesia yang dikembangan menggunakan Teknologi Kinect. Modul ini akan mengali suara dari kata yang diucapkan pengguna dan menampilkan hasil terjemahannya. Modul ini juga dapat melatih fonem dan kata baru yang ingin dikenali.
KEBUTUHAN FUNGSIONAL System
menambah data pelatihan fonem
menambah data pelatihan kata Pengguna
melakukan pengenalan suara
PROSES DETEKSI SUARA MASUK Pengecekan suara dilakukan setiap 20 sinyal Jika ke-20 sinyal berada dibawah nilai batas rendah suara, maka sinyal disebut silent dan tidak disimpan. Sebaliknya, jika sinyal berada diatas batas suara maka sinyal akan disimpan.
Sinyal suara yang disimpan
LINEAR PREDICTIVE CODING (LPC) Proses LPC ini digunakan untuk mencari ciri khusus dari sinyal suara yang masuk. Ciri khusus tersebut berupa fitur vektor 24 dimensi
PROSES KLASIFIKASI VEKTOR FITUR
Proses membaca data latih
Proses membaca data uji
Proses klasifikasi
PROSES MEMBACA DATA LATIH Pada proses ini, sistem akan membaca data latih vektor fitur dari file teks. Data latih terdiri dari:
Label kelas vektor fitur Ke-24 parameter hasil proses LPC
Format file teks:
Setiap parameter dan label kelas dipisahkan oleh karakter “\t” Setiap data vektor fitur ditulikan tiap baris.
PROSES MEMBACA DATA UJI Sistem menyimpan data sinyal suara memanfaatkan proses deteksi suara yang masuk. Data sinyal suara diproses LPC untuk mendapatkan vektor fitur. Data vektor fitur disimpan dalam file temporer
PROSES KLASIFIKASI Proses klasifikasi dilakukan dengan bantuan kakas bantu SVM Data latih yang telah dibaca dilatih untuk membentuk beberapa kelas dengan menentukan garis pemisah antar kelas (hyperplane) Data uji diperiksa menjadi anggota kelas yang mana.
PROSES MENAMBAHKAN DATA PELATIHAN FONEM
Sistem mendeteksi dan menyimpan data suara yang diucapkan pengguna Menjalankan proses LPC untuk mendapatkan vektor fitur Lalu, pengguna harus memberi label kelas pada setiap vektor fitur Data vektor fitur beserta label kelas disimpan dalam file teks.
PROSES MENAMBAHKAN DATA PELATIHAN KATA
Sistem mendeteksi dan menyimpan data suara yang diucapkan pengguna Menjalankan proses LPC untuk mendapatkan vektor fitur Mencari label kelas setiap vektor fitur dengan menjalankan proses klasifikasi vektor fitur Memasukkan data label kelas hasil klasifikasi ke dalam file xml dengan format tertentu.
PROSES PENGENALAN SUARA Terlebih dahulu dilakukan pelatihan data latih kata menggunakan kakas bantu HMM. Lalu, sistem menyimpan data sinyal suara memanfaatkan proses deteksi suara yang masuk. Data sinyal suara diproses LPC untuk mendapatkan vektor fitur. Setiap vektor fitur diklasifikasi untuk mendapatkan label kelas fonem. Urutan label kelas tersebut kemudian dicari probabilitas pembentuk kata yang paling maksimal.
DEMO APLIKASI
SKENARIO PENGUJIAN Pengujian merekam suara tanpa mengisi nama kata/fonem Pengujian berhenti merekam suara dan melakukan proses deteksi tanpa ada suara yang masuk Pengujian merubah label kelas vektor fitur Pengujian menyimpan data latih kata/fonem Pengujian pengenalan suara
PENGUJIAN MEMERIKSA KOLOM MASUKAN NAMA FONEM Nomor
SUC-D01
Nama
Memeriksa kolom masukan nama fonem
Tujuan
Memeriksa apakah fungsi pengecekan kolom masukan nama fonem telah berjalan dengan benar.
Kondisi awal
Pengguna memilih pelatihan fonem
Skenario
1. 2.
menu
menambah
data
Pengguna tidak memasukkan nama fonem pada kolom masukan nama fonem. Pengguna memilih menu rekam.
Masukan
Nama fonem berupa karakter kosong
Keluaran yang diharapkan
Sistem menampilkan peringatan untuk mengisi kolom masukan nama fonem terlebih dahulu.
Hasil Pengujian
Berhasil
PENGUJIAN MENYIMPAN DATA PELATIHAN FONEM SEBELUM MEMASUKKAN SUARA. Nomor
SUC-D02
Nama
Menyimpan data memasukkan suara.
Tujuan
Memeriksa apakah fungsi pengecekan untuk memasukkan data pelatihan fonem setelah memasukkan suara telah berjalan dengan benar.
Kondisi awal
Pengguna memilih menu menambah data pelatihan fonem
Skenario
1. 2. 3. 4. 5. 6.
pelatihan
fonem
sebelum
Pengguna telah memasukkan nama fonem pada kolom masukan nama kata. Pengguna memilih menu rekam. Pengguna memilih menu stop. Pengguna telah mengisi label kelas setiap frame. Pengguna memilih menu labeli frame. Pengguna memilih menu simpan data latih.
Masukan
Nama fonem dan label kelas frame.
Keluaran yang diharapkan
Sistem menampilkan peringatan agar pengguna mengucapkan fonem terlebih dahulu.
Hasil Pengujian
Berhasil
PENGUJIAN MENYIMPAN DATA PELATIHAN FONEM. Nomor
SUC-D03
Nama
Menyimpan data pelatihan fonem.
Tujuan
Memeriksa apakah proses menyiman data latih suara telah berjalan dengan benar.
Kondisi awal
Pengguna memilih pelatihan fonem.
Skenario
1. 2. 3. 4. 5. 6. 7.
menu
menambah
data
Pengguna telah memasukkan nama fonem pada kolom masukan nama fonem. Pengguna memilih menu rekam. Pengguna mengucapkan fonem. Pengguna memilih menu stop. Pengguna telah mengisi label kelas setiap frame. Pengguna memilih menu labeli frame. Pengguna memilih menu simpan data latih.
Masukan
Nama fonem dan label kelas frame.
Keluaran yang diharapkan
Sistem menampilkan pesan bahwa data berhasil dimasukkan.
Hasil Pengujian
Berhasil
PENGUJIAN MENAMPILKAN DAFTAR FRAME Nomor
SUC-D04
Nama
Menampilkan daftar frame
Tujuan
Memeriksa apakah proses menampilkan daftar frame dapat berjalan dengan benar.
Kondisi awal
Pengguna memilih menu menambah data pelatihan fonem
Skenario
1. 2. 3. 4.
Pengguna telah memasukkan nama fonem pada kolom masukan nama fonem. Pengguna memilih menu rekam. Pengguna mengucapkan fonem. Pengguna memilih menu stop.
Masukan
Nama fonem dan suara
Keluaran yang diharapkan
Sistem menampilkan ComboBox.
Hasil Pengujian
Berhasil
daftar
frame
pada
PENGUJIAN MEMBERI LABEL KELAS PADA FRAME Nomor
SUC-D05
Nama
Memberi label kelas pada frame
Tujuan
Memeriksa apakah proses memberi label kelas frame dapat berjalan dengan benar.
Kondisi awal
Pengguna memilih pelatihan fonem.
Skenario
1. 2. 3. 4. 5. 6.
menu
menambah
data
Pengguna telah memasukkan nama fonem pada kolom masukan nama fonem. Pengguna memilih menu rekam. Pengguna mengucapkan fonem. Pengguna memilih menu stop. Pengguna telah mengisi label kelas sebuah frame. Pengguna memilih menu labeli frame.
Masukan
Nama fonem dan suara
Keluaran yang diharapkan
Sistem dapat mengganti label kelas frame.
Hasil Pengujian
Berhasil
PENGUJIAN MENYIMPAN DATA PELATIHAN KATA. Nomor
SUC-D08
Nama
Menyimpan data pelatihan kata.
Tujuan
Memeriksa apakah proses menyiman data latih suara telah berjalan dengan benar.
Kondisi awal
Pengguna memilih menu menambah data pelatihan kata.
Skenario
1. 2. 3. 4.
Pengguna telah memasukkan nama kata pada kolom masukan nama kata. Pengguna memilih menu rekam. Pengguna mengucapkan kata. Pengguna memilih menu stop.
Masukan
Nama kata dan suara
Keluaran yang diharapkan
Sistem menampilkan pesan bahwa data berhasil dimasukkan.
Hasil Pengujian
Berhasil
PENGUJIAN MELAKUKAN PENGENALAN SUARA. Nomor
SUC-D09
Nama
Melakukan pengenalan suara.
Tujuan
Memeriksa apakah proses pengenalan suara dapat berjalan dengan benar.
Kondisi awal
Pengguna memilih menu pengenalan suara
Skenario
1. 2. 3. 4.
Pengguna memilih menu pembentukan HMM. Pengguna memilih menu rekam Pengguna mengucapkan kata. Pengguna memilih menu stop.
Masukan
Suara
Keluaran yang diharapkan
Sistem menampilkan hasil terjemahan kata yang diucapkan pengguna dan presentase ketepatannya.
Hasil Pengujian
Berhasil
HASIL PENGUJIAN PENGENALAN SUARA Kata
Percobaan Berhasil
Presentase (%)
Vas
16
80
Rok
4
20
Bis
5
25
Tas
9
45
Truk
14
75
Mie
8
40
Skor
12
60
Sapi
10
50
Juli
10
50
Satu
6
30
Tiga
13
65
Tujuh
5
25
Membawa
8
40
Selasa
143
65
Delapan
15
75
Januari
14
75
Rata-rata
51,25
KESIMPULAN
Modul pengenalan suara ini dibangun menggunakan teknologi Kinect. Adapun tahap awal pengembangan modul ini adalah pembuatan fungsi deteksi suara. Setelah itu akan dicari ciri khusus (feature vector) dari suara dengan menggunakan metode Linear Predictive Coding (LPC). Hal ini bertujuan untuk membedakan suara yang satu dengan yang lain. Setelah itu dilakukan klasifikasi data feature vector menjadi beberapa kelas dengan metode Support Vector Machine (SVM). Kemudian proses pelatihan data kata dapat dilakukan. Proses pengenalan suara sendiri dapat dilakukan dengan mencari probabilitas kata yang paling tinggi menggunakan metode Hidden Markov Model (HMM) dengan kata yang diucapkan pengguna. Sistem telah dapat mengenali suara terisolasi berbahasa Indonesia dan menampilkan nilai ketepatan pengenalan. Kata yang dapat dikenali sebanyak 5 kata, yaitu satu, sapi, tiga, lima, dan tujuh.
KESIMPULAN(1) Ketepatan hasil pengenalan suara didapat dengan cara memeriksa apakah kata yang dimasukkan pada kolom masukan kata sama dengan hasil terjemahan yang dihasilkan oleh modul ini. Rata-rata presentase pengenalan suara adalah 46%. Ketepatan pengenalan suara yang didapat dari proses uji coa ini paling tinggi adalah kata “tiga” dengan nilai ketepatan 67%. Sedangkan kata terendah adalah tujuh dengan nilai ketepatan 33%. Pengenalan kata dapat dilakukan pada kata terisolasi
SARAN
Proses penambahan data pelatihan fonem ditambahkan oleh beberapa speaker/orang sehingga data kelas lebih beragam. Proses pengenalan tidak hanya dapat dilakukan pada kata terisolasi, namun juga pada pengucapan kata tidak terisolasi dengan proses pendeteksian tidak terpotong berdasarkan jeda suara.