P. 1
7105040018 Pengubah Teks Ke Suara

7105040018 Pengubah Teks Ke Suara

|Views: 1,161|Likes:
Published by Aji Marchisio

More info:

Published by: Aji Marchisio on May 08, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

02/23/2015

pdf

text

original

PROYEK AKHIR

ALGORITMA PENGUBAH DARI TEKS KE SUARA UNTUK APLIKASI ALAT BANTU BICARA TEXT TO SPEECH ALGORITHM FOR SPEAKING AID APPLICATION

Oleh: MAPOLA ABDIA RAYANA NRP. 7105.040.018

Dosen Pembimbing : Eru Puspita, S.T., M.Kom. NIP. 19691231.199501.1.001

JURUSAN TEKNIK ELEKTRONIKA POLITEKNIK ELEKTRONIKA NEGERI SURABAYA INSTITUT TEKNOLOGI SEPULUH NOPEMBER SURABAYA 2009

PROYEK AKHIR ALGORITMA PENGUBAH DARI TEKS KE SUARA UNTUK APLIKASI ALAT BANTU BICARA TEXT TO SPEECH ALGORITHM FOR SPEAKING AID APPLICATION

Oleh: MAPOLA ABDIA RAYANA NRP. 7105.040.018

Dosen Pembimbing : Eru Puspita, S.T., M.Kom. NIP. 19691231.199501.1.001

JURUSAN TEKNIK ELEKTRONIKA POLITEKNIK ELEKTRONIKA NEGERI SURABAYA INSTITUT TEKNOLOGI SEPULUH NOPEMBER SURABAYA 2009

ALGORITMA PENGUBAH DARI TEKS KE SUARA UNTUK APLIKASI ALAT BANTU BICARA

Oleh : MAPOLA ABDIA RAYANA NRP. 7105.040.018 Proyek Akhir ini Diajukan Sebagai Salah Satu Syarat Untuk Memperoleh Gelar Sarjana Sains Terapan (S.ST.) di Politeknik Elektronika Negeri Surabaya Institut Teknologi Sepuluh Nopember Surabaya Disetujui Oleh Dosen Penguji Proyek Akhir : 1. Ir.Moch.Rochmad, M.T. NIP. 19620304.199103.1.002 2. Ardik Wijayanto, S.T., M.T. NIP. 19770620.200212.1.002 3. Eko Henfri B., S.ST., M.Eng. NIP. 19791223.200312.1.002 Mengetahui : Ketua Jurusan Teknik Elektronika 1. Eru Puspita, S.T., M.Kom. NIP. 19691231.199501.1.001

Dosen Pembimbing:

Ir. Rika Rokhana, M.T. NIP. 19690905.199802.2.001

MMC digunakan untuk menyimpan database suara 1170 fonem dalam format *. LPF (Low Pass Filter) aktif orde 4 . LCD (Liquid Crystal Display). 8bit dan mono. Sehubungan dengan hal di tersebut maka alat portabel ini dapat mengkonversi isi kalimat menjadi suara. Beberapa kata yang tidak dikenali disebabkan masih adanya suara diam pada penggabungan antar fonem. MMC (Multi Media Card) dan software pengolah data yaitu software konversi Teks ke Fonem dan Fonem ke Suara. ATmega8. Mikrokontroler ATmega8.62% dari 10 sample kalimat. Hasil pengujian persentase suara output dikenali oleh lawan bicara adalah 81. MMC. Seorang tunawicara dapat memasukan kalimat yang ingin dikatakan melalui keypad kemudian memperdengarkan hasil konversi yang berupa suara kepada lawan bicara. Kata kunci: Text to speech.ABSTRAK Komunikasi merupakan hal yang vital dalam kehidupan sehari-hari. Para penyandang cacat tunawicara akan sangat kesulitan dalam berkomunikasi dengan orang yang tidak menguasai bahasa isyarat. Untuk merekonstruksi sinyal digital menjadi sinyal analog digunakan PWM (Pulse Width Modulation) dengan frekuensi sampling 8KHz. PWM-DAC.WAV. Software pada sistem ini terdiri dari software akses ke hardware antara lain Keypad.

ATmega8. To reconstruct the digital signal become analogous signal.ABSTRACT Communications represent the vital matter in everyday life. MMC ( Multi of Media Card) and software data processor that is software convert the Text to Phoneme and Phoneme to Voice. 8bit and mono is used. A dumb people can enter of sentence wish to told through keypad. All dumb people will very difficulty in communicating with one who do not master the sign language. Some words which not recognized are be caused by silence interrupt between phoneme concatenation. then sound off result of conversion as a voice to opponent speak. Software at this system is consist of software access to the hardware for example Keypad. LCD ( Liquid Crystal Display ). Keyword: Text to speech. PWM-DAC. Hence this portable appliance can convert the sentence content become the voice. Microcontroller ATmega8.62% from 10 sample sentence. PWM ( Pulse Width Modulation) with the sampling frequency 8KHz. The output percentage result of voice examination recognized by opponent speak is 81. WAV. MMC is used as the storage of 1170 phoneme voice database in format *. MMC. Order 4 of active LPF ( Low Pass Filter) .

Surabaya.KATA PENGANTAR Puji Syukur Alhamdulillah kehadlirat Allah SWT yang senantiasa selalu memberikan Ridho dan RahmatNya sehingga penulis dapat menyelesaikan proyek akhir ini dengan judul: “ALGORITMA PENGUBAH DARI TEKS KE SUARA UNTUK APLIKASI ALAT BANTU BICARA” Penulis berharap semoga tugas akhir ini dapat memberi manfaat bagi penulis dan rekan-rekan mahasiswa pada khususnya serta seluruh pembaca pada umumnya. Juli 2009 Penulis . Terima kasih.

5. Teman-teman. Juli 2009 Penulis . Dosen Penguji proyek akhir. 4. Kami menyadari bahwa terwujudnya proyek akhir ini tak lepas dari bantuan. bimbingan dan dukungan dari berbagai pihak. hidayah serta inayah-Nya sehingga proyek akhir ini dapat kami selesaikan dengan baik. dan Kakakku Yoyok S. Ibuku Sri Rahayu. taufik.UCAPAN TERIMA KASIH Alhamdulillah.P. 2. M. Oleh karena itu dengan segala kerendahan hati kami sampaikan terima kasih kepada : 1. Dosen Pembimbing Eru Puspita. Surabaya. atas segala limpahan rahmat.Kom. S. Dwi Lisnasari (tim proyek akhir bagian hardware). 6.T. Dosen-dosen Pengajar Elektronika.. 3. Ayahku Mudjiono. Adikku Arafi’u S. Serta semua pihak yang telah membantu baik secara langsung maupun tidak langsung.

.................. TEORI PENUNJANG 2............................... 2.......................................................... Command dan respon.. 1.......................... Diagram sistem................................... 2.. PENDAHULUAN 1.........................5................................... 3..............................................…… 2.........4..........1........................................................... Pembuatan database suara fonem......................... 3.....................................2................ 2......4.........3............................................ DAFTAR ISI..................... SPI(Serial Peripheral Interface) Mode...5................................ 1.....6...................................................... 2.............................. 1..... BAB I.................. Permasalahan..................1...... ABSTRAK .................. Tujuan .......................................................................3....................... 1.............. ............................................................ HALAMAN PENGESAHAN ................. Mikrokontroler ATmega8 ....... Flowchart sistem......................... i ii iii iv v vi vii ix xi 1 1 2 2 2 3 5 5 7 7 7 8 8 9 10 11 11 13 17 19 20 .....3.................. 2................ 2............. PWM (Pulse Width Modulation)..... ABSTRACT ........ MMC (Multi Media Card) 2..............1..............7................. .................................................... UCAPAN TERIMA KASIH. Sistem Text To Speech..... Sistematika Pembahasan ............................3.................... Write/Read MMC.......................................2....... 2.........................8........................................................ SPI (Serial Peripheral Interface)........................................ BAB III PERENCANAAN DAN PEMBUATAN SOFTWARE 3............................................................ CodeVision AVR .............. 2................2.... KATA PENGANTAR ............DAFTAR ISI HALAMAN JUDUL ....................................................................................... Ace of WAV.........3....3............................................................. Batasan Masalah..............5............................. WinHex.... DAFTAR GAMBAR........................................................2..............4...... SPI Respon................................ Latar Belakang .3.. SPI Command Set........................ 2................................ Metodologi ...................................................4.............................................................1.......................................3......... 1............................................................................3........ 2.......... DAFTAR TABEL................. BAB II....................

.... PENGUJIAN PER BLOK 4... 3.7..6.... software konversi ke sinyal analog (PWM)..2.. Pembuatan software akses ke MMC ...........5.................................. Saran.......... 4...... 3...……….......... BAB V PENUTUP 5... Tampilan output sinyal suara sistem...... ....1................... Pembuatan software konversi teks ke fonem.......................2..............9...............……………………………….....2..3.........2....11. software untuk mencari alamat fonem pada MMC..................... ketepatan penyusunan database suara.... 3......2... 4.......................... 4.......…………………………………….. Perancangan software untuk mencari alamat fonem di dalam MMC. 4.................. 3....... software konversi teks ke fonem...Pembuatan software konversi ke sinyal analog (PWM)........... Pengujian kualitas output suara ………………………..1...........1....................3..Perencanaan software konversi ke sinyal analog (PWM) ......... Kesimpulan........4......................1... Perancangan software konversi teks ke fonem…..... DAFTAR PUSTAKA LAMPIRAN 26 30 33 35 38 42 44 48 51 53 55 56 59 60 61 62 65 69 69 ................ 4..... Pembuatan software untuk mencari alamat fonem di dalam MMC...... Perancangan software akses ke MMC........8......... BAB IV PENGUJIAN ALAT DAN ANALISA 4.. software akses ke MMC.........2 PENGUJIAN SECARA KESELURUHAN 4...1... 4.......4.......................................1..... Pengukuran waktu akses ke keypad...... 3.....3..10...1... 5...........4.. ..... 4......5..........1.........……………………......2. 3............2....... 3.............1... Pengukuran waktu rata-rata output suara per fonem. 4.............

Gambar 3............ Gambar 3.. Tampilan CodeVisionAVR................ ..3......... Gambar 3.. WinHex.... Konfigurasi Pin MMC... Gambar 3......... Metode pembuatan database suara.. Gambar 3..16.....14.. Sistem Text To Speech……………………….. .…........ Gambar 3...... Penentuan alamat untuk pola “vk”………………........... Gambar 3.6...20.. ............ Struktur format *.22......…. .……........... .. Gambar 3.... Gambar 3....wav…………………………….. Flowchart sistem keseluruhan………………......23.. Gambar 2..... Penentuan alamat untuk pola “kv”……………….... Gambar 2... R1 Respon dari MMC............ Proses rekonstruksi sinyal analog……………..........9................ Satu Master Satu Slave... Gambar 3.. Mengatur nilai threshold…………………. Ace of Wav....2.7........... Gambar 3..... ..... Tool “search” software WinHex………………........... Gambar 3..11.................... Program konversi ke pola konsonan dan vokal….....12......................... .... Gambar 3..9. .......…... Gambar 2........13............4...DAFTAR GAMBAR Gambar 2.2............ Gambar 3. Deklarasi fonem KKVK.......................... ... .... Format paket data……………………………..........24..........................3................ ...... KKV dan VKK……….. Gambar 2.................... Gambar 3..17......19... Aliran data dari MMC ke speaker………………............... Bagian sinyal yang akan dihapus...... Gambar 3............ Gambar 2... Flowchart Konverter Teks ke Fonem.......... Gambar 3........ Gambar 3... Gambar 3........... ..... Diagram sistem………………………………........15........…….1.......... .. Read single blok........ Sinyal yang telah diberi data 1……………………... Gambar 3.......... . Gambar 2.......................1.. Gambar 2.. Penentuan alamat untuk pola “vkk”……………. Gambar 3. Command Frame MMC..... Program konversi ke fonem untuk 4 huruf………........... Register SPCR ATmega8………………………. Cuplikan program menentukan alamat untuk 1 huruf..... Sinyal PWM dengan berbagai Duty Cycle...…...........11......................8... Gambar 3. ................ ..7........... Cuplikan tabel seluruh fonem beserta alamatnya.....10..... Tampilan Microsoft Visual C++ 6..10................5........................ . Sinyal fonem ..13.. Gambar 2................ Gambar 2......... Sinyal setelah diatur…………………………….….21.5.. Gambar 3. Pulsa PWM...18....12.... Gambar 2....... ...4. Konfigurasi pin ATmega8………………………........8.... Gambar 2........... Gambar 3.0………………. . 5 6 7 7 8 8 9 9 10 11 12 13 13 15 16 16 19 21 22 23 24 25 26 27 30 31 31 32 32 34 34 35 36 36 37 38 38 .... .............6..... Gambar 2... Deklarasi referensi pembanding…………….

28.. Register SPSR ATmega8………………………… . Pengujian pengambilan data dari MMC……….2.. Gambar 4...…. Gambar 4...... Pengujian software penentu alamat fonem……….. Program konversi ke sinyal analog…………….29...… .36.. Inisialisasi MMC pada mode SPI……………..26... .. Gambar 4. Inisialisasi ATmega8 pada mode SPI……………. Program pengambilan data dari MMC………....25...… .. Gambar 4. Flowchart membaca data dari MMC…………….. Gambar 3.Gambar 3. Gambar 3. Gambar 3......... Program pembangkit PWM duty cycle 50%…… ...33......8..1.... Gambar 3.....3. Gambar 4. Gambar 3..… . Mengambil data dari MMC……………………….7.. Gambar 4.. Tampilan suara “selamat pagi” sistem…………. .. Gambar 4.... Gambar 4..…. Gambar 3.32.31... Gambar 3..... Alamat data “<data_MMC>” di MMC………...... Pengujian software konversi teks ke fonem……. Gambar 4.. Flowchart inisialisasi MMC…………………….4.. Timing Diagram Mode Fast PWM……………......27...….. Inisialisasi PWM………………………………. Gambar 3.......5.. Register OCR1A………………………………. Tampilan suara “selamat pagi” IndoTTS…..30. .. 40 40 41 42 43 43 44 46 47 48 49 49 52 53 55 56 57 57 59 63 64 64 ..9..34.10... Pengujian penyusunan database suara………......… .. Gambar 4. Register TCCR1A……………………………….…....... Register TCCR1B……………………………… .... Tampilan fonem “se-la-mat pa-gi” database .35..… . . Gambar 3.6.. Gambar 3.…. Gambar 3.......

.2.7... Hasil pengambilan data dari MMC…………………...4.. Tabel 4. Waktu untuk memasukkan teks melalui keypad……. Command Set MMC………………………………….. . Mode Timer 1…………………………………….4....…... Hasil identifikasi pendengar dari 10 kalimat beraturan... 8 39 45 45 46 52 54 55 58 59 41 42 66 66 .2. . ....8. Tabel 4.1.... . Tabel 4.6. Pola keluaran pin OC1A/OC1B Mode Fast PWM..... Tabel 4... Hasil identifikasi pendengar dari 10 kalimat tidak beraturan…...…… . Skala Clock Timer 1…………………………………..…... Tabel 4. Hubungan Frekuensi SCK dan Oscillator……………. Tabel 3... Hasil pengujian software penentu alamat fonem…….. Hasil pengujian penyusunan database suara……... Hasil pengujian konversi teks ke fonem……………… .9. ..DAFTAR TABEL Tabel 2.. Pengujian PWM……………………………………… ... Tabel 3. Tabel 4. Tabel 3... .5...1. Tabel 3. .3.…………………………………. Waktu rata-rata per fonem…………………………….1. Tabel 4. Tabel 4... Tabel 4... ....3.

1. . Kita tahu pentingnya komunikasi adalah sarana untuk berhubungan dengan orang lain yaitu sebagai makhluk sosial yang tidak dapat hidup sendiri tanpa bantuan orang lain. Mereka mungkin akan dapat menyampaikan pesan kepada orang lain melalui bahasa isyarat atau tulisan tetapi tidak dengan suara. Padahal pada saat ini banyak orang normal yang tidak menguasai bahasa isyarat sehingga tidak akan terjadi komunikasi antara penyandang cacat tunawicara dan orang normal yang tidak menguasai bahasa isyarat. Berdasarkan permasalahan di atas maka dibuatlah alat bantu bicara portabel untuk tunawicara yang dapat mengubah masukan sebuah tulisan ke suara. dalam kehidupan sehari-hannya akan sangat kesulitan dalam berkomunikasi.kita tentu mudah melakukan komunikasi dengan orang lain tetapi hal ini berbeda bagi para penderita cacat tunawicara.293 orang [8.2. Sebagai orang yang dianugerahi kesempurnaan organ tubuh.menyampaikan perasaan atau keinginan kita.2. 1. 1.1.hal. Komunikasi dapat digunakan untuk membeli sesuatu yang kita butuhkan. menyampaikan keadaan darurat kepada orang lain dan banyak lagi yang dapat kita lakukan. Saat ini masih jarang alat yang murah dan mudah dibawa untuk mengkonversikan dari tulisan ke suara sehingga mampu membantu para penyandang cacat tunawicara dalam melakukan komunikasi. LATAR BELAKANG Jumlah penyandang cacat bisu (tunawicara) di Indonesia menurut Susenas 2003 adalah sebanyak 118.BAB I PENDAHULUAN 1.1]. TUJUAN Tujuan Umum Tujuan umum dari pembuatan Proyek akhir ini adalah : • Mendesain dan membuat alat yang murah dan mudah dibawa (portabel ) sebagai alat bantu bicara untuk penyandang tuna wicara.

3.4. 1. 2. Tujuan Khusus Tujuan khusus dari proyek akhir ini adalah untuk melengkapi kurikulum studi pada program Diploma IV di Politeknik Elektronika Negeri Surabaya Institut Teknologi Sepuluh Nopember Surabaya. 4. . 3.3.2. Membuat software konversi dari teks ke fonem. Alat hanya dapat membaca kata-kata yang sesuai dengan isi database fonem. Mengakses database suara dari MMC. 1. Membuat software konversi dari fonem ke suara. Sistem ini tidak menampilkan pilihan untuk penerapan intonasi. PERMASALAHAN Adapun permasalahan pada pembuatan sistem ini adalah : 1. BATASAN MASALAH Batasan masalah dalam proyek akhir ini adalah : 1. Tulisan yang dapat dibaca dengan tepat hanya yang sesuai dengan ejaan bahasa indonesia yang benar (bukan berupa singkatan). Membuat database suara dan menyimpannya di MMC (Multi Media Card). Sistem tidak dapat membaca tulisan berupa angka. 2. 1. 4.• Membuat alat konversi dari teks ke suara berbasis mikrokontroler Dengan selesainya proyek akhir ini diharapkan dapat menghasilkan suatu alat yang dapat mengubah isi teks manjadi suara sehingga bermanfaat untuk membantu interaksi penyandang tuna wicara yang memiliki keterbatasan untuk berkomunikasi.2.

MMC. SPI. 4. konversi teks ke fonem dan konversi fonem ke suara. tujuan. Bab II Teori Penunjang Teori – teori berisi tentang pembahasan secara garis besar sistem text to speech. 8. metodologi. 6. dan sistematika pembahasan masalah yang digunakan dalam pembuatan proyek akhir ini. PWM-DAC dan tools pendukung lainnya. perumusan masalah. batasan masalah.5. Studi literatur Pembuatan database fonem Perancangan software untuk mengakses MMC Perancangan software konverter teks ke fonem Perancangan software konverter fonem ke suara Integrasi sistem dan pengujian Analisa sistem Pembuatan laporan SISTEMATIKA PEMBAHASAN Sistematika pembahasan dalam proyek akhir ini adalah sebagai berikut : Bab I Pendahuluan Menguraikan tentang latar belakang. 5. Bab III Perencanaan dan Pembuatan Software Menguraikan tentang tahap-tahap perencanaan dan pembuatan software dari protokol akses MMC. . 3. mikrokontroller AVR ATmega8 . 7. 2.1. 1.6. METODOLOGI Metode yang digunakan dalam perencanaan dan penyelesaian proyek akhir ini adalah : 1.

.Bab IV Pengujian Alat dan Analisa Membahas tentang pengujian alat dan analisa software dari sistem yang telah dibuat. Bab V Penutup Berisi tentang kesimpulan dan saran yang berdasarkan analisa hasil data yang diperoleh.

2. MIKROKONTROLER ATmega8 Kontrol utama dari keseluruhan sistem pada proyek akhir ini diproses oleh mikrokontroler ATmega8. Kelebihan dari ATmega8 sehingga digunakan sebagai kontrol utama adalah sebagai berikut: Mempunyai performa yang tinggi (berkecapatan akses maksimum 16MHz) dan tetapi hemat daya . Bagian ini bersifat sangat language dependant. Sistem Text To Speech Bagian Konverter Teks ke Fonem berfungsi untuk mengubah kalimat masukan dalam suatu bahasa tertentu yang berbentuk teks menjadi rangkaian kode-kode bunyi yang biasanya direpresentasikan dengan kode fonem. SISTEM TEXT TO SPEECH Sistem Text to Speech pada prinsipnya terdiri dari dua sub sistem. bagian ini harus dikembangkan secara lengkap khusus untuk bahasa tersebut. yaitu : a) bagian Konverter Teks ke Fonem (Text to Phoneme).2. Untuk suatu bahasa baru.BAB II TEORI PENUNJANG 2.1.1. Berdasarkan kode-kode tersebut.1].hal. bagian Konverter Fonem ke Ucapan akan menghasilkan bunyi atau sinyal ucapan yang sesuai dengan kalimat yang ingin diucapkan[4. durasi serta pitch-nya. Text to Phoneme (a) Phoneme to Speech (b) Text Speech Gambar 2. Bagian Konverter Fonem ke Ucapan akan menerima masukan berupa kode-kode fonem serta pitch dan durasi yang dihasilkan oleh bagian sebelumnya. serta b) bagian Konverter Fonem ke Ucapan (Phoneme to Speech).

5V.5 . Konfigurasi pin dan fungsinya tampak pada gambar 2.Dimensi yang relatif kecil (28 pin) Memori untuk program flash cukup besar yaitu 8K Byte Memori internal SRAM sebesar 1K Byte EEPROM sebesar 512 byte yang dapat diprogram saat operasi Port komunikasi SPI Komunikasi serial standar USART Tersedia 3 chanel PWM Tersedia 3 chanel timer/counter (2 untuk 8 bits dan 1 untuk 16 bits) Dapat beroperasi pada tegangan rendah 4.2] 2. Bahkan teknologi mikrokontroler pun sudah mulai menggunakan MMC sebagai media penyimpanan data menggantikan EEPROM(Electrically Erasable Programmable Read Only Memory). . mp4 dan handphone.3.2.5.1] Penggunaan MMC semakin populer. MMC (Multi Media Card) [7. handycam.2.hal. mp3.hal. Konfigurasi pin ATmega8[5. tidak hanya untuk menyimpan data digital pada kamera digital. Gambar 2.

3. R3.2. Konfigurasi Pin MMC 2.1.Konfigurasi pin-pinnya tampak pada gambar 2. SPI(Serial Peripheral Interface ) Mode Merupakan cara mengkoneksikan MMC dengan mikrokontroler. Command dan respon Untuk mengontrol kerja dari MMC diperlukan beberapa command. R2.3. dapat dilihat pada kondisi respon R1. MMC dan mikrokontroler sudah memiliki fasilitas SPI sehingga sangat mudah untuk menguhubungkannya. Selain itu untuk mengetahui kondisi MMC setelah diberi suatu command.3. Gambar 2. 2.3. Proses transfer data dari MMC ke mikrokontroler atau sebaliknya dapat dilihat pada gambar . Kecepatan aksesnya pun cukup tinggi yaitu mencapai 8 MHz.

R2 dan R3. Command Frame MMC 2.4. merupakan command digunakan untuk mengakses MMC pada sistem ini. Jika tidak ada Error maka R1 akan bernilai 00000000(biner). Tabel 2.Gambar 2.3. Response R1 R1 R1 R1 SPI Respon Argument None(0) None(0) Block Length (31:0) Address 4 Bytes (31:0) Fungsi Reset Proses inisialisasi card Mengatur panjang blok Membaca blok MMC Setiap MMC memperoleh command maka MMC akan memberikan respon.5. Command Set MMC CMD CMD0 CMD1 CMD16 CMD17 2.1.3. Pada tabel 2.4. Pada MMC terdapat 3 macam format respon R1. SPI Command Set Setiap command memiliki fungsi yang spesifik dan menghasilkan respon(response ) yang berbeda. Gambar 2.1. Ada beberapa command yang terdapat pada MMC.3. R1 Respon dari MMC . Dari respon tersebut dapat diketahui jenis Error yang terjadi. ditandai dengan nilai 1 pada bit yang bersesuaian. Untuk command-command diatas hanya menghasilkan respon R1.

hal. satu slave Satu master. Fungsi dari Serial Peripheral Interface Bus adalah untuk menjalankan pertukaran data biner secara serial. Satu master.4 SPI (Serial Peripheral Interface Bus) Serial Peripheral Interface Bus yaitu suatu terminal yang menghubungkan antara terminal komunikasi data dari suatu peralatan ke terminal komunikasi data peralatan lain[1.2. Format paket data 2.5. Pada sistem ini hanya digunakan proses pembacaan (Read) dengan metode single blok.3.7. 2. Read single blok Format paket data dari MMC tampak pada gambar 2.7.6. Gambar 2. Write/Read MMC Proses Write/Read ada 2 macam cara yaitu per blok (single blok) atau multiple blok. beberapa slave . Gambar 2. Ada 2 macam mode SPI yaitu 1. Perbedaan dari kedua macam cara ini terletak pada besar data yang ditransfer dalam sekali memberikan command.28].

Ace of WAV Ace of WAV merupakan salah satu software yang mempunyai kemampuan untuk mengolah suatu sinyal suara digital berformat WAV . Sumber clock antara master dan slave berasal dari satu sumber. Tidak terbatas pada komunikasi 8 bits 2. Sedikit sekali menggunakan jumper (wire) 4. sehingga rangkaian dapat lebih sederhana. MOSI (master Output . adalah hubungan Serial Peripheral Interface Bus antara satu master dan satu slave.5.8. slave Output ) merupakan jalur komunikasi data Output pada slave yang dihubungkan ke jalur input master. MISO (master input. Slave mendapat clock dari Output master. Hardware interface sederhana 2. Yang berfungsi sebagai master dalam komunikasi ini adalah mikrokontroler sedangkan yang berfungsi sebagai slave adalah media penyimpanan database suara (MMC). Keuntungan lainnya jika di menggunakan SPI adalah 1. Kecepatan transfer data sangat tinggi 3.Gambar 2. slave akan aktif jika jalur SS ini mendapat sinyal low dari Output master. Gambar 2. slave input) merupakan jalur komunikasi data Output pada master yang dihubungkan ke jalur input slave. . SS aktif low. SS (slave select) berfungsi sebagai jalur pengaktifan slave. Satu Master Satu Slave Keterangan: SCLK adalah serial clock .8.

mengatur jumlah sampling sebanyak 2000 sample dan untuk menandai akhir data dari tiap-tiap fonem. Selain itu juga dapat digunakan untuk memanipulasi data per Byte dari sebuah file.polyhedric. . WINHEX WinHex dibuat oleh X-Ways Software Technology AG. frekuensi.9. Software ini dapat di download secara gratis versi evaluasi di http://winhex.6. Software ini dapat di download secara gratis versi evaluasi di http://www.en. ukuran bit dan sebagaianya dapat dimodifikasi dengan mudah melalui software ini. Gambar 2. Gambar 2. Pada gambar 2. menunjukkan tampilan dari Ace of WAV dan tampilan dari samplingnya.com/download[10]. merupakan tampilan WinHex .softonic.10. Merupakan sofware yang dapat menampilkan data sekaligus alamat biner dari sebuah file.9. Ace of WAV 2. Pada proyek akhir ini digunakan sebagai alat bantu untuk melakukan perekaman.com/software/ace[9]. Pada proyek akhir ini digunakan sebagai alat bantu untuk melihat alamat awal database suara yang tersimpan di MMC.Properti yang dimiliki sebuah sinyal suara seperti amplitudo.

mendownload program) serta tampilannya terlihat menarik dan mudah dimengerti. Beberapa kelebihan yang dimiliki oleh CodeVisionAVR antara lain: 1.ro/html/download. Meskipun CodeVisionAVR termasuk software komersial. Mampu membangkitkan kode program secara otomatis dengan fasilitas CodeWizardAVR.Gambar 2. CodeVisonAVR versi evaluasi ini dapat didownload di http://www. CodeVisionAVR CodeVisionAVR merupakan salah satu software compiler yang khusus digunakan untuk mikrokontroler keluarga AVR. 4. WinHex 2. 3. Fasilitas yang disediakan lengkap(mengedit program. Memiliki fasilitas untuk mendownload program langsung ke mikrokontroler dengan hardware tambahan. Menggunakan IDE(integrated Development Environment). namun kita tetap dapat menggunakannya dengan mudah karena terdapat versi evaluasi yang disediakan secara gratis walaupun dengan kemampuan yang dibatasi.htm[2.10. 2.122].7.hal.hpinfotech. . mengcompile program.

Tampilan CodeVisionAVR 2.11. Gambar 2. merupakan tampilan dari software CodeVisionAVR. Pada gambar 2. Memiliki terminal komunikasi serial yang terintegrasi dalam CodeVisionAVR. . 6.5.11. contohnya AVRStudio.8. Meiliki fasilitas debugger sehingga dapat menggunakan software compiler lain untuk mengecek kode assemblernya. PWM (Pulse Width Modulation) Pulse Width Modulation (PWM) adalah sebuah cara memanipulasi lebar dari pulsa dalam perioda yang konstan untuk mendapatkan tegangan rata-rata yang berbeda[13].

..... Gambar 2. Pulsa PWM Untuk mengetahui nilai duty cycle dan tegangan Output . menunjukkan tiga sinyal PWM yang berbeda....1. Artinya sinyal on selama 20% dari periode sinyal dan off selama 80 % sisanya...... Sinyal PWM dengan berbagai Duty cycle Pada gambar 2..2...8V.1......12.........13.. Sebagai contoh jika supply tegangan sebesar 9V dan duty cycle 20%.. Gambar yang lainnya menunjukkan sinyal dengan duty cycle 50% dan 90%.Gambar 2. digunakan persamaan 2..... t V0 = 1 VS .... maka menghasilkan (20% x 9V) 1. Ketiga sinyal PWM tersebut akan menghasilkan sinyal analog yang berbeda... Sinyal yang paling atas menunjukkan sinyal PWM dengan duty cycle 20%. T Vo VS : Tegangan Output (Volt) : Tegangan Pulsa PWM (Volt) ..12..

t1 T : Periode Pulsa high (Second) : Priode Pulsa (Second) .

”Halaman ini sengaja dikosongkan” .

5Khz. software konversi teks ke fonem. Jika alamat database fonem sudah ditemukan maka dilakukan proses pengambilan 1Byte data suara dari MMC ke RAM mikrokontroler melalui SPI. mikrokontroler akan mengkonversi 1byte data suara selanjutnya dan terus demikian sampai . Diagram sistem Mikrokontroler akan mengambil data teks kalimat dari keypad untuk dipecah menjadi per kata kemudian dipecah lagi menjadi per suku kata(fonem).1. Data suara digital diambil dari MMC dan dikonversi ke analog dilakukan dengan periode 125us yaitu sesuai frekuensi sampling yang digunakan 8Khz.1. Untuk mengubah data suara digital ini ke analog menggunakan metode PWM dengan frekuensi PWM 62.1. Setelah satu proses konversi selesai.BAB III PERENCANAAN DAN PEMBUATAN SOFTWARE Pada bab ini akan dibahas mengenai perencanaan dan pembuatan database suara. KEYPA MMC LCD MIKRO KONTROLER FILTE SPI PWM SPEAKER AMPLIFIE : ruang lingkup software yang dikerjakan dalam proyek akhir ini Gambar 3. Diagram sistem Diagram sistem proyek akhir ini dapat dilihat pada gambar 3. Sebelumnya telah dilakukan proses pembuatan database suara tiap-tiap fonem ynag disimpan dalam MMC dalam format WAV . akses ke MMC dan konversi ke sinyal analog. 3. Setelah itu mikrokontroler akan mencari alamat database suara fonem yang ada di dalam MMC.

ATmega8 membaca Mengkonversi ke Data dari MMC via SPI sinyal PWM 4 orde LPF Sallen-Key Rekonstruksi sinyal melalui speaker Gambar 3. Pada Gambar 3. ATmega Gambar 3. Proses rekonstruksi sinyal analog . merupakan aliran data sekuensial dari MMC ke speaker.2.3.2.3. Aliran data dari MMC ke speaker Sedangkan untuk proses konversi ke sinyal analog tampak pada gambar 3.semua fonem suara selesai dikonversi.

Flowchart sistem keseluruhan . 3.2. Atmega8 akan mengambil 1Byte data dari MMC via SPI kemudian akan dikonversi menjadi nilai duty cycle pada Output PWM. Flowchart sistem start inisialisasi Baca keypad Tampilkan ke LCD Ubah ke suara? Y Konversi teks ke fonem Ambil database MMC DAC (PWM) Filter &Ampli N speaker end Gambar 3.3. Sinyal yang masih kasar ini akan dihaluskan dengan 4 orde LPF(Low Pass Filter) sehingga suara yang dihasilkan melalui speaker lebih halus.Pada gambar 3.4.

krab… (di-a-gram. Hasil rekaman tadi kemudian dipotong dan diambil bagian fonem yang diinginkan dengan bantuan software Ace of WAV . KVK : ban. u-lar. Kemudian mengucapkan suatu kata yang mengandung fonem yang diinginkan. V : a. kan… (ban-ding. hali ini dilakukan agar terbentuk pola yang teratur sehingga memudahkan dalam pemrogramannya. rang… (peng-ha-sil-an.Pada gambar flowchart 3.…) 2. i. KKVK : gram. 3. i-kan. u… (a-ku.4.…) 7. an… (al-qur-an. Pembuatan database suara fonem(suku kata) Proses pembentukan suara dari suatu suatu kata dilakukan dengan cara penggabungan per suku kata. i-tu. Jika tombol ENTER ditekan maka kalimat yang ada pada LCD akan dikonversi menjadi suara. Berikut ini beberapa kemungkinan fonem-fonem dalam bahasa Indonesia : 1. ya… (sa-ya. mikrokontroler akan menampilkan hasil tulisan yang diketik melalui keypad pada LCD.…) 3.…) 8. KV : sa.3. Pada saat mengucapkan hendaknya dilakukan dengan jelas dan sedatar mungkin(tanpa intonasi). kla… (pro-kla-ma-si. Setelah itu proses akan kembali ke awal lagi. KKV : pro. Diucapkan per kata agar struktur fonem terdengar alami. Setelah semua fonem ditentukan maka dikelompokan menurut jumlah huruf dan susunan konsonan-vokalnya. pe-rang-kat. a-krab. VKK : ang. VK : al. Selain itu agar didapatkan . KVKK : peng. Berdasarkan hal tersebut pembuatan database fonem dilakukan dengan mendata kemungkinan-kemungkinan kombinasi dari suku kata yang muncul dalam suatu kata. Kemudian diurutkan secara alphabetic. ong-kos. Perekaman dapat dilakukan dengan menggunakan microphone yang dihubungkan ke komputer.…) 4.…) 6. Dalam proyek akhir ini fonem yang dibuat berjumlah 1170. ong… (ang-sa.…) Daftar fonem selengkapnya dapat dilihat di lampiran 1.…) 5. Misalnya kata “saya” maka untuk menghasilkan suara dari kata tersebut diperlukan suara “sa” dan “ya”.

Audio Out Teks Indo TTS Ace of WAV Audio In MMC USB PC Keyboard Gambar 3.24.9. Kesulitannya terletak pada pengucapan tanpa intonasi tetapi harus sejelas mungkin dan durasi waktu yang normal. kecepatan sampling 8KHz.5. bertujuan agar terbentuk pola yang teratur pada nilai alamat database fonem sehingga memudahkan pemrogramannya. KKV dan VKK dijadikan satu file dan disimpan dalam file yang berbeda. Untuk mengatur ukuran sample digunakan alat bantu . Kesulitan yang lainnya adalah amplitudo yang berubah-rubah saat kata diucapkan dan adanya noise. Metode pembuatan database suara Semua fonem disimpan dalam satu file. Berdasarkan alasan tersebut dilakukan metode pembuatan database dengan bantuan software IndoTTS V0. IndoTTS adalah software Text To Speech berbahasa Indonesia. dalam proyek ini digunakan untuk menghasilkan suara yang kemudian direkam dalam format WAV dengan software Ace of WAV. mono. hal ini tentu berlawanan dengan kebiasaan pengucapan sehari-hari yaitu jika ingin jelas maka menggunakan intonasi dengan durasi yang lama. Suara direkam dengan kualitas 8 bit.rekaman yang jernih sebaiknya menggunakan perangkat perekaman berkualitas tinggi. Nilai 2000 dipilih karena rata-rata lebar sample dari satu fonem tidak lebih dari 2000 sample. Fonem diatur agar memiliki ukuran maksimal yang sama yaitu 2000 sample. untuk fonem yang berpola KKVK. disebabkan fonem-fonem ini memiliki kombinasi huruf yang tidak sama sehingga tidak bisa dicari polanya. Metode pembuatan database suara diatas telah dicoba tetapi mengingat jumlah fonem sebanyak 1170 maka kualitas hasil perekaman kurang optimal.

6.6.Terlihat yang ditandai dengan pola oval berwarna hitam merupakan alamat sample 2000 sampai dengan 4000. Gambar 3. Ini menunjukkan alamat sinyal pada daerah yang diblok dengan warna biru muda.software Ace of WAV . Pada gambar 3. Teknik membuang bagian sinyal yang datar dengan cara memblok bagian awal dari informasi sinyal sebenarnya(ditunjukkan dengan adanya fluktuasi amplitudo).7.6. Sinyal fonem Pada gambar 3. Untuk mengatur agar fonem berada pada range kelipatan 2000 sesuai urutan perekamannya maka perlu membuang bagian sinyal yang datar. dapat dilihat data rekaman fonem. terlihat bagian yang akan dihilangkan. Pada gambar 3. Bagian yang diblok dapat dihilangkan dengan cara menekan tombol Delete pada keyboard atau pada tool bar. . terlihat 3 buah sinyal fonem ditunjukkan dengan gambar sinyal yang berwarna merah.

Untuk memudahkan pengecekan alamatnya dengan jenis fonemnya maka terlebih dahulu dibuat daftar urutan fonem-fonem dalam format excel beserta nilai alamatnya dalam kelipatan 2000. . Sehingga akhir dari sinyal kedua berada di alamat sample 4000 yang ditunjukkan oleh tanda oval berwarna hitam.Gambar 3.7. Proses tersebut terus dilakukan sampai semua fonem memiliki range lebar yang sama yaitu 2000 sample tiap fonem. Tabel ini dapat dilihat pada lampiran1. akan didapatkan gambar sinyal pertama dengan alamat awal sample 0 dan sinyal kedua dengan alamat awal sample 2000. Bagian sinyal yang akan dihapus Selanjutnya pada gambar 3.8.

Hal ini dapat dilakukan dengan menghapus nilai amplitudo sinyal yang kurang dari 48.Gambar 3. Penandaan ini dapat dilakukan dengan menyisipkan data bernilai 1 sepanjang 1 sample di akhir sinyal dari fonem. Agar tidak terjadi kesamaan nilai antara tanda akhir fonem dan nilai amplitudo dari sinyal. Pada software Ace of WAV dapat dengan mudah dilakukan dengan menggunakan command “clip” pada tool bar. terlihat beberapa properti yang digunakan untuk menghapus nilai amplitudo sinyal yang berada diatas atau dibawah nilai threshold. Sinyal setelah diatur Mengingat panjang informasi fonem sebenarnya kurang dari 2000 sample dan antara fonem satu dan lain ukurannya berbeda maka perlu diberi tanda akhir data suatu fonem. .9. Pada gambar 3. Properti command ini dapat diatur dengan cara right-click pada command tersebut.8. maka nilai sinyal dibatasi tidak boleh kurang dari 48. Nilai 1 ini akan dikenali sebagai akhir data dari sebuah fonem.

9. Mengatur nilai threshold Untuk menyisipkan data bernilai 1 sepanjang 1 sample di akhir sinyal dari fonem dengan menggunakan command “copy” kemudian “paste mix”. Command “copy” digunakan untuk menduplikasi nilai 1 dari sinyal lain kemudian dengan menggunakan command “paste mix” hasil duplikasi tersebut dimasukkan pada akhir bunyi dari fonem sebagai tanda akhiran.10. Selain itu juga telah diberi tanda di setiap akhir bunyi suatu fonem. Pada gambar 3. semua nilai maksimum sinyal adalah 175 sedangkan nilai minimum sinyal adalah 48. .Gambar 3.

Untuk memecah kalimat menjadi per bagian kata dapat dilakukan dengan melihat tanda spasi antar kata yang satu dengan kata yang lain. Misal kalimat: “aku sedang makan” jika dipecah per suku kata menjadi “a-ku se-dang ma-kan”. pe- . Pada bahasa Indonesia satu suku kata dapat terdiri dari 1 huruf sampai dengan 4 huruf.4. 3.…) (peng-ha-sil-an.Gambar 3. Aturan(rule ): 1. rang… rang-kat. KVKK : peng.10. Perancangan software konversi teks ke fonem Kalimat yang diketik melalui keypad akan dipecah menjadi per kata kemudian akan dipecah lagi menjadi per suku kata. Sedangkan untuk memecah kata menjadi menjadi suku kata memerlukan algoritma khusus. Berikut ini adalah kemungkinan fonem-fonem dalam bahasa Indonesia berdasarkan jumlah huruf dan susunan vokal-konsonannya. Sinyal yang telah ditandai Semua sinyal yang sudah diatur ini kemudian disimpan di MMC sebagai database suara fonem.

…) (al-qur-an. i. KV : sa. ong… 6.11. kan… 4. KKVK : gram.…) (a-ku. KKV : pro.…) (pro-kla-ma-si. a-krab. u-lar. ya… 7. u… (*) : menggunakan look up table (di-a-gram. krab… 3. VK : al. Untuk fonem yang berpola(*) KKVK.11. V : a. an… 8.…)* (ang-sa. KKV dan VKK menggunakan look up table karena jenis fonem ini memerlukan perlakuan khusus disebabkan komposisi hurufnya tidak beraturan. kla… 5.2. VKK : ang.…) Berdasarkan karakteristik fonem-fonem tersebut dapat digunakan untuk mengenali fonem dari suatu kata. merupakan Flowchart Konverter Teks ke Fonem. i-tu. KVK : ban. Pada gambar 3. i-kan.…)* (ban-ding. Flowchart Konverter Teks ke Fonem . start N=4 Ambil sebanyak N huruf dari belakang N N huruf = rule (K-V) untuk N Y N huruf=fonem geser pointer ke kiri N N-- Huruf habis? Y end Gambar 3. ong-kos.…)* (sa-ya.

Dilakukan pergeseran tanda pointer 4baris untuk bagian huruf sebelah kiri dari fonem tersebut. Pointer diletakkan pada huruf keempat dari kanan (huruf “n” tengah ). Hal ini dilakukan untuk memprioritaskan jenis akhiran yang terdiri dari 4 huruf. N=4. adalah sebagai berikut: 1. Kurangi satu jumlah huruf yang akan diambil dan kembali lakukan lagi langkah 1 diatas. Geser pointer ke kiri. Jika masih ada huruf pada bagian kiri maka proses dimulai lagi dari langkah 1 diatas. tetapi dengan nilai pointer yang sudah digeser kekiri 4 baris pada langkah 4 diatas. Jika huruf pada bagian kiri sudah tidak ada maka proses konversi dari seluruh kalimat sudah selesai. Ambil sebanyak N huruf dari belakang. Jumlah huruf maksimum suatu fonem adalah 4 karakter. Berikut ini adalah contoh dari proses konversi kata “ringan” menjadi per fonem “ri-ngan”. Jika tidak ada yang sama maka N huruf tersebut bukan merupakan fonem. 1. maka N huruf tersebut adalah sebuah fonem. Jika sama. . N huruf = rule (K-V) untuk N huruf?. 5. N huruf=Fonem. 3. N=4. N--. seperti “ri-ngan” dan sebagainya. Oleh sebab itu nilai maksimum diprioritaskan terlebih dahulu. Huruf habis?.Penjelasan dari flowchart pada gambar 3. Jika Nhuruf sama dengan aturan untuk Nhuruf maka lakukan langkah 4 dibawah. Huruf yang sudah diambil sebanyak N buah susunan konsonan dan vokalnya akan dibandingkan dengan aturan untuk yang berjumlah N buah huruf.11. 2. 4. Dimulai dari nilai maksimum untuk menghindari kesalahan pengelompokan jenis fonem dengan nilai yang kurang dari 4.

Ternyata hasil dari pencocokan ini adalah sesuai. . 4. 6. N=2. Pointer diletakkan pada karakter keempat dari kanan setelah fonem tadi (karena melebihi batas karakter pertama maka pointer menunjuk karakter”[]”). Geser pointer kekiri sebanyak 4 karakter. N--. N=3. Pointer diletakkan pada karakter ketiga dari kanan setelah fonem tadi (karena melebihi batas karakter pertama maka pointer menunjuk karakter”[]”). N--. 8. 15. Diambil 2 huruf kekanan dimulai dari titik pointer sehingga diadapatkan kombinasi karakter “ri”.jumlahn karakter yang akan diambil untuk proses berikutrnya dikurangi satu sehingga berjumlah 2 huruf. 12. Ternyata hasil dari pencocokan ini adalah sesuai. 14. Susunan konsonan-vokal dari kombinasi ini yaitu KKVK akan dicocokan dengan aturan untuk 4 huruf. Pointer diletakkan pada karakter kedua dari kanan setelah fonem tadi (huruf “r” pertama ). Susunan konsonan-vokal dari kombinasi ini yaitu KV akan dicocokan dengan aturan untuk 2 huruf. N=4. Susunan konsonan-vokal dari kombinasi ini yaitu []KV akan dicocokan dengan aturan untuk 3 huruf. Karena huruf di sebelah kiri fonem “ngan” masih ada maka proses akan dimulai lagi pada langkah 1. Diambil 4 huruf kekanan dimulai dari titik pointer sehingga diadapatkan kombinasi karakter “ngan”. jika sesuai maka kombinasi huruf ini dinyatakan sebagai sebuah fonem. 7. Diambil 3 huruf kekanan dimulai dari titik pointer sehingga diadapatkan kombinasi karakter “[]ri”. Susunan konsonan-vokal dari kombinasi ini yaitu [][]KV akan dicocokan dengan aturan untuk 4 huruf. 5. 3. jika sesuai maka kombinasi huruf ini dinyatakan sebagai sebuah fonem. 13.jumlahn karakter yang akan diambil untuk proses berikutrnya dikurangi satu sehingga berjumlah 3 huruf. Ternyata hasil dari pencocokan ini tidak ada yang sesuai. Ternyata hasil dari pencocokan ini tidak ada yang sesuai. Diambil 4 huruf kekanan dimulai dari titik pointer sehingga diadapatkan kombinasi karakter “[][]ri”. Geser pointer kekiri sebanyak 4 karakter. 9.2. 11. 10.

5. . Pembuatan software konversi teks ke fonem Proses pembuatan program konversi teks ke fonem dilakukan dengan bantuan software Microsoft Visual C++ 6. Selain itu tidak memakan waktu yang lama karena tidak perlu mendownload program ke mikrokontroler. Jenis-jenis fonem yang dijadikan aturan atau referensi pembanding terlebih dahulu dideklarasikan dalam bentuk array . merupakan tampilan software ini.12.0. Tampilan Microsoft Visual C++ 6.16.12.0. Karena huruf di sebelah kiri fonem “ri” tidak ada maka proses akan berakhir. 3. Pada gambar 3. Keypad maupun LCD.13. Dengan menggunakan software ini dapat dilakukan simulasi secara praktis dan cepat. Hal ini karena tidak membutuhkan hardware seperti mikrokontroler. Gambar 3. adalah pendeklarasian variabel-variabel tersebut didalam bahasa C++. Pada gambar 3.

maka dinyatakan sebagai fonem. "ing".14. "kv". char kkvk[][5]={ "blis". KKV dan VKK jenis fonem katanya di deklarasikan satu per satu dalam array sehingga membentuk look up table. "kvk". Jika kombinasi huruf yang akan dikonversi ini berada di look up table. "kkv". Deklarasi fonem KKVK. Gambar 3. "vk". … char vkk[][4]={ "ang". … char kkv[][4]={ "bri". "_". }. "brak". "vkk". merupakan cuplikan dari deklarasi fonem-fonem ini.13. "dra". Deklarasi referensi pembanding Untuk jenis fonem yang berpola KKVK. Pada gambar 3.14. "v". "k".char rule [][5]={ "kvkk". Fonemfonem ini memerlukan look up table disebabkan kombinasi hurufnya tidak beraturan. KKV dan VKK Setelah semua variabel yang diperlukan dideklarasikan maka langkah pertama dalam program yaitu mengubah kalimat dalam bentuk . … Gambar 3. "kkvk".

for(i=0. Program konversi ke pola konsonan dan vokal Pada program 3.a2+panjang-ofset.lebar). printf("a2="). Berikut ini merupakan cuplikan program untuk mencocokkan pola kata input dengan pola fonem referensi yang terdiri dari 4 huruf. } Gambar 3.lebar).15. } Gambar 3.i++){ if ((*p=='a')||(*p=='i')||(*p=='u')||(*p=='e')||(*p=='o')) a2[i]='v'. else a2[i]='k'.16. hasil=strncmp(b.rule [urut]. *p++. huruf vokal akan dinyatakan dalam huruf ‘v’ sedangkan konsonan akan dinyatakan dalam huruf’k’. ofset+=4. panjang=strlen(a). else if ((*p=='_')||(*p=='0')) a2[i]='_'. Hasil konversi dalam bentuk konsonan dan vokal kemudian akan dikonversi menjadi per fonem dengan cara membandingkan dengan aturan-aturan jenis fonem yang sudah dideklarasikan pada array rule [ ]. p=a. if (hasil==0){ memcpy(kata[suku]. putchar(a2[i]).i<panjang. memcpy(b. suku++.lebar). Program konversi ke fonem untuk 4 huruf Variabel “suku” menyatakan pointer posisi huruf sedangkan variable “ofset” digunakan untuk mengatur penempatan pointer sesuai . urut=0.pola konsonan dan vokal.15.15.a+panjang-ofset. Untuk melakukannya digunakan program pada gambar 3. Hasil konversi dari kalimat atau kata dalam array a[ ] tersebut akan disimpan dalam array a2[ ]. lebar=4.

merupakan cuplikan dari tabel ini. jika hasil perbandingan kedua string tersebut sama maka variable “hasil” akan bernilai 0 sehingga kumpulan huruf tersebut dinyatakan sebagai sebuah fonem. Pada gambar 3. Fonem-fonem ini disusun menggunakan Microsoft Excel sehingga mempermudah pembuatan tabel seluruh jenis fonem beserta alamatnya dengan kelipatan 2. Contoh fonem huruf “b”telah disimpan setelah huruf “a”(fonem urutan pertama) sesuai abjad. Hal ini berlaku untuk fonem-fonem yang lain dengan patokan huruf “a”. Nilai alamat ini masih harus dikalikan dengan 1000 agar sesuai dengan alamat sebenarnya pada MMC. 3.yang diinginkan pada kalimat. Perancangan software untuk mencari alamat fonem di dalam MMC Suara rekaman tiap-tiap fonem yang disimpan didalam MMC memiliki alamat tertentu sesuai urutan penyimpanan dari tiap fonem tersebut. .” digunakan untuk membandingkan string “b” dengan string “rule [urut]” sebanyak “lebar” karakter. ke dalam string “b” sebanyak “lebar” karakter.lebar)” digunakan untuk menyalin string “a2” dengan pointer yang sudah ditambah “panjangofset” . Untuk fonem-fonem yang berpola “kkvk. Fungsi “memcpy(b. Variabel “urut” sebagai pointer array “rule [ ] dan variable “lebar” menyatakan banyaknya huruf yang akan diproses. Proses tersebut akan terus berulang mulai dari mecocokkan sebanyak 4 huruf sampai dengan 1 huruf. Jika hasil perbandingan tidak sama maka akan dicocokkan dengan rule yang lain. kkv dan vkk” disimpan dalam file yang berbeda. Fungsi “hasil=strncmp(b. Jika sebuah fonem mempunyai ukuran 2000Byte maka alamat huruf “b” pasti berada di 2000Byte setelah huruf”a”.lebar).rule [urut].a2+panjang-ofset. Penyesuaian ini akan mempermudah didalam pencarian alamat fonem tersebut di dalam MMC. Fonem-fonem ini telah disesuaikan agar memiliki ukuran yang sama yaitu 2000Byte dan disimpan dalam 1 file.17.6.

Gambar 3. Cuplikan tabel seluruh fonem beserta alamatnya Untuk mencari alamat heksa fonem huruf (suara) “a” didalam MMC digunakan software WinHex.18. Struktur format *.WAV dapat dilihat pada gambar 3. Untuk mencari alamat file berformat *.[11].WAV . Software ini dapat menampilkan alamat sekaligus data yang tersimpan didalam MMC. Struktur format *.Gambar 3.WAV dengan cara mencari data dengan ASCII “RIFF”.18.17.

dapat dilihat bahwa suatu file berformat *. 3.WAV datanya pasti diawali dengan ASCII “RIFF” kemudian diikuti dengan berbagai spesifikasi file tersebut. Pada gambar 3.7. .Pada gambar 3. Tool “search” software WinHex Tanda oval yang berwarna hitam menunjukkan tool “search” sedangkan yang berwarna merah menunjukkan tool “Disk Editor”.18. Alamat data dalam bentuk heksa ditunjukkan pada label “offset”. Gambar 3. merupakan tampilan software ini. Pembuatan software untuk menentukan alamat fonem di dalam MMC Fonem yang terdiri dari 1 huruf dapat ditentukan alamatnya dengan cara mencari nilai ASCII dari huruf tersebut dikurangi dengan ASCII ”a” kemudian dikalikan dengan kelipatan 2.19.19. Untuk mengamati data yang tersimpan didalam MMC digunakan command Disk Editor. Software WinHex dapat digunakan untuk mencari ASCII tersebut dengan menggunakan tool search. Nilai alamat ini masih harus dikalikan dengan 1000 agar sesuai dengan alamt di MMC.

s.21.i. Cuplikan program menentukan alamat untuk 1 huruf Pointer “p” ditempatkan pada fonem(array kata[]) kemudian jika huruf yang ada di pointer ini berada diantara huruf ”a” sampai “z” maka nilai ASCII dari huruf ini dikurangi dengan ASCII “a” agar didapatkan nilai satuan dan dikalikan dengan 2(merupakan kelipatan besar data tiap fonem yang masih belum dikali 1000). p=kata[suku]. p=kata[suku]. Nilai alamat dari fonem ini disimpan di dalam variabel hasil. else if (*p=='f') nilai+=2. Pada gambar 3.21. Berdasrkan pola tersebut dapat dibentuk program untuk menentukan alamatnya.20.r. … *p++. Untuk fonem yang berpola “vk” kombinasi vokalnya terdiri dari huruf “a. else if (*p=='e') nilai=72.e. Penentuan alamat untuk pola “vk” .l.o” sedangkan untuk konsonannya terdiri dari ”b.n. … Gambar 3. Misalkan huruf yang ingin dicari alamtnya adalah huruf “a” maka alamat dari fonem ini adalah nilai ASCII “a”(0x61) dikurangi dengan nilai ASCII “a” (0x61) dikalikan 2 maka hasilnya adalah 0. if (*p=='b') nilai+=0.m. if ((*p>='a')&&(*p<='z')) nilai=(unsigned int)(*p-'a')*2 Gambar 3. if ((*p=='a')||(*p=='i')||(*p=='u')||(*p=='e')||(*p=='o')){ if (*p=='a') nilai=52.Pada gambar 3.k.20. merupakan cuplikan program untuk menentukan alamat 1huruf.t” yang disusun secara alphabetic.f. merupakan cuplikan program untuk penentuan alamat fonem berpola”vk”.h.u. Jika terdiri dari 2 huruf maka fonem tersebut bisa tersusun atas “vk” atau “kv”.

else if((*p>'e')&&(*p<'i')) nilai=(unsigned int)(*p-'b')*10+142. Sehingga hasil dari alamat fonem “ab” pada varabel nilai adalah 52(sesuai tabel).//3.i. Nilai ini sesuai urutan didalam tabel. Penentuan alamat untuk pola “kv” Misalnya huruf pertama adalah “b” maka variabel nilai akan bernilai (‘b’-‘b’)*10+152 sehingga hasilnya 152. else if (*p=='i') nilai+=2. Kemudian jika huruf kedua adalah “b” maka variabel nilai akan ditambah dengan 0.u. Sedangkan nilai 152 merupakan alamat pertama fonem jenis “kv”ini disimpan. .22. Pada Gambar 3. merupakan cuplikan program untuk penentuan alamat fonem berpola”kv”. … *p++.e. if ((*p>'a')&&(*p<'e')) nilai=(unsigned int)(*p-'b')*10+152. Penentuan alamtnya berdasarkan nilai ASCII . Fonem yang berpola “kv” memiliki algoritma yang berbeda. susunan(urutan) penyimpanan. if (*p=='a') nilai+=0. kkv dan vkk” penentuan alamat melihat urutan penyimpanannya di dalam look up table dan di dalam MMC.o”) dikali dengan besar data tiap fonem 2(masih belum dikali 1000). Sedangkan untuk fonem yang berpola “kkvk. Nilai ini berasal dari tabel fonem yang berpola “vk” yaitu urutan pertama dengan huruf awal “a”. Nilai 10 pada persamaan ini berasal dari jumlah kombinasi vokalnya 5 (“a.22. Pengurang “b” digunakan untuk mendapatkan nilai satuan. Algoritma untuk penentuan alamat fonem-fonem yang lain memiliki dasar algoritma yang sama. jumlah kombinasi dan besar data yaitu 2000Byte. Hal ini disebabkan jika suatu fonem memiliki jumlah kombinasi yang berbeda maka metode penentuan alamatnya juga berbeda. else if (*p=='u') … Gambar 3.Jika huruf pertama fonem tersebut adalah “a” maka variabel nilai akan bernilai 52. Untuk fonem ini kombiansi konsonan dan vokalnya berkebalikan dengan yang berpola “vk”.

j++. Gambar 3.23. merupakan cuplikan program untuk menentukan alamat fonem yang berpola “vkk”. Nilai 2 merupakan kelipatan besar data 2000Byte sebelum dikalikan 1000. Hal ini disebabkan penyimpanan file di dalam MMC untuk jenis fonem-fonem ini berbeda dengan file fonem yang lain. Penambahan 5000 dimaksudkan untuk membedakan jenis fonem “kkvk. Pada ATmega8 sudah tersedia port khusus untuk interface SPI sehingga kita cukup mengatur register yang diperlukan untuk jenis komunikasi ini. alamat[j]=nilai+5000. Pada MMC untuk mode SPI mendukung transfer data dengan frekuensi sampai dengan 20MHz [3] sedangkan ATmega8 memiliki frekuensi SPI maksimum 8MHz. Gambar 3. Perancangan software akses ke MMC Pada sistem ini frekuensi Output sampling suara yang digunakan adalah 8KHz sehingga frekuensi untuk proses transfer 1Byte data dari MMC ke ATmega8 harus lebih besar dari 8KHz. Pada sistem ini digunakan frekuensi SPI 8MHz sehingga sangat mencukupi untuk proses Output sampling suara 8KHz. merupakan keterangan dari register SPCR.8. kkv dan vkk” dengan yang lain. Pada gambar 3. variabel “i” ini adalah pointer pada array vkk[ ] yang menunjukkan jenis fonemnya dalam look up table. Register yang digunakan dalam SPI ini adalah SPI Control Register(SPCR) dan SPI status Register (SPSR). nilai=i*2. Register SPCR ATmega8 .24. 3.Pada gambar 3.23. Penentuan alamat untuk pola “vkk” Alamat dari fonem ini dismpan dalam variabel nilai yang ditentukan dari i*2 kemudian ditambah 5000.24.

Bit 1:0 – SPSR1:0 : Spi Clock Rate Select SPR1 dan SPR0 digunakan untuk menentukan kecepatan clock yang digunakan dalan komunikasi SPI seperti pada tabel 3. Bit 5 – DORD : Data Order DORD digunakan untuk menentukan pola pengiriman data. Hubungan Frekuensi SCK dan Oscillator Pada gambar 3.• • • • • • • Bit 7 – SPIE : SPI Interrupt Enable SPIE digunakan untuk mengaktifkan dan menon-aktifkan interupsi SPI.25.1. Bit 4 – MSTR : Master/Slave Select MSTR digunakan untuk mengkonfigurasi sebagai master atua slave secara software. Bit 3 – CPOL : Clock Polarity CPOL digunakan untuk menentukan kondisi logika clock pada saat tidak bekerja (idle). merupakan keterangan register SPSR . Bit 2 – CPHA : Clock Phase CPHA digunakan untuk menentukan waktu pengambilan data pada transisi clock. Bit 6 – SPE : SPI Enable SPE digunakan untuk mengaktifkan dan menon-aktifkan komunikasi SPI.1. Tabel 3.

Flowchart inisialisasi MMC .26.26. Register SPSR ATmega8 • Bit 0 – SPI2X : Double SPI Speed Bit SPI2X digunakan untuk melipatgandakan kecepatan SCK menjadi 2 kali Pada sistem ini proses yang dilakukan untuk akses ke MMC adalah sebagai berikut: 1. Inisialisasi MMC Inisialisasi ini cukup dilakukan sekali pada saat alat dinyalakan. Pada gambar 3. merupakan flowchart inisialisasi MMC dalam mode SPI. start CS ‘low’ Kirim 80 clock CS ‘high’ Kirim CMD 0 + 8Clock N Respon ok? Y Kirim CMD 1 + 8Clock N Respon ok? Y end Gambar 3.25.Gambar 3.

g. Kirim CMD1 (inisialisasi MMC). Tunggu sampai memperoleh response 0x00 dari MMC. Pada gambar 3. Kirim 80 clock untuk memulai komunikasi. Tunggu sampai memperoleh response 0x00 dari MMC. Data yang dapat diambil dari MMC adalah sebanyak 512Byte dalam sekali pengalamatan. jika ada Error ulang proses diatas.27. b. merupakan flowchart untuk mengambil data dari MMC. i. Flowchart membaca data dari MMC . Kirim CMD0 (reset MMC). Disable chip select.Prosedur Inisialisasi MMC pada SPI mode a. Kirim 8 clock delay. h. start Kirim ‘CMD17’+’Haddress’+ ‘Laddress’+’CRC’ N Response MMC=0? Y N Data Token MMC=FE? Y Ambil Data 512 Byte end Error Handler Gambar 3. e. Membaca data dari alamat yang diinginkan. 2. f. Enable chip select (active low). Kirim 8 clock delay. j. jika ada Error ulang proses diatas. d.27. c. Kirim 8 clock delay.

9. Pada gambar 3. SPSR = 0. //Output SCLK SPCR = 0b01010011 . DDRB. //input MISO DDRB. Sedangkan port sebagai input data (MISO) dari MMC harus diset sebagai port input.Proses pembacaan data dari MMC dilakukan dengan proses sebagai berikut: • • • Mikrokontroler mengirimkan data ke MMC yang berupa 1Byte command Read(CMD17).4 = 0.//MMC select Gambar 3.28. Control chip select(CS). ATmega8 sebagi master dan bersama register SPSR menetukan frekuensi awal SCK 125KHz. Setelah dilakukan inisialisasi pada mikrokontroler maka inisialisasi pada MMC dapat dilakukan. dan Output clock (SCK) harus diset sebagai port Output . Pada mode inisialisasi frekuensi SCK tidak boleh melebihi 400KHz[10]. //Output MOSI DDRB.2= 0. Kemudian MMC mengirimkan balasan ke mikrokontroler yaitu 1Byte data response dari command Read tersebut. Pada saat alat baru dinyalakan maka perlu dilakukan inisialisasi pada ATmega8 dan MMC pada mode SPI. Inisialisasi ATmega8 pada mode SPI Port sebagai Output data (MOSI).28.5 = 1. 4Byte address data yang ingin diambil dan 1Byte CRC(dummy byte).2 = 1. merupakan cuplikan program untuk inisialisasi ATmega8 pada mode SPI.3 = 1. Jika tidak ada Error maka data response ini akan bernilai 0 yang kemudian MMC akan mengirimkan data aktual dari alamat yang diminta dengan diawali data token 0xFE(heksa). //Output chip select DDRB. Prosedur inisialisasi MMC . PORT B. Register SPCR digunakan untuk mengatur enable SPI. Pembuatan software akses ke MMC 3.

29. // enable MMC if (Command(0x40.27. PORT B. for(j=0. 4Byte address data yang ingin diambil dan 1Byte CRC.0). st: if (Command(0x41.0. Program inisialisasi MMC dapat dilihat pada gambar 3. i++) spi(0xFF).0xFF) !=0) goto st.26.30. // disable MMC for(i=0. Gambar 3.j<512.hi.0. PORT B.30. Gambar 3.dilakukan sesuai flowchart pada gambar 3.0. Fungsi ini akan menghasilkan nilai balik 0 jika pengiriman data tersebut diterima oleh MMC. Program untuk mengambil data sebanyak 512Byte dari MMC dapat dilihat pada gambar 3. Mengambil data dari MMC Fungsi Command( ) digunakan untuk mengirimkan data ke MMC yang berupa 1Byte command Read(CMD17). Setelah itu mikrokontroler akan menunggu MMC mengirimkan data 0xFE sambil terus memberikan clock pada pin SCK.0. Jika inisialisasi sudah dilakukan maka proses pengambilan data dapat dilakukan. } while(spi(0xFF) != (char)0xFE). 4Byte address data dan 1Byte CRC.2= 1. Prosedur pengambilan data dapat dilihat pada gambar flowchart 3.0x95) != 1) goto mmcError .lo. } spi(0xFF).j++){ OCR1A=spi(0xFF). lcd_putsf("MMC: read Error !"). delay _us(125).0x95) != 0) { lcd_gotoxy(0. Inisialisasi MMC pada mode SPI Fungsi Command( ) digunakan untuk mengirimkan data ke MMC yang berupa 1Byte command Reset/Inisialisasi(CMD0/1). spi(0xFF).29. Data 0xFE merupakan awal . i < 10. if (Command(0x51.2= 0.

3.31. Pada gambar 3. Register-register yang digunakan untuk mengatur kerja PWM ini adalah Timer/Counter 1 Control Register A(TCCR1A).2.dari data actual sehingga setelah menerima data 0xFE mikrokontroler dapat mengambil sebanyak 1 Byte data pada alamat yang dimaksud. Register TCCR1A • • Bit 7:6 – COMA1:0 : Compare Output Mode Channel A Bit 5:4 – COMB1:0 : Compare Output Mode Channel B COM1A1:0 dan COM1B1:0 digunakan untuk mengatur pola keluaran OC1A dan OC1B seperti pada tabel 3. Kemudian jika seluruh data sudah dikirimkan MMC akan mengirimkan 2 Byte data CRC. . Gambar 3. Perancangan software konversi ke sinyal analog (PWM) ATmega8 memiliki 3 Channel pin yang dapat digunakan untuk membangkitkan pulsa PWM dengan frekuensi maksimum 62500Hz.10. Data ini akan dikonversikan ke sinyal analog melalui PWM dengan mengatur nilai register OCR1A sama dengan data dari MMC. Frekuensi ini sudah mencukupi untuk menghasilkan Output sampling 8KHz. Pada sistem ini digunakan pin OC1A yang dikontrol oleh Timer1. Timer1 diatur agar menghasilkan mode Fast PWM-8bit dengan frekuensi 62500Hz sesuai keperluan sistem ini. pada sistem ini CRC diabaikan.31. Timer/Counter 1 Control Register B(TCCR1B) dan Output Compare Register 1 A(OCR1A). merupakan struktur register TCCR1A. Proses pengambilan data ini terus dilakukan selama 512 kali dengan delay per datanya 125us(frekuensi sampling).

Tabel 3.2. Pola keluaran pin OC1A/OC1B Mode Fast PWM

• • •

Bit 3 – FOC1A : Force Output Compare for Channel A Bit 4 – FOC1B : Force Output Compare for Channel B FOC1A dan FCO1B hanya digunakan pada mode non-PWM. Bit 1:0 – WGM11:10 WGM11 dan WGM10 bersama-sama dengan WGM13 dan WGM12 yang berada di register TCCR1B digunakan untuk menentukan mode pembangkitan runtun timer/counter sepert yang terlihat pada tabel 3.3.
Tabel 3.3. Mode Timer 1

Pada gambar 3.32. merupakan struktur register TCCR1B

Gambar 3.32. Register TCCR1B

• • • •

Bit 7 – ICNC1: Input Capture Noise Canceler ICNC1 digunakan untuk mengaktifkan dan menon-aktifkan filter pada pin ICP1. Bit 6 – ICES1 : Input Capture Edge Select Bit ICES1 digunakan untuk mengatur pemicu kejadian input capture. Bit 5 : Tidak digunakan Bit 4:3 – WGM13:12 : Waveform Generation Mode WGM13 DAN WGM12 bersama-sama dengan WGM11 dan WGM10 yang berada pada register TCCR1A digunakan untuk menentukan kerja timer seperti pada tabel 3.9.2. Bit 2:0 – CS12:0 : Clock select CS12, CS11 dan CS10 berfungsi untuk mengatur skala sumber clock yang akan digunakan oleh timer1 seperti yang terlihat pada tabel 3.4.
Tabel 3.4. Skala Clock Timer 1

Pada gambar 3.33. merupakan struktur register OCR1A

Gambar 3.33. Register OCR1A

Register OCR1A berfungsi untuk menyimpan data pembanding 16-bit yang akan selalu dibandingkan dengan dengan isi register TCNT1. Jika nilai TCNT1 sama dengan OCR1A maka akan terjadi event sesuai mode yang telah ditentukan pada register TCCR1A dan TCCR1B. Pada persamaan 3.1. merupakan rumusan frekuensi sinyal keluaran pin OC1A.

.............................................................................……...................…..3.1. FOCnxPWM Fclk_I/O N TOP : frekuensi Output OC1A mode Fast PWM : Frekuensi kristal : skala clock (lihat tabel 3.10.3) : nilai maksimum counter (TCNT1)

Pada persamaan 3.2. merupakan rumusan Duty cycle yang dihasilkan.

D=

OCR 1x TOP

* 100 % ...........................................................3.2.
: Duty cycle : isi register OCR1A : nilai maksimum counter (TCNT1)

D OCR1x TOP

Pada gambar 3.34. merupakan Timing Diagram Mode Fast PWM.

8bit.35. merupakan program inisialisasi PWM. Pembuatan software konversi ke sinyal analog (PWM) Sistem ini menggunakan Mode Fast PWM – 8bit dengan frekuensi PWM 62500Hz. 3.11. Timing Diagram Mode Fast PWM Pada mode ini register TCNT1 akan terus mencacah naik dengan frekuensi dari prescaler(N) dikalikan dengan frekuensi kristal(Fclk_I/O). jika sama maka Output pada pin OC1A akan berubah kondisi(toogle). Pada saat sudah mencapai nilai maksimum(TOP) nilai register TCNT1 akan kembali ke 0 kemudian mencacah naik lagi. . 8KHz.Gambar 3. Frekuensi PWM ditentukan 62500 dengan asumsi semakin tinggi frekuensi PWM yang digunakan maka sinyal analog yang dihasilkan akan memiliki step response yang lebih baik. demikian seterusnya. Pada saat alat dinyalakan maka perlu dilakukan inisialisasi parameter-parameter PWM tersebut. Nilai parameter ini sesuai dengan database suara fonem yang akan direkonstruksi yaitu mono. Pada gambar 3.34. Nilai register OCR1A akan terus dibandingkan dengan nilai register TCNT1.

Register TCCR1A dan TCCR1B digunakan untuk mengatur sumber clock Timer 1(kristal). delay _us(125). Gambar 3.35. Mode (Fast PWM) dengan TOP (0x00FF) dan Output pada pin OC1A(non-inverting).1.j<512. Nilai register OCR1A diatur agar sama dengan nilai digital sinyal dari MMC sehingga diperoleh amplitudo Output (0 – 5V) atau duty cycle(0 – 100%) yang sesuai dengan nilai digital sinyal(0 – 255). TCCR1A=0x81. Pada gambar 3. Untuk memperoleh frekuensi PWM sebesar 62500Hz digunakan persamaan 3.1=1. TCCR1B=0x09. } Gambar 3. merupakan program untuk mengkonversi sinyal digital menjadi sinyal analog. Pada sistem ini Output sinyal analog memiliki periode 125us agar sesuai dengan frekuensi sampling 8KHz.j++){ OCR1A=spi(0xFF).36.DDRB. for(j=0. Pada awal inisialisasi duty cycle diatur 50% agar berada di titik tengah ayunan sinyal DC. Prescaler Clock (1).36. OCR1A=128. Program konversi ke sinyal analog . Inisialisasi PWM Pin Output OC1A harus diatur sebagai port Output dengan memberikan nilai 1 pada register DDRB bit 1.

”Halaman ini sengaja dikosongkan” .

BAB IV PENGUJIAN ALAT DAN ANALISA
Pada bab ini akan dibahas tentang pengujian sistem (software) dan analisa berdasarkan bab perencanaan. Pengujian ini meliputi: Pengujian per blok meliputi pengujian ketepatan penyusunan database suara sesuai alamatnya, software konversi teks ke fonem, software penentu alamat fonem pada MMC, software akses ke MMC dan software konversi ke sinyal analog(PWM). Pengujian sistem secara keseluruhan yaitu integrasi dengan hardware. 4.1. 4.1.1. PENGUJIAN PER BLOK Pengujian ketepatan penyusunan database suara

Pengujian ini bertujuan untuk mengetahui persentase ketepatan penyusunan database suara apakah sesuai dengan alamat database suara pada tabel yang telah dibuat sebelumnya. Hal ini diperlukan agar tidak terjadi kesalahan penempatan alamat database suara fonem tersebut. Pengujian dilakukan dengan menggunakan software Ace of WAV . Untuk menguji ketepatan penyusunan database ini dengan cara memasukkan alamat (nilai sample) awal dan akhir suatu fonem kemudian mendengarkan suara yang ada pada range sample tersebut. Pada gambar 4.1. merupakan tampilan pengujian melalui software Ace of WAV . Tanda oval yag berwarna hitam merupakan range nilai sample yang dipilih. Sedangkan untuk mendengarkan suara fonem tersebut dengan cara menekan tombol ”play” yang ditandai pola oval berwarna merah.

Gambar 4.1. Pengujian penyusunan database suara

Pada tabel 4.1. merupakan hasil pengujian penyusunan database suara dengan penentuan range alamat sample fonem secara acak sebanyak 10 kali. Acuan referensi yang digunakan adalah tabel alamat database suara tiap fonem.
Tabel 4.1. Hasil pengujian penyusunan database suara

No 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.

Range Alamat Suara Sample 0 – 2000 “a” 224000 – 226000 “ki” 446000 – 48000 “car” 670000 – 672000 “fit” 870000 – 872000 “hit” 1102000 – 1104000 “kem” 1326000 – 1328000 “mor” 1542000 – 1544000 “ram” 1768000 – 1770000 “tis” 2232000 – 2234000 “yang” Rata-rata Error

Tabel Referensi a ki car fit hit kem mor ram tis yang

Error (%) 0 0 0 0 0 0 0 0 0 0 0%

Analisa: Berdasarkan data hasil pengujian persentase ketepatan penyusunan database suara yang dibandingkan dengan tabel alamat database suara yang telah dibuat adalah 100% dari 10 sample. Jika terjadi kesalahan penyusunan alamat fonem ini maka Output suara yang dihasilkan tidak akan sesuai dengan yang kita inginkan. Untuk membuat database suara fonem sebanyak 1170 ini diperlukan ketelitian dan kesabaran yang tinggi. Kesimpulannya, ketepatan penyusunan database suara fonem ini menentukan jenis Output suara yang dihasilkan. Persentase ketepatan penyusunan database suara ini yang dibandingkan dengan tabel alamat database suara yang telah dibuat adalah 100% dari 10 sample. 4.1.2. Pengujian Software konversi teks ke fonem

Pengujian ini bertujuan untuk mengetahui ketepatan proses konversi dari teks ke fonem. Pengujian menggunakan komputer dengan software Microsoft visual c++ 6.0. Input teks dimasukan melalui keyboard dan hasil konversi ditampilkan pada layar. Pada gambar 4.2. merupakan tampilan proses pengujian software konversi teks ke fonem melalui komputer.

Gambar 4.2. Pengujian software konversi teks ke fonem

Pengujian dilakukan dengan memasukkan suatu kata secara acak kemudian meghitung persentase ketepatan konversi ke fonem dengan acuan referensi pengucapan fonem kata tersebut secara manual.

3.2. 5. 8. 2. Ketepatan konversi ini menentukan jelas tidaknya suara yang dihasilkan. 4.2. 10.1. Pengujian menggunakan komputer dengan software Microsoft visual c++ 6. Persentase ketepatan software konversi teks ke fonem ini adalah 100% dari 10 sample. Pengujian software untuk penentu alamat fonem pada MMC Pengujian ini bertujuan untuk megetahui ketepatan software menentukan alamat fonem pada MMC. Sebaliknya akan terdengar jelas jika dikonversi menjadi fonem “a-ku”. 7. Input Aku Beli Makan Ompong Dengan Menyapu Proklamasi Institut Elektronika Manusia Output A-ku Be-li Ma-kan Om-pong De-ngan Me-nya-pu Pro-kla-ma-si Ins-ti-tut E-lek-tro-ni-ka Ma-nu-si-a Rata-rata Error Referensi A-ku Be-li Ma-kan Om-pong De-ngan Me-nya-pu Pro-kla-ma-si Ins-ti-tut E-lek-tro-ni-ka Ma-nu-si-a Error (%) 0 0 0 0 0 0 0 0 0 0 0% Analisa: Berdasarkan data hasil pengujian didapatkan persentase ketepatan konversi teks ke fonem adalah 100% dari 10 sample.Pada tabel 4. Kesimpulannya. Input suatu fonem dimasukan melalui keyboard dan hasil alamat fonem tersebut .3. Misalnya suara “aku” jika salah dikonversi menjadi bentuk fonem”ak-u” akan terdengar kurang jelas. Tabel 4.0. ketepatan konversi teks ke fonem ini menentukan jelas tidaknya suara yang dihasilkan. merupakan hasil pengujian software konversi teks ke fonem dengan memasukan 10 jenis kata secara acak. 4. 6. Hasil pengujian konversi teks ke fonem No 1. 9.

3. 4. 10.3. merupakan hasil pengujian software penentu alamat fonem dengan memasukan 10 jenis fonem secara acak.3. 8.3. Pengujian software penentu alamat fonem Pengujian dilakukan dengan memasukkan suatu fonem secara acak kemudian membandingkan Output nilai alamat dari software ini dengan referensi dari tabel alamat fonem. 2. Pada tabel 4. 7. merupakan tampilan proses pengujian software untuk penentu alamat fonem pada MMC melalui komputer. 5. Gambar 4. Tabel 4. 9. 6. Pada gambar 4. Input Output Referensi Fonem Alamat Alamat a 0 0 ma 242 242 car 446 446 fit 670 670 hit 870 870 kem 1102 1102 mor 1326 1326 ram 1542 1542 tis 1768 1768 yang 2232 2232 Rata-rata Error Error (%) 0 0 0 0 0 0 0 0 0 0 0% . 3.ditampilkan pada layar. Hasil pengujian software penentu alamat fonem No 1.

Analisa: Berdasarkan data hasil pengujian persentase ketepatan software penentu alamat fonem yang dibandingkan dengan tabel alamat database suara yang telah dibuat adalah 100% dari 10 sample.1. bilangan yang digunakan dalam penghitungan alamat tidak mengikutsertakan ribuan.4. Pengujian dilakukan dengan cara mengambil 10Byte data pada alamat tertentu dari MMC dan hasil pengambilan data tersebut ditampilkan pada layar komputer dengan komunikasi serial RS-232. Kesimpulannya. Alamat data “<data_MMC>” di MMC .4. Hasil pengambilan darta tersebut dibandingkan dengan data sebenarnya pada MMC yang dilihat melalui software WinHEX. merupakan tampilan Winhex menunjukan data karakter(“<data_MMC>”) yang tersimpan di dalam MMC pada alamat 0x27DC00 sampai dengan 0x27DC09. Nilai alamat hasil software ini masih harus dikalikan dengan bilangan 1000 agar sesuai dengan alamat sebenarnya di dalam MMC.4. Gambar 4. 4. Persentase ketepatan software penentu alamat fonem yang dibandingkan dengan tabel alamat database suara yang telah dibuat adalah 100% dari 10 sample. Untuk menghemat memori. ketepatan pengalamatan fonem database ini menentukan jenis Output suara yang dihasilkan. Jika terjadi kesalahan penentuan alamat fonem ini maka Output suara yang dihasilkan tidak akan sesuai dengan yang kita inginkan. Gambar 4. Pengujian software akses ke MMC Pengujian ini bertujuan untuk mengetahui persentase ketepatan pengambilan data pada alamat terentu di MMC.

} Gambar 4. for(i=0. hi=0x27. merupakan hasil pengujian pengambilan data dari MMC dan ditampilkan pada layar komputer via serial komunikasi.6.i<10. Gambar 4.hi. Pengujian pengambilan data dari MMC Pada gambar 4.0x95). lo=0xDC00.5. merupakan program yang digunakan untuk mengambil 10Byte data dari MMC pada alamat 0x27DC00 .i++){ printf("%c".spi(0xFF)).4.6. while(spi(0xFF) != (char)0xFE).0x27DC09 dan dikirim ke komputer via RS232. . Program pengambilan data dari MMC Pada tabel 4.5. Command(0x51.lo. merupakan tampilan hasil pengambilan data melalui serial komunikasi.Pada gambar 4.

ketepatan pengambilan data pada MMC menentukan jenis Output suara yang dihasilkan. Misalnya data yang ingin diambil berada di alamat 513 maka pengambilan data tidak bisa langsung dengan alamat 513 tetapi harus pada alamat 512. Pengujian dilakukan dengan cara membangkitkan sinyal PWM . Hasil pengambilan data dari MMC No 1. 8. 5.5. Selain itu berdasarkan hasil percobaan. Jika terjadi kesalahan pemgambilan data maka Output suara yang dihasilkan tidak akan sesuai dengan yang kita inginkan. 3. Pengujian software konversi ke sinyal analog(PWM) Pengujian ini bertujuan untuk mengetahui ketepatan software dalam mengkonversi sinyal digital menjadi sinyal analog dengan metode PWM. 4. data pada alamat 512 dapat tidak dihiraukan. 6.Tabel 4. 9. 10. 7. Alamat pada Data MMC(heksa) Output 0x27DC00 “<” 0x27DC01 “d” 0x27DC02 “a” 0x27DC03 “t” 0x27DC04 “a” 0x27DC05 “_” 0x27DC06 “M” 0x27DC07 “M” 0x27DC08 “C” 0x27DC09 “>” Rata-rata Error Data Referensi “<” “d” “a” “t” “a” “_” “M” “M” “C” “>” Error (%) 0 0 0 0 0 0 0 0 0 0 0% Analisa: Berdasarkan data hasil pengujian didapatkan persentase ketepatan pengambilan data 100% dari 10 sample. Kesimpulannya.1. Persentase ketepatan pengambilan data 100% dari 10sample. 4. Selanjutnya dengan memberikan clock pada pin SCK secara berulang-ulang maka akan didapatkan data sebanyak 512Byte mulai alamat 512 sampai 1023. awal pengalamatan pada MMC harus kelipatan 512. 2.4.

37 11.3 0. Tabel 4. OCR1A=Duty*255. Pada gambar 4.dengan duty cycle tertentu kemudian mengukur tegangan rata-rata Output (V out) pada pin OC1A ATmega8 menggunakan multimeter dan dibandingkan dengan hasil perhitungan(V ref) menggunakan persamaan 2.95 2.48 3.5 0. 20 0.0.5.43 7.97 4. 80 3. merupakan hasil pengujian software konversi ke sinyal analog dengan duty cycle mulai 0 – 100%.46 1.89 Error (%) 0 0 0 1.93 3.7% dari 11sample.40 9.42 3.89 10. 40 1.44 5.6 0 0.48 0. 30 1.7.94 6.91 4. Pengujian PWM V supply = 4. 100 4.40 4.93 8.34% Berdasarkan data hasil pengujian ketepatan software konversi ke sinyal analog dengan metode PWM adalah 99.44 2.7. 50 2.5. Gambar 4. 60 2. .89 Rata-rata Error Analisa: V ref (V) 0 0.5 0.5 0. 10 0.4 0 0. 70 3. 0 0 2. Duty = 50/100. 90 4. merupakan program untuk membangkitkan sinyal PWM dengan duty cycle 50%.97 1.2.89V No Duty cycle V out (%) (V) 1. Program pembangkit PWM duty cycle 50% Pada tabel 4.

Memasukkan input beberapa kalimat melalui keypad kemudian mengukur waktu rata-rata penulisan dengan keypad ini Mengukur waktu rata-rata Output per fonem dari beberapa kalimat. Pengujian alat yang diintegrasikan dengan hardware secara keseluruhan dilakukan dengan proses-proses sebagai berikut : 1. Kesimpulannya.1. 4. . Sebaliknya jika Error konversi mendekati nol maka suara yang dihasilkan semakin mirip dengan suara aslinya. PENGUJIAN SECARA KESELURUHAN Mengintegrasikan hardware dan software dengan cara memasukan kata dan kalimat melalui keypad untuk mengetahui Ketepatan kata atau kalimat yang dimasukkan melalui keypad dengan tampilan di LCD dan suara yang dikeluarkan melalui speaker. Jika terjadi kesalahan konversi nilai maka rekonstruksi amplitudo suara yang dihasilkan tidak akan sesuai dengan suara yang asli. 4.7% dari 11sample.2. Pengukuran waktu akses ke keypad Hasil pengukuran waktu yang dibutuhkan untuk memasukkan teks melalui keypad terlihat pada tabel 4. 3. 4. Persentase ketepatan software konversi ke sinyal analog dengan metode PWM adalah 99.34% hal ini mungkin disebabkan oleh kesalahan alat ukur atau kualitas alat yang digunakan. 2.6.Error konversi adalah 0.2. Menampilkan dalam bentuk gambar Output suara sample ”selamat pagi” untuk mengetahui kesesuaian rekonstruksi sinyal Output . ketepatan software konversi ke sinyal analog ini menentukan level amplitudo suara yang dihasilkan. Menghitung persentase keberhasilan Output suara sistem diidentifikasi oleh pendengar.

Pada sebuah tombol terdapat pilihan lebih dari satu karakter.2.6. Kesimpulannya. 3. 4. 4. Selain itu jika user sudah terbiasa dengan karakteristik keypad ini maka waktu akses penulisan kata pasti akan lebih cepat. Analisa: Isi teks baca data dari database lagi saya komunikasi sama rudi di surabaya saya coba sekali lagi saya coba kata kata lagi besok ada kuliah di poltek Waktu akses (m): (s):(ms) 00:22:56 00:25:22 00:14:86 00:17:83 00:13:94 Input teks pada keypad ini memilki sistem yang sama pada keypad handphone yang digunakan untuk menulis SMS. Huruf yang berada di pilihan pertama tombol(contoh “a”) pasti memiliki waktu akses yang lebih cepat dibandingkan huruf pada pilihan terakhir tombol(contoh “c”).7. Waktu untuk memasukkan teks melalui keypad No.Tabel 4.2. waktu yang dibutuhkan dalam penulisan suatu kata tergantung dari panjang karakter kata tersebut dan komposisi hurufnya. Pengukuran waktu rata-rata Output suara per fonem Hasil pengukuran waktu rata-rata Output suara per fonem ditunjukkan pada tabel 4. 2. 1. . 5.

4. Dengan demikian waktu aktual Output suara per fonem sama dengan nilai hasil perhitungan. saya coba kata kata lagi 5. Kesimpulannya. merupakan tampilan sinyal Output yang . besok ada kuliah di poltek Waktu output rata-rata per fonem Analisa: Untuk menghitung waktu rata-rata perfonem dengan cara memasukkan berbagai teks kemudian menghitung total waktu yang dibutuhkan untuk dikonversi menjadi suara. Isi teks Waktu (m): (s):(ms) rata-rata per total fonem 00:00:27 00:00:24 00:00:26 00:00:25 00:00:23 250ms 00:03:43 00:04:20 00:02:43 00:02:62 00:02:44 1.2.3. Pada gambar 4. Tampilan Output sinyal suara sistem Untuk mengetahui bentuk sinyal Output suara dari sistem ini yaitu dengan melakukan perekaman dan menampilkannya dalam bentuk gambar. Setelah diketahui total waktu tersebut kemudian akan dikurangi dengan delay waktu spasi yang ada dan hasilnya akan dibagi dengan jumlah fonemnya. 2. waktu Output rata-rata per fonem adalah 250ms. Sedangkan dengan rata-rata panjang sample per fonem adalah 2000 sample maka dengan frekuensi sampling 8KHz didapatkan waktu perhitungan rata-rata Output sample 250ms. Waktu rata-rata Output per fonem No.Tabel 4. baca data dari database lagi saya komunikasi sama rudi di surabaya 3.8. Perhitungan waktu total dimulai dari saat menekan tombol enter sampai seluruh fonem terkonversi menjadi suara. saya coba sekali lagi 4.7. Disini waktu delay per spasinya adalah 40 ms.

. Gambar 4. Tampilan suara “selamat pagi” sistem Bentuk sinyal suara fonem dari database tampak pada gambar 4.direkam menggunakan software Ace of WAV .8. Tampilan sinyal ini berasal dari penggabungan fonem-fonem “se-lamat_pa-gi” database suara menggunakan software Ace of WAV. Pada gambar 4.9. tanda akhir dari setiap fonem masih terlihat sedangkan pada Output sistem tanda ini sudah dihilangkan agar tidak menghasilkan bunyi yang mengganggu.9. Suara yang direkam adalah kata”selamat pagi”.

Gambar 4.9. Tampilan fonem “se-la-mat pa-gi” database Sedangkan sebagai referensi pembandingnya adalah hasil rekaman dari software IndoTTS.10. adalah hasil rekaman dari software tersebut. Pada gambar 4. Gambar 4. Tampilan suara “selamat pagi” IndoTTS .10.

4. bentuk sinyal Output sistem identik dengan bentuk sinyal database hasil perekaman. Pengujian dilakukan dengan memperdengarkan hasil Output suara 10 jenis kalimat beraturan dan 10 kalimat dengan kata tidak beraturan kepada 10 orang responden. . dan tabel 4.9. Perbedaan amplitudo disebabkan adanya penguatan dalam input audio komputer pada saat perekaman.7]. Hasil pengujian selengkapnya dapat dilihat pada lampiran3.2.8.Analisa : Berdasarkan tampilan sinyal tersebut tampak bahwa bentuk sinyal Output suara sistem sudah sesuai dengan bentuk sinyal database suara. Hasil pengujian tampak pada tabel 4. Pengujian kualitas Output suara Pengujian ini bertujuan untuk mengetahui persentase keberhasilan pendengar dalam mengidentifikasi kalimat yang dihasilkan sistem. Hal ini menunjukkan proses rekonstruksi sinyal berhasil dilakukan.slide. Kesimpulannya. Responden hanya diberi kesempatan untuk mendengarkan Output suara sebanyak 2 kali dan tidak diberi tahu jenis kalimat yang akan didengarkan. Pada setiap transisi fonem disisipkan bunyi kombinasi huruf antar fonem tersebut. Metode Diphone Concatenation Technology yang digunakan IndoTTS menyebabkan hasil Output dari IndoTTS memiliki suara yang lebih alami[3. 4. contoh pada pembentukkan kata “komputer” dengan konfigurasi “~k-ko-om-mp-pu-ut-te-er-r~”.

Selamat pagi.6 53.38% Tabel 4.33 26. Tolong ambilkan buku di meja itu. Harganya seratus lima puluh ribu rupiah. Murah lagi gula. Ibu membeli sayur di pasar. 8. 3.8. ada lubang di jalan. Lupa jalan nama ribu. Hati hati.43 58. Surabaya negara sekolah.32 18.Tabel 4. Politeknik elektronika negeri surabaya. Kalimat input Buku pergi mandi. 6. Kepalaku pusing sekali.8. 10. Rata-rata Error Error (%) 8.6 7 76.9 51. Output suara kata yang kurang jelas menyebabkan pendengar hanya menebak kata tersebut.67 14.33 17. 10. Aku beli gula satu kilogram.6% Analisa: Berdasarkan hasil pengujian pada tabel 4. Saya nasi lalu.83 42. Rata-rata Error Error (%) 36.38% yang disebabkan masih adanya suara diam pada penggabungan antar fonem. Nama saya mapola abdia rayana.77 0 3. 5. 6. 4. Hasil identifikasi pendengar dari 10 kalimat beraturan No 1. 3. 9.17 2 10.3 68. 9. Baju binatang kepala. Kalimat input Saya makan nasi.6 66. Hasil identifikasi pendengar dari 10 kalimat tidak beraturan No 1. 5. Program makan beli. didapatkan error rata-rata 18. Sudah mata kebakaran selamat.2 39. 8.9. 2. Badak jelas pagi. 4.6 48. 7. 7.3 50.3 58. 2. Persentase . Tadi kursi kancil.

Pada umumnya manusia berdialog dengan menggunakan kalimat yang beraturan yaitu antara kata yang satu dan yang lainnya saling berhubungan.keberhasilan Output suara diidentifikasi oleh pendengar adalah 81. Kesimpulannya. persentase keberhasilan Output suara diidentifikasi oleh pendengar adalah 81.62% dari 10 sample kalimat dengan kata beraturan . Hal ini disebabkan pendengar kesulitan mengidentifikasi kalimat dengan kata yang tidak beraturan.3% dari 10 sample kalimat tidak beraturan .62% dari 10 sample kalimat beraturan . Persentase keberhasilan Output suara diidentifikasi oleh pendengar adalah 49. Sedangkan hasil pengujian dari 10 kalimat tidak beraturan menunjukkan error rata-rata 50. .6%.

”Halaman ini sengaja dikosongkan” .

. 2. 6. Persentase keberhasilan penyusunan 1170 database suara fonem sesuai alamatnya. Pada sistem ini digunakan ATmega8 untuk meminimalkan dimensi sistem. Tanda baca yang bisa diterapkan pada sistem ini adalah tanda baca koma dan titik. Keberhasilan rata-rata Output suara sistem ini dikenali oleh 10 pendengar adalah 81. KESIMPULAN Setelah melakukan perencanaan dan pembuatan sistem kemudian dilakukan pengujian dan analisanya.BAB V PENUTUP 5. 5. software untuk mengambil data fonem pada MMC dan software konversi teks ke fonem adalah 100% dari 10 sample pengujian. Pengiriman command READ pada MMC harus memiliki alamat dengan kelipatan 512.2. 5. Beberapa kata yang tidak dikenali disebabkan masih adanya suara diam pada penggabungan antar fonem.62% dari 10 sample kalimat. Pada sistem ini jumlah karakter dalam suatu kalimat yang dapat diubah ke suara dirancang 50 karakter. 3. disebabkan keterbatasan memori pada ATmega8. maka dapat diambil beberapa kesimpulan yaitu sebagai berikut: 1.1. SARAN Untuk membuat aplikasi yang lebih kompleks sebaiknya digunakan mikrokontroler dengan kecepatan dan memori yang lebih tinggi daripada ATmega8. Hal ini merupakan protokol MMC.7% dari 11 sample pengujian. Persentase keberhasilan software konversi sinyal digital ke sinyal analog dengan metode PWM adalah 99. 4. software penentu alamat fonem.

”Halaman ini sengaja dikosongkan” .

.id/penelitian/narasi.en.com/software/ace (diakses tanggal 29 maret 2009 jam 9. [2] Bejo. Agus ”C dan AVR Rahasia Kemudahan Bahasa C dalam Mikrokontroler ATmega8535”. Arry “Konversi dari Teks ke Ucapan. [9] http://www.00 WIB).00 WIB ).net.com/centers/gff/formats/micriff/index.polyhedric.00 WIB).00 WIB). [3] Akhmad Arman.bappenas. [11] http://www.melsa.html (diakses tanggal 5 Juni 2008 jam 13. Siswo ”Desain Text to Speech Untuk Membaca SMS Dalam Bahasa Indonesia”. [5] ATmega8 Datasheet. [12] http://instruct1.htm (diakses tanggal 5 Juni 2008 jam 13.DAFTAR PUSTAKA [1] Dwi Utomo.00 WIB). Arry “Design and Implementation of Indonesian Sign Language to Speech Converter.netrino.00 WIB).edu/courses/ee476/FinalProjects/s200 7/cd247_maw72(diakses tanggal 5 Juni 2008 jam 13.00 WIB).pdf “.00 WIB).id/download.org/docs/mmc_e.pdf “.com/download (diakses tanggal 29 maret 2009 jam 9.cornell. [4] Akhmad Arman. [8] www.Tugas Akhir PENS-ITS 2008.html (diakses tanggal 5 Oktober 2008 jam 8. [10] http://winhex.ora. 2008.com/Embedded-Systems/How-To/Pwm. Graha Ilmu.softonic. [6] http://indotts. [7] http://elm-chan.go. [13] http://www.html (diakses tanggal 15 September 2008 jam 9.cit. Institut Teknologi Bandung.php (diakses tanggal 5 Juni 2008 jam 13. Institut Teknologi Bandung.

hu. co. ce. JA. ge. d. il. bo. as. ma. da. ir. if. uh. ah. ul. 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98 100 102 104 106 108 110 112 114 116 118 120 (KV) BA. do. im. la. h. g. fu. am. at. eb. ca. ur. ol. ka. of. ar. (VK) ab. ot. in. ek. *** 152 154 156 158 160 162 164 166 168 170 172 174 176 178 180 om. ut. or. gi. I. he. et. e. er. q. fo. fe. gu. s. fi. ke. du. uf. al. r. p. c. cu. *** 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 *** 52 54 56 ak. ob. un. de. ik. 182 184 186 188 190 192 194 196 198 200 202 204 206 208 210 212 214 216 218 220 222 224 226 228 230 232 234 236 238 240 242 244 . ok.Lampiran 1. ub. le. n. ci. ib. go. ga. ju. on. el. bi. ho. u. bu. y. en. um. m. Data 1170 Fonem beserta Alamatnya (V) a. is. w. je. li. l. an. di. jo. es. o. lu. em. ha. uk. v. ko. ef. z. ki. ku. hi. ji. us. k. os. oh. 122 124 126 128 130 132 134 136 138 140 142 144 146 148 150 FA. ih. j. be. b. eh. f. x. t. it. af. lo. mi.

bun. me. bit. but. ne. bel. bih. ti. beh. cit . cir . 442 444 446 448 450 452 454 456 458 460 462 464 466 468 470 472 474 476 478 480 482 484 486 488 490 492 494 496 498 500 502 504 506 (KVK) *** . ceb. bak. 312 314 316 318 320 322 324 326 328 330 332 334 336 338 340 342 344 346 348 350 352 354 356 358 360 362 364 366 368 370 372 374 buh. pe. cak. pi. bof.mu. cib . caf. bef. cik . ni. cel . bib. wi. car . bub. bob . mo. ceh. ben. cut . bim. ro. cuf. cas. zi. cal . ban. beb . bas. cih. boh. wu. nu. cus. no. buf. cur . to. bif. zo. bat. na. bol . cum. bul. cem. cab. bes . 246 248 250 252 254 256 258 260 262 264 266 268 270 272 274 276 278 280 282 284 286 288 290 292 294 296 298 300 302 304 306 308 310 YA. cun. re. bah. si. bin. can. su. bem. bil. bet . 376 378 380 382 384 386 388 390 392 394 396 398 400 402 404 406 408 410 412 414 416 418 420 422 424 426 428 430 432 434 436 438 440 cam. cin . ru. bus. bir. cis . cuk. so. baf. ye. bis. zu. yu. sa. tu. bon . BAB. cub. PA. WA. cil . wo. yi. ber. cim. bar. RA. cek. cif. se. bok . bek . bot . bam. cer . bor . ta. ze. we. yo. bum. cuh. po. bom. cah. cen. buk. te. za. bal. cat . bik. bos . pu. ri. bur. cef. cul .

gib . gat . dis . gir . gam. fem . fes . dab . far . gak. fir . cob. dom. dak . fum . fut . fob . fet . feb . gih. fon . dif. fin . gal . foh. 706 708 710 712 714 716 718 720 722 724 726 728 730 732 734 736 738 740 742 744 746 748 750 752 754 756 758 760 762 764 766 768 770 . fof. fat . gaf. ful . den . con . gif. duk . gim. feh. fan . dan . fuf. gar . dam. cet . cos . gas. fef. fos . del . dek . fih. cof. fil . fek . fus . deb . dem. gis . dah. fun . dul . 640 642 644 646 648 650 652 654 656 658 660 662 664 666 668 670 672 674 676 678 680 682 684 686 688 690 692 694 696 698 700 702 704 fer . dof. fas . git . gik . dok . dob . 574 576 578 580 582 584 586 588 590 592 594 596 598 600 602 604 606 608 610 612 614 616 618 620 622 624 626 628 630 632 634 636 638 fal . dor . dih. gil . duh. dub . faf. dal . gan. fuh. des . din . dos . col . gin . dil . dum. dol . fol . fib . fik . det . fuk . 508 510 512 514 516 518 520 522 524 526 528 530 532 534 536 538 540 542 544 546 548 550 552 554 556 558 560 562 564 566 568 570 572 duf. com. cot . fot . FAB. dir . dit . doh. cok. dur . fam . cor . dat . fim . fub . dim .ces. fah. don . fif. fit . fel . dot. fak . daf. der . dut . fis . fok . fom . fen . dik . dar . deh. dib . gah. das . fur . dun . def. gab. coh. for . dus .

gon. hos . hef. jam. gol . hih. geh. 904 906 908 910 912 914 916 918 920 922 924 926 928 930 932 934 936 938 940 942 944 946 948 950 952 954 956 958 960 962 964 966 968 jit . jil . han . hur . gok. huk . hin . joh. guk. juf. got . jan . jef. jer . gus. gom. jof. jas . jeb . hut . hat . gel . hem . jon . hil . get . hah. jul . gem. gek. jok . him . hof. hit . hab . hul . gut . ham . hum . jek . jar . guf. jik . hel . 970 972 974 976 978 980 982 984 986 988 990 992 994 996 998 1000 1002 1004 1006 1008 1010 1012 1014 1016 1018 1020 1022 1024 1026 1028 1030 1032 1034 .gub. jen . jat . hir . jal . jut . gof. hon . jaf. hom . gun. hub . jot . jet . jir . jeh. heb . haf. jim . gos. gef. hes . hol . jos. 772 774 776 778 780 782 784 786 788 790 792 794 796 798 800 802 804 806 808 810 812 814 816 818 820 822 824 826 828 830 832 834 836 hak . huh. gum. jur . jom . hoh. kaf. hun . het . kab. 838 840 842 844 846 848 850 852 854 856 858 860 862 864 866 868 870 872 874 876 878 880 882 884 886 888 890 892 894 896 898 900 902 hen . hor . jin . hok . juk . guh. hek . hot . jih. his . gor . ger . jol . hif. jes . jub . hal . gul . jel . has . gen. hib . job . jum . jah. geb. her . ges. gob. har . jor . jem . jun . jus . hob . jib . juh. huf. hus . jif. goh. gur . hik . JAB. jis . jak . heh.

mub . kan. kuk . let . kat . mak . ler . kor . man . lil . leb . kuf. kot . lam . lut . lor . kur . kon . lun . keb . lit . kar . lel . kel . lek . mar . kok . lih. kun . muf. mi . meb . kol . mun . mat . mal . laf. muh. kik . 1036 1038 1040 1042 1044 1046 1048 1050 1052 1054 1056 1058 1060 1062 1064 1066 1068 1070 1072 1074 1076 1078 1080 1082 1084 1086 1088 1090 1092 1094 1096 1098 1100 kem. kul . kal . mit . kit . 1242 . mab . ket . lat . mul . min . kut . lah. kak. lem. keh. lim . lar . kil . kom. luh. kum. mib . mus . lol . lot. lur . kib . lom. las . kam. ker . 1234 1236 1238 1240 1244 1246 1248 1250 1252 1254 1256 1258 1260 1262 1264 1266 1268 1270 1272 1274 1276 1278 1280 1282 1284 1286 1288 1290 1292 1294 1296 1298 mam . luk . kof. lin . 1102 1104 1106 1108 1110 1112 1114 1116 1118 1120 1122 1124 1126 1128 1130 1132 1134 1136 1138 1140 1142 1144 1146 1148 1150 1152 1154 1156 1158 1160 1162 1164 1166 lis . mut . lus . mas . lak . leh. kis . kim . kin . len . kif. 1168 1170 1172 1174 1176 1178 1180 1182 1184 1186 1188 1190 1192 1194 1196 1198 1200 1202 1204 1206 1208 1210 1212 1214 1216 1218 1220 1222 1224 1226 1228 1230 1232 maf. kek . lik . lan . lof. kuh. kas. loh. lef. mik . mek . lob . mih. luf. muk . mim . los. lum.kah. lir . lib . mum. kub . mur . kob . kus . lul . mis . lon . lab . mir. lok . kos . ken . kef. mah. kih. lub . kes . lal . lif. mif. meh. kir . koh. les . mef.

pub . nur . nes . mom. puf. pir . nih. nuf. mof. pih. pam. nif. rak . raf. mos . mok . peb . nin . pot . neh. por . nef. pil . pik . nut . pef. naf. men . put . pof. num. ner . pon . nem. pos . rih. pob . pul . nor . nas . mes . pif. 1432 1434 1436 1438 1440 1442 1444 1446 1448 1450 1452 1454 1456 1458 1460 1462 1464 1466 1468 1470 1472 1474 1476 1478 1480 1482 1484 1486 1488 1490 1492 1494 1496 pek . nun . mol . pin . rik . mor . nah. nar . moh. net . pus . nam . nuk . nan . pum. ras . pes . poh. rah. pun . pit . 1498 1500 1502 1504 1506 1508 1510 1512 1514 1516 1518 1520 1522 1524 1526 1528 1530 1532 1534 1536 1538 1540 1542 1544 1546 1548 1550 1552 1554 1556 1558 1560 1562 . nob . pol . nil . nom. pim . ril . ral . nul . per . nel . nis . puh. nab . nib . nik . rar . met . nat . peh. pas . nuh. nal . nos . nus . pat . noh. nim . mer . nah. pok . mob . pak . pan. RAB. nen . mot . rib . pet . nol . pem. pal . nub . rif. par . non . ran. not . ram. mon . nof. pur . paf. 1300 1302 1304 1306 1308 1310 1312 1314 1316 1318 1320 1322 1324 1326 1328 1330 1332 1334 1336 1338 1340 1342 1344 1346 1348 1350 1352 1354 1356 1358 1360 1362 1364 nir . pis . neb . pen . pib . nit . puk . nak . pel . nok . rim .mel . rat . nek . pom . mem. 1366 1368 1370 1372 1374 1376 1378 1380 1382 1384 1386 1388 1390 1392 1394 1396 1398 1400 1402 1404 1406 1408 1410 1412 1414 1416 1418 1420 1422 1424 1426 1428 1430 PAB.

tus . san . ref. sof. soh. tam . sih. sok . sak . tin . sit . til . tih. ren . son . ret . res . sot . sas . sum. ris . rok . taf. tok . rer . ror . sib . tef. suk . 1762 1764 1766 1768 1770 1772 1774 1776 1778 1780 1782 1784 1786 1788 1790 1792 1794 1796 1798 1800 1802 1804 1806 1808 1810 1812 1814 1816 1818 1820 1822 1824 1826 . 1564 1566 1568 1570 1572 1574 1576 1578 1580 1582 1584 1586 1588 1590 1592 1594 1596 1598 1600 1602 1604 1606 1608 1610 1612 1614 1616 1618 1620 1622 1624 1626 1628 rot . sub . rul . rub . tof. ruk . set . sek. rut . tes . tal . sul . 1696 1698 1700 1702 1704 1706 1708 1710 1712 1714 1716 1718 1720 1722 1724 1726 1728 1730 1732 1734 1736 1738 1740 1742 1744 1746 1748 1750 1752 1754 1756 1758 1760 tim . rus . sus . rom . tob . sil . ten . sor . tem. sir . ton . rek . saf. reh. tas . sik . rol . teb . sen . suf. sut . tik . tut . rel . tol . sem. tor . tan . tun . ruf. tat . teh. sur . tuh. sos . tet . rur . tah. sam . ter . tif. roh. tel. tib . 1630 1632 1634 1636 1638 1640 1642 1644 1646 1648 1650 1652 1654 1656 1658 1660 1662 1664 1666 1668 1670 1672 1674 1676 1678 1680 1682 1684 1686 1688 1690 1692 1694 seh. tis . run . ses . sin . tub. sob . sif. tak . sab . sel . rit . seb . tit . som . tuk . sat . rob . tum. tur . rir . tar . tek . tir . toh. sol . rof. sun . sef. fuh. ros . tul . tuf. sis . sim . rum .rin . sal . reb . ron . sah. ser . tab . rem . tom . sar . suh.

zak. yir . yeb . yos . wuh. zin. yol . zir. web . yut . yan . 1882 . yaf. yen . yoh. yar . yit . wol . wak . zah. yal . yih. 2026 2028 2030 2032 2034 2036 2038 2040 2042 2044 2046 2048 2050 2052 2054 2056 2058 2060 2062 2064 2066 2068 2070 wem . was . yum . 2072 bing. wut . wer . wib . bung. wik . zik. yul . wit . 1894 1896 1898 1900 1904 1906 1908 1910 1912 1914 1916 1918 1920 1922 1924 1926 1928 1930 1932 1934 1936 1938 1940 1942 1944 1946 1948 1950 1952 1954 1956 1958 yil . win . zil. yat . tot . yur . woh. wub . yef. yek . yam . yer . 1828 1830 1832 1834 1836 1838 1840 1842 1844 1846 1848 1850 1852 1854 1856 1858 1860 1862 1864 1866 1868 1870 1872 1874 1876 1878 1880 1884 1886 1888 1890 1892 wef. wet . yob . yas . yon . yom . wos . wif. wun . yeh. yik . yif. wam. zit. cung. yel . wor . zat. 1902 (KVKK) *** BANG. yus . wus . zih. beng. yof. wot . yim . yuk . wis . yah. wil . wom. yuh. wur . waf. zal. yun . zan. yem . wel . zab. zas. zim. wab . wir . zaf. yin . wal . yok .tos . yis . zis. wek . wes . war . yes . bong. won . zam. yet . yuf. zif. 1960 1962 1964 1966 1968 1970 1972 1974 1976 1978 1980 1982 1984 1986 1988 1990 1992 1994 1996 1998 2000 2002 2004 2006 2008 2010 2012 2014 2016 2018 2020 2022 2024 yor . yib . yak . wan . zar. ceng. wen . wul . wuf. YAP. yub . zib. wat . wim . wob . cang. 2074 2076 2078 2080 2082 2084 2086 2088 wum . wuk . weh. wok. yot . wih. wof. wah. cing.

nyo. sang. ting. keng. ying. gram. 2168 mong. lang. kli. ing. fung. reng. 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 mang. ngu. neng. klim. staf. klan. ding. ins. tra. ngat. pung. ging. gong. hing. dwi. 2192 JANG. ning. pong. (KKV) *** 12 14 16 18 20 22 24 26 28 30 32 34 36 38 2232 2234 2236 2238 2240 ***** 0 2 4 6 8 10 ngo. dung. drop. sung. ***** ang. kung. sing. tran. yong. 2228 wong. brik. nya. bruk. gri. 2172 2174 2176 2178 2180 2184 2186 2188 2190 2194 2196 2198 2200 2202 2204 2206 2208 2210 2212 2214 2216 2218 2220 FANG. ong. 2166 meng. pro. feng. teng. blis. ngan. king. rong. nyi. kla. geng. dong. jung. nga. gra. jeng. tong. nong. bri. tung. sta. tri. ring. rung. nge. fong. song. seng. 2162 mung. hang. kro. fing. yung. hong. brol. stan. hung. kang. kong. 2226 weng.cong. krab. 2224 wung. 2102 (VKK) *** (KKVK) *** PANG. deng. long. dang. 2090 2092 2094 2096 2098 2100 2104 2106 2108 2110 2112 2114 2116 2118 2120 2122 2124 2126 2128 2130 2134 2136 2138 2140 2142 2144 2146 2148 2150 2152 2154 lung. nye. ping. gla. ung. 2170 nang. nyer. jong. ming. leng. 2156 2158 2160 2164 WANG. dra. jing. gang. 2182 RANG. tro. kra. 2222 wing. 2230 yang. ling. ngin. ngi. 2132 . eng. yeng. nyu. nung. heng. tang. peng. brak. gung.

h" "ketik. TCNT0=0. #asm RJMP 0x00.c #include "sEOS. TIMSK=0x01.h" "adc. } 1 . sEOS_Idle_Init().c #include #include #include #include #include #include <mega8.h" void main(void) { sEOS_Init_Timer0().h> "sEOS. adc_init(). ketik_init().h" void sEOS_Init_Timer0(void) { TCCR0=0x05. } //sEOS. while (1) { #asm("sleep") }.h" #include "ketik.h" #include "adc.__RESET #endasm } set_blok(512). if(mmc_init()!= 1){ delay_ms(500). mcu_spi_init().h" "pwmku. #asm("sei") } void sEOS_Idle_Init(void) { MCUCR |= 0x40.h" "spiku.Lampiran 2. pwm_init(). Listing Program //main.

h" #include <spi. unsigned int AdrL.c #include "pwmku.interrupt [TIM0_OVF] void sEOS_ISR(void) { scan(). DDRB. ICR1H=0x00. unsigned int AdrH. PORTB. TCCR1B=0x09.2= 0. cek_baterai(). spi(cmd). DDRB.h> #include <lcd2.4 = 0.1=1.h> //------------------------------------------------------void mcu_spi_init(void) { DDRB. } //pwmku.3 = 1. OCR1AH=0x00. OCR1BL=0x00.c #include <mega8. SPCR = 0b01010011 . } //spiku. DDRB. OCR1BH=0x00. ICR1L=0x00. TCNT1L=0x00. SPSR = 0. } //------------------------------------------------------char Command(char cmd. OCR1AL=0x80.h> #include "spiku. char CRCbits ) { spi(0xFF).5 = 1.h" void pwm_init(void) { DDRB. TCCR1A=0x81. 2 .2 = 1. TCNT1H=0x00.

0.0). SPCR = 0b01010000. return 0.0. return 0. mmcerror: lcd_gotoxy(0.0.h> #include "driver.0. } //------------------------------------------------------char mmc_init(void) { char i. PORTB. st: if (Command(0x41. for(i=0. } else return 1. SPSR = 1.block. PORTB.0).c # include "ttf&address. i < 10.h" # include <string.0xFF) != 0) { lcd_gotoxy(0. if (Command(0x40. spi(0xFF).0xFF) !=0) goto st. i++) spi(0xFF). spi((unsigned char)(AdrL >> 8)). lcd_putsf("MMC Init Error!").0x95) != 1) goto mmcerror. } //------------------------------------------------------char set_blok(unsigned int block) { if(Command(0x50.0.2= 0.h" //-----------------------------------------------------void pola(char a[50]){ 3 . spi((unsigned char)AdrH).2= 1. return spi(0xFF).spi((unsigned char)(AdrH >> 8)). lcd_putsf("Blok Set Error!"). spi(CRCbits). } //ttf&address. spi((unsigned char)AdrL). return 1.

//13 "brak". unsigned int exception=5000. //1 "bruk". //2 "brol". //11 "tran" //12 }. //5 "vk". signed char hasil. char kkv[][4]={ // "bri". //14 "gram". "drop". //1 *17 "kvk". //4 "ngat". //8 "ngin". unsigned int nilai=0. char kata[25][5].panjang=0." }. //0 "kkvk". "staf". //8 "_". //3 "klan". //2 "kkv".suku=0.char b[5]. char *p. //6 "krab". //3 "gra".a2[50]. //4 "gri".urut=0.j=0. char rule[][5]={ "kvkk". //10 "stan". unsigned int alamat[25]. //4 "kv". //9 ". //5 "klim". //2 "dwi". //6 "v".lebar=0.". //7 "k".i=0. //3 "vkk". //0 "brik". //5 4 . //1 "dra". //7 "ngan". //0 "bri".ofset=0. char kkvk[][5]={ "blis". //9 "nyer". ".

"nga". //1 "ins". "nye". "kla"."gla". "nyi". "sta".i<panjang. //6 //7 //8 //9 //10 //11 //12 //13 //14 //18 //15 //16 //17 //19 char vkk[][4]={ "ang". "kra". "ngi". else a2[i]='k'. "nyu". //5 "ung". //----------------------------------------------panjang=strlen(a).i++){ if ((*p=='a')||(*p=='i')||(*p=='u')||(*p=='e')||(*p=='o')) a2[i]='v'.') a2[i]='.') a2[i]='. for(i=0. "ngu".'. //2 "eng". else if (*p=='_') a2[i]='_'. "nge". "kro". else if (*p=='. "nyo". //3 "ong" //4 }. p=a. "nya". "tra". } //-------------------------------------------------- 5 . else if (*p=='. "kli". "kri".'. "tri". //0 "ing". *p++. "tro" }. "pro". "ngo".

lebar). 6 . hasil=strncmp(b. else if((*p>'e')&&(*p<'i')) nilai=(unsigned int)(*p-'b')*10+2062.i++){ hasil=strncmp(b. alamat[j]=nilai. else if((*p>'o')&&(*p<'q')) nilai=(unsigned int)(*p-'b')*10+2042.i<17.lagi: suku++. else if((*p>'x')&&(*p<'{')) nilai=(unsigned int)(*p-'b')*10+2002.lebar).rule[urut]. lebar=4. //---------------------------------------------goto lagi. ofset+=4. else if((*p>'i')&&(*p<'o')) nilai=(unsigned int)(*p-'b')*10+2052. else if (*p=='i') nilai+=2.lebar). else if (*p=='o') nilai+=8. for(i=0.a+panjang-ofset.rule[urut].a+panjang-ofset. urut=0. //---------------------------------------------p=kata[suku].lebar). } else{ urut++. if ((*p>'a')&&(*p<'e')) nilai=(unsigned int)(*p-'b')*10+2072. if (hasil==0){ memcpy(kata[suku]. memcpy(b.lebar). else if (*p=='u') nilai+=4. j++. else if((*p>'v')&&(*p<'x')) nilai=(unsigned int)(*p-'b')*10+2012.a2+panjang-ofset. else if((*p>'q')&&(*p<'u')) nilai=(unsigned int)(*p-'b')*10+2032. *p++.kkvk[i]. hasil=strncmp(b.lebar). if (hasil==0){ memcpy(b. if (*p=='a') nilai+=0. else if (*p=='e') nilai+=6.

if ((*p>'a')&&(*p<'e')) nilai=(unsigned int)(*p-'b')*100+332. else if((*p>'v')&&(*p<'x')) nilai=(unsigned int)(*p-'b')*100-268.if (hasil==0){ memcpy(kata[suku]. //---------------------------------------------p=kata[suku]. j++. memcpy(b. if (*p=='a') nilai+=0. *p++. *p++.lebar).lebar). hasil=strncmp(b. else if((*p>'o')&&(*p<'q')) nilai=(unsigned int)(*p-'b')*100+32.a2+panjang-ofset.a+panjang-ofset. //---------------------------------------------goto lagi. else if((*p>'x')&&(*p<'{')) nilai=(unsigned int)(*p-'b')*100-368. else if((*p>'e')&&(*p<'i')) nilai=(unsigned int)(*p-'b')*100+232. if (*p=='b') 7 .lebar). //---------------------------------------------nilai=i*2+64. alamat[j]=nilai+exception. else if((*p>'q')&&(*p<'u')) nilai=(unsigned int)(*p-'b')*100-68. urut=2. else if (*p=='o') nilai+=80.a+panjang-ofset.} } } } ofset--. else if (*p=='u') nilai+=40. lebar=3. if (hasil==0){ memcpy(kata[suku].lebar). else if (*p=='e') nilai+=60. else if((*p>'i')&&(*p<'o')) nilai=(unsigned int)(*p-'b')*100+132. else if (*p=='i') nilai+=20.rule[urut].

i++){ hasil=strncmp(b.lebar). else if (*p=='s') nilai+=16. for(i=0. alamat[j]=nilai. else if (*p=='k') nilai+=6.kkv[i]. else if (*p=='n') nilai+=12.nilai+=0.a+panjang-ofset. if (hasil==0){ memcpy(b.lebar).lebar).} } } else{ urut++. else if (*p=='t') nilai+=18. j++. 8 . if (hasil==0){ memcpy(kata[suku]. alamat[j]=nilai+exception. else if (*p=='h') nilai+=4.lebar). if (hasil==0){ memcpy(kata[suku].lebar). else if (*p=='f') nilai+=2.lebar).a+panjang-ofset. //---------------------------------------------nilai=i*2+12. //---------------------------------------------goto lagi.a+panjang-ofset. j++. else if (*p=='l') nilai+=8.lebar). if (hasil==0){ memcpy(b. hasil=strncmp(b. else if (*p=='m') nilai+=10.vkk[i].lebar). hasil=strncmp(b.i++){ hasil=strncmp(b. for(i=0.rule[urut].} else{ urut++.i<6.i<26.a+panjang-ofset. //---------------------------------------------goto lagi.rule[urut]. else if (*p=='r') nilai+=14.

else if (*p=='f') nilai+=2. else if (*p=='o') nilai=112. alamat[j]=nilai+exception. lebar=2. 9 .rule[urut]. j++. else if (*p=='l') nilai+=8. for (i=0.//---------------------------------------------nilai=i*2. else if (*p=='e') nilai=72. //---------------------------------------------p=kata[suku]. memcpy(b.lebar). else if (*p=='m') nilai+=10.lebar).i++){ hasil=strncmp(b. else if (*p=='h') nilai+=4. *p++. urut=5. else if (*p=='k') nilai+=6. //---------------------------------------------goto lagi. else if (*p=='u') nilai=132. if ((*p=='a')||(*p=='i')||(*p=='u')||(*p=='e')||(*p=='o')){ if (*p=='a') nilai=52. if (hasil==0){ memcpy(kata[suku].a2+panjang-ofset. if (*p=='b') nilai+=0.lebar).a+panjang-ofset.} } } } } ofset--.i<2. else if (*p=='i') nilai=92.

else if((*p>'x')&&(*p<'{')) nilai=(unsigned int)(*p-'b')*10+82. else if((*p>'v')&&(*p<'x')) nilai=(unsigned int)(*p-'b')*10+92. else if (*p=='t') nilai+=18. else if (*p=='r') nilai+=14. else if (*p=='i') nilai+=2. 10 . else if (*p=='u') nilai+=4. else if (*p=='o') nilai+=8.else if (*p=='n') nilai+=12. } //---------------------------------------------goto lagi. alamat[j]=nilai. else if((*p>'o')&&(*p<'q')) nilai=(unsigned int)(*p-'b')*10+122. alamat[j]=nilai. if (*p=='a') nilai+=0. else if (*p=='s') nilai+=16. else if((*p>'e')&&(*p<'i')) nilai=(unsigned int)(*p-'b')*10+142.} else{ urut++. *p++. else if((*p>'q')&&(*p<'u')) nilai=(unsigned int)(*p-'b')*10+112. else if((*p>'i')&&(*p<'o')) nilai=(unsigned int)(*p-'b')*10+132. j++.} } ofset--. } else { if ((*p>'a')&&(*p<'e')) nilai=(unsigned int)(*p-'b')*10+152. else if (*p=='e') nilai+=6. j++.

titik. memcpy(b. j++. } //driver. lo=0.c #include "driver. hi=0.urut=7. for (i=0.h" #define off 0 #define on 1 void output(char suku. //---------------------------------------------goto lagi. 11 .') nilai=10001. else if(*p=='. j.i++){ hasil=strncmp(b.i>0.lebar). data. output.i<5.lebar). else if(*p=='_') nilai=10000.a2+panjang-ofset. if (hasil==0){ memcpy(kata[suku].} } output(suku. hilang.a+panjang-ofset. bit potong=on. kecuali. unsigned long int tabel_awal.unsigned int alamat[25]) { unsigned long int ofset_mmc. for(i=suku-1.') nilai=10002. else if(*p=='. unsigned long int awal. //---------------------------------------------p=kata[suku]. alamat[j]=nilai. sample=0. unsigned char i. if ((*p>='a')&&(*p<='z')) nilai=(unsigned int)(*p-'a')*2. batas.i--){ if (alamat[i-1]<10000){ if (alamat[i-1]<5000){ ofset_mmc= 0x42000+ 0x2B.rule[urut]. bit habis. unsigned int pembuka.} else{ urut++.alamat).lebar). lebar=1.

hi. if(potong==on){ kecuali=on. sample++. output=0. pembuka= tabel_awal-awal. output++. if((data<20)&&(sample>500)){ habis=on.} else if (alamat[i-1]>=5000){ ofset_mmc= 0x265800+ 0x2B. while (habis==off){ if (Command(0x51. awal= (floor((unsigned long int)tabel_awal/512. if((alamat[i-2]==10002)||(i==1)){ titik=on. spi(0xFF). if((titik==on)&&(output>700)){ 12 .lo.j<512. for(j=0. } else{ data=spi(0xFF). } habis=off. alamat[i-1]-=5000.0))*512. } else{ titik=off. } if((habis==off)&&(potong==off)){ OCR1A=data. } } tabel_awal= (unsigned long int)alamat[i1]*1000+ofset_mmc. sample=0. lo= (unsigned int)awal.0x95) != 0) { lcd_gotoxy(0.0). lcd_putsf("MMC: read error!"). hi= awal>>16.j++){ if (pembuka>0){ pembuka--. } while(spi(0xFF) != (char)0xFE).

} if(alamat[i-3]==10000){ potong=off. } } } spi(0xFF). batas=sample. } } OCR1A=128. } else{ delay_us(120). kecuali=off. hilang=on. } i++. potong=off. lo=512+(unsigned long int)lo. spi(0xFF). hilang=off. } else{ if (alamat[i-1]==10000){ delay_ms(40). hi++. } else{ potong=on. } else if(alamat[i-1]==10001){ delay_ms(150). } if((hilang==on)&&(sample==(4*batas/5))){ habis=on. } else if(alamat[i-1]==10002){ delay_ms(300). } } if((potong==on)&&(habis==on)){ if(kecuali==on){ alamat[i-1]+=5000. if(lo>0xFFFF){ lo=0. } } 13 .delay_us(126).

ADCSRA|=0x10."Low_batt=%3d". if(read_adc(3)<194){ lcd_gotoxy(0. } } } ~end of code~ 14 . ADCSRA|=0x40. delay_us(10). lcd_puts(buf). if(cacah>50){ cacah=0.} } //adc.h" char cacah.c #include "adc. ADCSRA=0x86.read_adc(3)). sprintf(buf. #define ADC_VREF_TYPE 0xE0 //--------------------------------------void adc_init(void) { ADMUX=ADC_VREF_TYPE & 0xff. } //----------------------------------------------unsigned char read_adc(unsigned char adc_input) { ADMUX=adc_input | (ADC_VREF_TYPE & 0xff). return ADCH. delay_ms(2000). while ((ADCSRA & 0x10)==0).0). } //----------------------------------------------void cek_baterai(void) { char buf[16]. cacah++.

Harganya tujuh ratus lima puluh ribu rupiah. Padanya seratus lima puluh ribu rupiah. Ibu membeli sayur di pasar. 10.3 Error(%) 33. 8.---. 8. Selamat pagi. 9.3 30.6 15 . 6. --. 7. Selamat pagi. ---. Tolong ambilkan buku di meja itu. 6. 3. pada lupa di jalan. 10. Tolong ambilkan buku di meja itu. Nama saya mapola abdia rayana. 7. 2.7 0 54. Ibu membeli sayur di pasar. 7. Harganya seratus lima puluh ribu rupiah. Hasil pengujian kualitas output suara sistem No Kalimat Referensi I. Saya makan nasi. Aku beli gula satu kilogram. 5. Nama saya mapola abdia rayana. Ibu membeli sayur di pasar.---. 9. Selamat pagi. 9. 3.5 0 100 100 0 0 6. 5. 5.5 0 0 0 36. 2. 4. Gempa lagu bumi berkali 4. 10. ada lubang di jalan. Aku beli gula satu kilogram. Saya makan nasi. 2.satu kilogram.6 0 0 13. Hari hari. 3. Hati hati. Error(%) 0 0 55. Politeknik elektronika negeri surabaya.Lampiran 3. Kepalaku pusing sekali. Responden 1 No Kalimat hasil identifikasi pendengar 1. Politeknik elektronika negeri surabaya.---. 1. 6. Kepalaku pusing sekali. Plagiat makan nasi. 4. Politeknik elektronika negeri surabaya. Responden 2 No Kalimat hasil identifikasi pendengar 1.mapola abdia rayana. 8.

Tolong ambilkan buku di meja itu. pada paku di dalam. Nama saya mapola abdia rayana. Temperaturnya lima puluh lima ribu rupiah.satu kilogram. 9. Selamat pagi. 2. Tadi pagi. Saya makan nasi. 8. 2. Saya makan nasi.8 0 31. Ibu membeli sayur di pasar. 3.2 36. 10. 3. Kepalaku pusing sekali.negeri surabaya. Responden 5 No Kalimat hasil identifikasi pendengar 1. Selamat pagi.---. 10. Satria makan nasi.---.5 0 0 27. ada lubang di jalan. 6.6 30. Tolong ambilkan bulu di meja itu. Ibu membeli sayur di pasar. --. Tolong ambilkan buku di meja itu. 5. 5.7 0 0 36. Tingkah laku pusing sekali. Hati hati. Harganya seratus lima puluh ribu rupiah. 7. Nama saya mapola ahmad radia. Kumpulan di satu program. ada lubang di jalan. Harganya ------. 5. Politeknik elektronika negeri surabaya. 2. 7. 4. Responden 4 No Kalimat hasil identifikasi pendengar 1. Tempahlaku pusing sekali.3 18. 3. 9. 4. Error(%) 0 15. 8. 6.7 22.2 72.6 0 8.Responden 3 No Kalimat hasil identifikasi pendengar 1. 8. 7. Aku beli gula di program. Hali hali. Ibu membeli sayur di pasar. 10. 9.lima puluh ribu rupiah.3 0 54.2 0 0 0 Error(%) 0 0 22. Politeknik elektronika negeri surabaya. Selamat pagi.saya mapola abdia rayana.2 20 Error(%) 16.6 0 0 40 16 . Politeknik ----------. ---. 4. 6.

Selamat pagi.---. Tingkah laku pusing sekali.6 Error(%) 0 58. Politeknik elektronika negeri surabaya. Saya makan nasi. ada lubang di jalan. Responden 8 No Kalimat hasil identifikasi pendengar 1. 7. 6. Tolong ambilkan buku di meja itu. 8.Responden 6 No Kalimat hasil identifikasi pendengar 1.7 0 0 0 Error(%) 0 0 0 54. Pagi pagi masak tumpang di jalan 8. Kepalaku pusing sekali.5 0 0 100 0 0 0 17 . Tolong ambilkan buku di meja itu. Ibu membeli sayur di pasar.------. Selamat pagi. 5. 7. 8. 4. 4. 3. Saya makan nasi. 2. Politeknik elektronika negeri surabaya. Nama saya mapola abdia rayana. ----laku pusing sekali. Harganya tujuh ratus lima puluh ribu rupiah. 6. Aku nomor satu diprogram 5. Ibu membeli baju di pasar. 9. Nama saya marona ----. 10. 3. 10. 2. 5. Selamat pagi. Saya makan nasi. 4. 6. 2. 7. 9.3 22.2 72.---. Harganya seratus lima puluh ribu rupiah. Politeknik elektronika negeri surabaya. 10. Hati hati.diprogram. Ibu membeli sayur di pasar. Tolong ambilkan buku di meja itu.7 20 0 0 0 0 6. Error(%) 0 100 22. Aku ---. Harganya seratus lima puluh ribu rupiah. 9. 3.2 100 0 0 72. Responden 7 No Kalimat hasil identifikasi pendengar 1.

3. Selamat pagi. Harganya seratus lima puluh ribu rupiah. Error(%) 0 0 0 72. 5. 10. Tolong ambilkan buku di meja itu. Tagihan makan nasi. Murah lagi gula. Ibu membeli sayur di pasar. No 1. 8. 10. Baju binatang kepala. Aku hobi sekali memprogram 5. 8. Nama saya mapola abdia negara. Program makan beli. 5. Kepalaku pusing sekali. Ibu membeli sayur di pasar. Tolong ambilkan buku di meja itu. banyak lubang di jalan. 2.8 0 0 0 18 . Aku serli bunga diprogram. 4. 4. 7. Lupa jalan nama ribu. 4.6 0 0 18. 2. Surabaya negara sekolah. 3. Nama saya mapola abdia rayana. 6. 9. Selamat pagi. 9. 2. Tadi kursi kancil. 7. Sudah mata kebakaran selamat. Hati hati.3 25 0 63. ada lubang di jalan. 8. Kepalaku pusing sekali. Politeknik elektronika negeri surabaya. 6. 9. 6. Hati hati. Saya makan nasi.7 0 0 0 0 0 0 Error(%) 33. Harganya seratus lima puluh ribu rupiah. II. Responden 10 No Kalimat hasil identifikasi pendengar 1. 3. Saya nasi lalu. Kalimat referensi Buku pergi mandi. 7.Responden 9 No Kalimat hasil identifikasi pendengar 1. 10. Politeknik elektronika negeri surabaya. Badak jelas pagi.

6.6 33. 8. ----.----. ------. Bu-. 3. Sudah ---.sekolah. Tadi kursi -----.6 75 100 70 81.----.6 83. ----. 7. 9. 2. 4.---5.------Responden 3 No Kalimat hasil identifikasi pendengar 1.----.---. ---. - Error (%) 16. 10. Murah ---. ----.Responden 1 No Kalimat hasil identifikasi pendengar 1.---.pagi.---. 6.---5.----. Murah lagi ----.8 Error(%) 100 66.kursi ----7. 2. 7.---4.6 66. -------.6 100 100 100 0 100 19 . 2.--gi mandi.6 66.8 Error(%) 50 16.--------. ---. 8.3 25 0 0 81.--------. Saya ---.3 66.-----.6 33. 5.pergi mandi.6 100 66. 9. Saya ---.---3.3 66. Surabaya negara sekolah.ribu.-------. Program ---. Surabaya negara sekolah.pagi. Saya nasi la--.--li. 8.6 66. 10.6 66. 10.jalan nama ribu. Sudah ---.----. Program ----. Murah ---. Baju binatang kepala. -----. 9. 6. 4.6 66.---3. Responden 2 No Kalimat hasil identifikasi pendengar 1.

Murah lagi ---5. 2. 7.3 33. Saya nasi ----. 3. ---. 6.3 33.3 33. Ta-.3 75 37 0 81. 8. 4. 6.------Responden 5 No Kalimat hasil identifikasi pendengar 1.----. ---.pergi mandi.3 33.3 33. Saya ---. 8.----.8 Error(%) 33.3 66. Tadi kursi -----.3 100 0 81.pergi mandi.8 20 .6 33.3 33. Surabaya negara sekolah. 2.ribu.3 33.3 66. 7.jelas pagi. ---.Responden 4 No Kalimat hasil identifikasi pendengar 1.--------. 9.8 Error(%) 33. ---.jalan ---. ---.----. Sudah ---. Tadi kursi ------.kursi -----7. Saya nasi ---3.3 50 33.----. ----. 6.--------. 10. 8. 2. ----. Baju binatang ----9.pagi. Surabaya negara sekolah.pergi mandi. Sudah ---.3 50 37 0 81. 10.6 33. Murah lagi -----.------Responden 6 No Kalimat hasil identifikasi pendengar 1.pagi.------- Error(%) 33. Program makan ---4. Program makan ----.3 66. 3. ---. Sudah ---. Baju binatang ------9.6 0 33. 5. Murah lagi ---5. ---. 10.jalan nama ribu.jalan ---. Surabaya negara sekolah. 4.--------.

3 66.kursi -----7.jalan nama ---8. 6.pagi.3 33. ----. 2. 10.8 Error(%) 33. ---. 4.6 0 33. 6.jalan nama ---8.6 66. 4.6 75 100 0 81.pagi. 2. Buku pergi mandi. ---. 9.pergi mandi.---8. Baju -------.3 66.pergi mandi.3 83. Sudah ---. Badak ----. Program makan beli. Saya nasi ---3.6 66. Surabaya negara sekolah. 6. 10.6 50 100 0 100 Error(%) 33. ---.3 66. Surabaya negara sekolah.------Responden 9 No Kalimat hasil identifikasi pendengar 1.3 33. 2. 9.kursi -----7. Responden 8 No Kalimat hasil identifikasi pendengar 1.---3. ----.3 33. Program makan ----.kebakaran ----mat. ---. Surabaya negara sekolah. ---. ---. ---.-----9.lagi ---5.----. Program makan ---4.6 33. ---. Error(%) 0 33.jalan ---. Murah lagi ---5. ----.3 21 .3 66.---5.pagi.Responden 7 No Kalimat hasil identifikasi pendengar 1. Saya ---.3 50 75 0 36.kursi -----7. Sudah ---. 10.---.----. Saya nasi ----. Mu--.6 66.--------. 3.

pergi mandi.---. 2.kebakaran ----mat. --di kursi -----7.---4.6 66. 5.5 0 36. 6. 10.6 66. ----. Surabaya negara sekolah.jalan nama ---8.Responden 10 No Kalimat hasil identifikasi pendengar 1. Baju binatang ----9. Error(%) 33. Sudah ---.6 50 50 37.---. ---.6 66. 3.pagi.----.3 22 . Program ----. ---.lalu. ---.3 66.gula. ----.

5k 125Hz – 2k 200Hz – 2k 75Hz – 800Hz 90Hz – 1k 160Hz – 1k 55Hz – 575Hz 25Hz – 200Hz 225Hz – 1k 125Hz – 900Hz 110Hz – 630Hz 70Hz – 450Hz 55Hz – 315Hz 170Hz – 1k 23 .Lampiran 4.5k 250Hz – 1. Range frekuensi suara manusia VOCAL Soprano Contralto Baritone Bass WOODWIND Piccolo Flute Oboe Clarinet (B flat or A) Clarinet (E flat ) Bass clarinet Basset Horn Cor Anglais Bassoon Double Bassoon BRASS Soprano Saxophone Alto Saxophone Tenor Saxophone Baritone Saxophone Bass Saxophone Trumpet (C) Approximate frequency range 250Hz – 1k 200Hz – 700Hz 110Hz – 425Hz 80Hz – 350Hz 630Hz – 5k 250Hz – 2.

Elektronika ”tidur untuk kesehatan” Penulis telah mengikuti seminar Proyek Akhir pada tanggal 22 Juli 2009. 24 . 28 Oktober 1986 • Rt03/Rw02 Dsn/Ds/Kec.).ST. sebagai salah satu persyaratan untuk memperoleh gelar Sarjana Sains Terapan (S.edu Pendidikan: 1992 – 1998 1998 – 2001 2001 – 2004 2005 – 2009 SDN 1 Jogorogo SLTPN 1 Jogorogo SMUN 2 Ngawi EEPIS-ITS D4-T. Jogorogo Kab.eepis-its.PENULIS Identitas: • Mapola Abdia Rayana • Ngawi.Ngawi Jawa Timur 63262 • 085655208020 – vanpolla@student.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->