• Tidak ada hasil yang ditemukan

Perancangan Sistem Pengenalan Ucapan

BAB III PERANCANGAN

3.2. Perancangan Sistem Pengenalan Ucapan

Proses pengenalan ucapan diawali dengan masukan dari ucapan pengguna yang ditangkap oleh mikrofon. Selanjutnya sinyal ucapan tersebut diubah oleh soundcard menjadi sinyal digital agar dapat diolah komputer. Komputer akan memproses sinyal suara yang telah didapat menggunakan software Matlab. Ucapan dari pengguna akan diterima dan dikenali secara real time oleh komputer dengan hasil akhir mengeluarkan kombinasi cairan sesuai ucapan pengguna.

Proses pengenalan ucapan terdiri dari sampling (pencuplikan ucapan), pre processing, segmentasi, ekstraksi ciri, perhitungan similaritas dan penentuan hasil pengenalan. Pada tahap preprocessing, yang merupakan proses pengkondisian sinyal, terdapat sub-proses yang terdiri dari pre-emphasis, normalisasi, pemotongan sinyal, dan zero padding. Hasil dari preprocessing akan diproses dalam segmentasi sebelum diolah dalam ekstraksi ciri. Tahap ekstraksi ciri akan menghasilkan ekstrak dari data. Lalu pada tahap perhitungan similaritas, database akan dipanggil untuk perhitungan sebagai pembanding data masukan. Selanjutnya hasil perbandingan akan diproses untuk menentukan hasil akhir pengenalan. Lalu data hasil pengenalan akan dikirim ke mikrokontroler untuk mengendalikan kombinasi cairan pada mesin pembuat minuman.

Flowchart pada gambar 3.3. menunjukan alur dari rancangan program yang akan dibuat melalui Matlab, mulai dari pengambilan ucapan sampai pengiriman data secara serial. Proses pada inisialisasi bertujuan untuk mendeklarasikan variabel dan pemberian

nilai awal. Variabel pemilihan pengguna, nilai „k‟ pada k-NN, dan lebar segment averaging merupakan variabel yang nilainya divariasikan oleh pengguna. Besarnya nilai dari variabel-variabel tersebut akan dijelaskan pada sub-bab selanjutnya (3.2.3, 3.2.9, 3.2.6).

3.2.1. Sampling

Pada proses sampling, pengambilan ucapan pengguna yang masih berupa sinyal analog akan diubah menjadi sinyal digital oleh soundcard ketika masuk ke dalam komputer. Suara ucapan manusia memiliki rentang frekuensi antara 250Hz – 3000Hz. Nilai frekuensi sampling ucapan ditentukan berdasarkan nilai maksimal dari rentang frekuensi suara manusia, yaitu 3000 Hz [4], agar nilai dari frekuensi sampling dapat mencakup keseluruhan rentang frekuensi tersebut. Frekuensi sampling yang digunakan diatur agar bernilai 6000Hz, 2 kali dari frekuensi maksimal suara manusia. Nilai frekuensi sampling tersebut didapat berdasarkan persamaan Nyquist pada persamaan 2.1, yaitu:

Lama waktu penangkapan ucapan pada proses sampling ditentukan sebesar 1 detik. Waktu tersebut ditentukan agar kata yang diucapkan dapat terekam utuh, tetapi juga tidak terlalu banyak suara yang tidak diperlukan ikut terekam. Penentuan lama waktu berdasarkan hasil percobaan yang terlampir. Nilai lama waktu tersebut mempengaruhi banyaknya data yang tecuplik. Banyaknya data yang tercuplik dapat dihitung dengan persamaan berikut:

(3.1) Pada rancangan, proses sampling membutuhkan nilai masukan berupa variabel frekuensi sampling dan waktu sampling. Nilai masukan yang digunakan untuk inisialisasi proses sampling adalah berdasarkan persamaan 3.1. Variabel tersebut akan digunakan untuk menghitung banyaknya data yang tercuplik.

(3.2)

Hasil dari sampling berupa sinyal dari data yang tercuplik. Flowchart rancangan program pada proses sampling ditunjukan pada gambar 3.4.

Gambar 3.4. Flowchart Rancangan Program Proses Sampling

3.2.2. Pre Emphasis

Pre emphasis merupakan bagian dari preprocessing yang pertama. Data hasil sampling akan diproses dalam pre emphasis. Pada proses ini akan dilakukan perhitungan untuk menghilangkan noise yang berada pada hasil sampling dan mempertahankan bentuk sinyal ucapan yang kabur menjadi lebih jelas. Nilai alpha yang digunakan adalah sebesar 0,95 ditentukan dari referensi yang telah ada [7]. Gambar 3.5. menunjukan flowchart proses pre emphasis.

3.2.3. Normalisasi

Setelah dilakukan pre emphasis, sinyal sampling akan diproses dalam normalisasi. Proses ini akan menyeragamkan nilai amplitudo dari sinyal sampling agar terbentuk pada skala yang sama. Tujuannya agar pengaruh kuat lemahnya ucapan pengguna dapat disamakan, sehingga amplitudo puncak data ucapan bernilai 1 atau -1 dan nilai amplitudo yang lain akan menyesuaikan skala tersebut. Proses normalisasi pada nilai-nilai amplitudo dibentuk dengan persamaan berikut [8]:

)) )

Dengan keterangan sebagai berikut:

Xnorm = hasil normalisasi dari sinyal (1,2,3,…,N)

Xin = data masukan dari sampling (1,2,3,…,N)

N = banyaknya data sinyal.

Gambar 3.6. menunjukan flowchart rancangan program normalisasi. Perhitungan normalisasi akan dijalankan ketika fungsi ini dipanggil. Data sinyal hasil pre emphasis akan menjadi masukan yang diolah normalisasi berdasarkan persamaan 3.7. keluaran dari proses ini merupakan sinyal yang telah ter-normalisasi.

Gambar 3.6. Flowchart Rancangan Program Normalisasi

3.2.4. Pemotongan Sinyal

Setelah dilakukan normalisasi, proses selanjutnya adalah pemotongan sinyal. Proses ini bertujuan untuk menghilangkan sinyal yang terletak sebelum dan sesudah sinyal ucapan yang ikut terekam agar didapatkan hanya sinyal yang berisi ucapan pengguna saja. Proses pemotongan sinyal dibatasi oleh nilai dari variabel batas potong, yang merupakan nilai

batas amplitudo yang akan dipotong. Nilai variabel batas potong yang digunakan adalah 0,3 yang didapat berdasarkan refrensi [5]. Gambar 3.7. menunjukan flowchart rancangan program pemotongan sinyal.

Gambar 3.7. Flowchart Rancangan Program Pemotongan Sinyal

Proses pemotongan sinyal dilakukan dengan mencari data yang lebih besar dari batas potong dan lebih kecil dari nilai negatif batas potong yang telah ditentukan. Data sinyal masukan akan dihilangkan dari data awal hingga data pertama pada hasil pencarian data yang dilakukan. Pemotongan sinyal dilakukan secara bertahap dari data sinyal bagian depan lalu dilanjutkan ke bagian akhir dengan membalik urutan sinyal. Setelah sinyal bagian akhir selesai dipotong, bentuk sinyal akan dibalik lagi ke bentuk semula, dan didapatkan hasil pemotongan sinyal data ucapan.

3.2.5. Zero Padding

Setelah dilakukan pemotongan sinyal, proses selanjutnya adalah zero padding. Zero padding adalah proses untuk menyamakan panjang data sinyal setelah proses pemotongan sinyal dengan menyisipkan deretan nilai 0 pada bagian akhir data ucapan. Zero padding digunakan karena adanya perbedaan jumlah panjang data sinyal tercuplik pada setiap pengucapan.

Penyisipan nilai 0 dilakukan hingga mancapai banyaknya data yang telah ditentukan. Penentuan panjang data sinyal ditentukan oleh bilangan 2n. Bilangan tersebut berfungsi untuk melakukan perhitungan jumlah data sinyal yang akan disisipkan nilai 0,

sehingga panjang data sinyal tersebut akan sama dengan panjang data pengucapan awal. Gambar 3.8. menunjukan flowchart rancangan program zero padding.

Gambar 3.8. Flowchart Rancangan Program Zero Padding

3.2.6. Segmentasi dan Windowing

Setelah melalui preprocessing, maka data sinyal telah siap untuk diproses dalam segmentasi. Proses ini bertujuan untuk membagi tiap data kedalam beberapa bagian segmen sebelum dilakukan ekstraksi ciri. Proses segmentasi dibatasi dengan nilai variabel overlap. Nilai variabel overlap merupakan nilai segmentasi untuk membagi tiap data. Nilai variabel overlap yang digunakan pada segmentasi ditentukan sebesar 25% [5] dari panjang segmen, yaitu sebesar 512 [10].

Dalam melakukan segmentasi terdapat proses windowing, yang merupakan pembentukan pola dalam masukan data sinyal ucapan, sebelum dilakukan ekstraksi ciri. Proses windowing dilakukan agar efek diskontinuitas pada sinyal ucapan, yang dapat mengakibatkan kesalahan proses data dalam ekstraksi ciri DFT, dapat diminimalisir. Agar tidak terjadi kesalahan data pada proses, maka data sinyal ucapan yang telah mengalami pemotongan sinyal perlu dijadikan data kontinu dengan cara mengalihkan bagian sinyal dengan windowing tertentu. Pada penelitian ini, Penulis penggunakan jenis windowing Hamming, karena jenis window ini memiliki main lobe paling besar serta side lobe paling kecil.

Program windowing akan dijalankan saat fungsi ini dipanggil. Hasil dari zero padding, beserta variabel overlap dan panjang segmen, akan menjadi masukan program yang akan membentuk pola data sinyal ucapan. Sinyal hasil windowing didapat dari

perkalian elemen dari data Hamming window dengan data sinyal hasil pemotongan sinyal. Gambar 3.9. menunjukan flowchart rancangan program segmentasi dan windowing

Gambar 3.9. Flowchart Rancangan Program Segmentasi dan Windowing

3.2.7. Ekstraksi Ciri

Setelah melalui segmentasi dan windowing, proses selanjutnya adalah ekstraksi ciri. Ekstraksi ciri yang digunakan dapam penelitian ini adalah ekstraksi ciri Discrete Fourier Transform (DFT). Gambar 3.10. menunjukan flowchart rancangan program ekstraksi ciri DFT.

Setelah proses ekstraksi ciri dilakukan, dilanjutkan proses segment averaging yang bertujuan untuk mengurangi jumlah data ekstraksi ciri dengan mengelompokannya dalam rentang segmen yang kemudian dicari rata-ratanya pada setiap segmen.tujuan segment averaging sama dengan downsampling yang digunakan untuk mengurangi jumlah data ekstraksi ciri agar menjadi lebih kecil.

Proses segment averaging dibatasi dengan nilai dari variabel lebar segmen yang ditentukan dari banyak data berdasarkan perhitungan 2n. nilai dari variabel lebar segmen merupakan nilai segment averaging untuk membagi tiap data. Nilai variabel segmen yang digunakan pada segment averaging ditentukan sebesar 16, 32, 64, dan 128. Gambar 3.11. menunjukan flowchart rancangan program segment averaging.

Gambar 3.11. Flowchart Rancangan Program Segment Averaging

3.2.8. Perhitungan Similaritas

Selanjutnya akan dilakukan proses perhitungan similaritas. Proses perhitungan similaritas bertujuan membandingkan semua sinyal ucapan yang telah diproses dengan database yang telah dirancang untuk mencari nilai similaritas terbesar. Pada penelitian ini akan digunakan persamaan similaritas Dice. Data sinyal ucapan yang masuk akan dihitung bersamaan dengan seluruh database satu persatu menggunakan persamaan matematis yang ada pada dasar teori (2.6). Gambar 3.12. menunjukan flowchart rancangan program perhitungan similaritas.

Gambar 3.12. Flowchart Rancangan Program Perhitungan Similaritas

3.2.9. Penentuan Hasil Pengenalan Ucapan (k-Nearest Neighbor)

Tahapan proses ini merupakan penentuan hasil pengenalan ucapan dengan menggunakan metode k-Nearest Neighbor (k-NN). Hasil dari pengenalan ucapan didapat dari masukan nilai perhitungan similaritas, variabel nilai k pada k-NN, dan jumlah sampel per-kelas.

Pada perhitungan similaritas, ucapan masuk dibandingkan dengan semua database, lalu diurutkan hasilnya dari yang terbesar sampai yang terkecil. Pengambilan kelas yang paling banyak muncul dengan menggunakan nilai dari variabel k pada metode k-NN. Nilai dari variabel k pada penelitian ini ditentukan sebesar 3, 5, dan 7 [10]. Jumlah sample per-kelas ditentukan berdasarkan banyaknya database disetiap kata.

Setelah nilai k ditentukan, proses dilanjutkan dengan membandingkan dengan nilai thresholding, dimana jika nilai similaritas lebih besar atau sama dengan nilai thresholding maka suara akan dikenali, sedangkan jika nilai similaritas lebih kecil dari nilai thresholding maka suara tidak dikenali dan akan ditampilkan sebagai error (tidak dikenali) dalam keluaran berupa teks. Hasil dari pembandingan nilai similaritas dengan nilai thresholding akan dilakukan untuk mencari indeks kelas terbesar dan selanjutnya memilih kelas yang paling sering muncul.

Nilai thresholding didapatkan dari hasil perhitungan similaritas, dimana setiap ucapan yang akan dikenali memiliki nilai similaritas terbesar dan terkecil. Nilai similaritas terkecil yang masih dapat mengenali akan diambil sebagai nilai thresholding.

Hasil dari perhitungan dan nilai kelas yang paling banyak muncul tersebut merupakan hasil dari keluaran k-NN, yang juga merupakan hasil pengenalan ucapan. Hasil dari proses ini akan dikeluarkan dalam bentuk teks. Gambar 3.13. menunjukan flowchart rancangan penentuan hasil pengenalan dengan metode k-Nearest Neighbor.

Gambar 3.13. Flowchart Rancangan Pengenalan Keluaran Dengan Metode k-NN

3.2.10. Pengiriman Data Serial

Pengiriman data hasil pengenalan ucapan dilakukan secara serial melalui modul USB to TTL. Agar dapat melakukan komunikasi, akan dibuat sebuah program pada Matlab untuk mengkomunikasikan data dengan mikrokontroler.

Diperlukan inisialisasi port yang digunakan, baudrate, data bits, dan parity yang akan disesuaikan dengan mikrokontroler yang digunakan. Setelah inisialisasi dilakukan, gerbang serial akan dibuka, lalu memberikan nilai masukan berupa data hasil pengenalan. Data hasil pengenalan akan diperiksa menggunakan logika if-else untuk mengetahui data

apakah yang dikirimkan. Untuk mempermudah proses, maka data yang dikirimkan akan direpresentasikan dengan karakter angka 1, 2, 3, dan 4. Penentuan karakter angka yang dikirimkan dengan kategori ucapan dapat dilihat pada tabel 3.1. Setelah data dikirimkan, maka gerbang komunikasi serial akan ditutup kembali. Gambar 3.14. menunjukan flowchart rancangan program pengiriman data serial.

Tabel 3.1. Data Pengiriman Dari Tiap Ucapan

Gambar 3.14. Flowchart Rancangan Program Pengiriman Data Serial

Ucapan Data Yang Dikirim

KOPI “1”

SUSU “2”

KOPSUS “3”

COKELAT “4”

Dokumen terkait