PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI TUGAS AKHIR
APLIKASI PENGENALAN UCAPAN UNTUK PENGATURAN KECEPATAN KIPAS DC MENGGUNAKAN DISCRETE COSINE TRANSFORM DAN FUNGSI JARAK EUCLIDEAN Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Elektro
Oleh: WIDI EKO WARDONO NIM: 105114010
PROGRAM STUDI TEKNIK ELEKTRO FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2015
i
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI FINAL PROJECT
APPLICATION OF SPEECH RECOGNITION FOR DC FAN CONTROL USING DISCRETE COSINE TRANSFORM AND EUCLIDEAN DISTANCE FUNCTION Presented as Partial Fulfillment of the Requirements To Obtain the Sarjana Teknik Degree In Electrical Engineering Study Program
WIDI EKO WARDONO NIM: 105114010
ELECTRICAL ENGINEERING STUDY PROGRAM FACULTY OF SCIENCE AND TECHNOLOGY SANATA DHARMA UNIVERSITY YOGYAKARTA 2015
ii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
HALAMAN PERSETUJUAN TUGAS AKHIR
APLIKASI PENGENALAN UCAPAN UNTUK PENGATURAN KECEPATAI\I KIPAS DC MENGGT]NAKAN DISCNETE COSINE TRANSFORM DAI\ FUNGSI JARAK EUCLIDEAN (APPLTCATTON OF SPEECH RECOGNTTTON FOR DC FAr[ CONTROL USING DISCRETE COSINE TRANSFORM AI\D EUCLIDEAN DISTANCE FUNCTIOT9
Oleh
:
WIDI EKO WARDONO
NIM : 105114010
Telah disetujui oleh
:
Pembimbing
/,
tu
Dr. Linggo S umarno
Tanggal
ilt
:
'8/q
/att
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
HALAMAN PENGESAHAN TUGAS AKHIR
APLIKASI PENGENALAN UCAPAN UNTUK PENGATT]RAN KECEPATAI\I KIPAS DC MENGGUNAKAN DISCRETE COSINE TRANSFORM DAN TUNGSI JARAK EACLIDEAN (APPLICATION OF SPEECH RECOGNITION FOR DC FAI\ CONTROL USING DISCRETE COSINE TRANSFORM ANI) EUCLIDEAI\ DISTANCE FUNCTION)
Oleh:
wrp.I EKo WARDQNO
NIM: l05ll40l0 Telah dipertahankan di depan Panitia Penguji Pada tanggal 18 Maret20ls Dan dinyatakan memenuhi syarat
SusunanPanitiaPenguj i :
Namalengkap
TandaTangan
Ketua
: Martanto, S.T.,
Sekretaris
: Dr. Linggo Sumarno
Anggota
:
M.T.
Djoko Untoro Suwamo, S.Si., M.T.
Yogyakarta,
Z2
A?n1 2016
Fakultas Sains dan Teknologi
IV
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI PERIIYATAAN KEASLIAN KARYA Saya menyatakan dengan sesungguhnya bahwa tugas akhir
ini tidak memuat karya
orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka sebagaimana layaknya karya ilmiah: Yogyakarla, zSApril 201 5
(Widi Eko Wardono)
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI HALAMAN PERSEMBAHAN DAN MOTTO HIDUP
“Tuhanlah kekuatan dan mazmurku… Dia gunung batu dan keselamatanku….”
In order to succed, we must first believe that we can – Nikos K.
Persembahan Karya ini saya persembahkan kepada : Tuhan Yesus Kristus Bapak dan Ibu atas dukungan, doa dan semangat Keluarga dan Teman-teman seperjuangan Almamaterku Sanata Dharma
vi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI LEMBAR PERNYATAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS
Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma
Nama Nomor
:
Mahasiswa
:
Widi Eko Wardono
: 105114010
Demi pengembangan ilmu pengetahuan, saya memberikan kepada perpustakaan Universitas Sanata Dharma karya ilmiah saya yang berjudul
:
APLIKASI PENGENALAN UCAPAN UNTUK PENGATURAN KECEPATAN KIPAS DC MENGGUNAKANDI,SCRE TE
C O S I NE
TRAN S FOftMDAN
FUNGSI JARAK EUCLIDEAN beserta perangkat yang diperlukan ( bila ada ). Dengan demikian saya memberikan kepada
Perpustakaan Universitas Sanata Dharrna hak untuk menyimpan, mengalihkan dalam
bentuk media lain, mengelolanya dalam bentuk pangkalan data, mendistribusikan secara terbatas dan mempublikasikannya
tanpa perlu meminta
ijin dari
di intemet atau media lain untuk kepentingan akademis
saya maupun memberikan royalty kepada saya selama
tetapmencatumkan nama saya sebagai penulis.
Demikian pernyataan ini saya buat dengan sebenarnya. Yogyakarta,29 April 20 I 5
47
(Widi Eko Wardono)
v11
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
INTISARI Perkembangan teknologi sekarang ini sangat cepat, sehingga perkembangan teknologi yang sangat cepat ini dapat mempermudah pekerjaan manusia. Menggunakan ucapan manusia dapat menggantikan peran penggunaan saklar yang harus menekan tombol - tombol saklar tertentu, sehingga membutuhkan waktu yang lama untuk melakukan proses penekanan tombol saklar. Menjadikan penggunaan saklar kurang efisien dalam pengunaannya. Sehingga, penulis membuat pengenalan ucapan untuk pengaturan kecepatan kipas DC. Sistem pengenalan ucapan untuk pengaturan kecepatan kipas DC menggunakan mikrofon untuk merekam ucapan manusia. Ucapan yang terekam diproses menggunakan laptop untuk menjalankan proses pengenalan dan mengenali ucapan yang terekam. Proses pengenalan ucapan meliputi beberapa subproses diantaranya merekam, normalisasi, pemotongan sinyal, windowing, ekstraksi ciri, fungsi jarak, penentuan hasil ucapan pengenalan, komunikasi serial dan pengaturan kecepatan kipas DCdengan mikrokontroler. Sistem pengenalan ucapan untuk pengaturan kecepatan kipas DC menggunakan discrete cosine transform dan fungsi jarak Euclidean. Program pengenalan sudah berhasil dibuat dan dan dapat bekerja sesuai dengan yang diharapkan. Pada program pengenalan ini menampilkan gelombang ucapan yang terekam, gelombang hasil pre-processing, hasil ekstraksi ciri DCT, keluaran berupa tulisan ucapan yang berhasil dikenali dan keluaran berupa tulisan data komunikasi serial. Pada program ini, hasil pengenalan terbaik adalah 83,33 % dalam pengujian secara real time dengan parameter nilai batas potong 0,2 dan downsampling 2. Program pengenalan ucapan untuk pengaturan kecepatan kipas DC hanya mengenali empat ucapan (hidup, mati, cepat dan lambat).
Kata kunci: Suara Manusia, Discrete Cosine Transform (DCT), Euclidean,Pengenalan ucapan “hidup”, “mati”, “cepat” dan “lambat”.
viii
Fungsi
Jarak
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
ABSTRACT The development of technology today is very fast, so that rapid technological development is to facilitate the work of man. Using human speech can replace the role of the use switches that have to press the button – specific switch button, so it takes a long time to process keystrokes switch. Making use of the switch is less efficient in its use. Thus, the authors make speech recognition for DC fan speed settings. Speech recognition system for DC fan speed setting using the microphone to record human speech. The recorded speech is processed using a laptop to run the process of introduction and recognize the recorded greeting.Speech recognition process includes several sub-processes, such as recording, normalization, cutting, windowing, signal extraction of characteristic, the function of distance, the determination results of speech recognition, serial communications and DC fan speed settings with a microcontroller. Speech recognition system for DC fan speed control using discrete cosine transform and euclidean distance function. Recognition program has successfully created and can work well. In this recognition program is shows the sound wave of recorded speech, wave of preprocessing, result of DCT feature extraction, output speech in form of essay which is successfully to recognize and the output data communication serial form. In this program, the best recognition result is 83,33 % in real time testing with parameter cutting limit value 0,2 and downsampling value 2. Speech recognition program for fan speed control DC only recognizes four words (hidup, mati, cepat and lambat).
Keywords: Human Voice, Discrete Cosine Transform, Euclidean distance function, speech recognition of “hidup”, “mati”, “cepat” and “lambat”.
ix
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
KATA PENGANTAR Puji dan syukur penulis panjatkan kepada Tuhan Yesus Kristus karena telah memberikan anugerah-Nya sehingga penulis dapat menyelesaikan laporan tugas akhir ini dengan baik.Laporan tugas akhir ini disusun untuk memenuhi syarat memperoleh gelar sarjana. Selama pembuatan tugas akhir ini penulis menyadari bahwa ada begitu banyak pihak yang telah memberikan bantuan baik bantuan materi, moral maupun dukungan. Oleh karena itu penulis ingin mengucapkan terimakasih kepada : 1. Petrus Setyo Prabowo, S.T., M.T., Ketua Program Studi Teknik Elektro Universitas Sanata Dharma. 2. Dr.Linggo Sumarno, dosen pembimbing yang dengan penuh setia, kesabaran dan pengertian untuk membimbing dalam menyelesaikan Tugas Akhir ini.. 3. Bapak dan Ibu dosen yang telah mengajarkan banyak ilmu yang bermanfaat selama menempuh pendidikan di Universitas Sanata Dharma. 4. Segenap laboran dan karyawan Fakultas Sains dan Teknologi yang telah memberikan dukungan secara tidak langsung dalam kelancaran penulis mengerjakan penulisan tulisan tugas akhir ini. 5. Kedua orang tua penulis yang telah banyak memberikan dukungan doa, kasih sayang dan motivasi selama menempuh pendidikan di Universitas Sanata Dharma. 6. Keluarga kecil penulis yang telah memberi dukungan dalam mengawali dan mengakhirimasa - masa menempuh pendidikan di Universitas Sanata Dharma. 7. Alvianika yang turut memberikan dukungan dalam kehidupan penulis. 8. Teman – teman seperjuangan Teknik Elektro 2010 yang telah menemani di waktu siang ataupun malam pada saat menempuh pendidikan di Universitas Sanata Dhama. 9. Semua pihak yang tidak bisa disebutkan satu persatu yang telah banyak memberikan banyak bantuan dan dukungan dalam menyelesaikan tugas akhir ini. Penulis menyadari bahwa dalam penyusunan laporan tugas akhir masih mengalami kesulitan dan tidak lepas dari kesalahan.Oleh karena itu, penulis mengharapkan masukan,
x
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Penulis menyadari bahwa dalam penyusunan laporan tugas akhir masih mengalami
kesulitan dan tidak lepas dari kesalahan.Oleh karena itu, penulis mengharapkan masukan,
kritik dan saran yang membangun agar skripsi ini menjadi lebih baik.Semoga skripsi ini dapat bermanfaat sebagaimana mestinya.
F
Penulis,
Widi Eko Wardono
X1
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
DAFTAR ISI HALAMAN JUDUL .......................................................................................................... i HALAMAN PERSETUJUAN .......................................................................................... iii HALAMAN PENGESAHAN ........................................................................................... iv PERNYATAAN KEASLIAN KARYA ............................................................................ v HALAMAN PERSEMBAHAN DAN MOTTO HIDUP ................................................vi LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS ........................................................ vii INTISARI ........................................................................................................................... viii ABSTRACT ....................................................................................................................... ix KATA PENGANTAR .......................................................................................................x DAFTAR ISI ...................................................................................................................... xii DAFTAR GAMBAR .........................................................................................................xv DAFTAR TABEL ........................................................................................................... xviii BAB I PENDAHULUAN .................................................................................................. 1 1.1. Latar Belakang ........................................................................................................... 1 1.2. Tujuan dan Manfaat Penelitian .................................................................................. 2 1.3. Batasan Masalah......................................................................................................... 2 1.4. Metodologi Penelitian ................................................................................................ 3 BAB II DASAR TEORI ....................................................................................................6 2.1. Suara Manusia ............................................................................................................6 2.2. Microphone ................................................................................................................7 2.3. Sound Card ................................................................................................................8 2.4. Matlab ........................................................................................................................ 9 2.5. Sampling..................................................................................................................... 11 2.6. Mikrokontroler ATMega 8......................................................................................... 12 2.6.1 Konfigurasi pin ATMega 8...............................................................................12
xii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 2.6.2 Timer ATMega 8 .............................................................................................. 13 2.6.3 USART .............................................................................................................18 2.7. FT232RL .................................................................................................................... 20 2.8. Pulse Width Modulation (PWM) ................................................................................21 2.9. Discrete Cosine Transform (DCT) .............................................................................22 2.10. Jarak Euclidean ..........................................................................................................23 2.11. Windowing .................................................................................................................23 2.11.1 Jendela Hanning ............................................................................................. 24 2.12. Template matching .....................................................................................................24 2.13. Transistor sebagai saklar ............................................................................................ 24 2.14. Brushless Motor DC...................................................................................................25 BAB III PERANCANGAN PENELITIAN .....................................................................27 3.1. Perancangan Sistem ...................................................................................................27 3.2. Perancangan Pengenalan Ucapan ...............................................................................29 3.2.1 Perancangan Software ....................................................................................... 30 3.2.2 Perancangan Hardware...................................................................................... 39 3.2.3 Desain Alat ........................................................................................................46 3.3. Perancangan Tampilan GUI Matlab...........................................................................48 BAB IV HASIL DAN PEMBAHASAN ...........................................................................50 4.1. Antarmuka Program Pengenalan Ucapan Untuk Pengaturan Kipas DC Secara RealTime Menggunakan Ekstraksi Ciri DCT dan Fungsi Jarak Euclidean ....................... 50 4.1.1. Pop up Menu .....................................................................................................53 4.1.2. Push Button “Rekam” ....................................................................................... 54 4.1.3. Push Button “Ulang” ........................................................................................ 61 4.1.4. Push Button “Selesai” ....................................................................................... 62 4.2. Software Program Pada Mikrokontroler Untuk Mengatur Kecepatan Kipas DC Secara Real Time ........................................................................................................63 4.3.
Hasil Pengujian Program Pengenalan Ucapan Untuk Mengatur Kecepatan Kipas DC Untuk Tingkat Pengenalan Ucapan ....................................................................66 4.3.1 Pengujian Parameter Pengenalan Ucapan Untuk Mengatur Kecepatan Kipas DC Secara Tidak Real Time .............................................................................66
xiii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 4.3.2 Pengujian Parameter Pengenalan Ucapan Untuk Mengatur Kecepatan Kipas DC Secara Real Time ........................................................................................ 71 BAB V KESIMPULAN DAN SARAN ............................................................................80 5.1. Kesimpulan ................................................................................................................80 5.2. Saran ........................................................................................................................... 80 DAFTAR PUSTAKA ........................................................................................................81 LAMPIRAN ....................................................................................................................... 83 Hasil Durasi Perekaman Ucapan ......................................................................................... L1 Percobaan Menggunakan Program Antarmuka Pembentukan Database ............................ L5 Listing Program ................................................................................................................... L8 Hasil Perbandingan Rata – Rata Ekstraksi Ciri Pada Ucapan Yang Disimpan Dengan Setiap Ucapan Pengenalan................................................................................................ L30
xiv
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
DAFTAR GAMBAR
Gambar 1.1
Alur Kerja ....................................................................................................4
Gambar 1.2
Subsistem Pembuatan Software ...................................................................4
Gambar 2.1
Alat Ucap Untuk Pembentukan Suara[5] ..................................................... 6
Gambar 2.2
Diagram Blok Produksi Suara Manusia[3] ..................................................7
Gambar 2.3
Microphone ..................................................................................................8
Gambar 2.4
Sound Card[8].............................................................................................. 9
Gambar 2.5Penulisan Program Matlab Secara Langsung[9] ..............................................10 Gambar 2.6
M-file Matlab[9] ........................................................................................... 11
Gambar 2.7
Konfigurasi ATMega 8[11] .........................................................................12
Gambar 2.8
Diagram Waktu Mode Fast PWM[11] ........................................................ 18
Gambar 2.9
Konfigurasi IC FT232RL[12] ......................................................................20
Gambar 2.10 Gelombang Kotak[13] .................................................................................21 Gambar 2.11 Gambar Pulsa PWM[13] ..............................................................................22 Gambar 2.12 Fungsi Dasar Kosinus Satu Dimensi[14] ..................................................... 23 Gambar 2.13 Rangkaian Transistor Sebagai Saklar[20] .................................................... 25 Gambar 2.14 Urutan Putaran Brushless Motor DC ........................................................... 26 Gambar 3.1
Gambaran Umum Sistem .............................................................................27
Gambar 3.2
Diagram Blok Proses Pengenalan Ucapan ................................................... 30
Gambar 3.3
Flowchart Proses Pengenalan Ucapan ......................................................... 31
Gambar 3.4
Flowchart Proses Pencuplikan Ucapan ....................................................... 32
Gambar 3.5
Flowchart ProsesPre-processing .................................................................33
Gambar 3.6
Flowchart Proses Normalisasi .....................................................................34
Gambar 3.7
Flowchart Proses Pemotongan Sinyal ......................................................... 35
Gambar 3.8
Flowchart Proses Windowing ......................................................................35
xv
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Gambar 3.9
Flowchart Proses Zero Padding ..................................................................36
Gambar 3.10 Flowchart Proses Ekstraksi Ciri ..................................................................37 Gambar 3.11 Flowchart Proses Pembanding ....................................................................38 Gambar 3.12 Flowchart Proses Penentuan Keluaran ........................................................ 38 Gambar 3.13 Flowchart Komunikasi Serial Pada Matlab .................................................39 Gambar 3.14 Flowchart Pembentukan Database Ucapan .................................................40 Gambar 3.15 Rangkaian Minimum Sistem ATMega 8 ..................................................... 41 Gambar 3.16 Rangkaian Osilator Eksternal ......................................................................42 Gambar 3.17 Rangkaian Reset........................................................................................... 43 Gambar 3.18 Rangkaian Motor Driver ..............................................................................44 Gambar 3.19 Flowchart Software Mikrokontroler ............................................................ 47 Gambar 3.20 Tampilan Desain Alat Tampak Depan ......................................................... 48 Gambar 3.21 Tampilan Desain Alat Tampak Samping ..................................................... 49 Gambar 3.22 Tampilan Desain Alat Tampak Belakang .................................................... 49 Gambar 3.23 Tampilan GUI Matlab Pengenalan Ucapan Untuk Pengaturan Kipas DC ....50 Gambar 4.1
Ikon Matlab 7.10.0 ....................................................................................... 51
Gambar 4.2
Tampilan Matlab .......................................................................................... 51
Gambar 4.3
Tampilan Pengenalan Ucapan Untuk Pengaturan Kipas DC ....................... 52
Gambar 4.4
Tampilan Antarmuka Setelah Push Button “Rekam” Ditekan .................... 61
Gambar 4.5
Tampilan Antarmuka Setelah Push Button “Selesai” Ditekan .................... 63
Gambar 4.6
Pengaruh Perubahan Nilai Batas Potong Terhadap Pengenalan Ucapan .....67
Gambar 4.7
Pengaruh Perubahan Nilai Downsampling Terhadap Pengenalan Ucapan..68
Gambar 4.8
Proses Pembagian Data Awal Dengan Beberapa Frame (
Gambar 4.9
Pola Ucapan Hasil Ekstraksi Ciri Kata “hidup” Dalam Proses Pengenalan Ucapan .........................................................................................................73
) ..................... 70
Gambar 4.10 Pola Ucapan Hasil Ekstraksi Ciri Kata “mati” Dalam Proses Pengenalan Ucapan .........................................................................................................74
xvi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Gambar 4.11 Pola Ucapan Hasil Ekstraksi Ciri Kata “cepat” Dalam Proses Pengenalan Ucapan .........................................................................................................74 Gambar 4.12 Pola Ucapan Hasil Ekstraksi Ciri Kata “lambat” Dalam Proses Pengenalan Ucapan .........................................................................................................75 Gambar 4.13 Perbandingan Rata – Rata Hasil Ekstraksi Ciri Ucapan “hidup” Database Dengan Ucapan “cepat” Pada Pengenalan ................................................... 77 Gambar 4.14 Perbandingan Rata – Rata Hasil Ekstraksi Ciri Ucapan “hidup” Database Dengan Ucapan “mati” Pada Pengenalan .................................................... 78 Gambar 4.15 Perbandingan Rata – Rata Hasil Ekstraksi Ciri Ucapan “hidup” Database Dengan Ucapan “cepat” Pada Pengenalan ................................................... 78 Gambar 4.16 Perbandingan Rata – Rata Hasil Ekstraksi Ciri Ucapan “hidup” Database Dengan Ucapan “lambat” Pada Pengenalan ................................................79
xvii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
DAFTAR TABEL
Tabel 2.1 Register TCRR1A[11] ...................................................................................... 14 Tabel 2.2 Mode Normal dan CTC[11]..............................................................................14 Tabel 2.3 Mode Fast PWM[11]........................................................................................ 15 Tabel 2.4 Mode Phase Correct dan Frequency Correct PWM[11]..................................15 Tabel 2.5 Mode Operasi[11] ............................................................................................. 16 Tabel 2.6 Sumber Clock Dengan Pemilihan Bit[11] ........................................................ 17 Tabel 2.7 Pengaturan Bit UMSEL[11] .............................................................................19 Tabel 2.8 Pengaturan Bit Parity Mode[11].......................................................................19 Tabel 2.9 Pengaturan Bit Stop Select[11] .........................................................................19 Tabel 2.10 Bit Pengaturan Ukuran Karakter[11] ................................................................ 20 Tabel 3.1 Spesifikasi Mikrofon Genius MIC-01A[5]....................................................... 28 Tabel 3.2 Spesifikasi Kipas DC ........................................................................................ 29 Tabel 3.3 Kondisi Keadaan Tingkat Kecepatan Putar Kipas DC .....................................46 Tabel 3.4 Pengukuran Nilai Pulse Width Mmodulation (PWM) Sebagai Tingkat Kecepatan Putar Kipas DC ...............................................................................46 Tabel 3.5 Penentuan Nilai Pulse Width Mmodulation (PWM) Sebagai Tingkat Kecepatan Putar Kipas DC .................................................................................................46 Tabel 3.6 Keterangan Tampilan GUI Matlab ...................................................................51 Tabel 4.1 Hasil Pengenalan Ucapan Yang Dikenali ......................................................... 61 Tabel 4.2 Data Yang Diterima Mikrokontroler ................................................................ 65 Tabel 4.3 Tingkat Pengenalan Untuk Hasil Pengujian Secara Tidak Real Time..............67 Tabel 4.4 Hasil Tingkat Pengenalan Menggunakan Segment Averaging ......................... 70 Tabel 4.5 Hasil Pengujian Secara Real Time ....................................................................71 Tabel 4.6 Hasil Kecepatan Putar Kipas DC Pada Pengujian Secara Real Time ...............72 Tabel 4.7 Hasil Proses Ekstraksi Ciri Dalam Bentuk Numerik Pengguna 1 .................... 75 xviii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Tabel 4.8 Hasil Proses Ekstraksi Ciri Dalam Bentuk Numerik Pengguna 2 .................... 75 Tabel 4.9 Hasil Proses Ekstraksi Ciri Dalam Bentuk Numerik Pengguna 3 .................... 76
xix
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB I PENDAHULUAN 1.1
Latar Belakang Dalam perkembangan teknologi yang sangat cepat, dan dengan perkembangan
teknologi yang sangat cepat ini dapat mempermudahkan pekerjaan manusia. Banyak aplikasi - aplikasi perkembangan teknologi yang mempermudah pekerjaan manusia, salah satunya aplikasi pengaturan kecepatan kipas DC dengan menggunakan ucapan manusia secara real time. Dengan menggunakan ucapan manusia dapat menggantikan peran penggunaan saklar yang harus menekan tombol - tombol saklar tertentu, sehingga membutuhkan waktu yang lama untuk melakukan proses penekanan tombol saklar. Menjadikan penggunaan saklar kurang efisien dalam pengunaannya. Sehingga, penulis membuat sistem pengaturan kecepatan kipas DC menggunakan ucapan manusia secara real time. Penulis menemukan beberapa penelitian tentang pengenalan pengucapan manusia, penelitian yang dilakukan Hidayatno, A., & Saksono [1] tentang aplikasi pengenalan ucapan sebagai pengaturan mobil dengan pengendali jarak jauh. Penulis juga menemukan penelitian yang dilakukan Adler, J., Azhar, M., & Supatmi, S [2] tentang identifikasi suara dengan Matlab sebagai aplikasi jaringan saraf tiruan. Penelitian yang yang dibuat oleh penulis ini memiliki kesamaan dalam pemberian input yaitu pengucapan manusia dan menggunakan Matlab sebagai pemograman dan pengolahan data. Tetapi penelitian yang dibuat penulis memiliki beberapa perbedaan, yaitu pengambilan data pengucapan hidup, mati, cepat dan lambat sebagai database, menggunakan metode ekstraksi ciri
DCT
(Discrete Cosine Transform) dan menggunakan fungsi jarak Euclidean sebagai perbandingan antara database dengan pengucapan, selain itu output yang diberikan berupa kecepatan putaran kipas DC dengan 5 step pengucapan cepat dan lambat untuk mengatur kecepatan putaran kipas. Penelitian yang dibuat oleh penulis nantinya dapat dikembangkan menjadi aplikasi pengendalian elektronika yang membutuhkan pengucapan manusia dan pada penelitian ini juga dibuat untuk pengendalian kipas chasing komputer dengan pengucapan manusia untuk mengatur sirkulasi udara dalam komputer sesuai dengan keinginan user dengan menambah variasi kecepatan motor yang banyak dengan menambahkan step PWM (Pulse Width Modulation) untuk pengaturan kecepatan motor sesuai dengan yang dibutuhkan.
1
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
1.2
2
Tujuan dan Manfaat Penelitian Tujuan dari penulisan tugas akhir ini adalah untuk menghasilkan sistem pengenalan
ucapan manusia untuk mengatur kecepatan putaran kipas DC. Manfaat dari penulisan tugas akhir ini adalah : 1.
Sebagai alat bantu berupa software bagi orang lain untuk mengatur kecepatan putaran kipas DC atau alat elektronika dengan pengenalan ucapan manusia.
2.
Sebagai penelitian awal sistem pengenalan ucapan manusia untuk mengatur kecepatan putaran kipas DC sehingga dapat digunakan untuk mengendalikan alat elektronika dengan aplikasi yang menggunakan pengenalan ucapan.
1.3
Batasan Masalah Sistem pengenalan ucapan terdiri atas software dan hardware. Hardware memiliki
dua fungsi yaitu memberikan input
ucapan manusia dan memberikan output berupa
kecepatan putaran kipas DC. Sedangkan software pada komputer berfungsi untuk mengatur semua proses pengenalan ucapan manusia. Pada perancangan sistem ini, penulis fokus pada software komputer untuk memproses pengenalan ucapan manusia, sedangkan hardware berupa microphone yang sudah tersedia di pasaran. Penulis menetapkan beberapa batasan masalah yang dianggap perlu dalam perancangan ini, yaitu sebagai berikut : 1. Menggunakan input pengucapan tiga pengguna yang telah ditentukan dengan intonasi pengucapan kata secara normal atau biasa. 2. Suara yang dikenali “hidup”, “mati”, “cepat” dan “lambat”. Pengucapan selain kata – kata yang sudah ditentukan akan dikenali secara salah. 3. Menggunakan software Matlab dan Code Vision dalam pembuatan dan pengolahan program. 4. Menggunakan DCT ( Discrete Cosine Transform) untuk mencari ekstraksi ciri, fungsi jarak Euclidean sebagai pembanding dan jendela Hanning sebagai windowing. 5. Pengenalan secara real time. 6. Variasi nilai pada variabel batas potong dan downsampling ditentukan sebagai berikut : Batas potong = 0,1; 0,2; 0,3 dan 0,4
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
3
Downsampling = 1, 2 dan 4 7. Output berupa kecepatan putaran kipas DC. 8. Menggunakan
komunikasi
serial
FT232RL
untuk
menghubungkan
mikrokontroler dengan komputer untuk mengatur kecepatan putaran kipas DC. 9.
Jarak antara microfon dengan peneliti ± 10cm.
10. Akuator yang digunakan adalah kipas DC dengan dimensi 12 x 12 x 2.5 cm. 11. Menggunakan mikrokontroler ATMega8. 12. Pengolahan data pengenalan ucapan menggunakan laptop dan mikrokontroler sebagai pengolahan data untuk pengaturan putar kipas DC. 13. Penentuan level PWM sebagai output nilai kecepatan putar kipas DC berdasarkan pengukuran kecepatan putar kipas DC.
1.4
Metodologi Penelitian Langkah-langkah dalam pembuatan tugas akhir adalah : 1. Pengumpulan referensi berupa buku - buku dan jurnal - jurnal ilmiah mengenai pengolahan suara, pemrograman Matlab, ekstraksi ciri DCT ( Discrete Cosine Transform) dan fungsi jarak Euclidean. 2. Perancangan subsistem software dan hardware Tahap ini bertujuan untuk mencari bentuk model yang optimal dari sistem yang akan dibuat dengan mempertimbangkan berbagai faktor–faktor permasalahan dan kebutuhan yang ditentukan. Perancangan subsistem software dan hardware secara umum dapat dilihat pada gambar 1.1
Gambar 1.1 Alur Kerja 3. Pembuatan subsistem software dan hardware. Sistem akan bekerja jika user menekan tombol push button yang ditampilkan dalam tampilan visual yang disediakan oleh software. Kemudian sistem akan mengolah interupsi yang diterima dan memulai dan memulai proses recording
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
4
sampai user memberikan interupsi kembali untuk menghentikan proses recording. Setelah itu, user memberikan interupsi memulai proses pengenalan pengucapan. Matlab akan mengolah pengenalan ucapan dan memberikan output berupa putaran kipas DC Pembuatan hardware ditunjukkan pada gambar 1.1 dengan mikrokontroler sebagai pengolah data dan penggerak kipas DC. Pembuatan subsistem software ditunjukkan pada gambar 1.2
Gambar 1.2 Subsistem Pembuatan Software 4. Pengambilan data. Pengambilan data yang dilakukan untuk dapat menguji sistem dilakukan dalam 2 tahap yaitu : Pengenalan ucapan secara offline dengan merekam 20 data ucapan pada tiap kata ucapan. Pengenalan ucapan dilakukan pada data ucapan tersebut pada setiap variasi nilai variabel. Pengenalan ucapan secara real time dengan menangkap ucapan dan langsung diproses hingga terjadi pergerakan kipas DC. Pengambilan data dilakukan dengan memvariasikan nilai pada variabel data yang ditentukan. Variabel yang digunakan yaitu batas potong sinyal dan faktor downsampling.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
5
5. Analisa dan penyimpulan hasil percobaan. Analisa data dilakukan dengan meneliti pengaruh variasi DCT (Discrete Cosine Transform) dengan 80 kali percobaan ( 4 pengucapan x 20 ) terhadap tingkat pengenalan dengan variablel downsampling dan batas potong sebanyak 12 set dari database. Penyimpulan hasil dilakukan dengan mencari jumlah koefisien DCT (Discrete Cosine Transform) yang menghasilkan tingkat pengenalan yang terbaik. 6.
Pengujian secara real time Pengujain secara real time merupakan pengujian dengan 4 ucapan hidup, mati, cepat dan lambat sebanyak 10 kali secara langsung setelah mengetahui batas potong dan downsampling yang menghasilkan tingkat pengenalan yang terbaik, pengujian ini bertujuan untuk menguji kinerja sistem pengenalan ucapan pada saat real time.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB II DASAR TEORI 2.1 Suara Manusia Ucapan manusia dihasilkan oleh suatu sistem produksi ucapan yang dibentuk oleh alat- alat ucap manusia. Proses tersebut dimulai dengan formulasi pesan dalam otak pembicaraan. Pesan tersebut akan diubah menjadi perintah- perintah yang dibeikan kepada alat- alat ucap manusia, sehingga akhirnya dihasilkan ucapan yang sesuai dengan pesan yang ingin diucapkan. Dimulai dari vocal cord atau glottis, dan berakhir pada mulut. Vocal tract terdiri dari pharynx (koneksi antara esophagus dengan mulut) dan mulut. Panjang vocal tract pria pada umumnya sekitar 17 cm. Daerah pertemuan vocal tract ditentukan oleh lidah, bibir, rahang dan bagian belakang langit- langit.[3]
Gambar 2.1 Alat Ucap Untuk Pembentukan Suara [5] Pembentukan ucapan dimulai dengan adanya hembusan udara yang dihasilkan oleh paru – paru. Cara kerjanya serupa seperti piston atau pompa yang ditekan untuk menghasilkan udara. Pada saat vocal cords berada dalam keadaan tegang, aliran udara akan menyebabkan terjadinya vibrasi pada vocal cords dan menghasilkan bunyi ucapan yang disebut voiced sound. Pada saat vocal cord berada dalam keadaan lemas, aliran udara akan melalui daerah yang sempit pada vocal tract dan menyebabkan terjadinya turbulensi, sehingga menghasilkan suara yang dikenal dengan unvoiced sound.[4]
6
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
7
Gambar 2.2 Diagaram Blok Produksi Suara Manusia[3]
2.2 Microphone Mikrofon atau dalam bahasa Inggris disebut dengan michrophone adalah suatu alat atau komponen elektronika yang dapat mengubah atau mengonversi energi akustik (gelombang suara) ke energi listrik (sinyal audio). Mikrofon (microphone) merupakan keluarga tranduser yang berfungsi sebagai komponen
atau alat pengubah satu bentuk
energi ke energi lainnya, tetapi mereka semua memiliki persamaan yaitu semua jenis mikrofon memiliki suatu bagian utama yang disebut dengan Diafragma (Diaphragm). Mikrofon merupakan komponen penting dalam perangkat elektronik seperti alat bantu pendengaran, perekam suara, penyiaran radio maupun alat komunikasi lainnya seperti handphone, telepon, intercom, WalkieTalkie serta home entertainment seperti karaoke. Pada dasarnya sinyal listrik yang dihasilkan mikrofon sangatlah rendah, oleh karena itu diperlukan penguat suara yang biasanya disebut dengan Amplifier. Berikut ini adalah penjelasan cara kerja mikrofon (microphone) 1. Saat kita berbicara, suara kita akan membentuk gelombang suara dan menuju ke mikrofon. 2. Dalam mikrofon, gelombang suara tersebut akan menabrak diafragma (diaphragm) yang terdiri dari membran plastik yang sangat tipis Diafragma akan bergetar sesuai dengan gelombang suara yang diterima.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
8
3. Sebuah coil atau kumparan kawat (Voice coil) yang terdapat dibagian belakang diafragma akan ikut bergerak sesuai dengan getaran diafragma 4. Sebuah magnet kecil yang permanen (tetap) yang dikelilingi oleh koil atau kumparan tersebut akan menciptakan medan magnet seiring dengan gerakan koil. 5. Pergerakan voice coil di medan ini akan menimbulkan sinyal listrik 6. Sinyal listrik yang dihasilkan tersebut kemudian mengalir ke amplifier (penguat) atau perekam suara[6].
Gambar 2.3 Microphone[7]
2.3 Sound Card Sound card adalah perangkat keras komputer yang berfungsi untuk mengolah data berupa audio atau suara. Sound card juga sering disebut audio card, adalah periferal yang terhubung ke slot ISA atau PCI pada motherboard, yang memungkinkan untuk memasukkan input, memproses dan menghantarkan data berupa suara. Setiap sound card memiliki fungsi, yaitu : 1. Digital to Analog Converter (DAC) sebagai keluaran suara ke speaker. 2. Analog to Digital Converter (ADC) sebagai masukkan suara dari microphone. 3. Musical Instrument Digital Interface (MIDI) sebagai komunikasi alat elektronik, kontrol dan sinkroniksasi satu sama lainnya. 4. Digital Signal Proses (DSP) sebagai pengolahan data suara. 5. Synthesizer (sintesis) sebagai pengolahan suara yang menghasilkan simulasi suara mirip dengan suara aslinya. 6. Jack sebagai penghubung sound card dengan speaker sebagai jalur out line atau microphone sebagai jalur in line.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
9
Sound card memiliki fasilitas audio yang telah terpasang pada motherboard berbentuk chipset (on board sound card) dan kinerja on board sound card masih membutuhkan bantuan posesor utama. Selain berbentuk chipset (on board sound card), beberapa jenis lainnya sound card memiliki fasilitas audio yang dipasangkan pada slot PCI motherboard. Sound card tipe ini memiliki keunggulan kualitas yang dihasilkan[8].
Gambar 2.4 Sound Card[8]
2.4 Matlab Matlab adalah singkatan dari mathematics laboratory atau matrix laboratory. Dalam ilmu komputer, Matlab didefinisikan sebagai bahasa pemrograman yang digunakan untuk mengerjakan operasi matematika atau operasi aljabar matriks. Matlab merupakan sistim interaktif yang data dasarnya adalah matriks. Matriks dianggap data dasar data Matlab karena samua masukkan di Matlab dapat ditulis dalam bentuk matriks. Beberapa bagian dari window Matlab : 1.
Current Directory Window ini menampilkan isi dari direktori kerja saja menggunakan Matlab. Kita dapat mengganti direktori ini sesuai dengan tempat direktori kerja yang diingikan. Default dari alamat direktori berada dalam folder works tempat program files Matlab berada.
2.
Command History Window ini berfungsi untuk menyimpan perintah – perintah apa saja yang sebelumnya dilakukan oleh pengguna terhadap Matlab.
3.
Command Window
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
10
Window ini adalah window utama dari Matlab. Disini adalah tempat untuk menjalankan fungsi, mendeklarasikan variabel, menjalankan proses – proses, serta melihat isi variabel. 4.
Workspace Workspace berguna untuk menampilkan seluruh variabel – variable yang sedang aktif pada saat pemakaian Matlab. Apabila variable berupa data matriks berukuran besar maka user dapat melihat isi dari seluruh data dengan melakukan double click pada variable tersebut. Matlab secara otomatis akan menampilkan window “array editor” yang berisikan data pada setiap variable yang dipilih user[9]
Terdapat dua metode yang digunakan untuk menulis program dalam Matlab. Kedua metode itu adalah metode langsung dan tidak langsung. Untuk menulis program Matlab secara langsung maka program itu ditulis langsung di Command window
Gambar 2.5 Penulisan Program Matlab Secara Langsung[9] Untuk menulis program Matlab secara tidak langsung maka program itu dapat ditulis sebagai M-file
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
11
Gambar 2.6 M-file Matlab[9]
2.5 Sampling Proses sampling mengubah sinyal analog, x(t) menjadi nilai – nilai waktu diskrit, x[n] yang dinyatakan sebagai [ ]
( )|
(
)
(2.1)
Dengan Ts adalah periode sampling. Istilah lain yang sering digunakan dalam sampling adalah frekuensi sampling, yang tidak lain adalah kebalikan dari periode sampling, yaitu (2.2) Jika frekuensi tertinggi dari sinyal analog adalah f maks maka sinyal harus disampling dengan frekuensi sampling paling sedikit dua kali frekuensi tertinggi sinyal analog tersebut, atau (2.3) Prinsip tersebut disebut
sebagai kriteria Nyquist. Frekuensi f s = 2f maks disebut
sebagai Nyquist rate. Sebagai contoh, jika frekuensi tertinggi sinyal analog adalah 4KHz maka frekuensi sampling harus setidaknya 8KHz[11]. Jika dinyatakan dalam bentuk periode sampling, dapat dinyatakan sebagai :
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
12
(2.4)
2.6 Mikrokontroler ATmega 8 AVR Atmega 8 adalah mikrokontroler CMOS 8 bit berarsitektur RISC (Reduce Instruction Set Computer) yang memiliki 8K byte in-System Programmable Flash. Mikrokontroler dengan daya rendah ini mampu mengeksekusi instruksi dengan kecepatan maksimum 16MIPS pada frekuensi 16 MHz. Berikut ini beberapa fitur yang dimiliki ATmega8 antara lain : 1. Kinerja tinggi dan rendah penggunaan daya. 2. Advance RISC Architecture. 3. EEPROM sebesar 512Bytes. 4. 1Kbyte internal SRAM. 5. Timer/Counter sebanyak 3 buah[11].
2.6.1 Konfigurasi pin ATmega 8
Gambar 2.7 Konfigurasi ATMega8[11] ATmega 8 memiliki 28 pin, pin- pin berikut memiliki fungsi yang berbeda- beda, yaitu 1. VCC Digital supply voltage. 2. GND Ground. 3. Port B (PB7..PB0) XTAL1/XTAL2/TOSC1/TOSC2
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
13
Port B adalah 8 bit bit-directional I/O port dengan resistor pull-up internal. Sebagai input pin – pin yang terdapat pada port B yang secara eksternal diturunkan maka akan mengeluarkan arus jika pull-up resistor diaktifkan. Bergantung pada clock pemilihan seting fuse bit, PB 6 dapat digunakan sebagai input kristal (inverting oscillator amplifier) dan input ke rangkaian clock internal.PB7 dapat digunakan sebagai output kristal (inverting oscillator amplifier). PB6 dab PB7 dapat digunakan sebagai I/O atau jika menggunakan Asyncronous Timer/Counter 2 maka PB6 dan PB7 (TOSC2 dan TOSC1) digunakan untuk saluran input timer. 4. Port C (PC5..PC0) Port C adalah 7 bit bi-directional I/O dengan resistor pull-up internal. Jumlah pin hanya 7 buah, mulai dari pin C.0 sampai C.6. Sebagai pin input, pin port C secara eksternal diturunkan maka akan mengeluarkan arus jika pull-up resistor diaktifkan. 5. PC6/RESET Jika RSTDISBL Fuse diprogram, PC6 digunakan sebagai I/O pin. Karakeristik dari pin PC6 berbeda dari pin lainnya dalam port C. Jika RSTDISBL Fuse tidak diprogram, PC6 digunakan sebagai input reset. Dan jika tegangan yang masuk ke pin ini rendah dan pulsa yang ada lebih pendek dari pulsa minimum, maka akan menghasilkan kondisi reset. 6. Port D (PD7..PD0) Port D adalah 8 bit bi-directional I / O port dengan resistor pull-up internal (dipilih untuk setiap bit). Sebagai input, pin port D secara eksternal diturunkan maka akan mengeluarkan arus jika pull-up resistor diaktifkan. 7. AVcc AVcc adalah pin supply untuk ADC (Analog to Digital Converter). Pin ini harus dihubungkan secara terpisah ke Vcc, karena pin ini dihubungkan ketika ADC (Analog to Digital Converter) digunakan. 8. AREF AREF adalah pin referensi analog untuk ADC (Analog to Digital Converter)[11].
2.6.2 Timer ATMega8 ATMega 8 memiliki 3 buah timer, yaitu timer 2 timer 8-bit ( Timer / Counter 0 dan Timer / Counter 2) dan timer 16-bit ( Timer / Counter 1)[11]
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
14
2.6.2.1 Timer / Counter 1 Timer / Counter 1 digunakan untuk program yang akurat eksekusi waktu, pembangkit gelombang dan pengukuran waktu sinyal[11]. Fitur utama Timer / Counter 1 pada ATMega8 adalah : 1. 16-bit desain (yaitu, memungkinkan 16-bit PWM). 2. Dua unit output pembanding bebas. 3. Sebagai pembangkit sinyal PWM. 4. Sebagai frekuensi generator. 5. Terdapat 4 sumber interupsi bebas ( TOV1, OCF1A, OCF1B dan ICF1).
2.6.2.2 Register Timer / Counter 1 Timer / Counter 1 Control Register A – TCCR1A Tabel 2.1 Register TCCR1A[11]
Bit 7:6 – COM1A1:0: Compare Output Mode for Channel A Bit 5:4 – COM1B1:0: Compare Output Mode for Channel B COM1A1:0 dan COM1A1:0 mengontrol perilaku keluaran pin ( masing – masing dari OC1A dan OC1B). Tabel 2.2 Mode Normal dan CTC[11]
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
15
Tabel 2.3 Mode Fast PWM[11]
Tabel 2.4 Mode Phase Correct dan Frequency Correct PWM[11]
Bit 3 – FOC1A: Force Output Compare for Channel A Bit 2 – FOC1B: Force Output Compare for Channel B Bit FOC1A / FOC1B hanya aktif ketika WGM13:0. Ketika bit ini aktif maka akan menentukan pada mode non-PWM. Bit 1:0 – WGM11:0: Waveform Generation Mode Dikombinasikan dengan WGM13:12 bit ini mengendalikan perhitungan urutan counter, sumber untuk nilai maksimum (TOP) nilai counter dan jenis pembangkit gelombang yang dipakai[11]. Penggunaan bit untuk mode operasi ini dapat dilihat pada tabel 2.5
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
16
Tabel 2.5 Mode Operasi [11] WGM 13 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
WGM 12 WGM 11 (CTC1) (PWM11) 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1
WGM 10 (PWM 10)
Timer / Counter Mode of Operation
TOP
Update of OCR1x
TOV1 Flag Set On
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
Normal PWM, Phase Correct, 8-bit PWM, Phase Correct, 9-bit PWM, Phase Correct, 10-bit CTC Fast PWM, 8-bit Fast PWM, 9-bit Fast PWM, 10-bit PWM, Phase and Frequency Correct PWM, Phase and Frequency Correct PWM, Phase Correct PWM, Phase Correct CTC (Reserved ) Fast PWM Fast PWM
0xFFFF 0x00FF 0x01FF 0x03FF OCR1A 0x00FF 0x01FF 0x03FF ICR1 OCR1A ICR1 OCR1A ICR1 ICR1 OCR1A
Immediate TOP TOP TOP Immediate BOTTOM BOTTOM BOTTOM BOTTOM BOTTOM TOP TOP Immediate BOTTOM BOTTOM
MAX BOTTOM BOTTOM BOTTOM MAX TOP TOP TOP BOTTOM BOTTOM BOTTOM BOTTOM MAX TOP TOP
0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
Timer / Counter 1 Control Register B – TCCR1B 1. Bit 7 – ICNC1: Input Capture Noise Canceler Pengaturan bit ini mengaktifkan Input Capture Noise Canceler. Ketika Input Capture Noise Canceler diaktifkan, maka masukkan dari Input Capture Pin (ICP1) disaring. Fungsi saring memerlukan 4 sampel yang sama pada masukkan pin ICP1 untuk dapat mengubah output. 2. Bit 6 – ICES1: Input Capture Edge Select Bit ini
memilih pemicu atau trigger pada Input Capture Pin (ICE1) yang
digunakan untuk menangkap sebuah capture. Ketika ICE1 bit ditulis ke nol, maka tepi pada saat turun atau jatuh (negatif) yang digunakan sebagai pemicu (trigger) dan ketika ICE1 ditulis ke satu, maka tepi pada saat naik (positif) yang digunakan sebagai pemicu. 3. Bit 5 – Reserved Bit Bit ini tidak digunakkan. 4. Bit 4:3 – WGM13:12: Waveform Generation Mode Lihat deskripsi register TCCR1A pada tabel mode operasi. 5. Bit 2:0 – CS12:10: Clock Select
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
17
Tiga bit ini digunakan untuk memilih sumber clock yang digunakan oleh Timer / Counter[11]. Bit – bit uang digunakan untuk memilih sumber clock ditunjukkan pada tabel 2.6. Tabel 2.6 Sumber Clock Dengan Pemilihan bit[11]
2.6.2.3 Mode operasi Fast PWM Mode fast PWM digunakan untuk mengendalikan lama t on dan t off pada register pembanding OCR1A atau OCR1B sehingga menghasilkan besarnya perubahan duty cycle. Fast PWM ini berbeda dari pilihan PWM lain dengan operasi single – slope (satu arah), dengan menghitung counter dari BOTTOM ke TOP kemudian kembali ke BOTTOM. Besarnya BOTTOM bernilai 0x0000 dan besarnya TOP dapat ditentukan sesuai dengan resolusi fast PWM tetap yaitu 8 bit, 9bit dan 10 bit (dapat dilihat pada tabel 2.4) atau dapat ditentukan melalui register ICR1 atau OCR1A. Resolusi minimum yang dapat dilakukan adalah 2bit (ICR1 atau OCR1A diatur ke 0x0003) dan resolusi maksimum yang dapat dilakukan adalah 16 bit (ICR1 atau OCR1A diatur ke maksimum). Resolusi PWM dalam bentuk bit dapat dihitung dengan menggunakan persamaan berikut : (
) ( )
(2.5)
Diagram waktu untuk mode fast PWM ditunjukkan pada gambar 2.8. Pada gambar 2.8 menunjukkan ketika OCR1A atau ICR1 digunakan untuk mendefinisikan TOP pada mode fast PWM. Nilai TCNT1 dalam diagram waktu ditunjukkan sebagai histogram operasi single – slope (satu arah). Diagram termasuk gambar output non-inverving PWM dan inverting PWM. Tanda garis horizontal pendek pada TCNTn menunjukkan kondisi compare match antara OCR1x denganTCNT1. Bit register TOV1 interrupt flag akan bernilai 1 jika terjadi compare match.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
18
Gambar 2.8 Diagram Waktu Mode Fast PWM[11] Dalam mode fast PWM terdapat 2 jenis dilihat dari bentuk gelombangnya, yaitu non-inverting dan inverting. Fast PWM non-inverting dapat dikendalikan oleh lama waktu t on dan fast PWM inverting dapat dikendalikan oleh lama waktu t off. Frekuensi PWMuntuk output dapat dihitung dengan persamaan berikut : (
)
(2.6)
N merupakan prescale pembagi (1, 8, 64, 256, atau 1204)[11].
2.6.3 USART (Universal Synchronous and Asynchronous Serial Receiver and Transmitter) Universal synchronous and asynchronous serial receiver and transmitter (USART) adalah perangkat komunikasi serial yang sangat fleksibel. Fitur utama adalah 1. Operasi full duplex (Serial bebas menerima dan mengirim register). 2. Operasi synchronous dan asynchronous. 3. Baud Rate generator dengan resolusi tinggi. 4. Mendukung serial frame dengan 5, 6, 7, 8 atau 9 DataBit dan 1 atau 2 BitStop. 5. Mode komunikasi multi-prosesor[11]. USART pengirim data buffer register dan USART penerima data buffer register berbagi alamat yang sama dengan I/O disebut sebagai USART Data Register atau UDR. Transmit Data Buffer Register (TXB) akan menjadi tujuan untuk data ditulis ke UDR Register lokasi. Membaca UDR Register lokasi akan mengembalikan isi Receiver Data
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
19
Buffer Register (RXB). Transmitter buffer hanya dapat ditulis ketika UDRE flag pada UCSRA register diatur. Jika data ditulis ke UDR ketika UDRE flag tidak diatur, maka akan diabaikan oleh USART Transmitter. Ketika data ditulis ke Transmitter buffer dan Transmitter diaktifkan, Transmitter akan memuat data ke dalam Transmitter Shift Register ketika Shift Register kosong. Data dengan ukuran 5 bit, 6 bit dan 7 bit akan diabaikan oleh transmitter dan di atur dengan menambahkan logika 0 pada bit bagian atas hingga bernilai 8 bit[11]. Pengaturan mode synchronous dan asynchronous diatur pada UMSEL (USART Select Mode). Pengaturan bit pada UMSEL ini dapat dilihat pada tabel 2.7. Tabel 2.7 Pengaturan Bit UMSEL[11]
Paritas dan StopBit diatur melalui bit UPM1:0 (Parity Mode) dan USBS ( Stop Bit Select). Pengaturan bit Parity Mode dan Stop Bit Select dapat dilihat pada tabel 2.8 dan 2.9. Tabel 2.8 Pengaturan Bit Parity Mode[11]
Tabel 2.9 Pngaturan Bit Stop Bit Select[11]
Pengaturan ukuran karakter akan diatur melalui UCSZ2:0 (Character Size). Pengaturan bit ukuran karakter UCSZ dapat dilihat pada tabel 2.10.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
20
Tabel 2.10 Bit Pengaturan Ukuran Karakter[11]
2.7 FT232RL IC FT232RL merupakan IC USB ke serial Universal Asynchronous ReceiverTransmitter (UART) antarmuka. Beberapa karakteristik adalah sebagai berikut : 1. Chip tunggal USB untuk serial asynchronous serial data transfer interface. 2. Kecepatan transfer data dari 300 baud sampai 3 Mbaud (RS422, RS485, RS232) dalam level TTL. 3. Dukungan interface UART untuk 7 atau 8 bit data, 1 atau 2 bit stop dan odd / even / mark / space / no parity. 4. Single supply operation dengan 3.3 V ( menggunakan osilator eksternal) sampai 5.25 V ( menggunakan osilator internal). 5.
Konfigurasi CBUS I/O pin.
6. Rentang suhu operasi dari -40o C sampai 85o C[12].
Gambar 2.9 Konfigurasi IC FT232RL[12]
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
21
2.8 Pulse Width Modulation (PWM) Pulse Width Modulation (PWM) bekerja dengan cara membuat gelombang persegi yang memiliki perbandingan pulsa high terhadap pulsa low yang telah tertentu, biasanya skala 0 hingga 100%. Perbandingan pulsa high terhadap low ini dikenal dengan nama gelombang kotak atau duty cycle seperti pada gambar berikut
Gambar 2.10 Gelombang kotak[13] Dengan memperhatikan gambar gelombang kotak dengan ymaks dan ymin , maka nilai rata – rata dari gelombang kotak tersebut dapat dituliskan pada persamaan ̅
∫
()
(2.7)
Jika f(t) adalah gelombang kotak, maka nilai y maks dari 0 < t < D.T dan nilai y min dari D.T < t < T, dari pernyataan diatas di dapat : ̅
(∫
)
∫ (
̅
(
̅
(2.8)
)
(2.9) )
(2.10)
Bila y min = 0, maka persamaan menjadi ̅
(2.11)
Sehingga dari persamaan 2.11 maka nilai ̅ tergantung pada duty cycle. Duty cycle merupakan prosentase keadaan logika high (pulse) dalam satu periode sinyal. Satu siklus diawali oleh transisi low to high dari sinyal dan berakhir pada transisi berikutnya[13].
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
22
Gambar 2.11 Gambar Pulsa PWM[13]
2.9 Discrete Cosine Transform (DCT) Definisi DCT yang paling umum dengan panjang N adalah ( )
( )∑
( )
*
(
)
+
(2.12)
Untuk u = 0,1,2,…,N-1. Demikian pula, transformasi balik didefinisikan sebagai ( )
∑
( ) ( )
*
(
)
+
(2.13)
Untuk x = 0,1,2,…,N-1. Dalam kedua persamaan 1 dan 2 α(u) didefinisikan sebagai √ ( )
(2.14) {
√
Hal ini dijelaskan dari persamaan 2.1 bahwa untuk u = 0, √ ∑
(
)
( ).
Mengabaikan komponen f(x) dan α(u) dalama komponen persamaan 1. Plot dari ∑ 2.12.
*
(
)
+ untuk N = 8[14].
Berbagai nilai – nilai u ditunjukkan pada gambar
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
23
Gambar 2.12 Fungsi Dasar Kosinus Satu Dimensi[14]
2.10 Jarak Euclidean Jarak Euclidean digunakan untuk klasifikasi atau identifikasi suatu vektor ciri yang dimasukkan dengan ciri pada basis data yang ada. Jarak Euclidean ditentukan dengan rumus sebagai berikut : (⃑
)
‖ ⃑⃑⃑⃑⃑⃑⃑⃑⃑⃑⃑ ‖
√(
)
(
)
(
)
(2.15)
Dengan : (⃑
) = Jarak Euclidean ⃑ = Vektor ciri masukkan = Vektor ciri basis data n = Jumlah elemen vektor ciri
Pengenalan diperoleh dengan menghitung jarak terdekat, yaitu nilai jarak Euclidean yang paling kecil[15].
2.11 Windowing Windowing adalah proses mengalikan sinyal data dengan fungsi yang mereduksi pada kedua tepi sehingga memperhalus bentuk gelombang. Ada beberapa macam fungsi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
24
windowing yaitu Hanning, Blackman, Hamming, Bartlett-Hann, Gaussian, Flat Top[16]. Windowing diperlukan untuk mengurangi efek diskontinuitas dari potongan – potongan sinyal[17].
2.11.1 Jendela Hanning Jendela Hanning adalah suatu jendela yang dapat digunakan untuk keperluan windowing. Berikut merupakan persamaan dari jendela Hanning : ( )
(
(
))
(2.16)
Dengan : Panjang jendela = N-1 ; ketika N dimulai dari 0.
2.12Template Matching Pendekatan pengenalan pola
adalah salah satu yang paling sederhana dan paling
awal dengan didasarkan pada template matching. Matching adalah operasi generik dalam pengenalan pola yang digunakan untuk menentukan kesamaan antara dua entitas dari jenis yang sama. Dalam template matching, contoh atau bentuk asli dari pola yang menjadi pengenalan sudah tersedia. Pola yang menjadi pengenalan dicocokan terhadap template yang telah tersimpan. Kesamaan ukuran dapat di optimalkan berdasarkan template tersedia[22].
2.13 Transistor Sebagai Saklar Pada keadaan aktif, transistor dapat berfungsi sebagai penguat arus dan pada keadaan saturasi dan cut-off, transistor dapat berfungsi sebagai saklar [20]. Ketika transistor berada dalam keadaan saturasi, transistor berfungsi sebagai saklar yang tertutup. Pada saat transistor dalam keadaan cut-off, transistor berfungsi sebagai saklar terbuka. Rangkaian transistor sebagai saklar dapat dilihat pada Gambar 2.13. Besarnya arus pada basis dapat diperoleh dengan perhitungan : (2.17) Beta DC (β) dalam sebuah transistor merupakan rasio arus kolektor atau basis
dangan arus
diperoleh dengan persamaan : (2.18)
Sehingga dapat diperoleh arus basis minimum atau
dengan persamaan berikut :
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
25
(2.19) Arus IC saturasi (ICsat ) adalah arus kolektor ketika nilai VCE = 0, sehingga nilai ICsat dapat diperoleh dengan persamaan: (2.20)
Gambar 2.13 Rangkaian Transistor Sebagai Saklar[20]
2.14 Brushless Motor DC (BLDC) Penukaran arus listrik bergantung pada umpan balik pada posisi rotor untuk memutuskan kapan untuk memberikan energi switch yang sesuai untuk menghasilkan torsi terbesar.
Cara termudah dengan secara akurat mendeteksi posisi adalah dengan
menggunakan sensor posisi. Perangkat sensor yang paling populer adalah Hall sensor. Kebanyakan BLDC motor memiliki Hall sensor yang tertanam dalam stator pada bagian motor yang tidak bergerak. Gambar 2.14 menunjukan urutan pergantian fase tunggal sirkuit pengendali BLDB motor. Magnet permanen dari rotor dan terletak di dalam stator. Posisi Hall sensor (“a”) dipasang keluar stator, yang menginduksi tegangan output sebanding dengan intensitas magnetik. (mengasumsikan sensor berlogika tinggi ketika rotor kutub utara lewat dan berlogika rendah ketika rotor kutub selatan lewat). SW1 dan SW4 menyala saat output Hall sensor berlogika tinggi seperti yang ditunjukan gambar 2.14 (a) dan (b). Pada tahap ini, arus dinamo melalui kumparan stator dari OUT1 ke OUT2 dan menginduksi alternator kutub elektromagnetik stator yang sesuai. Gaya magnet yang dihasilkan oleh medan magnet rotor
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
26
dan medan elektromagnetik stator menyebabkan rotor berputar. Setelah sinyal rotor mencapat 180o , tegangan output Hall sensor terbalik terbalik karena kedekatannya dengan kutub selatan. SW2 dan SW3 kemudian di hidupkan denagn arus pembalikan dari OUT2 dan OUT1. Seperti yang ditunjukan pada gambar 11 (c) dan (d) kutub magnet stator berlawanan menginduksi rotor untuk terus berputar kearah yang sama.
Gambar 2.14 Urutan Putaran Brushless Motor DC
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB III PERANCANGAN 3.1 Perancangan Sistem Perancangan sistem pengenalan ucapan untuk pengaturan kipas DC ini pada dasarnya memiliki diagram blok yang digambarkan pada gambar 3.1.
Gambar 3.1. Gambaran Umum Sistem Sistem pengenalan ucapan untuk pengaturan kipas DC dibuat untuk mengenali ucapan untuk menggerakkan kipas DC. Sistem ini memiliki 2 subsistem, yaitu bagian pengenalan ucapan dan bagian pengaturan kipas DC. Bagian pengenalan ucapan terdiri dari ucapan yang ditangkap oleh mikrofon. Ucapan kemudian akan direkam oleh sound card dalam laptop. Pengenalan ucapan akan diproses oleh Matlab. Sedangkan bagian pengaturan kipas DC terdiri dari mikrokontroler untuk menerima input data pengenalan ucapan dan mengolah data tersebut untuk mengatur kecepatan kipas DC sesuai dengan input yang diterima. Penghubung antara bagian pengenalan ucapan dan bagian pengaturan kipas DC dengan komunikasi secara serial menggunakan modul FT232.
27
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
28
1. Ucapan Ucapan merupakan input untuk pengenalan ucapan pengaturan kipas DC. Ucapan hanya menggunakan hanya satu user yaitu ucapan peneliti itu sendiri. Ucapan yang digunakan untuk mengatur kipas DC adalah hidup, mati, cepat dan lambat. 2. Mikrofon Mikrofon merupakan piranti untuk memasukkan input ucapan.
Microfon
yang digunakan adalah Mini Multimedia Microphone Genius MIC-01A dapat dilihat spesifikasi microfon pada tabel 3.1. Tabel 3.1. Spesifikasi Mikrofon Genius MIC-01A[5] Frequency Response
100Hz ~ 10KHz
Sensitivity
-62dB
Output Impedance
2.2Kohm
Cable length
3.0 meters
Audio Output Connector
3.5mm Stereo Audio Plug
Microfon genus ini memiliki jarak terhadap sumber suara ±10 cm. Jarak ini didapat dari pengujian dari berbagai jarak. Jika jarak melebihi 10 cm maka hasil pada percobaan memperlihatkan adanya noise yang ditangkap oleh microfon 3. Sound Card Sound Card berfungsi mengubah sinyal analog yang berasal dari ucapan yang ditangkap oleh microfon menjadi sinyal digital sehingga dapat diproses oleh Matlab. Sound Card yang digunakan adalah sound card yang sudah ternaman pada motherboard (onboard sound card). 4. Matlab Proses pengolahan suara menggunakan software Matlab. Program yang dibuat
Software Matlab adalah program pembentukan database, program
pengenalan ucapan dan program komunikasi dan pengiriman data. 5. FT232 Modul Modul FT232 berfungsi untuk komunikasi data secara serial. Modul ini mengirimkan data pengenalan ucapan dari laptop yang diolah dalam software Matlab ke mikrokontroler ATmega8.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
29
6. Mikrokontroler ATmega8 Mikrokontroler
ATmega8
digunakan
untuk
menerima
data
serial
pengolahan pengenalan ucapan dan mengolah data serial untuk mengatur kecepatan kipas DC dengan mengatur PWM pada mikrokontroler. 7. Transistor sebagai saklar Transistor sebagai saklar berguna untuk menghidupkan dan mematikan kipas DC dan mengendalikan kecepatan kipas DC dengan menyaklar output PWM pada mikrokontroler. 8. Kipas DC Kipas DC merupakan akuator dari sistem pengenalan ucapan untuk pengaturan kipas DC. Pengaturan kipas DC ini berputar sesuai kecepatannya dengan input pengucapan yang diberikan oleh user. Kipas DC yang diunakan dapat dilihat pada tabel 3.2. Tabel 3.2 Spesifikasi Kipas DC DC Voltage
12 Volt
DC Current
0.2 Ampere
Dimensi
120 x 120 x 25 mm
3.2 Perancangan Pengenalan Ucapan Proses pengenalan ucapan terdiri dari dua bagian, bagian perancangan software dan hardware. Pada perancangan bagian software, proses pengenalan ucapan hampir sama dengan proses pembentukan database, perbedaannya terletak pada proses pengenalan ucapan membandingkan dengan database yang telah dibentuk sebelumnya pada prose pembentukkan database. Proses pembandingan antara pengenalan ucapan dengan database akan digunakan untuk penentuan pengenalan keluaran ucapan yang akan diolah kemudian dalam perancangan hardware. Perancangan software ini meliputi proses sampling, preprocessing, ekstraksi ciri dan pembandingan antara pengenalan dengan ucapan. Sedangkan perancangan hardware meliputi proses pengiriman data secara serial dengan modul serial FT232, mikrokontroler sebagai pengolahan data yang diterima untuk mengatur kecepatan kipas DC dan driver yang berfungsi untuk menggerakkan akuator berupa kipas DC. Perancangan software dan hardware dapat dilihat pada gambar 3.2.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
30
Gambar 3.2. Diagram Blok Proses Pengenalan Ucapan
3.2.1 Perancangan Software 3.2.1.1 Proses pengenalan ucapan Proses pengenalan ucapan merupakan ucapan manusia sebagai input pengenalan yang direkam akan dikenali ucapannya. Proses ini terdiri dari sampling, pre-processing, ekstraksi ciri, database, fungsi jarak (pembanding), penentuan keluaran dan pengiriman data secara serial. Proses pengenalan ucapan dapat dilihat pada gambar 3.3.
Gambar 3.3 Flowchart Proses Pengenalan Ucapan
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
31
1. Sampling Proses
sampling
merupakan
proses
pencuplikan
ucapan
manusia.
Pencuplikan ucapan manusia dipengaruhi oleh frekuensi sampling dan banyaknya waktu pencuplikan. Ucapan manusia memiliki rentang frekuensi 250 – 3000 Herzt[18]. Frekuensi ucapan manusia tertinggi 3000 Hertz, agar dapat tercuplik dengan baik maka, frekuensi sampling ucapan sebesar 6000 Hertz. Frekuensi sampling dapat dirumuskan dengan aturan Nyquist sebagai berikut : (3.1) (3.2) Banyaknya waktu pencuplikan dapa proses sampling ditentukan sebesar 1.5 detik. Rentang waktu ini digunakan untuk lamanya proses perekaman. Dengan waktu tersebut cukup untuk melakukan proses perekaman, sehingga data sinyal ucapan yang disampling tidak terpotong.
Proses pencuplikan ucapan dapat dilihat
pada gambar 3.4.
Gambar 3.4 Flowchart Proses Pencuplikan Ucapan Panjang pencuplikan merupakan banyaknya jumlah data sinyal ucapan yang tercuplik selama rentang waktu pencuplikan . Panjang pencuplikan ini diperoleh sebagai berikut:
(3.3)
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
32 (3.4) (3.5)
2. Pre-processing Pre-processing merupakan proses pengkondisi sinyal data ucapan pengenalan maupun database. Proses pre-processing ini meliputi proses normalisasi, pemotongan sinyal, windowing dan zero padding. Proses preprocessing ini dapat dilihat pada gambar 3.5.
Gambar 3.5 Flowchart Proses Pre-processing a. Normalisasi Proses normalisasi berfungsi untuk menyetarakan besar amplitudo data ucapan pengenalan ucapan maupun database, sehingga efek dari kuat lemahnya suara pengucapan tidak terlalu mempengaruhi pada proses pengenalan. Besar amplitudo maksimum ini bernilai 1 atau -1 dan amlipitudo yang lain menyesuaikan skala tersebut. Proses normalisasi ditunjukkan pada gambar 3.6.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
33
Gambar 3.6 Flowchart Proses Normalisasi Pada proses normalisasi hasil pencuplikan ucapan akan akan disamakan nilai amplitudo dengan skala maksimum amplitudo maksimum 1 atau -1 menggunakan rumus normalisasi sebagai berikut : (
(3.6)
)
b. Pemotongan sinyal Proses pemotongan sinyal ini untuk menghilangkan atau memotong sinyal yang bukan merupakan data ucapan. Tujuan dari proses ini untuk mendapatkan data ucapan yang diperlukan. Proses pemotongan sinyal memiliki variabel batas potong yang bertujuan untuk membatasi data sinyal ucapan yang akan dipotong. Pemotongan sinyal ini terdiri dari dua tahap, yaitu
pemotongan
sinyal
sebelah
kiri dan
pemotongan sinyal ditujukkan pada gambar 3.7.
sebelah
kanan.
Proses
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
34
Gambar 3.7 Flowchart Proses Pemotongan Sinyal Hasil normalisasi akan masuk dalam proses pemotongan sinyal. Proses pertama diakukan adalah memotong sinyal pada sebelah kiri. Setelah memotong sinyal pada sebelah kiri, proses berikutnya memotong sinyal pada sebelah kanan. Kedua proses pemotongan sinyal ini ditentukan oleh variabel batas potong dengan batas potong 0,1; 0,2; 0,3 dan 0,4. c. Windowing Proses windowing
merupakan proses perkalian antar elemen.
Windowing ini berfungsi untuk mengurangi efek diskontiunitas dari data sinyal dari hasil perekaman. Dalam perancangan ini jenis windowing yang digunakan adalah Hanning window. Proses windowing ditunjukkan pada gambar 3.8.
Gambar 3.8 Flowchart Proses Windowing
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
35
d. Zero padding Zero padding adalah proses yang digunakan untuk menyamakan panjang data sinyal setelah proses pemotongan sinyal. Pada proses pemotongan sinyal, banyak terjadi perbedaan panjang sinyal data, sehingga proses zero padding menambah jumlah data sinyal dengan nilai 0 sesuai dengan panjang yang ditentukan. Panjang ukuran sinyal ditentukan oleh bilangan 2n . Proses zero padding ditunjukkan pada gambar 3.9.
Gambar 3.9 Flowchart Proses Zero Padding Proses zero padding merupakan proses akhir dari proses preprocessing. Jika panjang sinyal data diperoleh 1641 data, maka panjang ukuran sinyal data untuk sinyal data tersebut adalah 2 11 atau 2048 data. Setelah data ke 1641 akan bernilai 0 sampai data ke 2048. 3. Ekstraksi ciri Proses ekstraksi ciri terdiri dari proses downsampling dan transformasi. Proses downsampling bertujuan untuk mencuplik data sinyal ucapan menjadi lebih sedikit. Banyaknya data yang dicuplik dalam proses ekstraksi ciri ditentukan oleh nilai faktor downsampling. Variabel nilai faktor downsampling ditentukan 1 , 2 dan 4. Data sinyal ucapan pertama sampai dengan data sinyal terakhir akan dicuplik sebesar nilai faktor downsampling yang telah ditetukan. Setelah data sinyal ucapan tercuplik dalam proses downsampling, proses selanjutnya adalah proses transformas, transformasi yang digunakan adalah transformasi DCT ( Discrete Cosine transform). Flowchart ekstraksi ciri ditunjukkan pada gambar 3.10.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
36
Gambar 3.10 Flowchart Proses Ekstraksi Ciri 4. Pembanding Proses pembanding ini untuk menghitung jarak data sinyal ucapan pada pengenalan dan database ucapan. Proses pembanding ini menggunakan perhitungan jarak dengan fungsi jarak Euclidean. Proses pembanding ini digunakan sebagai penentu hasil pengenalan ucapan. Hasil keluaran ini adalah nilai minimum dari proses pembanding pada data pengenalan dan database. Proses pembanding ini ditunjukan pada gambar 3.11.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
37
Gambar 3.11 Flowchart Proses Pembandingan 5. Penentuan keluaran Pada proses penentuan keluaran ini hasil pengenalan ucapan ditentukan oleh jarak yang paling minimum yang diperoleh dari nilai jarak minimum dalam proses pembandingan. Hasil jarak minimum pengenalan ucapan akan ditampilkan dalam bentuk teks. Proses penentuan keluaran ditunjukkan pada gambar 3.12.
Gambar 3.12 Flowchart Proses Penentuan Keluaran
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
38
6. Pengiriman data secara serial Proses pengiriman data secara serial ini merupakan proses terakhir pada software Matlab. Proses ini berfungsi untuk mengirimkan hasil keluaran ditentukan pada proses penentuan keluaran. Data berupa teks yang ditampilkan keluaran akan di coding dalam bentuk karakter angka. Jika keluaran teks menampilkan ucapan berikut : a. Hidup maka akan di coding dengan karakter “1” b. Mati maka akan di coding dengan karakter “2” c. Cepat maka akan di coding dengan karakter “3” d. Lambat maka akan di coding dengan karakter “4” Proses pengiriman data secara serial pada matlab ditunjukkan pada gambar 3.13.
Gamabar 3.13 Flowchart Komunikasi Serial Pada Matlab
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
39
3.2.1.2 Database Ucapan Sebagai pengenalan ucapan untuk pengaturan kecepatan kipas DC dibutuhkan database ucapan yang digunakan sebagai pembanding dengan proses pengenalan ucapan. Proses pengambilan sampel yang dibutuhkan sebagai database merupakan ucapan manusia dengan ucapan yang telah ditentukan, yaitu ucapan hidup, mati, cepat dan lambat. Proses pengambilan database ucapan dapat dilihat pada gambar 3.14.
Gambar 3.14 Flowchart Pembentukan Database Ucapan Proses pembentukan database ucapan melalui memberikan masukan ucapan manusia, sampling, pre-processing, ekstraksi ciri dan keluaran database ucapan. Dalam penelitian ini, terdapat 40 database ucapan, yang terdiri dari masing- masing 10 database hidup, mati, cepat dan lambat. Variasi masukkan nilai variabel batas potong berjumlah 4 dan downsampling berjumlah 3. Variasi variabel yang dilakukan akan diperoleh 12 set dari database.
3.2.2 Perancangan Hardware 3.2.2.1 Modul Serial FT232 Modul serial FT232 ini menghubungkan agar dapat melakukan komunikasi serial antara
laptop
dengan
mikrokontroler
ATMega8.
Komunikasi serial ini digunakan
mengirim data pengenalan ucapan pada laptop. Komunikasi serial ini menggunakan komunikasi satu arah dari laptop menuju mikrokontoler ATMega8. Laptop terhubung
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
40
modul serial FT232 dengan menggunakan kabel (Lihat gambar 3.1) dan pin modul serial FT232 akan terhubung dengan pin komunikasi serial pada mikrokontroler. Pin Vcc dan pin ground pada modul serial FT232 akan terhubung ke pin Vcc dan pin ground pada mikrokontroler, yang akan digunakan sebagai supply pada mikrokontroler ATMega8. Pin Tx pada modul serial FT232 terhubung dengan pin Rx pada mikrokontroler dan pin Rx pada modul serial FT232 terhubung dengan pin Tx pada mikrokontroler.
3.2.2.2 Minimum Sistem ATMega 8 Rangkaian minimum sistem memiliki fungsi sebagai menerima data serial dan mengatur I/O yang digunakan sebagai pengolahan data. Hasil pada proses penganalan di kirim dengan menggunakan komunikasi serial modul serial FT232. Data yang telah dikirim melalui komunikasi serial akan diproses untuk mengatur kecepatan putar kipas DC. Gambar rangkaian minimum sistem ATMega8 ditunjukkan pada gambar 3.15.
Gambar 3.15 Rangkaian Minimum Sistem ATMega8 Perancangan
minimum
site
mini menggunakan
rangkaian
osilator
eksternal.
Rangkaian osilator eksternal menggunakan Kristal 12 MHz dan kapasitor 22 pF pada datasheet yang terhubung dengan dengan pin XTAL1 dan XTAL2 pada mikrokontroler. Rangkaian osilator ditunjukkan pada gambar 3.16.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
41
Gambar 3.16 Rangkaian Osilator Eksternal Rangkaian reset juga dibutuhkan dalam rangkaian minimum sistem. Rangkaian reset berfungsi untuk mengulang kembali ke awal proses kerja mikrokontroler. Rangkaian reset ini terhubung dengan pin reset pada mikrokontroler. Pin reset mikrokontroler ATMega8 akan aktif jika diberi input logika rendah. Jika push button ditekan maka akan memberikan logika aktif rendah sehingga, mikrokontroler akan mengulang proses kerja program dari awal. Rangkaian reset ditunjukkan pada gambar 3.17.
Gambar 3.17 Rangkaian Reset
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
42
3.2.2.3 Motor Driver Motor driver digunakan untuk menggerakkan dan mengatur kecepatan kipas DC. Motor driver menggunakan rangkaian transistor yang difungsikan sebagai saklar yang mengatur kecepatan kipas DC berdasarkan output PWM mikrokontroler pada pin PB1. Pin PB1 ini akan memberikan teganagn PWM pada transistor. Tegangan PWM digunakan untuk pensaklaran pada transistor. Rangkaian motor driver ini ditunjukkan pada gambar 3.18.
Gambar 3.18 Rangkaian Motor Driver Pada perancangan perangkat keras rangkaian motor driver sumber tegangan Kipas DC 12 Volt yang digunakan untuk memberikan tegangan supply pada beban kipas DC.Kondisi transistor switching ini dibuat menjadi kondisi cut off dan saturasi. Diketahui ICsat = 200 mA (didapat dari arus kipas DC) dan nilai β = 40 maka resistansi pada kaki basis sebagai berikut : (3.7) Keluaran dari nilai PWM dari mikrokontroler maksimal 5 Volt sehingga adalah sebagai berikut :
maksimum
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
43 (3.8)
Nilai
adalah 940Ω, tetapi nilai ini tidak terdapat di pasaran sehingga ditentukan nilai
yang mendekati nilai dari perhitungan dan terdapat dipasaran sehingga
. Dioda
yang digunakan sebagai rangkaian freewheeling.
3.2.2.4 Kipas DC Kipas DC merupakan akuator dari sistem
pengenalan ucapan untuk pengaturan
kecepatan kipas DC. Kipas DC ini memiliki dua port, yaitu port Vcc dan ground. Port Vcc kipas DC terhubung ke tegangan supply 12 Volt dan port ground kipas DC terhubung ke kaki kolektor pada transistor. Variasi putaran kecepatan kipas DC diatur dengan variasi nilai PWM yang di berikan pada mikrokontroler.
3.2.2.5 Perancangan software pada mikrokontroler Perancangan software pada mikrokontroler merupakan program untuk mengatur kecepatan putar kipas DC. Program mikrokontroler ini akan menerima data serial dari hasil pengenalan pada laptop dan mengolah data yang dikirimkan tersebut sampai mengatur kecepatan putar kipas DC.
Flowchart software pada mikrokontroler ditunjukkan pada
gambar 3.19. Flowchart software melalui proses inisialisasi USART mikrokontroler dan inisialisasi variabel A dan B sebagai pengaturan putaran kecepatan kipas DC. Keterangan variabel A dan B dalam pengaturan kipas DC ditunjukkan pada tabel 3.3. Pada pengukuran nilai Pulse Width Modulation (PWM) sebagai tingkat kecepatan putar kipas DC dapat dilihat pada tabel 3.4 dan penentuan nilai Pulse Width Modulation (PWM) sebagai tingkat kecepatan putar kipas DC dapat dilihat pada tabel 3.5.Kondisi keadaan tingkat kecepatan putar kipas DC ditunjukkan pada tabel 3.3. Tabel kondisi keadaan ini menunjukkan kondisi awal tingkat kecepatan putar kipas DC dan
kondisi
selanjutnya tingkat kecepatan putar kipas DC yang diinginkan oleh user. Data yang diterima mikrokontroler berupa data ASCII dari karakter angka dikirim dari proses pengenalan.. Data ASCII yang dikirim berupa karakter 1, 2, 3 dan 4 akan diterima mikrokontroler berupa data 31h, 32h, 33h dan 34h.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
44
Tabel 3.3 Kondisi Keadaan Tingkat Kecepatan Putar Kipas DC NO 1 2 3 4 5
Keadaan sekarang Level 0 Level 1 Level 2 Level 3 Level 4
Mati Level 0 Level 0 Level 0 Level 0 Level 0
Input Hidup Cepat Level 4 Level 1 Level 4 Level 2 Level 4 Level 3 Level 4 Level 4 Level 4 Level 4
Lambat Level 0 Level 0 Level 1 Level 2 Level 3
Tabel 3.4 Pengukuran Nilai Pulse Width Modulation (PWM) Sebagai Tingkat Kecepatan Putar Kipas DC NO 1 2 3 4 5 6 7 8
Kecepatan (RPM) 0 126,9 223,6 348,5 456,1 531,5 634 755
Tegangan (V) 0 1,154 1,681 2,04 2,675 3,574 4,54 4,98
Duty Cycle (%) 0 23,08 33,62 40,8 53,5 71,48 90,8 99,6
PWM 0 236,108 343,932 417,384 547,305 731,24 928,884 1018,908
Tabel 3.5 Penentuan Nilai Pulse Width Modulation (PWM) Sebagai Tingkat Kecepatan Putar Kipas DC NO 1 2 3 4 5
Duty Cycle (%) 0 23,08 40,8 71,45 99,6
PWM 0 236 417 731 1019
Kecepatan (RPM) 0 126,9 384,5 531 755
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
45
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
46
3.2.3 Desain Alat Gambar bentuk desain alat ditunjukkan pada gambar tiga gambar, yaitu gambar tampak depan, tampak samping dan tampak belakang. Tampak depan ditunjukkan pada gambar 3.20 sedangkan gambar tampak samping dan tampak belakang ditunjukkan pada gambar 3.21 dan gambar 3.22.
Gambar 3.20 Tampilan Desain Alat Tampak Depan
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Gambar 3.21 Tampilan Desain Alat Tampak Samping
Gambar 3.22 Tampilan Desain Alat Tampak Belakang
47
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
48
3.3 Perancangan Tampilan GUI Matlab Tampilan GUI dibuat agar pengguna dapat dengan mudah mengoperasikan program pengenalan ucapan untuk pengaturan kipas DC ini. Program tampilan GUI Matlab ini menampilkan plot hasil perekaman, plot hasil pre-processing, plot hasil ekstraksi ciri DCT dan teks ucapan yang dikenali. Program ini memberikan variabel bebas batas potong dan downsampling yang dapat dimasukkan oleh user. Tampilan program GUI Matlab yang yang digunakan dalam penelitian ini ditunjukkan pada gambar 3.23.
Gambar 3.23 Tampilan GUI Matlab Pengenalan Ucapan Untuk Pengaturan Kipas DC Beberapa keterangan dari tampilan GUI Matlab pengenalan ucapan untuk pengaturan kipas DC ditunjukkan pada tabel 3.6.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
49
Tabel 3.6 Keterangan Tampilan GUI Matlab Nama Bagian
Keterangan
Tombol Rekam
Tombol ini digunakan untuk mengambil ucapan yang ingin direkam oleh user.
data
Tombol Selesai
Tombol selesai digunakan untuk mengakhiri dan keluar dari program aplikasi pengenalan ucapan.
Ucapan yang dikenali
Digunakan untuk menampilkan data ucapan yang dikenali setelah proses pengenalan dalam bentuk teks.
Data yang dikirim
Digunakan Untuk menamplkan data yang kana dikirim untuk mikrokontroler setelah pengenalan dalam bentuk teks.
Variabel batas potong
Digunakan untuk memilih nilai batas potong dalam proses pengenalan ucapan. Variabel batas potong yang digunakan adalah 0,1; 0,2; 0,3 dan 0,4.
Variabel Downsampling
Digunakan untuk memilih nilai downsampling dalam proses pengenalan ucapan. Variabel downsampling yang digunakan adalah 1, 2 dan 4.
Plot hasil perekaman
Digunakan untuk menampilkan grafik data hasil perekaman.
Plot hasil pre-processing
Digunakan untuk menampilkan grafik data hasil pre-processing.
Plot hasil Ekstraksi DCT
Digunakan untuk menampilkan grafik data hasil ekstraksi DCT.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB IV HASIL DAN PEMBAHASAN 4.1 Antarmuka Program Pengenalan Ucapan Untuk Pengaturan Kipas DC Secara Real Time Menggunakan Ekstraksi Ciri Discrete Cosine Transform dan Jarak Euclidean Perancangan program menggunakan software Matlab 7.10.0. Pada pengujian menggunkan laptop dengan spesifikasi : Prosesor
: Intel® Core™ i5-2410M CPU @2.30GHz
RAM
: 4.00 GB
Tipe sistem
: sistem operasi 32bit
Dalam perancangan antarmuka program pengenalan ucapan untuk pengaturan kipas DC secara real time ini terdapat 2 program buah antarmuka yaitu : 1. program antarmuka “PENGENALAN UCAPAN UNTUK PENGATURAN KIPAS DC”, dalam tampilan antarmuka program ini terdapat 3 push button, 2 pop up menu, 3 axes, 2 edit text, 4 panel dan 4 static text. Sebelum memulai progam antarmuka “PENGENALAN UCAPAN UNTUK PENGATURAN KIPAS DC” pengguna prorgam antarmuka ini harus memilih variasi nilai batas potong dan downsampling. Setelah memilih variasi nilai batas potong dan downsamiling pengguna
dapat
menekan
tombol
“Rekam”
untuk
memulai
program
“PENGENALAN UCAPAN UNTUK PENGATURAN KIPAS DC”. Variasi nilai batas potong dan downsampling terdapat pada pop up menu . Gambar plot sinyal hasil perekaman, hasil pre-processing dan hasil ekstraksi ciri tampil dalam axes 1, axes 2 dan axes 3. Hasil pengenalan ucapan dan data yang dikirim untuk mikrokontroler sebagai pengaturan kecepatan putar kipas DC tampil dalam edit text 1 an edit text 2. Static text untuk menampilkan judul “PENGENALAN UCAPAN UNTUK PENGATURAN KIPAS DC”. Static text yang lain dan panel sebagai keterangan program antarmuka. Push button “rekam” digunakan untuk memulai proses pengenalan dalam program antarmuka, membersihkan mengakhiri
push
layar program antarmuka dan push program
antarmuka
“PENGENALAN
PENGATURAN KIPAS DC”.
50
button button
“ulang” untuk “selesai” untuk
UCAPAN
UNTUK
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Proses
untuk
menjalankan program antarmuka “PENGENALAN
51
UCAPAN
UNTUK PENGATURAN KIPAS DC” dengan melakukan langkah – langkah sebagai berikut : A. Mengkilik dua kali ikon Matlab pada layar desktop dengan gambar ikon seperti Gambar 4.1
Gambar 4.1 Ikon Matlab 7.10.0 B. Setelah melakukan langkah A, akan tampil tampilan utama software Matlab seperti Gambar 4.2
Gambar 4.2 Tampilan Matlab C. Sebelum membuka tampilan program, perlu memastikan terlebih dahulu pada Current Directory sudah sesuai dengan dengan tempat penyimpanan program yang telah dirancang. D. Mengetik
perintah
pengenalan2
pada
Command
Window
untuk
memunculkan tampilan antarmuka program pengenalan ucapan. Setelah itu akan muncul akan muncul tampilan program pengenalan ucapan seperti Gambar 4.3
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
52
Gambar 4.3 Tampilan Pengenalan Ucapan Untuk Pengaturan Kipas DC E. Pengguna memilih variasi nilai batas potong dan downsampling yang akan digunakan sebelum melakukan proses pengenalan ucapan. Variasi batas potong yang disediakan adalah 0,1; 0,2; 0,3 dan 0,4. Nilai downsampling yang disediakan adalah 1, 2 dan 4. F. Setelah pengguna memilih variasi nilai batas potong dan downsampling, pengguna dapat melakukan proses pengenalan ucapan dengan menekan tombol “Rekam”. G. Hasil pengenalan ucapan akan tampil pada panel “Ucapan Yang Dikenali” pada edit text dan
data yang dikirim untuk mikrokontroler sebagai
pengaturan
kipas
kecepatan
DC
tampil pada
panel
“Data
Yang
Dikirim”pada edit text. Pengguna dapat melihat gambar sinyal perekaman tampil pada “Plot Hasil Rekaman”, gambar sinyal hasil pre-processing tampil pada “Plot Hasil Pre-processing” dan gambar hasil ekstraksi tampil pada “Plot Hasil DCT”. H. Tombol “Ulang” digunakan untuk mengulang dan membersihkan tampilan antarmuka seperti tampilan awal. I. Pengguna mengakhiri program antarmuka dan menutup jendela antarmuka dengan tombol “Selesai”.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
53
4.1.1 Pop up menu Program antarmuka “PENGENALAN UCAPAN UNTUK PENGATURAN KIPAS DC” dapat memulai proses pengenalan setelah menentukan variasi nilai batas potong dan downsampling oleh pengguna. Nilai variasi pada pop up menu 1 adalah nilai batas potong dengan tampilan variasi nilai 0,1; 0,2; 0,3 dan 0,4. Nilai variasi pada pop up menu 2 adalah nilai downsampling dengan tampilan variasi nilai 1, 2 dan 4. Pada variasi nilai batas potong ditunjukkan pada program sebagai berikut : Function popupmenu1_Callback(hObject,eventdata,handles) indeks=get(handles.popupmenu2,'Value'); switch indeks case 1 bpot=0.1; case 2 bpot=0.2; case 3 bpot=0.3; case 4 bpot=0.4; end handles.pot=bpot; guidata(hObject,handles); Pada program tampilan variasi batas potong, nilai batas potong di inisialisasi dengan nama “bpot” dengan membagi 4 variasi nilai batas potong. Inisialisasi “bpot” diubah menjadi “handles.pot”. Inisialisasi ini bertujuan untuk nilai batas potong dapat dikenali secara global sehingga nilai batas potong dapat digunakan dalam proses berikutnya dalam program pengenalan. Pada variasi nilai downsampling ditunjukkan pada program sebagai berikut : function popupmenu2_Callback(hObject,eventdata,handles) indeks=get(handles.popupmenu2,'Value'); switch indeks case 1 dsamp=1; case 2 dsamp=2; case 3 dsamp=4; end handles.sampling=dsamp; guidata(hObject,handles);
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
54
Pada program tampilan variasi nilai downsampling hampir sama dengan program tampilan variasi nilai batas potong. Kedua program ini hampir sama karena keduanya memiliki fungsi yang sama yaitu untuk memilih nilai yang dingginkan. Nilai downsampling di inisialisasi dengan nama “dsamp” yang bertujuan untuk memilih
nilai
downsampling.
Setelah
itu
inisialisasi
diubah
menjadi
“handles.sampling” agar nilai downsampling dapat dikenali secara global dan dapat gigunakan dalam proses program berikutnya. Proses pemanggilan nilai batas potong dan downsampling
yang telah dilakukan inisialisasi dengan bahasa program
“callback”. 4.1.2 Push button “Rekam” Pada
program
antarmuka
“PENGENALAN
UCAPAN
UNTUK
PENGATURAN KIPAS DC”, push button “Rekam” digunakan ketika pengguna mulai menjalankan program pengenalan ucapan. Push button “Rekam” memulai pengenalan ucapan dengan menjalankan beberapa subproses. Subproses dalam push button “Rekam” terdiri dari proses perekaman ucapan, proses pre-processing, proses ekstraksi ciri discrete cosine transform (DCT), proses jarak Euclidean, pementuan keluaran dan pengiriman data serial untuk mikrokontroler sebagai pengaturan kecepatan kipas DC. Program untuk perekaman ucapan ditunjukkan sebagai berikut : function pushbutton1_Callback(hObject, eventdata, handles) %Rekam sample_length=1; sample_freq=6000; sample_time=(sample_length*sample_freq); x=wavrecord(sample_time, sample_freq); axes(handles.axes1) plot(x); xlabel('data tercuplik') ylabel('amplitudo') grid on Pada perekaman ucapan menggunakan frekuensi sampling 6000 Hz dan durasi perekaman 1 detik. Pada program inisialisasi sample_time berfungsi untuk menyediakan ruang untuk menyimpan data perekaman ucapan sebanyak 6000 data. Program wavrecord berfungsi untuk merekam ucapan dengan sebanyak 6000 data
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
55
dan frekuensi sampling 6000Hz. Data ucapan akan di simpan dalam variabel x dan ditampilkan dalam “Plot Hasil Rekaman”, pada program data ucapan dalam variabel x ditampilkan pada axes1. Pada program xlabel dan ylabel berfungsi untuk memberikan keterangan gambar pada bagian horisontal dan vertikal kurva dalam “Plot Hasil Perekaman. Subproses selanjutnya setelah proses perekaman dan data perekaman disimpan
adalah pre-processing,
proses ini memiliki beberapa proses yaitu
normalisasi, pemotongan sinyal, windowing dan zero padding. Program proses normalisasi ditunjukkan sebagai berikut : % Normalisasi x1=x/max(x); Program normalisasi setiap nilai data ucapan dalam variabel x akan dibagi dengan nilai maksimum dari data ucapan dalam variabel x. Hasil normalisasi disimpan dalam variabel x1. Proses berikutnya dalam subproses pre-processing adalah pemotongan sinyal. Pada proses pemotongan sinyal ini terdapat dua proses yaitu potong sinyal bagian kiri dan sinyal bagian kanan data ucapan. Program proses pemotongan sinyal ditunjukkan sebagai berikut : % Potong kiri b1=find(x1>b0 | x1<-b0); x1(1:b1(1))=[]; % Potong kanan x2=fliplr(x1'); b2=find(x2>b0 | x2<-b0); x2(1:b2(1))=[]; x2=fliplr(x2); Dalam program pemotongan sinyal bagian kiri, program berfungsi untuk mencari nilai data hasil normalisasi dalam variabel x1 lebih dari nilai batas potong atau kurang dari nilai negatif batas potong. Setelah mencari nilai tersebut, akan disimpan dalam variabel b1. Pada data pertama sampai data dalam variabel b1 yang pertama akan diberi dengan himpunan kosong. Proses pemotongan sinyal bagian kanan hampir sama dengan pemotongan sinyal bagian kiri. Program fiplr berfungsi untuk memutar ke arah kanan data ucapan. Setelah pemotongan sinyal bagian kanan data disimpan dalam variabel x2. Proses berikutnya dalam subproses pre-processing adalah windowing. Program proses windowing ditunjukkan sebagai berikut :
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
56
%hanning h=hann(length(x2)); x0=x2.*h'; Pada program windowing,
jendela hanning dihitung sepanjang nilai data
dalam variabel x2. Setelah itu nilai jendela hanning dikalikan dengan nilai dalam variabel x2 dan hasilnya disimpan dalam variabel x0. Dalam subproses preprocessing selanjutnya proses zero padding. Zero padding adalah terakhir dalam subproses pre-processing. Program zero padding ditunjukkan sebagai berikut : %zero padding usig=2048; x0(usig)=0; % penyesuaian ukuran sinyal x1=x0(1:sampling:usig); axes(handles.axes2) plot(x1); xlabel('data tercuplik') ylabel('amplitudo') grid on Subproses
selanjutnya
setelah
proses
pre-processing
adalah
proses
pemanggilan database yang telah disesuaikan dengan variasi nilai batas potong dan downsampling yang telah ditentukan oleh pengguna. Program pemanggilan database ditunjukkan sebagai berikut : if (b0==0.1) &(sampling==1) load db011; elseif (b0==0.2) & (sampling==1) load db021; elseif (b0==0.3) & (sampling==1) load db031; elseif (b0==0.4) & (sampling==1) load db041; elseif (b0==0.1) & (sampling==2) load db012; elseif (b0==0.2) & (sampling==2) load db022; elseif (b0==0.3) & (sampling==2) load db032;
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
57
else if (b0==0.4) & (sampling==2) load db042; elseif (b0==0.1) & (sampling==4) load db014; elseif (b0==0.2) & (sampling==4) load db024; elseif (b0==0.3) & (sampling==4) load db034; elseif (b0==0.4) & (sampling==4) load db044; end end Program pemanggilan database menggunakan fungsi logika if else. Ketika pengguna sudah menentukan variasi nilai batas potong dan downsampling dan saat program pemanggilan database ini berjalan, logika if else akan mencari nilai logika yang benar antara variasi nilai batas potong dan downsampling yang ditentukan oleh pengguna dengan program pembentukan database. Pada saat nilai logika
if else
bernilai benar, program akan memanggil database sesuai dengan variasi batas potong dan downsampling yang sudah ditentukan oleh pengguna. Setelah database di panggil sesuai dengan uang ditentukan oleh pengguna, subproses berikutnya adalah proses pembandingan. Proses ini membandingkan antara database
yang telah dipanggil dalam proses pemanggilan database dengan
data masukkan yang telah dimasukan oleh pengguna secara real time pada proses proses sebelumnya. Proses pembandinga mencari nilai yang sama antara masukkan yang telah dimasukkan oleh pengguna dengan database yang telah dipanggil. Pembandingan ini menggunakan jarak Euclidean. Program proses pembandinga ditunjukkan sebagai berikut : for n=1:120 jaraklist(n)=jarak(x,z(:,n)); end jarakmin=find(min(jaraklist)==jaraklist); minjaraklist=min(jaraklist);
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
58
Program pembandingan ini memanggil program lain dalam satu folder yang bernama “jarak” yang berisi program jarak Euclidean yang merupakan rumus perhitungan jarak Euclidean. Program perhitungan jarak Euclidean ditunjukkan sebagai berikut : function z=jarak(x,y) z=sqrt(sum((x-y).^2)); Program pembandingan ini menghitung dua data yaitu data pengenalan pada proses perekaman yang terdapat dalam variabel x dan data database yang telah dipanggil pada proses sebelumnya dalam variabel y. Hasil pembanding dengan menggunakan
perhitungan
jarak
akan
disimpan dan kembali pada program
“pengenalan2” untuk subproses berikutnya yaitu penentuan keluaran yang akan menentukan keluaran ucapan yang dikenali. Pada program subproses penentuan keluaran ditunjukan sebagai berikut : jarakmin=find(min(jaraklist)==jaraklist); minjaraklist=min(jaraklist); kel={'cepat','cepat','cepat','cepat','cepat','cepat' ,'cepat','cepat','cepat','cepat'... 'cepat','cepat','cepat','cepat','cepat','cepat','cepat', 'cepat','cepat','cepat'... 'cepat','cepat','cepat','cepat','cepat','cepat','cepat', 'cepat','cepat','cepat'... 'lambat','lambat','lambat','lambat','lambat','lambat', 'lambat','lambat','lambat','lambat','lambat'... 'lambat','lambat','lambat','lambat','lambat','lambat', 'lambat','lambat','lambat','lambat','lambat'... 'lambat','lambat','lambat','lambat','lambat','lambat', 'lambat','lambat','lambat','lambat','lambat'... 'hidup','hidup','hidup','hidup','hidup','hidup','hidup', 'hidup','hidup','hidup'... 'hidup','hidup','hidup','hidup','hidup','hidup','hidup', 'hidup','hidup','hidup'... 'hidup','hidup','hidup','hidup','hidup','hidup','hidup', 'hidup','hidup','hidup'...
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
59
'mati','mati','mati','mati','mati','mati','mati','mati', 'mati','mati'... 'mati','mati','mati','mati','mati','mati','mati','mati', 'mati','mati'... 'mati','mati','mati','mati','mati','mati','mati','mati', 'mati','mati',}; hasil=(kel(jarakmin)); set(handles.edit2,'String',hasil); Pada program penentuan keluaran ini akan mencari jarak nilai minimum pada hasil perhitungan jarak pada proses pembanding sebelumnya. Nilai jarak minimum akan disimpan dalam variabel minjaraklist. Nilai jarak minimum akan mencari hasil keluaran minimum berupa data string. Data string dari hasil minimum yang ditampilkan adalah salah satu dari kata “cepat”, “lambat”, “hidup” dan “mati”. Data ini akan disimpan dalam variabel hasil dan ditampilkan dalam edit text. Hasil penentuan keluaran ini akan dikirim melalui komunikasi serial sebagai pengatur kecepatan kipas DC. Program pengiriman data secara serial ditunjukkan sebagai berikut : tf=strcmp('hidup',hasil); if tf == 1 s = serial('COM5'); set(s,'BaudRate',9600); fopen(s); fprintf(s,'1'); fclose(s); delete(s); clear s; set(handles.edit1,'string', '1'); end tf=strcmp('mati',hasil); if tf == 1 s = serial('COM5'); set(s,'BaudRate',9600); fopen(s); fprintf(s,'2'); fclose(s); delete(s); clear s; set(handles.edit1,'String', '2'); end tf=strcmp('cepat',hasil); if tf == 1
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
60
s = serial('COM5'); set(s,'BaudRate',9600); fopen(s); fprintf(s,'3'); fclose(s); delete(s); clear s; set(handles.edit1,'String', '3'); end tf=strcmp('lambat',hasil); if tf == 1 s = serial('COM5'); set(s,'BaudRate',9600); fopen(s); fprintf(s,'4'); fclose(s); delete(s); clear s; set(handles.edit1,'String', '4'); end Pada proses pengiriman data secara serial ini terdapat ptogram strcmp yang berfungsi untuk mencari logika yang benar. Pada saat fungsi logika strcmp bernilai benar maka progam melakukan pengaturan baudrate dan COM port. Pengaturan baudrate adalah 9600 sesuai dengan pengaturan baudrate laptop dan mikrokontroler. Pengaturan COM port adalah COM 5, pengaturan COM port ini sesuai dengan pengaturan COM port yang digunakan untuk komunikasi serial. Setelah melakukan pengaturan, program akan mengirim data berupa sting untuk mikrokontroler sesuai dengan ucapan yang dikenali pada proses pengenalan sebelumnya. Berdasarkan hasil pengujian setelah push button “Rekam” ditekan, program dapat menjalankan proses merekam, menampilkan plot gambar sinyal hasil perekaman ucapan oleh pengguna, menjalankan proses pre-processing, menampilkan plot gambar sinyal hasil preprocessing, menjalankan proses ekstraksi ciri, melakukan pembandingan dengan menggunakan
fungsi jarak
Euclidean,
menentukan
hasil keluaran,
melakukan
komunikasi serial untuk mikrokontroler, menampilkan plot gambar sinya hasil ekstraksi ciri DCT, menampilkan hasil penentuan keluaran dan data yang dikirim secara serial dalam edit text dalam tampilan antarmuka.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
61
Tabel 4.1 Hasil Pengenalan Ucapan Yang Dikenali No Ucapan Masukan Ucapan Yang Dikenali 1 2 3 4
Hidup Mati Cepat Lambat
Data Yang Dikirim
Hidup Mati Cepat Lambat
1 2 3 4
Pada tabel 4.1 menampilkan hasil pengenalan ucapan yang telah dilakukan pada saat push button “Rekam” ditekan. Dengan hasil tersebut terlihat bahwa program pengenalan ucapan sudah berjalan dengan baik ketika dilakukan pengujian program antarmuka pengenalan ucapan. Gambar 4.4 menampilkan contoh hasil pengujian setelah push button “Rekam” ditekan
dengan penguna memberikan
masukan ucapan “hidup”, batas potong 0,2 dan downsampling 2.
Gambar 4.4 Tampilan Antarmuka Setelah Push Button “Rekam” Ditekan 4.1.3 Push button “Ulang” Pada push button “Ulang” digunakan sebagai memberishkan tampilan antarmuka program “PENGENALAN UCAPAN UNTUK PENGATURAN KIPAS DC” seperti pada saat pertama memulai antarmuka progam. Berikut merupakan program yang terdapat pada push button “Ulang” adalah :
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
62
function pushbutton2_Callback(hObject,eventdata, handles) set(handles.edit1, 'String', ''); set(handles.edit2, 'String', ''); axes(handles.axes1) plot(0); axes(handles.axes2) plot(0); axes(handles.axes3) plot(0); Pada program push button “Ulang” menghapus data – data
yang telah
ditampilkan pada edit text 1 sebagai penampil teks data yang dikirim untuk mikrokontroler sebagai pengaturan kipas DC, edit text 2 sebagai penampil teks hasil keluaran pengenalan ucapan, axes 1 sebagai penampil “Plot Hasil Rekaman”, axes 2 sebagai penampil “Plot Hasil Pre-processing” dan axes 3 sebagai penampil “Plot Hasil Ekstraksi Ciri”. 4.1.4 Push button “Selesai” Push button “Selesai” digunakan untuk menutup dan keluar dari antarmuka program “PENGENALAN UCAPAN UNTUK PENGENALAN KIPAS DC”. Berikut merupakan program yang terdapat pada push button “Selesai” adalah sebagai berikut : function pushbutton3_Callback(hObject, handles) tutup = questdlg('KELUAR SEKARANG?','KELUAR',... 'YA','Tidak','Tidak'); switch tutup case 'YA' close(); clear all; return; case 'TIDAK' quit cancel; end
eventdata, PROGRAM
Pada program push button “Selesai” terdapat perintah program “questdlg” yang bertujuan untuk mempertegas push button “Selesai” sehingga setelah pengguna mengklik push button “Selesai” akan muncul window “KELUAR” yang berisi pertanyaan “KELUAR PROGRAM SEKARANG?” dan pengguna harus memilih tombol “YA” atau tombol “Tidak”. Tombol “YA” bertujuan untuk
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
63
menutup dan keluar dari antarmuka program “PENGENALAN UCAPAN UNTUK PENGENALAN KIPAS DC”. Tombol “Tidak” bertujuan untuk membatalkan menutup dan keluar dari antarmuka program “PENGENALAN UCAPAN UNTUK PENGENALAN KIPAS DC”.
Gambar 4.5 Tampilan Antarmuka Setelah Push Button “Selesai” Ditekan
4.2 Software Program Pada Mikrokontroler Untuk Mengatur Kecepatan Kipas DC Secara Real Time Software program pada mikrokontroler ini untuk mengatur kecepatan putar kipas DC yang telah ditentukan dengan menerima data yang dikirim oleh laptop setelah pengguna melakukan proses pengenalan ucapan. Pada program mikrokontroler menerima data secara serial ditunjukan pada program sebagai berikut : terima=getchar(); Pada program, getchar digunakan dalam untuk menerima data karakter yang dikirim secara serial oleh laptop. Data karakter yang telah terkirim akan disimpan dalam variabel terima. Data karakter yang tersimpan ini selanjutnya digunakan untuk mengatur kecepatan putar kipas DC. Pada program untuk mengatur kecepatan putar kipas DC ditunjukan pada program sebagai berikut : if ( terima == 0x31) { b=4; OCR1B=1019; } if ( terima == 0x32) { b=0;
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI OCR1B=0; } if ( terima == 0x33) { switch(b){ case 0 : OCR1B=236; b=b+1; break; case 1 : OCR1B=417; b=b+1; break; case 2 : OCR1B=731; b=b+1; break; case 3 : OCR1B=1019; b=b+1; break; } } if ( terima == 0x34) { switch(b){ case 4 : OCR1B=731; b=b-1; break; case 3 : OCR1B=417;
64
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
65
b=b-1; break; case 2 : OCR1B=236; b=b-1; break; case 1 : OCR1B=0; b=b-1; break; } Pada program untuk mengatur kecepatan putar kipas DC ini menggunakan fungsi logika if else dan switch case. Fungsi logika if else ini digunakan untuk mencari nilai logika yang benar dalam variabel terima. Pada saat nilai logika if else bernilai benar, program akan mengatur kecepatan putar kipas sesuai dengan data yang telah dikirim secara serial oleh laptop. Fungsi logika switch case ini digunakan pada saat hasil program pengenalan ucapan mengenali ucapan “cepat” atau “lambat”. Ketika hasil pengenalan ucapan ini mengenali ucapan “cepat” atau “lambat” program akan menaikkan atau menurunkan kecepatan putar kipas DC. Pada fungsi logika switch case ini membatasi 5 tingkat kecepatan putar kipas DC dengan menggunakan variabel b. Batas tingkat keceptan putar kipas DC ini telah ditunjukan dalam tabel 4.6.
Tabel 4.2 Data Yang Diterima Mikrokontroler No 1 2 3 4
Data Yang Dikirim 1 2 3 4
Data Yang Diterima 31h 32h 33h 34h
Pada tabel 4.2 menampilkan data yang diterima mikrokontroler hasil pengiriman data secara serial yang telah dilakukan pada proses pengenalan ucapan hingga mengatur kecepatan putar kipas DC. Hasil tersebut terlihat bahwa data yang dikirim oleh laptop berupa desimal dan data yang diterima oleh mikrokontroler berupa heksadesimal. Dapat dilihat dari hasil data yang diterima merupakan kode ASCII dari
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
66
data yang dikirim oleh mikrokontroler secara serial. Program penerimaan data secara serial dan mengatur kecepatan putar kipas DC sudah berjalan dengan baik ketika dilakukan pengujian pengiriman data pengenalan ucapan secara serial.
4.3 Hasil Pengujian Program Pengenalan Ucapan Untuk Mengatur Kecepatan Kipas DC Untuk Tingkat Pengenalan Ucapan Pengujian pengenalan ucapan untuk mengatur kecepatan kipas DC dengan dua tahap pengujian yaitu pengujian secara tidak real time dan real time. Pengujian secara tidak real time dengan mengatur parameter uji. Parameter uji ini meliputi variasi nilai batas potong dan downsampling. Pengujian secara tidak real time ini membandingkan data rekaman ucapan pengenalan sebagai suara uji dengan rekaman ucapan pengenalan yang telah disimpan sebagai database. Pengujian secara tidak real time ini bertujuan untuk mencari nilai variasi nilai batas potong dan downsampling yang memiliki tingkat pengenalan terbaik. Pengujian secara real time
dengan menggunakan masukan secara langsung oleh
pengguna. Parameter uji dalam pengujian secara real time menggunakan parameter terbaik dari hasil pengenalan secara tidak real time. Tetapi pengujian secara real time pengguna dapat melakukan variasi parameter yang diinginkan untuk melakukan pengujian.
4.3.1 Pengujian Parameter Pengenalan Ucapan Untuk Mengatur Kecapatan Kipas DC Secara Tidak Real Time A. Pengujian Tanpa Menggunakan Pengurangan Jumlah Elemen Koefisien Ekstraksi Ciri Pengujian secara tidak real time menggunakan rekaman ucapan yang telah disimpan yang menjadi refrensi sebagai database dan rekaman ucapan pengenalan sebagai suara uji. Pengujian secara tidak real time memiliki dua parameter uji, yaitu variasi nilai batas potong dan downsampling. Tujuan mencari variasi nilai batas potong dan downsampling yang memiliki tingkat pengenalan terbaik. Pengujian secara tidak real time menggunakan suara uji 120 ucapan yang terdiri dari 10 kali perekaman pada tiap ucapan “hidup”, “mati”, “cepat” dan “lambat” dengan tiga pengguna yang berbeda. Data yang diperoleh
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
67
dalam pengujian secara tidak real time dalam bentuk presentase ditampilkan dalam bentuk grafik sehingga mudah dalam mengambil kesimpulan. Terdapat dua gambar dengan
gambar 4.6 yang menampilkan pengaruh perubahan nilai
batas potong terhadap
pengaruh pengenalan ucapan dan
gambar 4.7
menampilkan pengaruh perubahan nilai downsampling terhadap pengenalan ucapan. Pada gambar 4.6 diperoleh kesimpulan nilai variasi batas potong terbaik terletak pada nilai 0,2 dan 0,3. Pada gambar 4.7 diperoleh kesimpulan nilai variasi downsampling terbaik terletak pada nilai 2.
Tabel 4.3 Tingkat Pengenalan Untuk Hasil Pengujian Secara Tidak Real Time Nilai Downsampling 1 2 4
Nilai batas potong 0,1 0,2 0,3 0,4 80,00% 80,83% 80,83% 80,00% 80,83% 81,67% 81,67% 80,83% 73,33% 72,50% 74,17% 74,17%
Presentase Pengenalan
Pengaruh Perubahan Nilai Batas Potong Terhadap Pengenalan Ucapan 84% 82% 80% 78% 76% 74% 72% 70% 68% 66%
Downsampling 1 Downsampling 2 Downsampling 4 0,1
0,2
0,3
0,4
Nilai Batas Potong
Gambar 4.6 Pengaruh Perubahan Nilai Batas Potong Terhadap Pengenalan Ucapan
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Pengaruh Perubahan Nilai Downsampling Terhadap Pengenalan Ucapan
84% Presentase Pengenalan
68
82% 80% 78% 76%
Batas potong 0,1
74%
Batas potong 0,2
72%
Batas potong 0,3
70%
Batas potong 0,4
68% 66% 1
2 Nilai Downsampling
4
Gambar 4.7 Pengaruh Perubahan Nilai Downsampling Terhadap Pengenalan Ucapan Grafik berdasarkan
pada
gambar
pengaruh
4.6
perubahan
menunjukan
tingkat
variasi nilai batas
pengenalan potong.
ucapan
Grafik
ini
menunjukan pengenalan terbaik terdapat pada nilai variasi batas potong 0,2 dan 0,3 yang mampu mengenali ucapan
hingga 81,67 persen. Pada grafik gambar
4.7 menunjukan tingkat pengenalan ucapan berdasarkan pengaruh perubahan bariasi variasi nilai downsampling. Grafik ini menunjukan pengenalan terbaik terdapat pada variasi variasi downsampling 2 yang mampu mengenali ucapan hingga 81,67 persen. Nilai batas potong yang mampu mengenali terbaik dengan variasi nilai downsampling 2 adalah 0,2 dan 0,3 yang mampu mengenali ucapan hingga 81,67 persen. Pengujian selanjutnya dilakukan dengan mengambil salah satu kombinasi nilai pengenalan ucapan terbaik yaitu variasi nilai batas potong 0,2 atau 0,3 dengan variasi nilai downsampling 2. Pengambilan kombinasi nilai pengenalan ucapan terbaik dilakukan karena pada nilai kombinasi tersebut memiliki tingkat pengenalan yang sama yaitu 81,67 persen. Dalam penulisan berikutnya penulis menggunakan parameter variasi nilai batas potong 0,2 dan variasi nilai downsampling 2. Penggunaan parameter variasi nilai batas potong 0,2 dan variasi nilai downsampling 2 dengan melakukan pengujian selanjutnya yaitu
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
69
pengujian pengurangan jumlah elemen koefisien ekstraksi ciri dengan presentase tingkat pengenalan terbaik. Ketidaakmampuan
pengenalan ucapan untuk
mengenali ucapan 100
persen adalah karena adanya pengenalan ucapan yang salah.
Selisih untuk
mencapai hasil 100 persen adalah sebesar 18,33 persen. Selisih sebesar 18,33 persen ini dapat disebabkan oleh keterbatasan metode yang digunakan oleh penulis.
B. Pengujian Dengan Menggunakan Segment Averaging Presentase pengenalan ucapan terbaik terdapat pada variasi nilai batas potong 0.2 dan variasi nilai downsampling 2. Variasi nilai terbaik tersebut memiliki tingkat pengenalan ucapan hingga 81,67 persen setelah dilakukan pengujian secara tidak real time. Dalam pengujian secara tidak real time masih terdapat 18,33 persen dari 100 persen kebenaran. Kesalahan 81,33 persen tersebut dapat diperkecil presentase kesalahan dengan cara menggunakan segment averaging. Pengujian ini dilakukan dengan membagi jumlah data dalam beberapa segment dengan mengurangi koefisien ekstraksi ciri. Perbaikan tingkat pengenalan ini dilakukan agar kinerja program pengenalan antarmuka dapat lebih baik dengan meminimalkan jumlah presentase kesalahan. Ukuran sinyal yang digunakan pada pengenalan adalah 1024 data oleh karena itu dalam membagi dengan kelipatan 2 n
dimulai dari n=3. Faktor
pembagi data awal disebut dengan segment dan hasil pembagian data awal dengan segment menjadi hasil akhir koefisien ekstraksi ciri yang akan dipakai dalam perhitungan berikutnya. Pembagian jumlah data dalam beberapa segment kemudian dilakukan perhitungan rata – rata agar membuat yang jumlahnya banyak menjadi lebih sedikit ukurannya. Gambar 4.8 menunjukan proses pembagian data awal dengan beberapa segment dan menghasilkan pengurangan jumlah elemen koefisien ekstraksi ciri[23].
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
70
2N data
Gambar 4.8 Proses Pembagian Data Awal Dengan Beberapa Segment (2n )[23] Dalam pengujian pengurangan jumlah elemen koefisien ekstraksi ciri tidak semua pembagian data dalam beberapa
segment mampu menghasilkan tingkat
pengenalan dari sebelumnya, sehingga penulis menggunakan pembagi lebar segment 64 dengan jumlah elemen ekstraksi 16 dari jumlah data awal sebesar 1024 data yang memiliki tingkat pengenalan 83,33 persen. Pengunaan pembagi lebar segment
64
ini berdasarkan pengujian dengan presentase tingkat
pengenalan yang terbaik. Hasil pengujian tingkat pengenalan menggunakan segment averaging ditunjukan pada tabel 4.4.
Tabel 4.4 Hasil Tingkat Pengenalan Menggunakan Segment Averaging
8 16
Jumlah Elemen Ekstraksi 128 64
Tingkat Pengenalan (%) 81,7% 80,0%
32 64 128
32 16 8
82,5% 83,3% 78,3%
No
Lebar segment
1 2 3 4 5
Perbaikan tingkat pengenalan yang terjadi adalah sebesar 1,66 persen dari 81,67 persen menjadi 83,33 persen. Hal ini menunjukan dengan membagi data dalam beberapa segment dan mencari nilai rata – rata pada tiap segment sebagai
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI nilai
yang
mewakili
nilai
lain,
dapat
memperbaiki
tingkat
71
pengenalan
sebelumnya dengan mengurangi presentase kesalahan sebesar 1,66 persen.
4.3.2 Pengujian Parameter Pengenalan Ucapan Untuk Mengatur Kecapatan Kipas DC Secara Real Time A. Pengujian Pengenalan Ucapan dan Kecepatan Kipas DC Pengujian secara real time dilakukan dengan menggunakan masukan secara langsung dari ucapan pengenalan oleh pengguna yang direkam dan langsung tertampil keluaran. Pengguna yang melakukan pengujian sebanyak tiga orang sesuai dengan database yang telah disimpan. Pengujian secara real time mempunyai tujuan agar mengetahui kinerja program pengenalan ucapan yang telah dibuat. Kesalahan pada pengenalan yang terjadi merupakan pengenalan yang dikenali secara salah. Pengujian secara real time dilakukan dengan menggunakan nilai variasi batas potong dan downsampling terbaik
dari
pengujian secara tidak real time pada pengujian sebelumnya. Nilai variasi terbaik yang digunakan untuk pengujian secara real time adalah nilai batas potong 0,2 dan nilai downsampling 2. Ucapan pengenalan yang digunakan sebagai masukan pada saat push button “Rekam” ditekan oleh pengguna. Pengujian secara real time ini dilakukan sebanyak lima kali pengujian pada tiap ucapan pengenalan. Dengan pengujian sebanyak lima kali pengujian pada tiap pengucapan diperoleh presentase keberhasilan program pengenalan ucapan dapat berjalan dengan baik. Hasil pengujian ditunjukan dalam tabel 4.5 dengan pengujian sebanyak 60 pengujian. Tabel 4.5 Hasil Pengujian Secara Real Time Batas potong = 0.2 Downsampling = 2 Ucapan yang Ucapan yang Ucapan yang dikenali dikenali dikenali Ucapan Pengguna 1 Pengguna 2 Pengguna 3 Hidup V V V V V V V V V V V V V V Mati V V V X V V X V X X X X V X Cepat V V V V V V V V V V V V V V Lambat V V V V V V V V V V V V V V Keterangan : V = Dikenali Secara Benar; X = Dikenali Secara Salah
V X V X
Hasil pengujian pengenalan ucapan secara real time dengan pengujian sebanyak 60 pengujian dapat memperoleh presentase tingkat pengenalan hingga
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
72
85 persen. Kesalahan pengenalan ucapan sebesar 15 persen masih masuk dalam batas toleransi keberhasilan program yang ditentukan oleh penulis yaitu dengan presentase tingkat pengenalan ucapan minimal sebesar 80 persen. Kesimpulan yang didapat adalah sistem pengenalan ucapan untuk mengatur keccepatan kipas DC secara real time sudah berjalan dengan baik sesuai dengan perancangan.
Tabel 4.6 Hasil Kecepatan Putar Kipas DC Pada Pengujian Secara Real Time No
Keadaan sekarang
RPM
Input Ucapan
1 2 2 3 4 5 6 7 8 9 10 11
Level 0 Level 4 Level 4 Level 0 Level 1 Level 2 Level 3 Level 4 Level 4 Level 3 Level 2 Level 1
0 681,8 670,7 0 90,4 332,7 543,1 686,6 688,1 540 314,5 105,9
Hidup Mati Mati Cepat Cepat Cepat Cepat Lambat Lambat Lambat Lambat Lambat
Ucapan Dikenali Hidup Hidup Mati Cepat Cepat Cepat Cepat Hidup Lambat Lambat Lambat Lambat
Keadaan selanjutnya
RPM
Level 4 Level 4 Level 0 Level 1 Level 2 Level 3 Level 4 Level 4 Level 3 Level 2 Level 1 Level 0
681,8 670,7 0 90,4 332,7 543,1 686,6 688,1 540 314,5 105,9 0
Pada pengujian secara real time sudah dapat melakukan komunikasi serial dan mengatur kecepatan putar kipas DC sudah berjalan dengan baik sesuai dengan perancangan. Hasil data komunikasi secara serial pada pengujian secara real time ditunjukan dalam tabel 4.2 dan hasil kecepatan putar kipas DC pada pengujian secara real time ditunjukan dalam tabel 4.6. B. Pengujian Ekstraksi Ciri Pengenalan Ucapan Pada Masing – Masing Ucapan Proses ekstraksi ciri pengujian secara real time memiliki ciri masing – masing yang membedakan pada setiap pola hasil ekstraksi dalam proses pengenalan ucapan. Pada pengujian secara real time menggunakan variasi batas potong dan downsampling terbaik akan mendapatkan pola ucapan yang mempunyai ciri yang berbeda. Pola ucapan hasil esktraksi ciri kata “hidup”, “mati”, “cepat” dan “lambat” dalam proses pengenalan ucapan ditunjukan dalam bentuk grafik dan numerik dengan ditunjukan pada gambar 4.9, gambar 4.10, gambar 4.11 dan gambar 4.12.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
73
Hidup 4.5 4 3.5
Amplitudo
3 2.5 Pengguna 1 2
Pengguna 2
1.5
Pengguna 3
1 0.5 0 1
2
3
4
5
6
7
8
9
10 11 12 13 14 15 16
Data tercuplik
Gambar 4.9 Pola Ucapan Hasil Ekstraksi Ciri Kata “hidup” Dalam Proses Pengenalan Ucapan
Mati 6
5
Amplitudo
4 Pengguna 1
3
Pengguna 2
2
Pengguna 3
1
0 1
2
3
4
5
6
7
8
9
10 11 12 13 14 15 16
Data tercuplik
Gambar 4.10 Pola Ucapan Hasil Ekstraksi Ciri Kata “mati” Dalam Proses Pengenalan Ucapan
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
74
Cepat 5
4.5 4
Amplitudo
3.5
3 2.5
Pengguna 1
2
Pengguna 2 Pengguna 3
1.5 1 0.5 0
1
2
3
4
5
6
7
8
9 10 11 12 13 14 15 16
Data tercuplik
Gambar 4.11 Pola Ucapan Hasil Ekstraksi Ciri Kata “cepat” Dalam Proses Pengenalan Ucapan
Lambat 7 6
Amplitudo
5 4 Pengguna 1
3
Pengguna 2 Pengguna 3
2
1 0
1
2
3
4
5
6
7
8
9
10 11 12 13 14 15 16
Data tercuplik
Gambar 4.12 Pola Ucapan Hasil Ekstraksi Ciri Kata “lambat” Dalam Proses Pengenalan Ucapan
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
75
Hasil proses ekstraksi ciri kata “hidup”, “mati”, “cepat” dan “lambat” dengan tiga pengguna berbeda dalam bentuk numerik ditunjukan pada tabel 4.7, tabel 4.8 dan tabel 4.9. Tabel 4.7 Hasil Proses Ekstraksi Ciri Dalam Bentuk Numerik Pengguna 1 No 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Pengguna 1 Nilai Ekstraksi Ciri Hidup Mati Cepat Lambat 2,7873 3,6674 4,3548 4,9783 2,4466 2,0613 2,8685 3,1454 2,2873 3,1367 3,1937 3,2497 1,6232 1,2326 2,635 3,928 2,917 2,0322 3,0669 3,0415 1,9755 1,8905 3,8657 2,3107 3,9094 2,2685 1,7552 2,1673 3,2712 2,0845 2,8881 3,076 3,4958 3,0147 1,662 3,5177 3,955 2,4137 3,3416 4,4522 2,712 2,708 2,7334 4,7539 3,4811 3,2123 2,181 4,914 2,9216 3,1115 2,6089 4,0697 3,6239 2,4978 2,3206 4,4182 3,4561 3,3306 3,5988 4,7316 3,5039 2,7602 4,0536 5,806
Tabel 4.8 Hasil Proses Ekstraksi Ciri Dalam Bentuk Numerik Pengguna 2 Pengguna 2 No Nilai Ekstraksi Ciri Hidup Mati Cepat Lambat 1 4,1975 5,3947 2,3864 4,5344 2 3,3734 3,6254 2,6792 4,5119 3 3,5753 3,2475 3,3659 3,176 4 3,3416 3,7766 3,7269 4,074 5 1,6662 2,7304 3,1618 3,8628 6 2,7472 2,416 3,3321 2,9606 7 4,2433 3,1346 2,3108 2,7338 8 3,9122 2,905 1,979 3,0946 9 3,7768 2,776 2,1423 3,4191 10 4,244 3,318 3,1423 3,8861 11 3,7557 3,8433 3,2051 4,024 12 3,9688 3,7367 2,9773 3,4945 13 3,7541 3,5779 2,726 3,4657 14 3,5485 3,2266 2,7146 3,5855 15 3,1568 2,9663 2,9043 3,3461 16 3,2219 2,7479 3,6908 4,1587
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
76
Tabel 4.9 Hasil Proses Ekstraksi Ciri Dalam Bentuk Numerik Pengguna 3 No 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Pengguna 3 Nilai Ekstraksi Ciri Hidup Mati Cepat Lambat 2,4989 3,819 2,9703 4,4297 2,1962 3,2476 2,9885 4,2258 2,2992 3,2626 3,1494 4,4662 1,0532 2,9577 2,7066 4,0445 1,6063 2,2851 2,5812 3,0297 2,457 3,135 3,2048 3,4151 2,8812 3,0877 1,7376 3,2509 3,3998 3,3929 2,039 3,7198 3,3016 4,544 2,6958 4,1157 3,2891 3,3344 2,4474 4,1715 3,3685 3,7133 2,8343 4,3527 3,6318 4,3209 2,5395 4,1332 3,8123 3,8559 2,2647 3,6763 3,4481 3,3975 3,208 4,0713 3,4052 3,599 2,9804 3,5047 3,243 3,638 4,0077 4,67
C. Hasil Perhitungan Jarak Pada Tiap Ucapan dan Tiap Pengguna Hasil perhitungan jarak didapat dari perhitungan data masukan ekstraksi ciri dengan hasil ekstraksi ciri database Perhitungan jarak ini menggunakan fungsi jarak Euclidean. Perhitungan jarak ini mencari selisih nilai yang paling minimum pada tiap proses pengenalan ucapan. Terdapat empat kelas dalam perhitungan jarak, yaitu kelas pertama “cepat”, kelas kedua “lambat”, kelas ketiga “hidup” dan kelas keempat “mati” dengan menggunakan tiga pengguna yang berbeda. Perhitungan jarak pada tiap ucapan pengenalan dengan rata – rata database ditunjukan pada gambar dan dalam bentuk numerik dengan ditunjukan pada gambar 4.13, gambar 4.14, gambar 4.15 dan gambar 4.16.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
77
Perbandingan Rata - Rata Hasil Ekstraksi Ciri Ucapan "hidup" Database Dengan Ucapan "hidup" Pada Pengenalan
5 4.5 4 3.5 3 2.5 2 1.5 1 0.5 0
Amplitudo
Rata - rata hasil Esktraksi ciri database Ucapan "hidup" pengguna 1 Ucapan "hidup" pengguna 2
1
2
3
4
5
6
7
8
9 10 11 12 13 14 15 16
Ucapan "hidup" pengguna 3
Data tercuplik
Gambar 4.13 Perbandingan Rata – Rata Hasil Ekstraksi Ciri Ucapan “hidup” Database Dengan Ucapan “hidup” Pada Pengenalan
Perbandingan Rata - Rata Hasil Ekstraksi Ciri ucapan "mati" Database Dengan Ucapan "mati" Pada Pengenalan
6
Amplitudo
5 Rata - rata hasil ekstraksi ciri database
4
Ucapan "mati" pengguna 1
3 2
Ucapan "mati" pengguna 2
1
Ucapan "mati" pengguna 3
0 1
2
3
4
5
6
7 8 9 10 11 12 13 14 15 16 Data tercuplik
Gambar 4.12 Perbandingan Rata – Rata Hasil Ekstraksi Ciri Ucapan “mati” Database Dengan Ucapan “mati” Pada Pengenalan
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
78
Perbandingan Rata - Rata Hasil Ekstraksi Ciri ucapan "cepat" Database Dengan Ucapan "cepat" Pada Pengenalan
5
4.5 4
Amplitudo
3.5
Rata - rata hasik ekstraksi ciri database
3
2.5
Ucapan "cepat" pengguna 1
2
1.5
Ucapan "cepat" pengguna 2
1 0.5
Ucapan "cepat" pengguna 3
0 1
2
3
4
5
6
7 8 9 10 11 12 13 14 15 16 Data tercuplik
Gambar 4.13 Perbandingan Rata – Rata Hasil Ekstraksi Ciri Ucapan “cepat” Database Dengan Ucapan “cepat” Pada Pengenalan
Perbandingan Rata - Rata Hasil Ekstraksi Ciri ucapan "lambat" Database Dengan Ucapan "lambat" Pada Pengenalan 7 6 Amplitudo
5
Rata - rata hasil ekstraksi ciri database
4
Ucapan "lambat" pengguna 1
3 2
Ucapan "lambat" pengguna 2
1
Ucapan "lambat" pengguna 3
0
1
2
3
4
5
6
7
8
9 10 11 12 13 14 15 16
Data tercuplik
Gambar 4.14 Perbandingan Rata – Rata Hasil Ekstraksi Ciri Ucapan “lambat” Database Dengan Ucapan “lambat” Pada Pengenalan Hasil perbandingan rata – rata ekstraksi ciri pada ucapan yang telah disimpan dalam databse dengan setiap ucapan pengenalan menggunakan tiga
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
79
pengguna yang berbeda ditunjukan dalam bentuk numerik dengan ditunjukan dalam lampiran (halaman L30). Pada lampiran (halaman L30) hasil perhitungan jarak minimum sudah sesuai dengan ucapan yang dikenali. Tetapi pada hasil perhitungan jarak minimum ucapan “mati” nilai yang paling minimum adalah ucapan “cepat” pada pengguna pertama. Dapat dilihat pada gambar 4.11. Grafik pengguna pertama hampir menyerupai grafik ucapan “cepat” sehingga ucapan “mati” terkadang dapat dikenali secara salah. Pada hasil perbandingan ucapan “hidup” nilai yang paling minimum adalah ucapan “mati”, Nilai yang paling minimum ucapan “mati” karena dilihat pada pada gambar 4.9 ucapan pengenalan “hidup” menyerupai gambar rata – rata hasil ekstraksi ciri database ucapan “mati” yang ditunjukan pada gambar 4.12, karena ucapan pengenalan “hidup” setiap pengguna memiliki pola yang jauh berbeda tiap ucapan pengguna sehingga ucapan pengenalan “hidup” pada tiap pengguna berbeda jauh rata – rata nilai hasil ekstraksi ciri database ucapan “hidup” yang ditunjukkan pada gambar 4.11.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB V KESIMPULAN DAN SARAN 5.1 Kesimpulan Dari hasil percobaan dan pengujian sistem pengenalan ucapan untuk mengatur kecepatan kipas DC dapat disimpulkan sebagai berikut : 1. Pada program pengenalan ucapan untuk mengatur kecepatan kipas DC sudah dapat mengenali ucapan dari tiga pengguna berbeda yang telah ditentukan dengan ucapan pengenalan “hidup”, “mati”, “cepat” dan lambat. 2. Program pengenalan ucapan untuk mengatur kecepatan kipas DC sudah dapat melakukan komunikasi serial antara laptop dengan mikrokontroler dan dapat mengatur kecepatan putar kipas DC yang telah ditentukan. 3. Pengujian secara tidak real time mendapatkan presentase tingkat pengenalan terbaik terdapat pada kombinasi parameter nilai batas potong 0,2 dan downsampling 2 dengan presentase tingkat pengenalan ucapan terbaik hingga 81,67 persen. 4. Pengujian secara tidak real time dengan penggunaan pengurangan jumlah elemen koefisien ekstraksi ciri dapat meningkatkan presentase tingkat pengenalan ucapan terbaik hingga 83,33 persen dengan membagi data sebanyak 1024 dengan menggunakan lebar segment 64 akan mengurangi data sebanyak 1024 data menjadi 16 data. 5.
Pengujian secara real time dengan penggunaan pengurangan jumlah elemen koefisien ekstraksi dan kombinasi parameter nilai batas potong 0,2 dan downsampling 2 mendapatkan presentase tingkat pengenalan terbaik hingga 85 persen.
5.2 Saran Saran untuk pengembangan sistem pengenalan ucapan angka adalah sebagai berikut : 1.
Pengembangan sistem pengenalan ucapan untuk mengatur kecepatan kipas DC ini dengan menambah batas pengenalan ucapan sehingga program pengenalan ucapan ini sehingga dapat mengurangi ucapan pengenalan yang salah ketika melakukan percobaan pada saat real time.
2.
Menambahkan pengenalan ucapan secara otomatis sistem pengenalan ucapan sehingga pada proses pengenalan ucapan tidak menggunakan tombol untuk merekam dan melakukan proses pengenalan ucapan. 80
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
DAFTAR PUSTAKA [1]
Hidayatno, A., & Saksono, M. W. T. (2008). Aplikasi Pengenalan Ucapan Sebagai Pengatur Mobil Dengan Pengendali Jarak Jauh. Transmisi, 10(1), 21-26.
[2]
Adler, J., Azhar, M., & Supatmi, S. (2013). Identifikasi Suara dengan Matlab sebagai Aplikasi Jaringan Syaraf Tiruan.
[3]
Arman, A. A. (2008). Proses Pembentukan dan Karakteristik Sinyal Ucapan. Departemen Teknik Elektro ITB, http://indotts. melsa. net. id/, access date: July, 7.
[4]
Wijayanto, I., & Dwifebrianti, R. (2013). Jenis Tipe Jangkauan Suara Pada Pria dan Wanita Menggunakan Metode Mel-frequency Cepstral Coefficient dan Jaringan Syaraf Tiruan Backpropagation.
[5]
Aminudin, A., Wahyudi, W., & Hidayatno, A. (2011). Analisis Eigen Sinyal Suara (Doctoral dissertation, Jurusan Teknik Elektro Fakultas Teknik Undip).
[6]
http://www.produksielektronik.com/2014/06/pengertian-cara-kerja-mikrofonmicrophone/ dilihat pada tanggal 1 Agustus 2014.
[7]
http://www.geniusnet.com/geniusOnline/upload/support/eCatalogue/audio/PA_ MIC - 01A . pdf dilihat pada tanggal 1 Agustus 2014.
[8]
http://www.realkarachi.com/downloads/books/how-stuff-works/how-sound-cardswork%28www.realkarachi.com%29.pdf dilihat pada tanggal 1 Maret 2014.
[9]
Firmansyah, A. (2003). Dasar-dasar Pemrograman Matlab
[10]
Gunawan D., dan Hilman Juwono, F. (2012). Pengolahan Sinyal Digital Dengan Pemrograman Matlab, Graha Ilmu, Yogyakarta.
[11]
-----,2010, 8-bit Atmel with 8Kbytes In-System Progammable Flash, Atmel.
[12]
-----,2010, FT232R USB UART IC: Datasheet, FTDI Chip.
[13]
Pramono, A. J. B. (2013). Implementasi dan Analisis logika Fuzzy Pada Robot Pengikut Garis (Doctoral dissertation, UAJY).
[14]
Khayam, S. A. (2003). The Discrete Cosine Transform (DCT): Theory and Application. Michigan State University.
[15]
Hendarko, G., Hidayatno, A., & Isnanto, R. R. (2011). Identifikasi Citra Sidikjari Menggunakan Alihragam Wavelet dan Jarak Euclidean (Doctoral dissertation, Diponegoro University).
[16]
Resmiati, P., Susanto, B., & Chrisantyo, L. (2013). Penentuan Not angka Lagu Dari Suara Menggunakan Discrete Fourier Transform. Jurnal Informatika.
81
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI [17]
82
Sutiknyo, P. H. P., & Soelistijorini, R. Penggolongan Suara Berdasarkan Usia Dengan Menggunakan Metode K-means. EEPIS Final Project.
[18]
Isnarningsih,
E.
(2009).
Pengaruh Intensitas Kebisingan Terhadap Kelelahan
Tenaga Kerja di Bagian Welding 2b dan Bagian p2 Shipping CBU di PT X Plant II Jakarta Utara (Doctoral dissertation, Universitas Negeri Sebelas Maret). [19]
Zhao, J., & Yu, Y. (2011). Brushless DC Motor Fundamentals Application Note.
[20]
Boylestad, R. L., Nashelsky, L., & Monssen, F. (2006). Electronic devices and circuit theory. Pearson Prentice Hall.
[21]
Oppenheim, A.V., and R.W. Schafer, Discrete-Time Signal Processing, PrenticeHall, 1989, pp. 447-448.
[22]
Jain, A. K., Duin, R. P. W., & Mao, J. (2000). Statistical pattern recognition: A review. Pattern Analysis and Machine Intelligence, IEEE Transactions on,22(1), 437
[23]
Setiawan, R. (2014). Pengenalan Ucapan Angka Secara Real Time Menggunakan Ekstraksi Ciri FFT dan Fungsi Similaritas Kosinus. Jurusan Teknik Elektro-USD Yogyakarta.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
LAMPIRAN
83
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
PERCOBAAN MENCARI PANJANG WAKTU PEREKAMAN PENGENALAN UCAPAN DENGAN MATLAB 7.10 Tujuan : 1. Mendapatkan panjang waktu perekaman yang tepat pada proses pengenalan ucapan 2. Mengetahui pengaruh data sinyal pengenalan terhadap panjang waktu pengenalan ucapan
Variabel : 1. Panjang waktu yang digunakan adalah 0.5 detik,1 detik, 1.5 detik dan 2 detik. 2. Frekuensi sampling yang digunakan adalah 6000 Hertz.
Hasil Plotting Percobaan pada lama waktu pencuplikan 0.5 detik
L1
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Percobaan pada lama waktu pencuplikan 1 detik
Percobaan pada lama waktu pencuplikan 1.5 detik
L2
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L3
Percobaan pada lama waktu pencuplikan 2 detik
Analisa Pada percobaan dengan lama waktu pencuplikan 0.5 detik data ucapan tidak tercuplik secara utuh. Pada proses perekaman dengan waktu pencuplikan ucapan tidak terekam secara utuh atau ucapan yang terekam terpotong. Pada percobaan dengan lama waktu pencuplikan 1 detik, 1.5 detik dan 2 detik. Pada percobaan dengan lama waktu tersebut data ucapan tercuplik secara utuh tetapi
terlalu lama pada proses pencuplikan, sehingga data yang tercuplik terlalu
banyak. Lamanya proses pencuplikan akan menimbulkan suara yang tidak diinginkan (noise) ikut terekam pada proses perekaman. Perocbaan dengan lama waktu 1 detik terlihat lebih efisien karena mendapatkan data ucapan secara utuh dan tidak terlalu banyak data yang tercuplik.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L4
Kesimpulan Pada penggunaan lama waktu 1 detik pada proses pencuplikan lebih baik, ini dikarenakan mendapatkan data ucapan secara utuh dan tidak terlalu banyak data yang tercuplik. Tidak terlalu banyak data yang tercuplik ini untuk meminimalisir suara yang tidak diingnkan (noise) yang ikut dalam proses perekaman.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L5
PERCOBAAN MENGGUNAKAN PROGRAM ANTARMUKA PEMBENTUKAN DATABASE Tujuan : 1. Dapat menjalankan dan menggunakan program antarmuka pembentukan database dengan benar. 2. Dapat menyimpan dan memperbaharui database ucapan oleh pengguna.
Variabel : 1. Panjang waktu perekaman yang digunakan adalah 1 detik. 2. Frekuensi sampling yang digunakan adalah 6000 Hertz.
Langkah Percobaan : Proses untuk menjalankan program antarmuka “PEMBENTUKAN DATABASE UCAPAN” dengan melakukan langkah – langkah sebagai berikut : A. Mengkilik dua kali ikon Matlab pada layar desktop dengan gambar ikon seperti Gambar 1.
Gambar 1 Ikon Matlab 7.10 B. Setelah melakukan langkah A, akan tampil tampilan utama software Matlab seperti Gambar 2.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L6
Gambar 2. Tampilan Matlab C. Sebelum membuka tampilan program, perlu memastikan terlebih dahulu pada Current Directory sudah sesuai dengan dengan tempat penyimpanan program yang telah dirancang. D. Mengetik
perintah dtbase2
pada Command Window untuk memunculkan tampilan
antarmuka program pengenalan ucapan. Setelah itu akan muncul akan muncul tampilan program pengenalan ucapan seperti Gambar 3.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L7
Gambar 3. Tampilan pembentukan database ucapan E. Pengguna harus menekan push button “Rekam” untuk merekam ucapan yang digunakan sebagai database pengenalan. F. Data hasil rekaman ucapan ditampilkan pada “Plot Hasil Rekaman” pada axes1. G. Untuk memutar data ucapan yang telah direkam dalam prose perekaman pengguna dapat dengan menekan push button “Putar” H. Setelah ucapan telah direkam, hasil ucapan dapat disimpan dengan data dalam format .wav dengan push button “Simpan”. I. Setelah data ucapan di simpan, pengguna harus memilih nilai batas potong dan downsampling dalam pop up menu 1 dan 2. Variasi nilai batas potong dan downsampling yang disediakan sama seperti pada program antarmuka “PENGENALAN UCAPAN UNTUK PENGATURAN KIPAS DC”. Setelah memilih variasi nilai batas potong dan downsampling pengguna menekan push button “Update database” untuk memperbarui database yang digunakan sebagai pembanding dalam proses pengenalan dalam program antarmuka “PENGENALAN UCAPAN UNTUK PENGATURAN KIPAS DC”. J. Pengguna mengakhiri program antarmuka dan menutup jendela antarmuka dengan tombol “Selesai”.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L8
LISTING PROGRAM Antarmuka pengenalan function varargout = Pengenalan2(varargin) % PENGENALAN2 M-file for Pengenalan2.fig % PENGENALAN2, by itself, creates a new PENGENALAN2 or raises the existing % singleton*. % % H = PENGENALAN2 returns the handle to a new PENGENALAN2 or the handle to % the existing singleton*. % % PENGENALAN2('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in PENGENALAN2.M with the given input arguments. % % PENGENALAN2('Property','Value',...) creates a new PENGENALAN2 or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before Pengenalan2_OpeningFcn gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to Pengenalan2_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help Pengenalan2 % Last Modified by GUIDE v2.5 07-Oct-2014 14:14:31 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @Pengenalan2_OpeningFcn, ... 'gui_OutputFcn', @Pengenalan2_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
% --- Executes just before Pengenalan2 is made visible. function Pengenalan2_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to Pengenalan2 (see VARARGIN) % Choose default command line output for Pengenalan2 handles.output = hObject; % Update handles structure guidata(hObject, handles); % UIWAIT makes Pengenalan2 wait for user response (see UIRESUME) % uiwait(handles.figure1); % --- Outputs from this function are returned to the command line. function varargout = Pengenalan2_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handles.output; % --- Executes on button press in pushbutton1. function pushbutton1_Callback(hObject, eventdata, handles) %Rekam sample_length=1; sample_freq=6000; sample_time=(sample_length*sample_freq); x=wavrecord(sample_time, sample_freq); wavwrite(x, sample_freq, 's.wav'); axes(handles.axes1) plot(x); xlabel('data tercuplik') ylabel('amplitudo') grid on b0=handles.pot; sampling=handles.sampling; % Normalisasi x1=x/max(x); % Potong kiri b1=find(x1>b0 | x1<-b0); x1(1:b1(1))=[]; % Potong kanan x2=fliplr(x1');
L9
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI b2=find(x2>b0 | x2<-b0); x2(1:b2(1))=[]; x2=fliplr(x2); %hanning h=hann(length(x2)); x0=x2.*h'; %zero padding usig=2048; x0(usig)=0; x1=x0(1:sampling:usig); axes(handles.axes2) plot(x1); xlabel('data tercuplik') ylabel('amplitudo') grid on
% penyesuaian ukuran sinyal
%DCT x0=abs(dct(x1)); x1=abs(log(x0)); x1(1)=0; x1=reshape(x1,64,[]); x1=mean(x1); x=x1(:); axes(handles.axes3) plot (x); xlabel('data tercuplik') ylabel('amplitudo') grid on if (b0==0.1) &(sampling==1) load db011; elseif (b0==0.2) & (sampling==1) load db021; elseif (b0==0.3) & (sampling==1) load db031; elseif (b0==0.4) & (sampling==1) load db041; elseif (b0==0.1) & (sampling==2) load db012; elseif (b0==0.2) & (sampling==2) load db022; elseif (b0==0.3) & (sampling==2) load db032; else if (b0==0.4) & (sampling==2) load db042;
L10
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L11
elseif (b0==0.1) & (sampling==4) load db014; elseif (b0==0.2) & (sampling==4) load db024; elseif (b0==0.3) & (sampling==4) load db034; elseif (b0==0.4) & (sampling==4) load db044; end end for n=1:120 jaraklist(n)=jarak(x,z(:,n)); end jarakmin=find(min(jaraklist)==jaraklist); minjaraklist=min(jaraklist); kel={'cepat','cepat','cepat','cepat','cepat','cepat','cepat','cepat','cepat' ,'cepat'... 'cepat','cepat','cepat','cepat','cepat','cepat','cepat','cepat','cepat','cep at'... 'cepat','cepat','cepat','cepat','cepat','cepat','cepat','cepat','cepat','cep at'... 'lambat','lambat','lambat','lambat','lambat','lambat','lambat','lambat','lam bat','lambat','lambat'... 'lambat','lambat','lambat','lambat','lambat','lambat','lambat','lambat','lam bat','lambat','lambat'... 'lambat','lambat','lambat','lambat','lambat','lambat','lambat','lambat','lam bat','lambat','lambat'... 'hidup','hidup','hidup','hidup','hidup','hidup','hidup','hidup','hidup','hid up'... 'hidup','hidup','hidup','hidup','hidup','hidup','hidup','hidup','hidup','hid up'... 'hidup','hidup','hidup','hidup','hidup','hidup','hidup','hidup','hidup','hid up'... 'mati','mati','mati','mati','mati','mati','mati','mati','mati','mati'... 'mati','mati','mati','mati','mati','mati','mati','mati','mati','mati'... 'mati','mati','mati','mati','mati','mati','mati','mati','mati','mati',}; hasil=(kel(jarakmin)); set(handles.edit2,'String',hasil); tf=strcmp('hidup',hasil); if tf == 1 %delete(instrfind); %pause(0.1); s = serial('COM5');
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI set(s,'BaudRate',9600); fopen(s); fprintf(s,'1'); fclose(s); delete(s); clear s; set(handles.edit1,'string', '1'); end tf=strcmp('mati',hasil); if tf == 1 %delete(instrfind); %pause(0.1); s = serial('COM5'); set(s,'BaudRate',9600); fopen(s); fprintf(s,'2'); fclose(s); delete(s); clear s; set(handles.edit1,'String', '2'); end tf=strcmp('cepat',hasil); if tf == 1 %delete(instrfind); %pause(0.1); s = serial('COM5'); set(s,'BaudRate',9600); fopen(s); fprintf(s,'3'); fclose(s); delete(s); clear s; set(handles.edit1,'String', '3'); end tf=strcmp('lambat',hasil); if tf == 1 %delete(instrfind); %pause(0.1); s = serial('COM5'); set(s,'BaudRate',9600); fopen(s); fprintf(s,'4'); fclose(s); delete(s); clear s; set(handles.edit1,'String', '4'); end % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton2. function pushbutton2_Callback(hObject, eventdata, handles) set(handles.edit1, 'String', ''); set(handles.edit2, 'String', '');
L12
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L13
axes(handles.axes1) plot(0); axes(handles.axes2) plot(0); axes(handles.axes3) plot(0); % hObject handle to pushbutton2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton3. function pushbutton3_Callback(hObject, eventdata, handles) tutup = questdlg('KELUAR PROGRAM SEKARANG?','KELUAR',... 'YA','Tidak','Tidak'); switch tutup case 'YA' close(); clear all; return; case 'TIDAK' quit cancel; end % hObject handle to pushbutton3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
function edit1_Callback(hObject, eventdata, handles) hasil2=(get(handles.edit1, 'String')); handles.hasil2=hasil2; guidata(hObject, handles) % hObject handle to edit1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit1 as text % str2double(get(hObject,'String')) returns contents of edit1 as a double % --- Executes during object creation, after setting all properties. function edit1_CreateFcn(hObject, eventdata, handles) % hObject handle to edit1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L14
% --- Executes on selection change in popupmenu2. function popupmenu2_Callback(hObject, eventdata, handles) indeks=get(handles.popupmenu2,'Value'); switch indeks case 1 dsamp=1; case 2 dsamp=2; case 3 dsamp=4; end handles.sampling=dsamp; guidata(hObject,handles); % hObject handle to popupmenu2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: contents = cellstr(get(hObject,'String')) contents as cell array % contents{get(hObject,'Value')} returns popupmenu2
returns
popupmenu2
selected
item
from
% --- Executes during object creation, after setting all properties. function popupmenu2_CreateFcn(hObject, eventdata, handles) % hObject handle to popupmenu2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: popupmenu controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % --- Executes on selection change in popupmenu1. function popupmenu1_Callback(hObject, eventdata, handles) indeks=get(handles.popupmenu2,'Value'); switch indeks case 1 bpot=0.1; case 2 bpot=0.2; case 3 bpot=0.3; case 4 bpot=0.4; end handles.pot=bpot; guidata(hObject,handles); % hObject handle to popupmenu1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI % Hints: contents = cellstr(get(hObject,'String')) contents as cell array % contents{get(hObject,'Value')} returns popupmenu1
returns selected
L15
popupmenu1 item
from
Jarak function z=jarak(x,y) z=sqrt(sum((x-y).^2));
Antarmuka database function varargout = dtbase2(varargin) % DTBASE2 M-file for dtbase2.fig % DTBASE2, by itself, creates a new DTBASE2 or raises the existing % singleton*. % % H = DTBASE2 returns the handle to a new DTBASE2 or the handle to % the existing singleton*. % % DTBASE2('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in DTBASE2.M with the given input arguments. % % DTBASE2('Property','Value',...) creates a new DTBASE2 or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before dtbase2_OpeningFcn gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to dtbase2_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help dtbase2 % Last Modified by GUIDE v2.5 16-Jan-2015 16:28:11 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @dtbase2_OpeningFcn, ... 'gui_OutputFcn', @dtbase2_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:});
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI end % End initialization code - DO NOT EDIT % --- Executes just before dtbase2 is made visible. function dtbase2_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to dtbase2 (see VARARGIN) % Choose default command line output for dtbase2 handles.output = hObject; % Update handles structure guidata(hObject, handles); % UIWAIT makes dtbase2 wait for user response (see UIRESUME) % uiwait(handles.figure1); % --- Outputs from this function are returned to the command line. function varargout = dtbase2_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handles.output; % --- Executes on button press in pushbutton1. function pushbutton1_Callback(hObject, eventdata, handles) global x sample_length=1; sample_freq=6000; sample_time=(sample_length*sample_freq); x=wavrecord(sample_time, sample_freq); axes(handles.axes1) plot(x); xlabel('data tercuplik') ylabel('amplitudo') grid on % hObject % eventdata % handles
handle to pushbutton1 (see GCBO) reserved - to be defined in a future version of MATLAB structure with handles and user data (see GUIDATA)
% --- Executes on button press in pushbutton2. function pushbutton2_Callback(hObject, eventdata, handles) global x sample_length=1; sample_freq=6000;
L16
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI sound(x,sample_freq) % hObject handle to pushbutton2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
% --- Executes on button press in pushbutton3. function pushbutton3_Callback(hObject, eventdata, handles) axes(handles.axes1) plot(0); % hObject handle to pushbutton3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton4. function pushbutton4_Callback(hObject, eventdata, handles) batas=handles.pot; sampling=handles.sampling; b0 =batas ; dsamp = sampling; z1=zciri z2=zciri z3=zciri z4=zciri
('cepat',b0,dsamp); ('lambat',b0,dsamp); ('hidup',b0,dsamp); ('mati',b0,dsamp);
z=[z1 z2 z3 z4]; if (b0==0.1) &(sampling==1) save ('db011.mat', 'z'); elseif (b0==0.2) & (sampling==1) save ('db021.mat', 'z'); elseif (b0==0.3) & (sampling==1) save ('db031.mat', 'z'); elseif (b0==0.4) & (sampling==1) save ('db041.mat', 'z'); elseif (b0==0.1) & (sampling==2) save ('db012.mat', 'z'); elseif (b0==0.2) & (sampling==2) save ('db022.mat', 'z'); elseif (b0==0.3) & (sampling==2) save ('db032.mat', 'z'); else if (b0==0.4) & (sampling==2) save ('db042.mat', 'z'); elseif (b0==0.1) & (sampling==4) save ('db014.mat', 'z');
L17
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI elseif (b0==0.2) & (sampling==4) save ('db024.mat', 'z'); elseif (b0==0.3) & (sampling==4) save ('db034.mat', 'z'); elseif (b0==0.4) & (sampling==4) save ('db044.mat', 'z'); end end % hObject % eventdata % handles
handle to pushbutton4 (see GCBO) reserved - to be defined in a future version of MATLAB structure with handles and user data (see GUIDATA)
% --- Executes on button press in pushbutton5. function pushbutton5_Callback(hObject, eventdata, global x sample_length=1; sample_freq=6000; [filename,pathname]=uiputfile('*wav','simpan file if filename~=0 wavwrite(x,sample_freq,[pathname filename]) end % hObject handle to pushbutton5 (see GCBO) % eventdata reserved - to be defined in a future % handles structure with handles and user data
handles)
audio(wav)');
version of MATLAB (see GUIDATA)
% --- Executes on button press in pushbutton6. function pushbutton6_Callback(hObject, eventdata, handles) tutup = questdlg('KELUAR PROGRAM SEKARANG?','KELUAR',... 'YA','Tidak','Tidak'); switch tutup case 'YA' close(); clear all; return; case 'TIDAK' quit cancel; end % hObject handle to pushbutton6 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on selection change in popupmenu1. function popupmenu1_Callback(hObject, eventdata, handles) indeks=get(handles.popupmenu2,'Value'); switch indeks case 1 bpot=0.1; case 2 bpot=0.2; case 3
L18
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L19
bpot=0.3; case 4 bpot=0.4; end handles.pot=bpot; guidata(hObject,handles); % hObject handle to popupmenu1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: contents = cellstr(get(hObject,'String')) contents as cell array % contents{get(hObject,'Value')} returns popupmenu1
returns selected
popupmenu1 item
from
% --- Executes during object creation, after setting all properties. function popupmenu1_CreateFcn(hObject, eventdata, handles) % hObject handle to popupmenu1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: popupmenu controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % --- Executes on selection change in popupmenu2. function popupmenu2_Callback(hObject, eventdata, handles) indeks=get(handles.popupmenu2,'Value'); switch indeks case 1 dsamp=1; case 2 dsamp=2; case 3 dsamp=4; end handles.sampling=dsamp; guidata(hObject,handles); % hObject handle to popupmenu2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: contents = cellstr(get(hObject,'String')) contents as cell array % contents{get(hObject,'Value')} returns popupmenu2
returns
popupmenu2
selected
item
% --- Executes during object creation, after setting all properties. function popupmenu2_CreateFcn(hObject, eventdata, handles) % hObject handle to popupmenu2 (see GCBO)
from
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI % eventdata % handles
L20
reserved - to be defined in a future version of MATLAB empty - handles not created until after all CreateFcns called
% Hint: popupmenu controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
Database function z=zciri (fwav,b0,dsamp) x1=wavread([fwav 'A1.wav']);y=potong(x1,b0);k=xdct(y);e1=ze(k,dsamp); x2=wavread([fwav 'A2.wav']);y=potong(x2,b0);k=xdct(y);e2=ze(k,dsamp); x3=wavread([fwav 'A3.wav']);y=potong(x3,b0);k=xdct(y);e3=ze(k,dsamp); x4=wavread([fwav 'A4.wav']);y=potong(x4,b0);k=xdct(y);e4=ze(k,dsamp); x5=wavread([fwav 'A5.wav']);y=potong(x5,b0);k=xdct(y);e5=ze(k,dsamp); x6=wavread([fwav 'A6.wav']);y=potong(x6,b0);k=xdct(y);e6=ze(k,dsamp); x7=wavread([fwav 'A7.wav']);y=potong(x7,b0);k=xdct(y);e7=ze(k,dsamp); x8=wavread([fwav 'A8.wav']);y=potong(x8,b0);k=xdct(y);e8=ze(k,dsamp); x9=wavread([fwav 'A9.wav']);y=potong(x9,b0);k=xdct(y);e9=ze(k,dsamp); x10=wavread([fwav 'A10.wav']);y=potong(x10,b0);yk=xdct(y);e10=ze(k,dsamp); x11=wavread([fwav 'D1.wav']);y=potong(x11,b0);yk=xdct(y);e11=ze(k,dsamp); x12=wavread([fwav 'D2.wav']);y=potong(x12,b0);k=xdct(y);e12=ze(k,dsamp); x13=wavread([fwav 'D3.wav']);y=potong(x13,b0);k=xdct(y);e13=ze(k,dsamp); x14=wavread([fwav 'D4.wav']);y=potong(x14,b0);k=xdct(y);e14=ze(k,dsamp); x15=wavread([fwav 'D5.wav']);y=potong(x15,b0);k=xdct(y);e15=ze(k,dsamp); x16=wavread([fwav 'D6.wav']);y=potong(x16,b0);k=xdct(y);e16=ze(k,dsamp); x17=wavread([fwav 'D7.wav']);y=potong(x17,b0);k=xdct(y);e17=ze(k,dsamp); x18=wavread([fwav 'D8.wav']);y=potong(x18,b0);k=xdct(y);e18=ze(k,dsamp); x19=wavread([fwav 'D9.wav']);y=potong(x19,b0);k=xdct(y);e19=ze(k,dsamp); x20=wavread([fwav 'D10.wav']);y=potong(x20,b0);yk=xdct(y);e20=ze(k,dsamp); x21=wavread([fwav 'C1.wav']);y=potong(x21,b0);k=xdct(y);e21=ze(k,dsamp); x22=wavread([fwav 'C2.wav']);y=potong(x22,b0);k=xdct(y);e22=ze(k,dsamp); x23=wavread([fwav 'C3.wav']);y=potong(x23,b0);k=xdct(y);e23=ze(k,dsamp); x24=wavread([fwav 'C4.wav']);y=potong(x24,b0);k=xdct(y);e24=ze(k,dsamp); x25=wavread([fwav 'C5.wav']);y=potong(x25,b0);k=xdct(y);e25=ze(k,dsamp); x26=wavread([fwav 'C6.wav']);y=potong(x26,b0);k=xdct(y);e26=ze(k,dsamp); x27=wavread([fwav 'C7.wav']);y=potong(x27,b0);k=xdct(y);e27=ze(k,dsamp); x28=wavread([fwav 'C8.wav']);y=potong(x28,b0);k=xdct(y);e28=ze(k,dsamp); x29=wavread([fwav 'C9.wav']);y=potong(x29,b0);k=xdct(y);e29=ze(k,dsamp); x30=wavread([fwav 'C10.wav']);y=potong(x30,b0);yk=xdct(y);e30=ze(k,dsamp); z=[e1 e2 e3 e4 e5 e6 e7 e8 e9 e10 e11 e12 e1 3 e14 e15 e16 e17 e18 e19 e20 e21 e22 e23 e24 e25 e26 e27 e28 e29 e30];
Normalisasi x1=x0/max(abs(x0));
Batas potong % Potong kiri b1=find(x1>b0 | x1<-b0); x1(1:b1(1))=[];
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
% Potong kanan x2=fliplr(x1'); b2=find(x2>b0 | x2<-b0); x2(1:b2(1))=[]; x2=fliplr(x2); bp=x2;
Zero padding %Zero padding usig=2048; x0(usig)=0; x0=x0(1:dsamp:usig);
% penyesuaian ukuran sinyal
Ekstraksi ciri %DCT x0=abs(dct(x0)); x1=abs(log(x0)); x1(1)=0; x1=reshape(x1,64,[]); x1=mean(x1); x1=x1(:); y=x1;
Serial dan pengturan kecepatan kipas DC pada mikrokontroer #include <mega8.h> #include <delay.h> #ifndef RXB8 #define RXB8 1 #endif #ifndef TXB8 #define TXB8 0 #endif #ifndef UPE #define UPE 2 #endif #ifndef DOR #define DOR 3 #endif #ifndef FE #define FE 4 #endif #ifndef UDRE #define UDRE 5
L21
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI #endif #ifndef RXC #define RXC 7 #endif #define FRAMING_ERROR (1<
L22
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI #endif rx_buffer_overflow=1; } } } #ifndef _DEBUG_TERMINAL_IO_ // Get a character from the USART Receiver buffer #define _ALTERNATE_GETCHAR_ #pragma used+ char getchar(void) { char data; while (rx_counter==0); data=rx_buffer[rx_rd_index++]; #if RX_BUFFER_SIZE != 256 if (rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0; #endif #asm("cli") --rx_counter; #asm("sei") return data; } #pragma used#endif // USART Transmitter buffer #define TX_BUFFER_SIZE 8 char tx_buffer[TX_BUFFER_SIZE]; #if TX_BUFFER_SIZE <= 256 unsigned char tx_wr_index,tx_rd_index,tx_counter; #else unsigned int tx_wr_index,tx_rd_index,tx_counter; #endif // USART Transmitter interrupt service routine interrupt [USART_TXC] void usart_tx_isr(void) { if (tx_counter) {
L23
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI --tx_counter; UDR=tx_buffer[tx_rd_index++]; #if TX_BUFFER_SIZE != 256 if (tx_rd_index == TX_BUFFER_SIZE) tx_rd_index=0; #endif } } #ifndef _DEBUG_TERMINAL_IO_ // Write a character to the USART Transmitter buffer #define _ALTERNATE_PUTCHAR_ #pragma used+ void putchar(char c) { while (tx_counter == TX_BUFFER_SIZE); #asm("cli") if (tx_counter || ((UCSRA & DATA_REGISTER_EMPTY)==0)) { tx_buffer[tx_wr_index++]=c; #if TX_BUFFER_SIZE != 256 if (tx_wr_index == TX_BUFFER_SIZE) tx_wr_index=0; #endif ++tx_counter; } else UDR=c; #asm("sei") } #pragma used#endif // Standard Input/Output functions #include <stdio.h> #define ADC_VREF_TYPE 0x40 // Read the AD conversion result unsigned int read_adc(unsigned char adc_input) { ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
L24
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L25
// Delay needed for the stabilization of the ADC input voltage delay_us(10); // Start the AD conversion ADCSRA|=0x40; // Wait for the AD conversion to complete while ((ADCSRA & 0x10)==0); ADCSRA|=0x10; return ADCW; } // Declare your global variables here void main(void) { int b=0; char terima; // Declare your local variables here // Input/Output Ports initialization // Port B initialization //
Func7=Out
Func6=Out
Func5=Out
Func4=Out
Func3=Out Func2=Out
Func1=Out
Func0=Out // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0 PORTB=0x00; DDRB=0xFF; // Port C initialization // Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTC=0x00; DDRC=0x00; // Port D initialization //
Func7=Out
Func6=Out
Func5=Out
Func4=Out
Func3=Out Func2=Out
Func1=Out
Func0=Out // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0 PORTD=0x00; DDRD=0xFF; // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped TCCR0=0x00;
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI TCNT0=0x00; // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: 0.977 kHz // Mode: Fast PWM top=0x03FF // OC1A output: Non-Inv. // OC1B output: Non-Inv. // Noise Canceler: Off // Input Capture on Falling Edge // Timer1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=0xA3; TCCR1B=0x0D; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; // Timer/Counter 2 initialization // Clock source: System Clock // Clock value: Timer2 Stopped // Mode: Normal top=0xFF // OC2 output: Disconnected ASSR=0x00; TCCR2=0x00; TCNT2=0x00; OCR2=0x00; // External Interrupt(s) initialization // INT0: Off // INT1: Off MCUCR=0x00; // Timer(s)/Counter(s) Interrupt(s) initialization
L26
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI TIMSK=0x00; // USART initialization // Communication Parameters: 8 Data, 1 Stop, No Parity // USART Receiver: On // USART Transmitter: On // USART Mode: Asynchronous // USART Baud Rate: 9600 (Double Speed Mode) UCSRA=0x02; UCSRB=0xD8; UCSRC=0x86; UBRRH=0x00; UBRRL=0x0C; // Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80; SFIOR=0x00; // ADC initialization // ADC Clock frequency: 500.000 kHz // ADC Voltage Reference: AVCC pin ADMUX=ADC_VREF_TYPE & 0xff; ADCSRA=0x81; // SPI initialization // SPI disabled SPCR=0x00; // TWI initialization // TWI disabled TWCR=0x00; // Global enable interrupts #asm("sei") while (1) { terima=getchar(); if ( terima == 0x31) { b=4; OCR1B=1019;
L27
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI } if ( terima == 0x32) { b=0; PORTB.2=0; } if ( terima == 0x33) { switch(b){ case 0 : OCR1B=236; b=b+1; break; case 1 : OCR1B=417; b=b+1; break; case 2 : OCR1B=731; b=b+1; break; case 3 : OCR1B=1019; b=b+1; break; } } if ( terima == 0x34) { switch(b){ case 4 : OCR1B=731; b=b-1; break; case 3 : OCR1B=417; b=b-1;
L28
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI break; case 2 : OCR1B=236; b=b-1; break; case 1 : PORTB.2=0; b=b-1; break; } } } }
L29
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L30
Hasil Perbandingan Rata – Rata Ekstraksi Ciri Pada Ucapan Yang Telah Disimpan Dalam Databse Dengan Setiap Ucapan Pengenalan Menggunakan Tiga Pengguna Yang Berbeda
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L31
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L32