• Tidak ada hasil yang ditemukan

Perancangan Sistem Pengenalan Ucapan

BAB III PERANCANGAN

3.2. Perancangan Sistem Pengenalan Ucapan

Proses pengenalan ucapan diawali dari ucapan user yang berupa sinyal suara yang ditangkap oleh mikrofon. Sinyal ucapan akan diterima oleh laptop melalui proses perubahanan dari sinyal analog menjadi sinyal digital dengan bantuan soundcard. Data sinyal ucapan yang diterima dari mikrofon akan diproses menggunakan software Matlab. Dalam hal ini suara yang terekam secara real time dapat dikenali dengan hasil akhir pergerakan pada lengan robot untuk mengambil benda yang telah diperintah user. Perancangan pengenalan ucapan ini terdiri dari sampling ( pencuplikan ucapan ),

preprocessing, framing dan windowing , ektraksi ciri, perhitungan similaritas dan hasil pengenalan. Dalam proses preprocessing terdapat subproses meliputi pre emphasis, normalisasi, pemotongan sinyal, dan zeropadding. Akhir dari pengenalan berupa tampilan pada GUI di MATLAB berupa kata yang meliputi kubus, balok, bola dan tabung yang selanjutkan akan dikirim melakukan perintah untuk lengan robot dengan menggunakan USB to TTL yang berfungsi sebagai komunikasi serial dari laptop menuju mikrokontroler. Perancangan pengenalan ucapan dapat dilihat pada gambar 3.3 dan subproses reprocessing

dapat dilihat pada gambar 3.4.

Pada perancangan software blok diagram gambar 3.3 dijelaskan bahwa suara yang masuk akan dilakukan sampling dan selanjutnya di proses pada preprocessing , hasil dari itu akan di proses dalam segmentasi sebelum masuk dalam proses ektraksi ciri untuk dilanjutkan kedalam proses perhitungan similaritas dengan database yang berfungsi membandingan data masukan dengan database. Selanjutnya hasil perbandingan akan diproses untuk menentukan keluaran dan selanjutnya akan dikomunikasikan ke mikrokontroler untuk mengendalikan pergerakan lengan robot.

Gambar 3.4 Blok Diagram SubProses Preprocessing

Pada gambar 3.4 menunjukan preprocessing dimana didalam preprocessing

terdapat subproses yang meliputi pre emphasis, normalisasi, pemotongan sinyal dan zero padding. Proses kerja berawal dari hasil sampling akan masuk kedalam pre emphasis

dilanjutkan normalisasi dan pemotongan sinyal, setelah itu akan berakhir pada pemberian

zero padding pada sinyal data. Perancangan sofware program pengenalan ucapan ditunjukan pada gambar 3.5.

Gambar 3.5. Flowchart Program pada MATLAB

Pada gambar flowchart pada gambar 3.5. menunjukan alur program yang akan dilakukan MATLAB dari pengambilan suara sampai pengiriman data secara serial. Proses pada inisialisasi berfungsi untuk mendeklarasikan variabel dan pemberian harga awal.

Variabel yang divariasikan oleh user adalah pemilihan user, nilai k pada knn,dan lebar

segment averaging. Besarnya nilai variabel dijelaskan pada sub-bab yang bersangkutan dengan penggunaannya ( 3.3.;3.2.9;3.2.7)

3.2.1. Sampling

Pada proses perancangan ini bertujuan untuk mengambil data berupa ucapan manusia secara analog kemudian akan diubah dalam bentuk sinyal digital ketika masuk kedalam laptop dengan menggunakan soundcard. Suara ucapan manusia mempunyai jarak atau rentang frekuensi antara 250 Hz – 3000 Hz. Nilai frekuensi ucapan ditentukan dengan nilai maksimal dari frekuensi manusia yaitu 3000 Hz agar nilai dari frekuensi sampling

dapat mencapai seluruh daerah rentang tersebut. Frekuensi sampling yang dipakai saat

sampling bernilai 6000 Hz, dua kali dari nilai frekuensi maksimal pada suara manusia. Nilai frekuensi sampling tersebut didapat dari persamaan Nyquist (persamaan 2.1) :

Pada perancangan proses sampling lama waktu pengambilan ucapan ditentukan sebesar 1 detik didapat dari percobaan yang tercantum pada lampiran. Waktu tersebut dihasilkan agar kata yang diucapkan dapat terekam secara penuh tanpa ada noise suara lain. Nilai waktu tersebut juga mempengaruhi banyaknya data yang tercuplik. Banyaknya data yang tercuplik dapat dihitung dari persamaan dibawah ini :

(3.1) Hasil sampling didapat berupa sinyal dari data yang tercuplik. Flowchart program dari perancangan fungsi sampling ditunjukkan pada gambar 3.6.

Gambar 3.6. Flowchart Program Fungsi Sampling

Pada proses perancangan sampling membutuhkan nilai masukan dari variable

frekuensi sampling dan waktu sampling. Nilai masukan yang dipakai berdasarkan data yang ditetapkan saat inisialisasi pada saat proses sampling. Variabel tersebut akan digunakan untuk menghitung banyaknya data yang tercuplik. Banyak data yang tercuplik berjumlah 6000 diperoleh dari persaman 3.1.

3.2.2. Pre Emphasis

Pre Emphasis bagian dari preprocessing pertama. Hasil dari sampling akan diproses dalam pre emphasis. Pada proses ini digunakanan untuk menghilangkan noise

yang berada pada sinyal ucapan dan mempertahankan sinyal suara yang blur menjadi lebih jelas. Nilai alpha ditentukan dari referensi [7]. Nilai alpha yang digunakan sebesar 0.95. Gambar 3.7. menunjukan flowchart proses preemphasis.

Gambar3.7. Flowchart Program Pre Emphasis

3.2.3. Normalisasi

Normalisasi proses setelah melakukan pre emphasis. Pada proses normalisasi ini digunakan untuk menyeragamkan nilai amplitudo dari sinyal sampling yang sudah melewati proses preemphasis. Tujuan dari normalisasi yaitu agar pengaruh dari kuat atau lemahnya suara yang diucapkan user dapat diminimalkan dalam proses normalisasi. Hasil dari proses normalisasi ini dirancang agar batasan nilai puncak maksimal dari data ucapan user tersebut bernilai 1 atau -1 dan nilai amplitudo disekitarnya menyeragamkan dengan perbandingan skala terhadap amplitudo tertinggi pada sinyal sampling. Proses perancangan normalisasi pada nilai-nilai ampitudo dibentuk dengan persamaan 2.2.

Pada perancangan proses normalisasi akan diproses ketika fungsi normalisasi dipanggil. Data yang dihasilkan dalam proses preemphasis akan dijadikan nilai input pada fungsi normalisasi. Proses normalisasi terhadap sinyal masukan tersebut diproses dengan menggunakan persamaan 2.2. Pada keluaran dari fungsi ini berupa sinyal yang sudah melewati proses normalisasi. Perancangan Flowchart dari program normalisasi ditunjukkan pad gambar 3.8. sebagai berikut :

Gambar 3.8. Flowchart Program Fungsi Normalisasi

3.2.4. Pemotong Sinyal

Pada proses pemotongan sinyal ini digunakan untuk menghilangkan data sinyal yag terletak sesudah dan sebelum data ucapan, dimana data tersebut diasumsikan bukan sebagai data ucapan dari user. Selain itu pemotongan sinyal juga digunakan untuk menghilangkan efek noise

atau gangguan suara lain yang ikut terekam saat proses sampling. Tujuan dari proses perancangan pemotongan sinyal ini agar data sinyal yang didapat hanya ucapannya saja.

Gambar 3.9. Flowchart Program Pemotongan Sinyal

Gambar 3.9. menunjukan flowchart program pemotongan sinyal yang akan dilakukan. Masukan pada proses pemotongan sinyal meliputi sinyal hasil normalisasi dan batas potong. Proses pemotongan data sinyal dibatasi oleh nilai dari batas potong . Nilai batas potong yang akan digunakan sebagai pemotongan sinyal sebesar 0,3 [25] .

Proses pemotongan dilakukan dengan mencari data antara nilai batas potong yang sudah ditentukan. Sebagai contoh jika nilai batas potong dimasukan nilai 0,3 maka nilai yang akan diproses untuk pemotongan sinyal adalah antara 0,3 sampai -0,3. Data diantara nilai batas potong tersebut akan dihilangkan dari data awal hingga data pertama pada hasil pencarian data yang dilakukan. Pada saat proses pemotongan sinyal akan dijalankan secara bertahap yang dimulai dari data sinyal bagian depan atau kiri dahulu dan dilanjutkan pada akhir atau kanan sinyal.

Saat proses pemotongan data sinyal bagian depan atau bagian kiri sudah selesai, maka akan dilakukan penyusunan data sinyal dari belakang menuju depan untuk membalikan urutan data sinyal dari kanan ke kiri. Pembalikan urutan data sinyal tersebut bertujuan untuk memotong data bagian akhir. Setelah data sinyal bagian akhir dipotong maka data akan disusun kembali untuk mengembalikan pada posisi awal atau pada urutan sebenarnya untuk proses selanjutnya.

3.2.5. Zero Padding

Setelah proses pemotongan sinyal, data akan dilanjutkan pada proses zeropadding.

Zero padding digunakan karena adanya perbedaan jumlah data tercuplik setelah proses pemotongan sinyal pada setiap pengucapan. Proses zero padding bertujuan agar banyaknya data pada sinyal ucapan pada setiap percobaan pengucapan berjumlah sama. Proses ini melakukan penyisipkan deretan nilai 0 pada bagian akhir data ucapan. Proses penyisipan deretan nilai 0 ditambahkan hingga mencapai banyak data yang sudah ditentukan. Penentuan banyak sinyal ucapan mengacu pada persamaan 2n. Persamaan tersebut berfungsi untuk melakukan perhitungan jumlah data sinyal yang akan diberi masukan nilai 0 sehingga sinyal tersebut memiliki besar yang sama dengan pengucapan awal. Gambar 3.10. menunjukan flowchart program pada fungsi zeropadding.

3.2.6. Framing dan Windowing

Setelah data melewati proses zeropadding, selanjutnya data ucapan akan melewati proses framing . Pada proses framing berfungsi untuk membagi tiap data ke beberepa bagian sebelum dilakukannya proses ekstraksi ciri. Proses framing dibatasi dengan nilai dari overlap. Nilai dari overlap merupakan nilai framing untuk membagi tiap data . Nilai

overlap digunakan pada framing ditentukan sebesar 25 %[26] dari panjang frame. Panjang

segment yang digunakan sebesar 512 [9].

Didalam proses framing terdapat proses windowing . Windowing merupakan perancangan untuk membuat pola dalam masukan data ucapan sebelum masuk dalam proses selanjutnya. Proses windowing dilakukan dikarenakan sinyal yang telah melewati proses pemotongan sinyal yang membuat data menjadi discontinue, hal ini mengakibatkan kesalahan data proses fourier transform. Agar tidak terjadi kesalahan data pada proses maka data suara yang sudah mengalami pemotongan sinyal perlu dijadikan data kontinu dengan cara mengalihkan bagian sinyal dengan window tertentu. Pada perancangan

windowing ini peneliti menggunakan jenis windowing hamming karena window hamming

memiliki mainlobe paling besar dan sidelobe paling kecil.

Program windowing akan diproses ketika fungsi windowing dipanggil. Data masukan untuk program windowing yaitu data sinyal hasil pemotongan sinyal . Sinyal hasil windowing didapat dari perkalian dari perkalian elemen dari data windowing hamming

dengan data sinyal hasil pemotongan sinyal. Gambaar 3.11. menunjukan flowchart

Gambar 3.11. Flowchart program framing dan windowing

3.2.7. Ekstraksi Ciri

Proses selanjutnya adalah proses ekstraksi ciri. Ekstraksi ciri yang digunakan dalam perancangan ini adalah ekstraksi ciri DFT dimana untuk mencari nilai ekstraksi ciri dft maka yang pertama dicari adalah nilai absolute perhitungan DFT. Gambar 3.12. menunjukan flowchart Ekstraksi Ciri DFT.

Setelah proses ekstraksi ciri dilakukan proses segment averaging yang berfungsi untuk melakukan pengurangan jumlah data ekstraksi ciri. Segment averaging merupakan metode untuk mengurangi jumlah data dengan cara mengelompokannya dalam rentang

segment kemudian dicari rata-ratanya pada tiap tiap segment. Tujuan segment averaging

sama dengan downsampling dimana digunakan untuk mengurangi jumlah data ekstraksi ciri yang memiliki ukuran besar menjadi ukuran kecil. Proses segment averaging dibatasi dengan nilai dari variabel lebar segment. Lebar segment ditentukan dari banyak data berdasarkan perhitungan 2n. Nilai dari variabel lebar segment merupakan nilai segment

averaging untuk membagi tiap data . Nilai variabel lebar segment digunakan pada segment averaging ditentukan sebesar 16; 32 dan 64. Gambar 3.13. menunjukan Flowchartsegment averaging.

Gambar 3.13. Flowchartsegmentaveraging.

3.2.8. Perhitungan Similaritas

Pada perancangan perhitungan similaritas ini merupakan hasil akhir dimana semua sinyal suara yang sudah melewati proses akan masuk kedalam perhitungan similaritas untuk mencari nilai similaritas terbesar setiap masukan dengan database yang sudah dirancang. Nilai similaritas terbersar dari hasil perbandingan dapat dikenali dengan menggunalan perhitungan similaritas. Perhitungan similaritas pada perancangan ini digunakan similaritas kosinus. Perhitungan perbandingan antara masukan dan database tersebut mengacu pada persamaan 2.5. Gambar 3.14. menunjukan flowchart perhitungan similaritas.

Gambar 3.14. Flowchart Program Perhitungan Similaritas

3.2.9. Penentuan hasil pengenalan suara ( k-Nearest Neigbor)

Proses terakhir dari keseluruhan program pengenalan ucapan adalah penentuan suara hasil pengenalan dengan metode K-NN. Dalam proses ini terjadi penentuan hasil pengenalan suara hasil rekaman real time dengan suara referensi. Hasil perbandingan yang mempunyai nilai hasil perhitungan secara similaritas kosinus mempunyai nilai similaritas terbesar, maka akan dapat ditentukan sebagai hasil keluaran. Hasil penentuan akan ditampilkan di tampilan GUI berupa tulisan text. Flowchart penentuan suara hasil pengenalan, dijabarkan pada gambar dibawah

Berawal dari mencari nilai similaritas kosinus dari ucapan masuk dengan semua database. Lalu urutkan hasil perhitungan similaritas kosinus dari terbesar sampai terkecil. Pilih nilai k pada variasi nilai k untuk mengambil hasil similaritas kosinus terbesar. Lalu menentukan nilai kelas yang sudah terpilih, selanjutnya mencari kelas yang sering muncul . Mencari indeks kelas yang sering muncul dan mencari nilai nilai similaritas kosinus pada kelas yang sering muncul. Balik hasil nilai similaritas kosinus dari kanan ke kiri dan ambil similaritas kosinus yang paling depan untuk dibandingan dengan nilai thesholding.

Keterangan variabel dari nilai TH adalah sebagai nilai batas maksimal dari similaritas yang digunakan. Setiap ucapan benda yang akan dikenali mempunyai batasan nilai maksimal dan minimal. Selanjutnya apabila nilai similaritas yang didapat kurang dari

nilai TH sebagai batas similaritas maka hasil keluaran ucapan tidak dikenali. Setelah mendapatkan nilai keseluruhan, hasilnya akan ditampilkan secara teks.

Secara lengkap, nilai TH didapatkan dari hasil perhitungan pada bagian similaritas kosinus. Nilai yang diambil adalah nilai – nilai paling kecil dari tiap ucapan dari seluruh hasil perhitungan similaritas kosinus yang masih dapat mengenali. Nilai paling kecil dari hasil perhitungan similaritas kosinus yang masih dapat mengenali ini digunakan sebagai batas dari variabel nilai TH seperti telah dijelaskan pada paragraf sebelumnya. Ketika sistem nanti akan diuji secara realtime, nilai hasil perhitungan similaritas kosinus yang tidak memenuhi batas dari variabel nilai TH akan dikenali sebagai kondisi yang salah.

Perhitungan untuk mendapatkan nilai TH didapat dari pengujian oleh penulis secara tidak real time. Pengujian ini dilakukan dengan menghitung nilai dari database

yang dibentuk dengan perekaman ucapan benda yang disimpan sebagai suara uji tidak real time. Perhitungan dilakukan dengan memakai rumus similaritas kosinus. Dari hasil perhitungan, dicari nilai - nilai terkecil yang masih dapat mengenali ucapan benda secara benar. Nilai - nilai terkecil pada tiap benda yang masih dapat mengenali ucapan benda secara benar digunakan sebagai batas nilai pengenalan ucapan. Ketika hasil pengujian secara real time telah mendefinisikan kolom benda yang dituju maka sistem akan membandingkan nilai perhitungannya, jika mempunyai nilai kurang dari variabel nilai TH

Gambar 3.15. Flowchart pengenalan keluaran dengan metode kNN

3.2.10. Program komunikasi serial dengan matlab

Pada perancangan ini pengirimian data serial menggunakan USB to TTL. Untuk membuat MATLAB dan ATmega32 dapat berkomunikasi, maka dibutuhkan suatu program pada MATLAB agar dapat berkomunikasi secara serial dengan mikrokontroler ATmega32. Pada komunikasi serial masukan meliputi port yang akan digunakan,

baudrate, databits, dam parity. Gambar 3.16. menunjukan flowchart program komunikasi serial dengan MATLAB

Gambar 3.16. Flowchart program komunikasi serial dengan MATLAB

Pada perancangan komunikasi serial langkah pertama yakni membuka gerbang komunikasi agar dapat mengakses data. Hasil pengenalan ucapan dari user akan dilakukan dengan menggunakan logika jika(if) untuk memilih data yang dikirim. Data yang dikirim berupa karakter dari huruf a sampai d , sehingga setiap ucapan kata memiliki huruf yang berbeda yang digunakan untuk pengiriman. Setelah pengiriman dilakukan maka gerbang komunikasi serial ditutup. Tabel 3.2 menunjukan pengucapan kata dan data yang dikirim.

Tabel 3.2. Pengucapan kata dan data yang dikirim

Kata Data Pengiriman KUBUS "a" BOLA "b" TABUNG "c" BALOK "d"

3.2.11. Program interupt lengan robot

Pada perancangan ini program interupt lengan robot di buat bertujuan untuk mengatur pergerakan lengan robot pada saat kondisi awal , mengambil benda dan meletakan benda. Untuk mengatur pergerakan motor servo, maka dibutuhkan sinyal PWM supaya sudut motor servo dapat diatur sesuai yang diinginkan. Pin keluaran OCR pada mikrokonroler ATmega32 memiliki keterbatasan pin sehingga memanfaatkan suatu timer yang bertujuan untuk mencacah pulsa seluruh PORT pada mikrokontroler ATmega32. Seluruh PORT pada mikrokontroler dapat berfungsi sebagai PWM dengan menggunakan perintah interupt. Dalam perancangan sudut peneliti memdapatkan sudut lengan robot dengan menggunakan metode heuristik yaitu dengan membuat lengan robot yang sama

dengan lengan robot sesunggunya dan di simulasikan sehingga didapatkan sudut sudut tiap kondisi. Kondisi perancangan terdiri dari kondisi awal sebelum pengambilan benda(lampiran 2 percobaan 5), sesaat pengambilan benda (lampiran 2 percobaan 1,2,3,4) dan peletakan benda(lampiran 2 percobaan 6). Pengambilan benda terdapat 4 benda yaitu bola, kubus, balok, dan tabung. Kondisi pengambilan benda terdiri dari pengambilan bola, kubus, balok, dan tabung. Dari kondisi – kondisi tersebut dicari nilai masing-masing sudut menggunakan busur derajat.

Perancangan sudut tiap kondisi mendapatkan sudut sudut tiap servo yang berbeda beda. Gambar 3.17. menuntukan posisi servo pada lengan robot. Tabel 3.3. menunjukan kondisi dan posisi sudut tiap servo.

Gambar 3.17. Posisi Servo Pada Lengan Robot. Tabel 3.3. Kondisi dan posisi sudut tiap servo

KONDISI (POSISI SERVO 1(0) SERVO 2(0) SERVO 3(0) SERVO 4(0)

AWAL 90 90 90 0 AMBIL BOLA 110 50 80 50 AMBIL KUBUS 140 40 100 50 AMBIL BALOK 45 35 120 50 AMBIL TABUNG 70 55 80 50 LETAK BENDA 160 40 110 0

Pada perancangan program dapat digunakan nilai tabel 3.3 sesuai pada percobaan yang tercantum pada lampiran 2 untuk dimasukan kedalam program sehingga lengan robot dapat bekerja sesuai perintah. Setiap kondisi memiliki program flowchart masing masing sehingga terdapat berbagai flowchart disetiap kondisi. Perancangan program pergerakan lengan robot keseluraan dimulai dari kondisi awal, pengambilan benda, peletakan benda, dan kembali ke kondisi awal. Gambar 3.18. menunjukan Flowchart pergerakan lengan robot keseluruhan. Selanjutnya Gambar 3.19.,3.20.,3.21.3.22.,3.23.,3.24. menunjukan flowchart subrutin posisi servo tiap kondisi.

Dokumen terkait