Top Banner
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
116
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 7105040018 Pengubah Teks Ke Suara

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

Page 2: 7105040018 Pengubah Teks Ke Suara

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

Page 3: 7105040018 Pengubah Teks Ke Suara

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

Mengetahui : Ketua Jurusan Teknik Elektronika

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

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

Dosen Pembimbing: 1.

Eru Puspita, S.T., M.Kom.

NIP. 19691231.199501.1.001

Page 4: 7105040018 Pengubah Teks Ke Suara

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. Sehubungan dengan hal di tersebut maka alat portabel ini dapat mengkonversi isi kalimat menjadi suara. Seorang tunawicara dapat memasukan kalimat yang ingin dikatakan melalui keypad kemudian memperdengarkan hasil konversi yang berupa suara kepada lawan bicara. Software pada sistem ini terdiri dari software akses ke hardware antara lain Keypad, LCD (Liquid Crystal Display), Mikrokontroler ATmega8, MMC (Multi Media Card) dan software pengolah data yaitu software konversi Teks ke Fonem dan Fonem ke Suara. MMC digunakan untuk menyimpan database suara 1170 fonem dalam format *.WAV. Untuk merekonstruksi sinyal digital menjadi sinyal analog digunakan PWM (Pulse Width Modulation) dengan frekuensi sampling 8KHz, 8bit dan mono. Hasil pengujian persentase suara output dikenali oleh lawan bicara adalah 81.62% dari 10 sample kalimat. Beberapa kata yang tidak dikenali disebabkan masih adanya suara diam pada penggabungan antar fonem.

Kata kunci: Text to speech, ATmega8, MMC, PWM-DAC, LPF (Low

Pass Filter) aktif orde 4

Page 5: 7105040018 Pengubah Teks Ke Suara

ABSTRACT Communications represent the vital matter in everyday life. All dumb people will very difficulty in communicating with one who do not master the sign language. Hence this portable appliance can convert the sentence content become the voice. A dumb people can enter of sentence wish to told through keypad, 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 ), Microcontroller ATmega8, MMC ( Multi of Media Card) and software data processor that is software convert the Text to Phoneme and Phoneme to Voice. MMC is used as the storage of 1170 phoneme voice database in format *. WAV. To reconstruct the digital signal become analogous signal, PWM ( Pulse Width Modulation) with the sampling frequency 8KHz, 8bit and mono is used. The output percentage result of voice examination recognized by opponent speak is 81.62% from 10 sample sentence. Some words which not recognized are be caused by silence interrupt between phoneme concatenation.

Keyword: Text to speech, ATmega8, MMC, PWM-DAC, Order 4 of

active LPF ( Low Pass Filter)

Page 6: 7105040018 Pengubah Teks Ke Suara

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.

Terima kasih.

Surabaya, Juli 2009 Penulis

Page 7: 7105040018 Pengubah Teks Ke Suara

UCAPAN TERIMA KASIH

Alhamdulillah, atas segala limpahan rahmat, taufik, hidayah serta inayah-Nya sehingga proyek akhir ini dapat kami selesaikan dengan baik. Kami menyadari bahwa terwujudnya proyek akhir ini tak lepas dari bantuan, bimbingan dan dukungan dari berbagai pihak. Oleh karena itu dengan segala kerendahan hati kami sampaikan terima kasih kepada :

1. Ibuku Sri Rahayu, Ayahku Mudjiono, Adikku Arafi’u S.P. dan Kakakku Yoyok S.

2. Dosen Pembimbing Eru Puspita, S.T., M.Kom. 3. Dwi Lisnasari (tim proyek akhir bagian hardware). 4. Dosen Penguji proyek akhir. 5. Dosen-dosen Pengajar Elektronika. 6. Teman-teman.

Serta semua pihak yang telah membantu baik secara langsung maupun tidak langsung.

Surabaya, Juli 2009 Penulis

Page 8: 7105040018 Pengubah Teks Ke Suara

DAFTAR ISI HALAMAN JUDUL ....................................................................... i HALAMAN PENGESAHAN ......................................................... ii ABSTRAK ....................................................................................... iii ABSTRACT ...................................................................................... iv KATA PENGANTAR ..................................................................... v UCAPAN TERIMA KASIH........................................................... vi DAFTAR ISI.................................................................................... vii DAFTAR GAMBAR ....................................................................... ix DAFTAR TABEL............................................................................ xi BAB I. PENDAHULUAN 1.1. Latar Belakang ........................................................................... 1 1.2. Tujuan ........................................................................................ 1 1.3. Permasalahan.............................................................................. 2 1.4. Batasan Masalah......................................................................... 2 1.4. Metodologi ................................................................................. 2 1.5. Sistematika Pembahasan ............................................................ 3 BAB II. TEORI PENUNJANG 2.1. Sistem Text To Speech................................................................ 5 2.2. Mikrokontroler ATmega8 .......................................................... 5 2.3. MMC (Multi Media Card) 2.3.1. SPI(Serial Peripheral Interface) Mode............................ 7 2.3.2. Command dan respon....................................................... 7 2.3.3. SPI Command Set............................................................. 7

2.3.4. SPI Respon....................................................................... 8 2.3.5. Write/Read MMC............................................................ 8

2.4. SPI (Serial Peripheral Interface)................................................ 9 2.5. Ace of WAV............................................................................... 10 2.6. WinHex....................... ............................................................... 11 2.7. CodeVision AVR ...............................................................…… 11 2.8. PWM (Pulse Width Modulation)................................................ 13 BAB III PERENCANAAN DAN PEMBUATAN SOFTWARE 3.1. Diagram sistem..................................................................... .... 17 3.2. Flowchart sistem.................................................................... .. 19 3.3. Pembuatan database suara fonem............................................ 20

Page 9: 7105040018 Pengubah Teks Ke Suara

3.4. Perancangan software konversi teks ke fonem…. ................... 26 3.5. Pembuatan software konversi teks ke fonem...................... ..... 30 3.6. Perancangan software untuk mencari alamat fonem di dalam

MMC......................................................................................... 33 3.7. Pembuatan software untuk mencari alamat fonem di dalam

MMC......................................................................................... 35 3.8. Perancangan software akses ke MMC................................... ... 38 3.9. Pembuatan software akses ke MMC ........................................ 42 3.10.Perencanaan software konversi ke sinyal analog (PWM) ........ 44 3.11.Pembuatan software konversi ke sinyal analog (PWM)........... 48 BAB IV PENGUJIAN ALAT DAN ANALISA 4.1. PENGUJIAN PER BLOK

4.1.1. ketepatan penyusunan database suara.............................. 51 4.1.2. software konversi teks ke fonem..................................... 53 4.1.3. software untuk mencari alamat fonem pada MMC......... 55 4.1.4. software akses ke MMC.................................................. 56 4.1.5. software konversi ke sinyal analog (PWM).................... 59

4.2 PENGUJIAN SECARA KESELURUHAN 4.2.1. Pengukuran waktu akses ke keypad................... .............. 60 4.2.2. Pengukuran waktu rata-rata output suara per fonem....... 61 4.2.3. Tampilan output sinyal suara sistem................................ 62 4.2.4. Pengujian kualitas output suara ………………………... 65

BAB V PENUTUP 5.1. Kesimpulan......………...…………………………………….... 69 5.2. Saran......……………………...……………………………….. 69 DAFTAR PUSTAKA LAMPIRAN

Page 10: 7105040018 Pengubah Teks Ke Suara

DAFTAR GAMBAR Gambar 2.1. Sistem Text To Speech……………………….…........ 5 Gambar 2.2. Konfigurasi pin ATmega8………………………....... 6 Gambar 2.3. Konfigurasi Pin MMC................................................. 7

Gambar 2.4. Command Frame MMC........................................... ... 7 Gambar 2.5. R1 Respon dari MMC............................................ .... 8 Gambar 2.6. Read single blok...................................................... .... 8 Gambar 2.7. Format paket data…………………………….…....... 9 Gambar 2.8. Satu Master Satu Slave................................................ 9 Gambar 2.9. Ace of Wav.................................................................. 10 Gambar 2.10. WinHex................................................................... .... 11 Gambar 2.11. Tampilan CodeVisionAVR..................................... .... 12 Gambar 2.12. Sinyal PWM dengan berbagai Duty Cycle.............. .... 13 Gambar 2.13. Pulsa PWM.................................................................. 13 Gambar 3.1. Diagram sistem……………………………….…....... 15 Gambar 3.2. Aliran data dari MMC ke speaker………………....... 16 Gambar 3.3. Proses rekonstruksi sinyal analog…………….…. ..... 16 Gambar 3.4. Flowchart sistem keseluruhan……………….…..... 19 Gambar 3.5. Metode pembuatan database suara.......................... .. 21 Gambar 3.6. Sinyal fonem ........................................................... ... 22 Gambar 3.7. Bagian sinyal yang akan dihapus............................. ... 23 Gambar 3.8. Sinyal setelah diatur……………………………... ..... 24 Gambar 3.9. Mengatur nilai threshold………………….……... ..... 25 Gambar 3.10. Sinyal yang telah diberi data 1……………………. ... 26 Gambar 3.11. Flowchart Konverter Teks ke Fonem..................... .. 27 Gambar 3.12. Tampilan Microsoft Visual C++ 6.0……………….. . 30 Gambar 3.13. Deklarasi referensi pembanding…………….……..... 31 Gambar 3.14. Deklarasi fonem KKVK, KKV dan VKK………....... 31 Gambar 3.15. Program konversi ke pola konsonan dan vokal…....... 32 Gambar 3.16. Program konversi ke fonem untuk 4 huruf………...... 32 Gambar 3.17. Cuplikan tabel seluruh fonem beserta alamatnya........ 34 Gambar 3.18. Struktur format *.wav……………………………. .... 34 Gambar 3.19. Tool “search” software WinHex………………... .... 35 Gambar 3.20. Cuplikan program menentukan alamat untuk 1 huruf. 36 Gambar 3.21. Penentuan alamat untuk pola “vk”………………...... 36 Gambar 3.22. Penentuan alamat untuk pola “kv”………………...... 37 Gambar 3.23. Penentuan alamat untuk pola “vkk”……………... ..... 38 Gambar 3.24. Register SPCR ATmega8………………………........ 38

Page 11: 7105040018 Pengubah Teks Ke Suara

Gambar 3.25. Register SPSR ATmega8………………………… .... 40 Gambar 3.26. Flowchart inisialisasi MMC……………………...... 40 Gambar 3.27. Flowchart membaca data dari MMC……………. ... 41 Gambar 3.28. Inisialisasi ATmega8 pada mode SPI……………...... 42 Gambar 3.29. Inisialisasi MMC pada mode SPI…………….…....... 43 Gambar 3.30. Mengambil data dari MMC………………………..... 43 Gambar 3.31. Register TCCR1A……………………………….. ..... 44 Gambar 3.32. Register TCCR1B……………………………… ....... 46 Gambar 3.33. Register OCR1A……………………………….… .... 47 Gambar 3.34. Timing Diagram Mode Fast PWM…………….…..... 48 Gambar 3.35. Inisialisasi PWM……………………………….… .... 49 Gambar 3.36. Program konversi ke sinyal analog…………….… .... 49 Gambar 4.1. Pengujian penyusunan database suara……….…...... 52 Gambar 4.2. Pengujian software konversi teks ke fonem……....... 53 Gambar 4.3. Pengujian software penentu alamat fonem………..... 55 Gambar 4.4. Alamat data “<data_MMC>” di MMC……….… ...... 56 Gambar 4.5. Pengujian pengambilan data dari MMC……….......... 57 Gambar 4.6. Program pengambilan data dari MMC……….…....... 57 Gambar 4.7. Program pembangkit PWM duty cycle 50%…… ....... 59 Gambar 4.8. Tampilan suara “selamat pagi” sistem………….. ...... 63 Gambar 4.9. Tampilan fonem “se-la-mat pa-gi” database .… ........ 64 Gambar 4.10. Tampilan suara “selamat pagi” IndoTTS….…... ........ 64

Page 12: 7105040018 Pengubah Teks Ke Suara

DAFTAR TABEL Tabel 2.1. Command Set MMC…………………………………..... 8 Tabel 3.1. Hubungan Frekuensi SCK dan Oscillator……………. ... 39 Tabel 3.2. Pola keluaran pin OC1A/OC1B Mode Fast PWM.….. ... 45 Tabel 3.3. Mode Timer 1…………………………………….….. ... 45 Tabel 3.4. Skala Clock Timer 1…………………………………. .. 46 Tabel 4.1. Hasil pengujian penyusunan database suara…….…… .. 52 Tabel 4.2. Hasil pengujian konversi teks ke fonem……………… ... 54 Tabel 4.3. Hasil pengujian software penentu alamat fonem…….. ... 55 Tabel 4.4. Hasil pengambilan data dari MMC…………………... ... 58 Tabel 4.5. Pengujian PWM……………………………………… ... 59 Tabel 4.6. Waktu untuk memasukkan teks melalui keypad……... ... 41 Tabel 4.7. Waktu rata-rata per fonem…………………………….... 42 Tabel 4.8. Hasil identifikasi pendengar dari 10 kalimat beraturan.... 66 Tabel 4.9. Hasil identifikasi pendengar dari 10 kalimat tidak beraturan….…………………………………............... ... 66

Page 13: 7105040018 Pengubah Teks Ke Suara

BAB I PENDAHULUAN

1.1. LATAR BELAKANG

Jumlah penyandang cacat bisu (tunawicara) di Indonesia menurut Susenas 2003 adalah sebanyak 118.293 orang [8,hal.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. Komunikasi dapat digunakan untuk membeli sesuatu yang kita butuhkan,menyampaikan perasaan atau keinginan kita, menyampaikan keadaan darurat kepada orang lain dan banyak lagi yang dapat kita lakukan. Sebagai orang yang dianugerahi kesempurnaan organ tubuh,kita tentu mudah melakukan komunikasi dengan orang lain tetapi hal ini berbeda bagi para penderita cacat tunawicara, dalam kehidupan sehari-hannya akan sangat kesulitan dalam berkomunikasi. 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.

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. Berdasarkan permasalahan di atas maka dibuatlah alat bantu bicara portabel untuk tunawicara yang dapat mengubah masukan sebuah tulisan ke suara.

1.2. TUJUAN 1.2.1. 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.

Page 14: 7105040018 Pengubah Teks Ke Suara

• 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. 1.2.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. 1.3. PERMASALAHAN

Adapun permasalahan pada pembuatan sistem ini adalah :

1. Membuat database suara dan menyimpannya di MMC (Multi Media Card).

2. Mengakses database suara dari MMC. 3. Membuat software konversi dari teks ke fonem. 4. Membuat software konversi dari fonem ke suara.

1.4. BATASAN MASALAH Batasan masalah dalam proyek akhir ini adalah :

1. Alat hanya dapat membaca kata-kata yang sesuai dengan isi database fonem.

2. Tulisan yang dapat dibaca dengan tepat hanya yang sesuai dengan ejaan bahasa indonesia yang benar (bukan berupa singkatan).

3. Sistem ini tidak menampilkan pilihan untuk penerapan intonasi. 4. Sistem tidak dapat membaca tulisan berupa angka.

Page 15: 7105040018 Pengubah Teks Ke Suara

1.5. METODOLOGI

Metode yang digunakan dalam perencanaan dan penyelesaian proyek akhir ini adalah :

1. Studi literatur 2. Pembuatan database fonem 3. Perancangan software untuk mengakses MMC 4. Perancangan software konverter teks ke fonem 5. Perancangan software konverter fonem ke suara 6. Integrasi sistem dan pengujian 7. Analisa sistem 8. Pembuatan laporan

1.6. SISTEMATIKA PEMBAHASAN

Sistematika pembahasan dalam proyek akhir ini adalah sebagai berikut :

Bab I Pendahuluan

Menguraikan tentang latar belakang, tujuan, perumusan masalah, batasan masalah, metodologi, dan sistematika pembahasan masalah yang digunakan dalam pembuatan proyek akhir ini.

Bab II Teori Penunjang

Teori – teori berisi tentang pembahasan secara garis besar sistem text to speech, mikrokontroller AVR ATmega8 , SPI, MMC, PWM-DAC dan tools pendukung lainnya.

Bab III Perencanaan dan Pembuatan Software

Menguraikan tentang tahap-tahap perencanaan dan pembuatan software dari protokol akses MMC, konversi teks ke fonem dan konversi fonem ke suara.

Page 16: 7105040018 Pengubah Teks Ke Suara

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.

Page 17: 7105040018 Pengubah Teks Ke Suara

BAB II TEORI PENUNJANG

2.1. SISTEM TEXT TO SPEECH

Sistem Text to Speech pada prinsipnya terdiri dari dua sub sistem, yaitu :

a) bagian Konverter Teks ke Fonem (Text to Phoneme), serta b) bagian Konverter Fonem ke Ucapan (Phoneme to Speech).

Gambar 2.1. 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, durasi serta pitch-nya. Bagian ini bersifat sangat language dependant. Untuk suatu bahasa baru, bagian ini harus dikembangkan secara lengkap khusus untuk bahasa tersebut.

Bagian Konverter Fonem ke Ucapan akan menerima masukan berupa kode-kode fonem serta pitch dan durasi yang dihasilkan oleh bagian sebelumnya. Berdasarkan kode-kode tersebut, bagian Konverter Fonem ke Ucapan akan menghasilkan bunyi atau sinyal ucapan yang sesuai dengan kalimat yang ingin diucapkan[4,hal.1]. 2.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

Text to Phoneme

( a )

Phoneme to Speech

( b ) Text Speech

Page 18: 7105040018 Pengubah Teks Ke Suara

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.5 - 5.5V.

Konfigurasi pin dan fungsinya tampak pada gambar 2.2.

Gambar 2.2. Konfigurasi pin ATmega8[5,hal.2] 2.3. MMC (Multi Media Card) [7,hal.1]

Penggunaan MMC semakin populer, tidak hanya untuk menyimpan data digital pada kamera digital, handycam, mp3, mp4 dan handphone. Bahkan teknologi mikrokontroler pun sudah mulai menggunakan MMC sebagai media penyimpanan data menggantikan EEPROM(Electrically Erasable Programmable Read Only Memory).

Page 19: 7105040018 Pengubah Teks Ke Suara

Konfigurasi pin-pinnya tampak pada gambar 2.3.

Gambar 2.3. Konfigurasi Pin MMC 2.3.1. SPI(Serial Peripheral Interface ) Mode

Merupakan cara mengkoneksikan MMC dengan mikrokontroler. MMC dan mikrokontroler sudah memiliki fasilitas SPI sehingga sangat mudah untuk menguhubungkannya. Kecepatan aksesnya pun cukup tinggi yaitu mencapai 8 MHz.

2.3.2. Command dan respon Untuk mengontrol kerja dari MMC diperlukan beberapa command. Selain itu untuk mengetahui kondisi MMC setelah diberi suatu command, dapat dilihat pada kondisi respon R1, R2, R3. Proses transfer data dari MMC ke mikrokontroler atau sebaliknya dapat dilihat pada gambar

Page 20: 7105040018 Pengubah Teks Ke Suara

Gambar 2.4. Command Frame MMC

2.3.3. SPI Command Set Setiap command memiliki fungsi yang spesifik dan menghasilkan respon(response ) yang berbeda. Ada beberapa command yang terdapat pada MMC. Pada tabel 2.1. merupakan command digunakan untuk mengakses MMC pada sistem ini.

Tabel 2.1. Command Set MMC

CMD Response Argument Fungsi CMD0 R1 None(0) Reset CMD1 R1 None(0) Proses inisialisasi card CMD16 R1 Block Length (31:0) Mengatur panjang blok CMD17 R1 Address 4 Bytes (31:0) Membaca blok MMC 2.3.4. SPI Respon Setiap MMC memperoleh command maka MMC akan memberikan respon. Pada MMC terdapat 3 macam format respon R1, R2 dan R3. Untuk command-command diatas hanya menghasilkan respon R1. Dari respon tersebut dapat diketahui jenis Error yang terjadi, ditandai dengan nilai 1 pada bit yang bersesuaian. Jika tidak ada Error maka R1 akan bernilai 00000000(biner).

Gambar 2.5. R1 Respon dari MMC

Page 21: 7105040018 Pengubah Teks Ke Suara

2.3.5. Write/Read MMC Proses Write/Read ada 2 macam cara yaitu per blok (single blok) atau multiple blok. Perbedaan dari kedua macam cara ini terletak pada besar data yang ditransfer dalam sekali memberikan command. Pada sistem ini hanya digunakan proses pembacaan (Read) dengan metode single blok.

Gambar 2.6. Read single blok

Format paket data dari MMC tampak pada gambar 2.7.

Gambar 2.7. Format paket data

2.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,hal.28]. Fungsi dari Serial Peripheral Interface Bus adalah untuk menjalankan pertukaran data biner secara serial. Ada 2 macam mode SPI yaitu

1. Satu master, satu slave 2. Satu master, beberapa slave

Page 22: 7105040018 Pengubah Teks Ke Suara

Gambar 2.8. adalah hubungan Serial Peripheral Interface Bus

antara satu master dan satu slave.

Gambar 2.8. Satu Master Satu Slave Keterangan:

SCLK adalah serial clock . Sumber clock antara master dan slave berasal dari satu sumber, sehingga rangkaian dapat lebih sederhana. Slave mendapat clock dari Output master. MOSI (master Output , slave input) merupakan jalur komunikasi data Output pada master yang dihubungkan ke jalur input slave. MISO (master input, slave Output ) merupakan jalur komunikasi data Output pada slave yang dihubungkan ke jalur input master. SS (slave select) berfungsi sebagai jalur pengaktifan slave. SS aktif low, slave akan aktif jika jalur SS ini mendapat sinyal low dari Output master. 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. Hardware interface sederhana 2. Kecepatan transfer data sangat tinggi 3. Sedikit sekali menggunakan jumper (wire) 4. Tidak terbatas pada komunikasi 8 bits

2.5. Ace of WAV

Ace of WAV merupakan salah satu software yang mempunyai kemampuan untuk mengolah suatu sinyal suara digital berformat WAV .

Page 23: 7105040018 Pengubah Teks Ke Suara

Properti yang dimiliki sebuah sinyal suara seperti amplitudo, frekuensi, ukuran bit dan sebagaianya dapat dimodifikasi dengan mudah melalui software ini. Software ini dapat di download secara gratis versi evaluasi di http://www.polyhedric.com/software/ace[9].

Pada proyek akhir ini digunakan sebagai alat bantu untuk melakukan perekaman, mengatur jumlah sampling sebanyak 2000 sample dan untuk menandai akhir data dari tiap-tiap fonem. Gambar 2.9. menunjukkan tampilan dari Ace of WAV dan tampilan dari samplingnya.

Gambar 2.9. Ace of WAV

2.6. WINHEX

WinHex dibuat oleh X-Ways Software Technology AG. Merupakan sofware yang dapat menampilkan data sekaligus alamat biner dari sebuah file. Selain itu juga dapat digunakan untuk memanipulasi data per Byte dari sebuah file. Software ini dapat di download secara gratis versi evaluasi di http://winhex.en.softonic.com/download[10].

Pada proyek akhir ini digunakan sebagai alat bantu untuk melihat alamat awal database suara yang tersimpan di MMC. Pada gambar 2.10. merupakan tampilan WinHex .

Page 24: 7105040018 Pengubah Teks Ke Suara

Gambar 2.10. WinHex 2.7. CodeVisionAVR

CodeVisionAVR merupakan salah satu software compiler yang khusus digunakan untuk mikrokontroler keluarga AVR. Meskipun CodeVisionAVR termasuk software komersial, namun kita tetap dapat menggunakannya dengan mudah karena terdapat versi evaluasi yang disediakan secara gratis walaupun dengan kemampuan yang dibatasi. CodeVisonAVR versi evaluasi ini dapat didownload di http://www.hpinfotech.ro/html/download.htm[2,hal.122].

Beberapa kelebihan yang dimiliki oleh CodeVisionAVR antara lain:

1. Menggunakan IDE(integrated Development Environment). 2. Fasilitas yang disediakan lengkap(mengedit program, meng-

compile program, mendownload program) serta tampilannya terlihat menarik dan mudah dimengerti.

3. Mampu membangkitkan kode program secara otomatis dengan fasilitas CodeWizardAVR.

4. Memiliki fasilitas untuk mendownload program langsung ke mikrokontroler dengan hardware tambahan.

Page 25: 7105040018 Pengubah Teks Ke Suara

5. Meiliki fasilitas debugger sehingga dapat menggunakan software compiler lain untuk mengecek kode assemblernya, contohnya AVRStudio.

6. Memiliki terminal komunikasi serial yang terintegrasi dalam CodeVisionAVR.

Pada gambar 2.11. merupakan tampilan dari software CodeVisionAVR.

Gambar 2.11. Tampilan CodeVisionAVR 2.8. 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].

Page 26: 7105040018 Pengubah Teks Ke Suara

Gambar 2.12. Sinyal PWM dengan berbagai Duty cycle Pada gambar 2.12. menunjukkan tiga sinyal PWM yang berbeda. Sinyal yang paling atas menunjukkan sinyal PWM dengan duty cycle 20%. Artinya sinyal on selama 20% dari periode sinyal dan off selama 80 % sisanya. Gambar yang lainnya menunjukkan sinyal dengan duty cycle 50% dan 90%. Ketiga sinyal PWM tersebut akan menghasilkan sinyal analog yang berbeda. Sebagai contoh jika supply tegangan sebesar 9V dan duty cycle 20%, maka menghasilkan (20% x 9V) 1,8V.

Gambar 2.13. Pulsa PWM Untuk mengetahui nilai duty cycle dan tegangan Output , digunakan persamaan 2.1.

Vo : Tegangan Output (Volt) VS : Tegangan Pulsa PWM (Volt)

VST

tV 1

0 = ...........................................2.1.

Page 27: 7105040018 Pengubah Teks Ke Suara

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

Page 28: 7105040018 Pengubah Teks Ke Suara

”Halaman ini sengaja dikosongkan”

Page 29: 7105040018 Pengubah Teks Ke Suara

FILTE

AMPLIFIESPEAKER

MMC

KEYPA LCD MIKRO

KONTROLER

BAB III PERENCANAAN DAN PEMBUATAN SOFTWARE

Pada bab ini akan dibahas mengenai perencanaan dan

pembuatan database suara, software konversi teks ke fonem, akses ke MMC dan konversi ke sinyal analog. 3.1. Diagram sistem

Diagram sistem proyek akhir ini dapat dilihat pada gambar 3.1.

SPI PWM

: ruang lingkup software yang dikerjakan dalam proyek akhir ini

Gambar 3.1. Diagram sistem

Mikrokontroler akan mengambil data teks kalimat dari keypad untuk dipecah menjadi per kata kemudian dipecah lagi menjadi per suku kata(fonem). Setelah itu mikrokontroler akan mencari alamat database suara fonem yang ada di dalam MMC. Sebelumnya telah dilakukan proses pembuatan database suara tiap-tiap fonem ynag disimpan dalam MMC dalam format WAV . Jika alamat database fonem sudah ditemukan maka dilakukan proses pengambilan 1Byte data suara dari MMC ke RAM mikrokontroler melalui SPI. Untuk mengubah data suara digital ini ke analog menggunakan metode PWM dengan frekuensi PWM 62.5Khz. Data suara digital diambil dari MMC dan dikonversi ke analog dilakukan dengan periode 125us yaitu sesuai frekuensi sampling yang digunakan 8Khz. Setelah satu proses konversi selesai, mikrokontroler akan mengkonversi 1byte data suara selanjutnya dan terus demikian sampai

Page 30: 7105040018 Pengubah Teks Ke Suara

ATmega

semua fonem suara selesai dikonversi. Pada Gambar 3.2. merupakan aliran data sekuensial dari MMC ke speaker.

Gambar 3.2. Aliran data dari MMC ke speaker

Sedangkan untuk proses konversi ke sinyal analog tampak pada gambar 3.3.

Gambar 3.3. Proses rekonstruksi sinyal analog

4 orde LPF Sallen-Key

Rekonstruksi sinyal

melalui speaker

ATmega8 membaca Mengkonversi ke Data dari MMC via SPI sinyal PWM

Page 31: 7105040018 Pengubah Teks Ke Suara

Pada gambar 3.3. Atmega8 akan mengambil 1Byte data dari MMC via SPI kemudian akan dikonversi menjadi nilai duty cycle pada Output PWM. Sinyal yang masih kasar ini akan dihaluskan dengan 4 orde LPF(Low Pass Filter) sehingga suara yang dihasilkan melalui speaker lebih halus. 3.2. Flowchart sistem

Gambar 3.4. Flowchart sistem keseluruhan

end

start

inisialisasi

Tampilkan ke LCD

Konversi teks ke fonem

Ubah ke suara?

Ambil database MMC

Filter &Ampli

speaker

N

Y

DAC (PWM)

Baca keypad

Page 32: 7105040018 Pengubah Teks Ke Suara

Pada gambar flowchart 3.4. mikrokontroler akan menampilkan hasil tulisan yang diketik melalui keypad pada LCD. Jika tombol ENTER ditekan maka kalimat yang ada pada LCD akan dikonversi menjadi suara. Setelah itu proses akan kembali ke awal lagi. 3.3. Pembuatan database suara fonem(suku kata)

Proses pembentukan suara dari suatu suatu kata dilakukan dengan cara penggabungan per suku kata. Misalnya kata “saya” maka untuk menghasilkan suara dari kata tersebut diperlukan suara “sa” dan “ya”.

Berdasarkan hal tersebut pembuatan database fonem dilakukan dengan mendata kemungkinan-kemungkinan kombinasi dari suku kata yang muncul dalam suatu kata. Berikut ini beberapa kemungkinan fonem-fonem dalam bahasa Indonesia :

1. KVKK : peng, rang… (peng-ha-sil-an, pe-rang-kat,…) 2. KKVK : gram, krab… (di-a-gram, a-krab,…) 3. KVK : ban, kan… (ban-ding, i-kan,…) 4. KKV : pro, kla… (pro-kla-ma-si,…) 5. VKK : ang, ong… (ang-sa, ong-kos,…) 6. KV : sa, ya… (sa-ya,…) 7. VK : al, an… (al-qur-an,…) 8. V : a, i, u… (a-ku, i-tu, u-lar,…) Daftar fonem selengkapnya dapat dilihat di lampiran 1. Setelah semua fonem ditentukan maka dikelompokan menurut jumlah huruf dan susunan konsonan-vokalnya. Kemudian diurutkan secara alphabetic, hali ini dilakukan agar terbentuk pola yang teratur sehingga memudahkan dalam pemrogramannya. Dalam proyek akhir ini fonem yang dibuat berjumlah 1170. Perekaman dapat dilakukan dengan menggunakan microphone yang dihubungkan ke komputer. Kemudian mengucapkan suatu kata yang mengandung fonem yang diinginkan. Diucapkan per kata agar struktur fonem terdengar alami. Hasil rekaman tadi kemudian dipotong dan diambil bagian fonem yang diinginkan dengan bantuan software Ace of WAV . Pada saat mengucapkan hendaknya dilakukan dengan jelas dan sedatar mungkin(tanpa intonasi). Selain itu agar didapatkan

Page 33: 7105040018 Pengubah Teks Ke Suara

rekaman yang jernih sebaiknya menggunakan perangkat perekaman berkualitas tinggi. Metode pembuatan database suara diatas telah dicoba tetapi mengingat jumlah fonem sebanyak 1170 maka kualitas hasil perekaman kurang optimal. Kesulitannya terletak pada pengucapan tanpa intonasi tetapi harus sejelas mungkin dan durasi waktu yang normal, hal ini tentu berlawanan dengan kebiasaan pengucapan sehari-hari yaitu jika ingin jelas maka menggunakan intonasi dengan durasi yang lama. Kesulitan yang lainnya adalah amplitudo yang berubah-rubah saat kata diucapkan dan adanya noise.

Berdasarkan alasan tersebut dilakukan metode pembuatan database dengan bantuan software IndoTTS V0.9.24. 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. Suara direkam dengan kualitas 8 bit, mono, kecepatan sampling 8KHz.

Audio Out

Keyboard Audio In USB PC

Gambar 3.5. Metode pembuatan database suara Semua fonem disimpan dalam satu file. untuk fonem yang berpola KKVK, KKV dan VKK dijadikan satu file dan disimpan dalam file yang berbeda, disebabkan fonem-fonem ini memiliki kombinasi huruf yang tidak sama sehingga tidak bisa dicari polanya. Fonem diatur agar memiliki ukuran maksimal yang sama yaitu 2000 sample, bertujuan agar terbentuk pola yang teratur pada nilai alamat database fonem sehingga memudahkan pemrogramannya. Nilai 2000 dipilih karena rata-rata lebar sample dari satu fonem tidak lebih dari 2000 sample. Untuk mengatur ukuran sample digunakan alat bantu

Indo TTS

Ace of WAV

Teks

MMC

Page 34: 7105040018 Pengubah Teks Ke Suara

software Ace of WAV . Pada gambar 3.6. dapat dilihat data rekaman fonem.

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

Page 35: 7105040018 Pengubah Teks Ke Suara

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

Page 36: 7105040018 Pengubah Teks Ke Suara

Gambar 3.8. 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. Penandaan ini dapat dilakukan dengan menyisipkan data bernilai 1 sepanjang 1 sample di akhir sinyal dari fonem. Nilai 1 ini akan dikenali sebagai akhir data dari sebuah fonem. Agar tidak terjadi kesamaan nilai antara tanda akhir fonem dan nilai amplitudo dari sinyal, maka nilai sinyal dibatasi tidak boleh kurang dari 48. Hal ini dapat dilakukan dengan menghapus nilai amplitudo sinyal yang kurang dari 48. Pada software Ace of WAV dapat dengan mudah dilakukan dengan menggunakan command “clip” pada tool bar. Properti command ini dapat diatur dengan cara right-click pada command tersebut. Pada gambar 3.9. terlihat beberapa properti yang digunakan untuk menghapus nilai amplitudo sinyal yang berada diatas atau dibawah nilai threshold.

Page 37: 7105040018 Pengubah Teks Ke Suara

Gambar 3.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. Pada gambar 3.10. semua nilai maksimum sinyal adalah 175 sedangkan nilai minimum sinyal adalah 48. Selain itu juga telah diberi tanda di setiap akhir bunyi suatu fonem.

Page 38: 7105040018 Pengubah Teks Ke Suara

Gambar 3.10. Sinyal yang telah ditandai Semua sinyal yang sudah diatur ini kemudian disimpan di MMC sebagai database suara fonem. 3.4. Perancangan software konversi teks ke fonem

Kalimat yang diketik melalui keypad akan dipecah menjadi per kata kemudian akan dipecah lagi menjadi per suku kata. Untuk memecah kalimat menjadi per bagian kata dapat dilakukan dengan melihat tanda spasi antar kata yang satu dengan kata yang lain. Sedangkan untuk memecah kata menjadi menjadi suku kata memerlukan algoritma khusus.

Misal kalimat: “aku sedang makan” jika dipecah per suku kata menjadi “a-ku se-dang ma-kan”. Pada bahasa Indonesia satu suku kata dapat terdiri dari 1 huruf sampai dengan 4 huruf. Berikut ini adalah kemungkinan fonem-fonem dalam bahasa Indonesia berdasarkan jumlah huruf dan susunan vokal-konsonannya.

Aturan(rule ):

1. KVKK : peng, rang… (peng-ha-sil-an, pe- rang-kat,…)

Page 39: 7105040018 Pengubah Teks Ke Suara

2. KKVK : gram, krab… (di-a-gram, a-krab,…)* 3. KVK : ban, kan… (ban-ding, i-kan,…) 4. KKV : pro, kla… (pro-kla-ma-si,…)* 5. VKK : ang, ong… (ang-sa, ong-kos,…)* 6. KV : sa, ya… (sa-ya,…) 7. VK : al, an… (al-qur-an,…) 8. V : a, i, u… (a-ku, i-tu, u-lar,…) (*) : menggunakan look up table Berdasarkan karakteristik fonem-fonem tersebut dapat digunakan untuk mengenali fonem dari suatu kata. Untuk fonem yang berpola(*) KKVK, KKV dan VKK menggunakan look up table karena jenis fonem ini memerlukan perlakuan khusus disebabkan komposisi hurufnya tidak beraturan. Pada gambar 3.11. merupakan Flowchart Konverter Teks ke Fonem.

Gambar 3.11. Flowchart Konverter Teks ke Fonem

start

end

Ambil sebanyak N huruf dari belakang

N=4

N huruf = rule (K-V) untuk N

N huruf=fonem geser pointer ke kiri

N

Y

N--

Huruf habis?

Y

N

Page 40: 7105040018 Pengubah Teks Ke Suara

Penjelasan dari flowchart pada gambar 3.11. adalah sebagai berikut:

1. N=4. Jumlah huruf maksimum suatu fonem adalah 4 karakter. Dimulai dari nilai maksimum untuk menghindari kesalahan pengelompokan jenis fonem dengan nilai yang kurang dari 4. Oleh sebab itu nilai maksimum diprioritaskan terlebih dahulu.

2. Ambil sebanyak N huruf dari belakang. Hal ini dilakukan untuk memprioritaskan jenis akhiran yang terdiri dari 4 huruf, seperti “ri-ngan” dan sebagainya.

3. N huruf = rule (K-V) untuk N huruf?. Huruf yang sudah diambil sebanyak N buah susunan konsonan dan vokalnya akan dibandingkan dengan aturan untuk yang berjumlah N buah huruf. Jika tidak ada yang sama maka N huruf tersebut bukan merupakan fonem. N--. Kurangi satu jumlah huruf yang akan diambil dan kembali lakukan lagi langkah 1 diatas. Jika Nhuruf sama dengan aturan untuk Nhuruf maka lakukan langkah 4 dibawah.

4. N huruf=Fonem. Jika sama, maka N huruf tersebut adalah sebuah fonem. Geser pointer ke kiri. Dilakukan pergeseran tanda pointer 4baris untuk bagian huruf sebelah kiri dari fonem tersebut.

5. Huruf habis?. Jika huruf pada bagian kiri sudah tidak ada maka proses konversi dari seluruh kalimat sudah selesai. 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.

Berikut ini adalah contoh dari proses konversi kata “ringan” menjadi per fonem “ri-ngan”.

1. N=4. Pointer diletakkan pada huruf keempat dari kanan (huruf “n” tengah ).

Page 41: 7105040018 Pengubah Teks Ke Suara

2. Diambil 4 huruf kekanan dimulai dari titik pointer sehingga diadapatkan kombinasi karakter “ngan”.

3. Susunan konsonan-vokal dari kombinasi ini yaitu KKVK akan dicocokan dengan aturan untuk 4 huruf. Ternyata hasil dari pencocokan ini adalah sesuai.

4. jika sesuai maka kombinasi huruf ini dinyatakan sebagai sebuah fonem. Geser pointer kekiri sebanyak 4 karakter.

5. Karena huruf di sebelah kiri fonem “ngan” masih ada maka proses akan dimulai lagi pada langkah 1.

6. N=4. Pointer diletakkan pada karakter keempat dari kanan setelah fonem tadi (karena melebihi batas karakter pertama maka pointer menunjuk karakter”[]”).

7. Diambil 4 huruf kekanan dimulai dari titik pointer sehingga diadapatkan kombinasi karakter “[][]ri”.

8. Susunan konsonan-vokal dari kombinasi ini yaitu [][]KV akan dicocokan dengan aturan untuk 4 huruf. Ternyata hasil dari pencocokan ini tidak ada yang sesuai. N--,jumlahn karakter yang akan diambil untuk proses berikutrnya dikurangi satu sehingga berjumlah 3 huruf.

9. N=3. Pointer diletakkan pada karakter ketiga dari kanan setelah fonem tadi (karena melebihi batas karakter pertama maka pointer menunjuk karakter”[]”).

10. Diambil 3 huruf kekanan dimulai dari titik pointer sehingga diadapatkan kombinasi karakter “[]ri”.

11. Susunan konsonan-vokal dari kombinasi ini yaitu []KV akan dicocokan dengan aturan untuk 3 huruf. Ternyata hasil dari pencocokan ini tidak ada yang sesuai. N--,jumlahn karakter yang akan diambil untuk proses berikutrnya dikurangi satu sehingga berjumlah 2 huruf.

12. N=2. Pointer diletakkan pada karakter kedua dari kanan setelah fonem tadi (huruf “r” pertama ).

13. Diambil 2 huruf kekanan dimulai dari titik pointer sehingga diadapatkan kombinasi karakter “ri”.

14. Susunan konsonan-vokal dari kombinasi ini yaitu KV akan dicocokan dengan aturan untuk 2 huruf. Ternyata hasil dari pencocokan ini adalah sesuai.

15. jika sesuai maka kombinasi huruf ini dinyatakan sebagai sebuah fonem. Geser pointer kekiri sebanyak 4 karakter.

Page 42: 7105040018 Pengubah Teks Ke Suara

16. Karena huruf di sebelah kiri fonem “ri” tidak ada maka proses akan berakhir.

3.5. Pembuatan software konversi teks ke fonem

Proses pembuatan program konversi teks ke fonem dilakukan dengan bantuan software Microsoft Visual C++ 6.0. Dengan menggunakan software ini dapat dilakukan simulasi secara praktis dan cepat. Hal ini karena tidak membutuhkan hardware seperti mikrokontroler, Keypad maupun LCD. Selain itu tidak memakan waktu yang lama karena tidak perlu mendownload program ke mikrokontroler. Pada gambar 3.12. merupakan tampilan software ini.

Gambar 3.12. Tampilan Microsoft Visual C++ 6.0.

Jenis-jenis fonem yang dijadikan aturan atau referensi pembanding terlebih dahulu dideklarasikan dalam bentuk array . Pada gambar 3.13. adalah pendeklarasian variabel-variabel tersebut didalam bahasa C++.

Page 43: 7105040018 Pengubah Teks Ke Suara

char rule [][5]={ "kvkk", "kkvk", "kvk", "kkv", "vkk", "kv", "vk", "v", "k", "_", };

Gambar 3.13. Deklarasi referensi pembanding Untuk jenis fonem yang berpola KKVK, KKV dan VKK jenis fonem katanya di deklarasikan satu per satu dalam array sehingga membentuk look up table. Jika kombinasi huruf yang akan dikonversi ini berada di look up table, maka dinyatakan sebagai fonem. Fonem-fonem ini memerlukan look up table disebabkan kombinasi hurufnya tidak beraturan. Pada gambar 3.14. merupakan cuplikan dari deklarasi fonem-fonem ini.

Gambar 3.14. Deklarasi fonem KKVK, KKV dan VKK

Setelah semua variabel yang diperlukan dideklarasikan maka langkah pertama dalam program yaitu mengubah kalimat dalam bentuk

char kkvk[][5]={ "blis", "brak", … char kkv[][4]={ "bri", "dra", … char vkk[][4]={ "ang", "ing", …

Page 44: 7105040018 Pengubah Teks Ke Suara

pola konsonan dan vokal. Untuk melakukannya digunakan program pada gambar 3.15.

Gambar 3.15. Program konversi ke pola konsonan dan vokal Pada program 3.15. huruf vokal akan dinyatakan dalam huruf ‘v’ sedangkan konsonan akan dinyatakan dalam huruf’k’. Hasil konversi dari kalimat atau kata dalam array a[ ] tersebut akan disimpan dalam array a2[ ]. 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 [ ]. Berikut ini merupakan cuplikan program untuk mencocokkan pola kata input dengan pola fonem referensi yang terdiri dari 4 huruf.

Gambar 3.16. Program konversi ke fonem untuk 4 huruf

Variabel “suku” menyatakan pointer posisi huruf sedangkan variable “ofset” digunakan untuk mengatur penempatan pointer sesuai

panjang=strlen(a); p=a; printf("a2="); for(i=0;i<panjang;i++){ if ((*p=='a')||(*p=='i')||(*p=='u')||(*p=='e')||(*p=='o')) a2[i]='v'; else if ((*p=='_')||(*p=='0')) a2[i]='_'; else a2[i]='k'; *p++; putchar(a2[i]); }

suku++; ofset+=4; urut=0; lebar=4; memcpy(b,a2+panjang-ofset,lebar); hasil=strncmp(b,rule [urut],lebar);

if (hasil==0){ memcpy(kata[suku],a+panjang-ofset,lebar); }

Page 45: 7105040018 Pengubah Teks Ke Suara

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

Page 46: 7105040018 Pengubah Teks Ke Suara

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

Gambar 3.18. Struktur format *.WAV

Page 47: 7105040018 Pengubah Teks Ke Suara

Pada gambar 3.18. dapat dilihat bahwa suatu file berformat *.WAV datanya pasti diawali dengan ASCII “RIFF” kemudian diikuti dengan berbagai spesifikasi file tersebut. Software WinHex dapat digunakan untuk mencari ASCII tersebut dengan menggunakan tool search. Untuk mengamati data yang tersimpan didalam MMC digunakan command Disk Editor. Pada gambar 3.19. merupakan tampilan software ini.

Gambar 3.19. Tool “search” software WinHex Tanda oval yang berwarna hitam menunjukkan tool “search” sedangkan yang berwarna merah menunjukkan tool “Disk Editor”. Alamat data dalam bentuk heksa ditunjukkan pada label “offset”. 3.7. 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. Nilai alamat ini masih harus dikalikan dengan 1000 agar sesuai dengan alamt di MMC.

Page 48: 7105040018 Pengubah Teks Ke Suara

Pada gambar 3.20. merupakan cuplikan program untuk menentukan alamat 1huruf.

Gambar 3.20. 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). Nilai alamat dari fonem ini disimpan di dalam variabel hasil. 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. Jika terdiri dari 2 huruf maka fonem tersebut bisa tersusun atas “vk” atau “kv”. Untuk fonem yang berpola “vk” kombinasi vokalnya terdiri dari huruf “a,i,u,e,o” sedangkan untuk konsonannya terdiri dari ”b,f,h,k,l,m,n,r,s,t” yang disusun secara alphabetic. Berdasrkan pola tersebut dapat dibentuk program untuk menentukan alamatnya. Pada gambar 3.21. merupakan cuplikan program untuk penentuan alamat fonem berpola”vk”.

Gambar 3.21. Penentuan alamat untuk pola “vk”

p=kata[suku]; if ((*p>='a')&&(*p<='z'))

nilai=(unsigned int)(*p-'a')*2

p=kata[suku]; if ((*p=='a')||(*p=='i')||(*p=='u')||(*p=='e')||(*p=='o')){

if (*p=='a') nilai=52;

else if (*p=='e') nilai=72; … *p++;

if (*p=='b') nilai+=0;

else if (*p=='f') nilai+=2; …

Page 49: 7105040018 Pengubah Teks Ke Suara

Jika huruf pertama fonem tersebut adalah “a” maka variabel nilai akan bernilai 52. Nilai ini berasal dari tabel fonem yang berpola “vk” yaitu urutan pertama dengan huruf awal “a”. Kemudian jika huruf kedua adalah “b” maka variabel nilai akan ditambah dengan 0. Nilai ini sesuai urutan didalam tabel. Sehingga hasil dari alamat fonem “ab” pada varabel nilai adalah 52(sesuai tabel). Fonem yang berpola “kv” memiliki algoritma yang berbeda. Hal ini disebabkan jika suatu fonem memiliki jumlah kombinasi yang berbeda maka metode penentuan alamatnya juga berbeda. Untuk fonem ini kombiansi konsonan dan vokalnya berkebalikan dengan yang berpola “vk”. Pada Gambar 3.22. merupakan cuplikan program untuk penentuan alamat fonem berpola”kv”.

Gambar 3.22. Penentuan alamat untuk pola “kv” Misalnya huruf pertama adalah “b” maka variabel nilai akan bernilai (‘b’-‘b’)*10+152 sehingga hasilnya 152. Pengurang “b” digunakan untuk mendapatkan nilai satuan. Nilai 10 pada persamaan ini berasal dari jumlah kombinasi vokalnya 5 (“a,i,u,e,o”) dikali dengan besar data tiap fonem 2(masih belum dikali 1000). Sedangkan nilai 152 merupakan alamat pertama fonem jenis “kv”ini disimpan. Algoritma untuk penentuan alamat fonem-fonem yang lain memiliki dasar algoritma yang sama. Penentuan alamtnya berdasarkan nilai ASCII , susunan(urutan) penyimpanan, jumlah kombinasi dan besar data yaitu 2000Byte. Sedangkan untuk fonem yang berpola “kkvk, kkv dan vkk” penentuan alamat melihat urutan penyimpanannya di dalam look up table dan di dalam MMC.

if ((*p>'a')&&(*p<'e')) nilai=(unsigned int)(*p-'b')*10+152;

else if((*p>'e')&&(*p<'i')) nilai=(unsigned int)(*p-'b')*10+142; … *p++; if (*p=='a') nilai+=0; else if (*p=='i') nilai+=2;//3; else if (*p=='u') …

Page 50: 7105040018 Pengubah Teks Ke Suara

Pada gambar 3.23. merupakan cuplikan program untuk menentukan alamat fonem yang berpola “vkk”.

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

Gambar 3.24. Register SPCR ATmega8

nilai=i*2; alamat[j]=nilai+5000; j++;

Page 51: 7105040018 Pengubah Teks Ke Suara

• Bit 7 – SPIE : SPI Interrupt Enable SPIE digunakan untuk mengaktifkan dan menon-aktifkan interupsi SPI.

• Bit 6 – SPE : SPI Enable SPE digunakan untuk mengaktifkan dan menon-aktifkan komunikasi SPI.

• Bit 5 – DORD : Data Order DORD digunakan untuk menentukan pola pengiriman data.

• 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).

• Bit 2 – CPHA : Clock Phase CPHA digunakan untuk menentukan waktu pengambilan data pada transisi clock.

• 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.1.

Tabel 3.1. Hubungan Frekuensi SCK dan Oscillator

Pada gambar 3.25. merupakan keterangan register SPSR

Page 52: 7105040018 Pengubah Teks Ke Suara

Gambar 3.25. 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.26. merupakan flowchart inisialisasi MMC dalam mode SPI.

Gambar 3.26. Flowchart inisialisasi MMC

Y

start

Respon ok?

Kirim CMD 0 + 8Clock

Respon ok?

CS ‘low’ Kirim 80 clock

CS ‘high’

end

Kirim CMD 1 + 8Clock

N

N

Y

Page 53: 7105040018 Pengubah Teks Ke Suara

Prosedur Inisialisasi MMC pada SPI mode a. Disable chip select. b. Kirim 80 clock untuk memulai komunikasi. c. Enable chip select (active low). d. Kirim CMD0 (reset MMC). e. Kirim 8 clock delay. f. Tunggu sampai memperoleh response 0x00 dari

MMC, jika ada Error ulang proses diatas. g. Kirim 8 clock delay. h. Kirim CMD1 (inisialisasi MMC). i. Kirim 8 clock delay. j. Tunggu sampai memperoleh response 0x00 dari

MMC, jika ada Error ulang proses diatas. 2. Membaca data dari alamat yang diinginkan.

Data yang dapat diambil dari MMC adalah sebanyak 512Byte dalam sekali pengalamatan. Pada gambar 3.27. merupakan flowchart untuk mengambil data dari MMC.

Gambar 3.27. Flowchart membaca data dari MMC

Y

start

Kirim ‘CMD17’+’Haddress’+ ‘Laddress’+’CRC’

Response MMC=0?

Data Token MMC=FE?

Ambil Data 512 Byte

end

Error Handler N

N

Y

Page 54: 7105040018 Pengubah Teks Ke Suara

Proses pembacaan data dari MMC dilakukan dengan proses sebagai berikut:

• Mikrokontroler mengirimkan data ke MMC yang berupa 1Byte

command Read(CMD17), 4Byte address data yang ingin diambil dan 1Byte CRC(dummy byte).

• Kemudian MMC mengirimkan balasan ke mikrokontroler yaitu 1Byte data response dari command Read tersebut.

• 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).

3.9. Pembuatan software akses ke MMC Pada saat alat baru dinyalakan maka perlu dilakukan inisialisasi pada ATmega8 dan MMC pada mode SPI. Pada gambar 3.28. merupakan cuplikan program untuk inisialisasi ATmega8 pada mode SPI.

Gambar 3.28. Inisialisasi ATmega8 pada mode SPI Port sebagai Output data (MOSI), Control chip select(CS), dan Output clock (SCK) harus diset sebagai port Output . Sedangkan port sebagai input data (MISO) dari MMC harus diset sebagai port input. Register SPCR digunakan untuk mengatur enable SPI, ATmega8 sebagi master dan bersama register SPSR menetukan frekuensi awal SCK 125KHz. Pada mode inisialisasi frekuensi SCK tidak boleh melebihi 400KHz[10]. Setelah dilakukan inisialisasi pada mikrokontroler maka inisialisasi pada MMC dapat dilakukan. Prosedur inisialisasi MMC

DDRB.2 = 1; //Output chip select DDRB.3 = 1; //Output MOSI DDRB.4 = 0; //input MISO DDRB.5 = 1; //Output SCLK SPCR = 0b01010011 ; SPSR = 0; PORT B.2= 0;//MMC select

Page 55: 7105040018 Pengubah Teks Ke Suara

PORT B.2= 1; // disable MMC for(i=0; i < 10; i++) spi(0xFF); PORT B.2= 0; // enable MMC if (Command(0x40,0,0,0x95) != 1) goto mmcError ; st: if (Command(0x41,0,0,0xFF) !=0) goto st;

dilakukan sesuai flowchart pada gambar 3.26. Program inisialisasi MMC dapat dilihat pada gambar 3.29.

Gambar 3.29. Inisialisasi MMC pada mode SPI Fungsi Command( ) digunakan untuk mengirimkan data ke MMC yang berupa 1Byte command Reset/Inisialisasi(CMD0/1), 4Byte address data dan 1Byte CRC. Jika inisialisasi sudah dilakukan maka proses pengambilan data dapat dilakukan. Prosedur pengambilan data dapat dilihat pada gambar flowchart 3.27. Program untuk mengambil data sebanyak 512Byte dari MMC dapat dilihat pada gambar 3.30.

Gambar 3.30. Mengambil data dari MMC Fungsi Command( ) digunakan untuk mengirimkan data ke MMC yang berupa 1Byte command Read(CMD17), 4Byte address data yang ingin diambil dan 1Byte CRC. Fungsi ini akan menghasilkan nilai balik 0 jika pengiriman data tersebut diterima oleh MMC. Setelah itu mikrokontroler akan menunggu MMC mengirimkan data 0xFE sambil terus memberikan clock pada pin SCK. Data 0xFE merupakan awal

if (Command(0x51,hi,lo,0x95) != 0) { lcd_gotoxy(0,0);

lcd_putsf("MMC: read Error !"); } while(spi(0xFF) != (char)0xFE); for(j=0;j<512;j++){

OCR1A=spi(0xFF); delay _us(125); } spi(0xFF); spi(0xFF);

Page 56: 7105040018 Pengubah Teks Ke Suara

dari data actual sehingga setelah menerima data 0xFE mikrokontroler dapat mengambil sebanyak 1 Byte data pada alamat yang dimaksud. Data ini akan dikonversikan ke sinyal analog melalui PWM dengan mengatur nilai register OCR1A sama dengan data dari MMC. Proses pengambilan data ini terus dilakukan selama 512 kali dengan delay per datanya 125us(frekuensi sampling). Kemudian jika seluruh data sudah dikirimkan MMC akan mengirimkan 2 Byte data CRC, pada sistem ini CRC diabaikan. 3.10. Perancangan software konversi ke sinyal analog (PWM) ATmega8 memiliki 3 Channel pin yang dapat digunakan untuk membangkitkan pulsa PWM dengan frekuensi maksimum 62500Hz. 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. Register-register yang digunakan untuk mengatur kerja PWM ini adalah Timer/Counter 1 Control Register A(TCCR1A), Timer/Counter 1 Control Register B(TCCR1B) dan Output Compare Register 1 A(OCR1A). Pada gambar 3.31. merupakan struktur register TCCR1A.

Gambar 3.31. 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.2.

Page 57: 7105040018 Pengubah Teks Ke Suara

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

Page 58: 7105040018 Pengubah Teks Ke Suara

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

Page 59: 7105040018 Pengubah Teks Ke Suara

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 : frekuensi Output OC1A mode Fast PWM Fclk_I/O : Frekuensi kristal N : skala clock (lihat tabel 3.10.3) TOP : nilai maksimum counter (TCNT1) Pada persamaan 3.2. merupakan rumusan Duty cycle yang dihasilkan.

%100*1

TOP

xOCRD = ...........................................................3.2.

D : Duty cycle OCR1x : isi register OCR1A TOP : nilai maksimum counter (TCNT1)

Pada gambar 3.34. merupakan Timing Diagram Mode Fast PWM.

Page 60: 7105040018 Pengubah Teks Ke Suara

Gambar 3.34. 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). Pada saat sudah mencapai nilai maksimum(TOP) nilai register TCNT1 akan kembali ke 0 kemudian mencacah naik lagi, demikian seterusnya. Nilai register OCR1A akan terus dibandingkan dengan nilai register TCNT1, jika sama maka Output pada pin OC1A akan berubah kondisi(toogle). 3.11. Pembuatan software konversi ke sinyal analog (PWM)

Sistem ini menggunakan Mode Fast PWM – 8bit dengan frekuensi PWM 62500Hz. Nilai parameter ini sesuai dengan database suara fonem yang akan direkonstruksi yaitu mono, 8bit, 8KHz. Frekuensi PWM ditentukan 62500 dengan asumsi semakin tinggi frekuensi PWM yang digunakan maka sinyal analog yang dihasilkan akan memiliki step response yang lebih baik. Pada saat alat dinyalakan maka perlu dilakukan inisialisasi parameter-parameter PWM tersebut. Pada gambar 3.35. merupakan program inisialisasi PWM.

Page 61: 7105040018 Pengubah Teks Ke Suara

Gambar 3.35. Inisialisasi PWM Pin Output OC1A harus diatur sebagai port Output dengan memberikan nilai 1 pada register DDRB bit 1. Register TCCR1A dan TCCR1B digunakan untuk mengatur sumber clock Timer 1(kristal), Prescaler Clock (1), Mode (Fast PWM) dengan TOP (0x00FF) dan Output pada pin OC1A(non-inverting). Untuk memperoleh frekuensi PWM sebesar 62500Hz digunakan persamaan 3.1. Pada awal inisialisasi duty cycle diatur 50% agar berada di titik tengah ayunan sinyal DC. 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). Pada sistem ini Output sinyal analog memiliki periode 125us agar sesuai dengan frekuensi sampling 8KHz. Pada gambar 3.36. merupakan program untuk mengkonversi sinyal digital menjadi sinyal analog.

Gambar 3.36. Program konversi ke sinyal analog

DDRB.1=1; TCCR1A=0x81; TCCR1B=0x09; OCR1A=128;

for(j=0;j<512;j++){ OCR1A=spi(0xFF);

delay _us(125); }

Page 62: 7105040018 Pengubah Teks Ke Suara

”Halaman ini sengaja dikosongkan”

Page 63: 7105040018 Pengubah Teks Ke Suara

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. PENGUJIAN PER BLOK 4.1.1. 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.

Page 64: 7105040018 Pengubah Teks Ke Suara

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 Range Alamat Sample

Suara Tabel Referensi

Error (%)

1. 0 – 2000 “a” a 0 2. 224000 – 226000 “ki” ki 0 3. 446000 – 48000 “car” car 0 4. 670000 – 672000 “fit” fit 0 5. 870000 – 872000 “hit” hit 0 6. 1102000 – 1104000 “kem” kem 0 7. 1326000 – 1328000 “mor” mor 0 8. 1542000 – 1544000 “ram” ram 0 9. 1768000 – 1770000 “tis” tis 0 10. 2232000 – 2234000 “yang” yang 0

Rata-rata Error 0%

Page 65: 7105040018 Pengubah Teks Ke Suara

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.

Page 66: 7105040018 Pengubah Teks Ke Suara

Pada tabel 4.2. merupakan hasil pengujian software konversi teks ke fonem dengan memasukan 10 jenis kata secara acak.

Tabel 4.2. Hasil pengujian konversi teks ke fonem

No Input Output Referensi Error

(%) 1. Aku A-ku A-ku 0 2. Beli Be-li Be-li 0 3. Makan Ma-kan Ma-kan 0 4. Ompong Om-pong Om-pong 0 5. Dengan De-ngan De-ngan 0 6. Menyapu Me-nya-pu Me-nya-pu 0 7. Proklamasi Pro-kla-ma-si Pro-kla-ma-si 0 8. Institut Ins-ti-tut Ins-ti-tut 0 9. Elektronika E-lek-tro-ni-ka E-lek-tro-ni-ka 0 10. Manusia Ma-nu-si-a Ma-nu-si-a 0

Rata-rata Error 0%

Analisa: Berdasarkan data hasil pengujian didapatkan persentase ketepatan konversi teks ke fonem adalah 100% dari 10 sample. Ketepatan konversi ini menentukan jelas tidaknya suara yang dihasilkan. Misalnya suara “aku” jika salah dikonversi menjadi bentuk fonem”ak-u” akan terdengar kurang jelas. Sebaliknya akan terdengar jelas jika dikonversi menjadi fonem “a-ku”. Kesimpulannya, ketepatan konversi teks ke fonem ini menentukan jelas tidaknya suara yang dihasilkan. Persentase ketepatan software konversi teks ke fonem ini adalah 100% dari 10 sample.

4.1.3. Pengujian software untuk penentu alamat fonem pada

MMC

Pengujian ini bertujuan untuk megetahui ketepatan software menentukan alamat fonem pada MMC. Pengujian menggunakan komputer dengan software Microsoft visual c++ 6.0. Input suatu fonem dimasukan melalui keyboard dan hasil alamat fonem tersebut

Page 67: 7105040018 Pengubah Teks Ke Suara

ditampilkan pada layar. Pada gambar 4.3. merupakan tampilan proses pengujian software untuk penentu alamat fonem pada MMC melalui komputer.

Gambar 4.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. Pada tabel 4.3. merupakan hasil pengujian software penentu alamat fonem dengan memasukan 10 jenis fonem secara acak.

Tabel 4.3. Hasil pengujian software penentu alamat fonem

No Input

Fonem Output Alamat

Referensi Alamat

Error (%)

1. a 0 0 0 2. ma 242 242 0 3. car 446 446 0 4. fit 670 670 0 5. hit 870 870 0 6. kem 1102 1102 0 7. mor 1326 1326 0 8. ram 1542 1542 0 9. tis 1768 1768 0 10. yang 2232 2232 0

Rata-rata Error 0%

Page 68: 7105040018 Pengubah Teks Ke Suara

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. Jika terjadi kesalahan penentuan alamat fonem ini maka Output suara yang dihasilkan tidak akan sesuai dengan yang kita inginkan. Untuk menghemat memori, bilangan yang digunakan dalam penghitungan alamat tidak mengikutsertakan ribuan. Nilai alamat hasil software ini masih harus dikalikan dengan bilangan 1000 agar sesuai dengan alamat sebenarnya di dalam MMC. Kesimpulannya, ketepatan pengalamatan fonem database ini menentukan jenis Output suara yang dihasilkan. Persentase ketepatan software penentu alamat fonem yang dibandingkan dengan tabel alamat database suara yang telah dibuat adalah 100% dari 10 sample. 4.1.4. Pengujian software akses ke MMC

Pengujian ini bertujuan untuk mengetahui persentase ketepatan pengambilan data pada alamat terentu di MMC. 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. Hasil pengambilan darta tersebut dibandingkan dengan data sebenarnya pada MMC yang dilihat melalui software WinHEX. Gambar 4.4. merupakan tampilan Winhex menunjukan data karakter(“<data_MMC>”) yang tersimpan di dalam MMC pada alamat 0x27DC00 sampai dengan 0x27DC09.

Gambar 4.4. Alamat data “<data_MMC>” di MMC

Page 69: 7105040018 Pengubah Teks Ke Suara

Pada gambar 4.5. merupakan tampilan hasil pengambilan data melalui serial komunikasi.

Gambar 4.5. Pengujian pengambilan data dari MMC Pada gambar 4.6. merupakan program yang digunakan untuk mengambil 10Byte data dari MMC pada alamat 0x27DC00 - 0x27DC09 dan dikirim ke komputer via RS232.

Gambar 4.6. Program pengambilan data dari MMC Pada tabel 4.4. merupakan hasil pengujian pengambilan data dari MMC dan ditampilkan pada layar komputer via serial komunikasi.

hi=0x27; lo=0xDC00; Command(0x51,hi,lo,0x95); while(spi(0xFF) != (char)0xFE); for(i=0;i<10;i++){ printf("%c",spi(0xFF)); }

Page 70: 7105040018 Pengubah Teks Ke Suara

Tabel 4.4. Hasil pengambilan data dari MMC

No Alamat pada MMC(heksa)

Data Output

Data Referensi

Error (%)

1. 0x27DC00 “<” “<” 0 2. 0x27DC01 “d” “d” 0 3. 0x27DC02 “a” “a” 0 4. 0x27DC03 “t” “t” 0 5. 0x27DC04 “a” “a” 0 6. 0x27DC05 “_” “_” 0 7. 0x27DC06 “M” “M” 0 8. 0x27DC07 “M” “M” 0 9. 0x27DC08 “C” “C” 0 10. 0x27DC09 “>” “>” 0

Rata-rata Error 0% Analisa: Berdasarkan data hasil pengujian didapatkan persentase ketepatan pengambilan data 100% dari 10 sample. Jika terjadi kesalahan pemgambilan data maka Output suara yang dihasilkan tidak akan sesuai dengan yang kita inginkan. Selain itu berdasarkan hasil percobaan, awal pengalamatan pada MMC harus kelipatan 512. Misalnya data yang ingin diambil berada di alamat 513 maka pengambilan data tidak bisa langsung dengan alamat 513 tetapi harus pada alamat 512, data pada alamat 512 dapat tidak dihiraukan. Selanjutnya dengan memberikan clock pada pin SCK secara berulang-ulang maka akan didapatkan data sebanyak 512Byte mulai alamat 512 sampai 1023. Kesimpulannya, ketepatan pengambilan data pada MMC menentukan jenis Output suara yang dihasilkan. Persentase ketepatan pengambilan data 100% dari 10sample. 4.1.5. Pengujian software konversi ke sinyal analog(PWM)

Pengujian ini bertujuan untuk mengetahui ketepatan software dalam mengkonversi sinyal digital menjadi sinyal analog dengan metode PWM. Pengujian dilakukan dengan cara membangkitkan sinyal PWM

Page 71: 7105040018 Pengubah Teks Ke Suara

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.2. Pada gambar 4.7. merupakan program untuk membangkitkan sinyal PWM dengan duty cycle 50%.

Gambar 4.7. Program pembangkit PWM duty cycle 50% Pada tabel 4.5. merupakan hasil pengujian software konversi ke sinyal analog dengan duty cycle mulai 0 – 100%.

Tabel 4.5. Pengujian PWM

V supply = 4.89V No Duty cycle

(%) V out (V)

V ref (V)

Error (%)

1. 0 0 0 0 2. 10 0.48 0.48 0 3. 20 0.97 0.97 0 4. 30 1.44 1.46 1.3 5. 40 1.94 1.95 0.5 6. 50 2.43 2.44 0.4 7. 60 2.93 2.93 0 8. 70 3.40 3.42 0.5 9. 80 3.89 3.91 0.5 10. 90 4.37 4.40 0.6 11. 100 4.89 4.89 0

Rata-rata Error 0.34% Analisa: Berdasarkan data hasil pengujian ketepatan software konversi ke sinyal analog dengan metode PWM adalah 99.7% dari 11sample.

Duty = 50/100.0; OCR1A=Duty*255;

Page 72: 7105040018 Pengubah Teks Ke Suara

Error konversi adalah 0.34% hal ini mungkin disebabkan oleh kesalahan alat ukur atau kualitas alat yang digunakan. Jika terjadi kesalahan konversi nilai maka rekonstruksi amplitudo suara yang dihasilkan tidak akan sesuai dengan suara yang asli. Sebaliknya jika Error konversi mendekati nol maka suara yang dihasilkan semakin mirip dengan suara aslinya. Kesimpulannya, ketepatan software konversi ke sinyal analog ini menentukan level amplitudo suara yang dihasilkan. Persentase ketepatan software konversi ke sinyal analog dengan metode PWM adalah 99.7% dari 11sample. 4.2. 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.

Pengujian alat yang diintegrasikan dengan hardware secara keseluruhan dilakukan dengan proses-proses sebagai berikut :

1. Memasukkan input beberapa kalimat melalui keypad

kemudian mengukur waktu rata-rata penulisan dengan keypad ini

2. Mengukur waktu rata-rata Output per fonem dari beberapa kalimat.

3. Menampilkan dalam bentuk gambar Output suara sample ”selamat pagi” untuk mengetahui kesesuaian rekonstruksi sinyal Output .

4. Menghitung persentase keberhasilan Output suara sistem diidentifikasi oleh pendengar.

4.2.1. Pengukuran waktu akses ke keypad

Hasil pengukuran waktu yang dibutuhkan untuk memasukkan teks melalui keypad terlihat pada tabel 4.6.

Page 73: 7105040018 Pengubah Teks Ke Suara

Tabel 4.6. Waktu untuk memasukkan teks melalui keypad

No. Isi teks Waktu akses (m): (s):(ms)

1. baca data dari database lagi 00:22:56

2. saya komunikasi sama rudi di surabaya 00:25:22

3. saya coba sekali lagi 00:14:86

4. saya coba kata kata lagi 00:17:83

5. besok ada kuliah di poltek 00:13:94 Analisa:

Input teks pada keypad ini memilki sistem yang sama pada keypad handphone yang digunakan untuk menulis SMS. Pada sebuah tombol terdapat pilihan lebih dari satu karakter. Huruf yang berada di pilihan pertama tombol(contoh “a”) pasti memiliki waktu akses yang lebih cepat dibandingkan huruf pada pilihan terakhir tombol(contoh “c”). Selain itu jika user sudah terbiasa dengan karakteristik keypad ini maka waktu akses penulisan kata pasti akan lebih cepat.

Kesimpulannya, waktu yang dibutuhkan dalam penulisan suatu kata tergantung dari panjang karakter kata tersebut dan komposisi hurufnya.

4.2.2. Pengukuran waktu rata-rata Output suara per fonem

Hasil pengukuran waktu rata-rata Output suara per fonem ditunjukkan pada tabel 4.7.

Page 74: 7105040018 Pengubah Teks Ke Suara

Tabel 4.7. Waktu rata-rata Output per fonem

Waktu

(m): (s):(ms) No.

Isi teks rata-rata per

fonem

total

1. baca data dari database lagi 00:00:27 00:03:43 2. saya komunikasi sama rudi di

surabaya 00:00:24

00:04:20

3. saya coba sekali lagi 00:00:26 00:02:43 4. saya coba kata kata lagi 00:00:25 00:02:62 5. besok ada kuliah di poltek 00:00:23 00:02:44

Waktu output rata-rata per fonem 250ms Analisa:

Untuk menghitung waktu rata-rata perfonem dengan cara memasukkan berbagai teks kemudian menghitung total waktu yang dibutuhkan untuk dikonversi menjadi suara. Perhitungan waktu total dimulai dari saat menekan tombol enter sampai seluruh fonem terkonversi menjadi suara. Setelah diketahui total waktu tersebut kemudian akan dikurangi dengan delay waktu spasi yang ada dan hasilnya akan dibagi dengan jumlah fonemnya. Disini waktu delay per spasinya adalah 40 ms.

Kesimpulannya, 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. Dengan demikian waktu aktual Output suara per fonem sama dengan nilai hasil perhitungan. 4.2.3. Tampilan Output sinyal suara sistem

Untuk mengetahui bentuk sinyal Output suara dari sistem ini yaitu dengan melakukan perekaman dan menampilkannya dalam bentuk gambar. Pada gambar 4.8. merupakan tampilan sinyal Output yang

Page 75: 7105040018 Pengubah Teks Ke Suara

direkam menggunakan software Ace of WAV . Suara yang direkam adalah kata”selamat pagi”.

Gambar 4.8. Tampilan suara “selamat pagi” sistem

Bentuk sinyal suara fonem dari database tampak pada gambar

4.9. Tampilan sinyal ini berasal dari penggabungan fonem-fonem “se-la-mat_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.

Page 76: 7105040018 Pengubah Teks Ke Suara

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

Gambar 4.10. Tampilan suara “selamat pagi” IndoTTS

Page 77: 7105040018 Pengubah Teks Ke Suara

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

Page 78: 7105040018 Pengubah Teks Ke Suara

Tabel 4.8. Hasil identifikasi pendengar dari 10 kalimat beraturan

No Kalimat input Error (%)

1. Saya makan nasi. 8.33 2. Nama saya mapola abdia rayana. 26.67 3. Kepalaku pusing sekali. 14.43 4. Aku beli gula satu kilogram. 58.17 5. Ibu membeli sayur di pasar. 2 6. Tolong ambilkan buku di meja itu. 10.83 7. Hati hati, ada lubang di jalan. 42.77 8. Selamat pagi. 0 9. Politeknik elektronika negeri surabaya. 3.33 10. Harganya seratus lima puluh ribu rupiah. 17.32

Rata-rata Error 18.38%

Tabel 4.9. Hasil identifikasi pendengar dari 10 kalimat tidak beraturan

No Kalimat input Error (%)

1. Buku pergi mandi. 36.6 2. Saya nasi lalu. 48.2 3. Program makan beli. 39.9 4. Murah lagi gula. 51.6 5. Badak jelas pagi. 66.6 6. Tadi kursi kancil. 53.3 7. Lupa jalan nama ribu. 58.3 8. Baju binatang kepala. 68.6 9. Surabaya negara sekolah. 7 10. Sudah mata kebakaran selamat. 76.3

Rata-rata Error 50.6% Analisa: Berdasarkan hasil pengujian pada tabel 4.8. didapatkan error rata-rata 18.38% yang disebabkan masih adanya suara diam pada penggabungan antar fonem. Output suara kata yang kurang jelas menyebabkan pendengar hanya menebak kata tersebut. Persentase

Page 79: 7105040018 Pengubah Teks Ke Suara

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

Page 80: 7105040018 Pengubah Teks Ke Suara

”Halaman ini sengaja dikosongkan”

Page 81: 7105040018 Pengubah Teks Ke Suara

BAB V PENUTUP

5.1. KESIMPULAN

Setelah melakukan perencanaan dan pembuatan sistem kemudian dilakukan pengujian dan analisanya, maka dapat diambil beberapa kesimpulan yaitu sebagai berikut:

1. Persentase keberhasilan penyusunan 1170 database suara

fonem sesuai alamatnya, software penentu alamat fonem, software untuk mengambil data fonem pada MMC dan software konversi teks ke fonem adalah 100% dari 10 sample pengujian.

2. Persentase keberhasilan software konversi sinyal digital ke sinyal analog dengan metode PWM adalah 99.7% dari 11 sample pengujian.

3. Pengiriman command READ pada MMC harus memiliki alamat dengan kelipatan 512. Hal ini merupakan protokol MMC.

4. Pada sistem ini jumlah karakter dalam suatu kalimat yang dapat diubah ke suara dirancang 50 karakter, disebabkan keterbatasan memori pada ATmega8.

5. Tanda baca yang bisa diterapkan pada sistem ini adalah tanda baca koma dan titik.

6. Keberhasilan rata-rata Output suara sistem ini dikenali oleh 10 pendengar adalah 81.62% dari 10 sample kalimat. Beberapa kata yang tidak dikenali disebabkan masih adanya suara diam pada penggabungan antar fonem.

5.2. SARAN

Untuk membuat aplikasi yang lebih kompleks sebaiknya digunakan mikrokontroler dengan kecepatan dan memori yang lebih tinggi daripada ATmega8. Pada sistem ini digunakan ATmega8 untuk meminimalkan dimensi sistem.

Page 82: 7105040018 Pengubah Teks Ke Suara

”Halaman ini sengaja dikosongkan”

Page 83: 7105040018 Pengubah Teks Ke Suara

DAFTAR PUSTAKA

[1] Dwi Utomo, Siswo ”Desain Text to Speech Untuk Membaca SMS Dalam Bahasa Indonesia”,Tugas Akhir PENS-ITS 2008.

[2] Bejo, Agus ”C dan AVR Rahasia Kemudahan Bahasa C dalam Mikrokontroler ATmega8535”, Graha Ilmu, 2008.

[3] Akhmad Arman, Arry “Design and Implementation of Indonesian Sign Language to Speech Converter.pdf “, Institut Teknologi Bandung.

[4] Akhmad Arman, Arry “Konversi dari Teks ke Ucapan.pdf “, Institut Teknologi Bandung.

[5] ATmega8 Datasheet. [6] http://indotts.melsa.net.id/download.html (diakses tanggal 15

September 2008 jam 9.00 WIB ). [7] http://elm-chan.org/docs/mmc_e.html (diakses tanggal 5 Juni

2008 jam 13.00 WIB). [8] www.bappenas.go.id/penelitian/narasi.html (diakses tanggal 5

Oktober 2008 jam 8.00 WIB). [9] http://www.polyhedric.com/software/ace (diakses tanggal 29

maret 2009 jam 9.00 WIB). [10] http://winhex.en.softonic.com/download (diakses tanggal 29

maret 2009 jam 9.00 WIB). [11] http://www.ora.com/centers/gff/formats/micriff/index.htm

(diakses tanggal 5 Juni 2008 jam 13.00 WIB). [12] http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s200

7/cd247_maw72(diakses tanggal 5 Juni 2008 jam 13.00 WIB). [13] http://www.netrino.com/Embedded-Systems/How-To/Pwm.php

(diakses tanggal 5 Juni 2008 jam 13.00 WIB).

Page 84: 7105040018 Pengubah Teks Ke Suara

Lampiran 1. Data 1170 Fonem beserta Alamatnya (V) *** a, 0b, 2c, 4d, 6e, 8f, 10g, 12h, 14I, 16j, 18k, 20l, 22m, 24n, 26o, 28p, 30q, 32r, 34s, 36t, 38u, 40v, 42w, 44x, 46y, 48z, 50 (VK) *** ab, 52af, 54ah, 56

ak, 58al, 60am, 62an, 64ar, 66as, 68at, 70eb, 72ef, 74eh, 76ek, 78el, 80em, 82en, 84er, 86es, 88et, 90ib, 92if, 94ih, 96ik, 98il, 100im, 102in, 104ir, 106is, 108it, 110ob, 112of, 114oh, 116ok, 118ol, 120

om, 122on, 124or, 126os, 128ot, 130ub, 132uf, 134uh, 136uk, 138ul, 140um, 142un, 144ur, 146us, 148ut, 150 (KV) *** BA, 152bi, 154bu, 156be, 158bo, 160ca, 162ci, 164cu, 166ce, 168co, 170da, 172di, 174du, 176de, 178do, 180

FA, 182 fi, 184 fu, 186 fe, 188 fo, 190 ga, 192 gi, 194 gu, 196 ge, 198 go, 200 ha, 202 hi, 204 hu, 206 he, 208 ho, 210 JA, 212 ji, 214 ju, 216 je, 218 jo, 220 ka, 222 ki, 224 ku, 226 ke, 228 ko, 230 la, 232 li, 234 lu, 236 le, 238 lo, 240 ma, 242 mi, 244

Page 85: 7105040018 Pengubah Teks Ke Suara

mu, 246me, 248mo, 250na, 252ni, 254nu, 256ne, 258no, 260PA, 262pi, 264pu, 266pe, 268po, 270RA, 272ri, 274ru, 276re, 278ro, 280sa, 282si, 284su, 286se, 288so, 290ta, 292ti, 294tu, 296te, 298to, 300WA, 302wi, 304wu, 306we, 308wo, 310

YA, 312yi, 314yu, 316ye, 318yo, 320za, 322zi, 324zu, 326ze, 328zo, 330(KVK) *** BAB, 332baf, 334bah, 336bak, 338bal, 340bam, 342ban, 344bar, 346bas, 348bat, 350bib, 352bif, 354bih, 356bik, 358bil, 360bim, 362bin, 364bir, 366bis, 368bit, 370bub, 372buf, 374

buh, 376buk, 378bul, 380bum, 382bun, 384bur, 386bus, 388but, 390beb , 392bef, 394beh, 396bek , 398bel, 400bem, 402ben, 404ber, 406bes , 408bet , 410bob , 412bof, 414boh, 416bok , 418bol , 420bom, 422bon , 424bor , 426bos , 428bot , 430cab, 432caf, 434cah, 436cak, 438cal , 440

cam, 442 can, 444 car , 446 cas, 448 cat , 450 cib , 452 cif, 454 cih, 456 cik , 458 cil , 460 cim, 462 cin , 464 cir , 466 cis , 468 cit , 470 cub, 472 cuf, 474 cuh, 476 cuk, 478 cul , 480 cum, 482 cun, 484 cur , 486 cus, 488 cut , 490 ceb, 492 cef, 494 ceh, 496 cek, 498 cel , 500 cem, 502 cen, 504 cer , 506

Page 86: 7105040018 Pengubah Teks Ke Suara

ces, 508cet , 510cob, 512cof, 514coh, 516cok, 518col , 520com, 522con , 524cor , 526cos , 528cot , 530dab , 532daf, 534dah, 536dak , 538dal , 540dam, 542dan , 544dar , 546das , 548dat , 550dib , 552dif, 554dih, 556dik , 558dil , 560dim , 562din , 564dir , 566dis , 568dit , 570dub , 572

duf, 574duh, 576duk , 578dul , 580dum, 582dun , 584dur , 586dus , 588dut , 590deb , 592def, 594deh, 596dek , 598del , 600dem, 602den , 604der , 606des , 608det , 610dob , 612dof, 614doh, 616dok , 618dol , 620dom, 622don , 624dor , 626dos , 628dot, 630FAB, 632faf, 634fah, 636fak , 638

fal , 640fam , 642fan , 644far , 646fas , 648fat , 650fib , 652fif, 654fih, 656fik , 658fil , 660fim , 662fin , 664fir , 666fis , 668fit , 670fub , 672fuf, 674fuh, 676fuk , 678ful , 680fum , 682fun , 684fur , 686fus , 688fut , 690feb , 692fef, 694feh, 696fek , 698fel , 700fem , 702fen , 704

fer , 706 fes , 708 fet , 710 fob , 712 fof, 714 foh, 716 fok , 718 fol , 720 fom , 722 fon , 724 for , 726 fos , 728 fot , 730 gab, 732 gaf, 734 gah, 736 gak, 738 gal , 740 gam, 742 gan, 744 gar , 746 gas, 748 gat , 750 gib , 752 gif, 754 gih, 756 gik , 758 gil , 760 gim, 762 gin , 764 gir , 766 gis , 768 git , 770

Page 87: 7105040018 Pengubah Teks Ke Suara

gub, 772guf, 774guh, 776guk, 778gul , 780gum, 782gun, 784gur , 786gus, 788gut , 790geb, 792gef, 794geh, 796gek, 798gel , 800gem, 802gen, 804ger , 806ges, 808get , 810gob, 812gof, 814goh, 816gok, 818gol , 820gom, 822gon, 824gor , 826gos, 828got , 830hab , 832haf, 834hah, 836

hak , 838hal , 840ham , 842han , 844har , 846has , 848hat , 850hib , 852hif, 854hih, 856hik , 858hil , 860him , 862hin , 864hir , 866his , 868hit , 870hub , 872huf, 874huh, 876huk , 878hul , 880hum , 882hun , 884hur , 886hus , 888hut , 890heb , 892hef, 894heh, 896hek , 898hel , 900hem , 902

hen , 904her , 906hes , 908het , 910hob , 912hof, 914hoh, 916hok , 918hol , 920hom , 922hon , 924hor , 926hos , 928hot , 930JAB, 932jaf, 934jah, 936jak , 938jal , 940jam, 942jan , 944jar , 946jas , 948jat , 950jib , 952jif, 954jih, 956jik , 958jil , 960jim , 962jin , 964jir , 966jis , 968

jit , 970 jub , 972 juf, 974 juh, 976 juk , 978 jul , 980 jum , 982 jun , 984 jur , 986 jus , 988 jut , 990 jeb , 992 jef, 994 jeh, 996 jek , 998 jel , 1000 jem , 1002 jen , 1004 jer , 1006 jes , 1008 jet , 1010 job , 1012 jof, 1014 joh, 1016 jok , 1018 jol , 1020 jom , 1022 jon , 1024 jor , 1026 jos, 1028 jot , 1030 kab, 1032 kaf, 1034

Page 88: 7105040018 Pengubah Teks Ke Suara

kah, 1036kak, 1038kal , 1040kam, 1042kan, 1044kar , 1046kas, 1048kat , 1050kib , 1052kif, 1054kih, 1056kik , 1058kil , 1060kim , 1062kin , 1064kir , 1066kis , 1068kit , 1070kub , 1072kuf, 1074kuh, 1076kuk , 1078kul , 1080kum, 1082kun , 1084kur , 1086kus , 1088kut , 1090keb , 1092kef, 1094keh, 1096kek , 1098kel , 1100

kem, 1102ken , 1104ker , 1106kes , 1108ket , 1110kob , 1112kof, 1114koh, 1116kok , 1118kol , 1120kom, 1122kon , 1124kor , 1126kos , 1128kot , 1130lab , 1132laf, 1134lah, 1136lak , 1138lal , 1140lam , 1142lan , 1144lar , 1146las , 1148lat , 1150lib , 1152lif, 1154lih, 1156lik , 1158lil , 1160lim , 1162lin , 1164lir , 1166

lis , 1168lit , 1170lub , 1172luf, 1174luh, 1176luk , 1178lul , 1180lum, 1182lun , 1184lur , 1186lus , 1188lut , 1190leb , 1192lef, 1194leh, 1196lek , 1198lel , 1200lem, 1202len , 1204ler , 1206les , 1208let , 1210lob , 1212lof, 1214loh, 1216lok , 1218lol , 1220lom, 1222lon , 1224lor , 1226los, 1228lot, 1230mab , 1232

maf, 1234 mah, 1236 mak , 1238 mal , 1240 mam , 1242 man , 1244 mar , 1246 mas , 1248 mat , 1250 mib , 1252 mif, 1254 mih, 1256 mik , 1258 mi , 1260 mim , 1262 min , 1264 mir, 1266 mis , 1268 mit , 1270 mub , 1272 muf, 1274 muh, 1276 muk , 1278 mul , 1280 mum, 1282 mun , 1284 mur , 1286 mus , 1288 mut , 1290 meb , 1292 mef, 1294 meh, 1296 mek , 1298

Page 89: 7105040018 Pengubah Teks Ke Suara

mel , 1300mem, 1302men , 1304mer , 1306mes , 1308met , 1310mob , 1312mof, 1314moh, 1316mok , 1318mol , 1320mom, 1322mon , 1324mor , 1326mos , 1328mot , 1330nab , 1332naf, 1334nah, 1336nak , 1338nal , 1340nam , 1342nan , 1344nar , 1346nas , 1348nat , 1350nib , 1352nif, 1354nih, 1356nik , 1358nil , 1360nim , 1362nin , 1364

nir , 1366nis , 1368nit , 1370nub , 1372nuf, 1374nuh, 1376nuk , 1378nul , 1380num, 1382nun , 1384nur , 1386nus , 1388nut , 1390neb , 1392nef, 1394neh, 1396nek , 1398nel , 1400nem, 1402nen , 1404ner , 1406nes , 1408net , 1410nob , 1412nof, 1414noh, 1416nok , 1418nol , 1420nom, 1422non , 1424nor , 1426nos , 1428not , 1430

PAB, 1432paf, 1434nah, 1436pak , 1438pal , 1440pam, 1442pan, 1444par , 1446pas , 1448pat , 1450pib , 1452pif, 1454pih, 1456pik , 1458pil , 1460pim , 1462pin , 1464pir , 1466pis , 1468pit , 1470pub , 1472puf, 1474puh, 1476puk , 1478pul , 1480pum, 1482pun , 1484pur , 1486pus , 1488put , 1490peb , 1492pef, 1494peh, 1496

pek , 1498 pel , 1500 pem, 1502 pen , 1504 per , 1506 pes , 1508 pet , 1510 pob , 1512 pof, 1514 poh, 1516 pok , 1518 pol , 1520 pom , 1522 pon , 1524 por , 1526 pos , 1528 pot , 1530 RAB, 1532 raf, 1534 rah, 1536 rak , 1538 ral , 1540 ram, 1542 ran, 1544 rar , 1546 ras , 1548 rat , 1550 rib , 1552 rif, 1554 rih, 1556 rik , 1558 ril , 1560 rim , 1562

Page 90: 7105040018 Pengubah Teks Ke Suara

rin , 1564rir , 1566ris , 1568rit , 1570rub , 1572ruf, 1574fuh, 1576ruk , 1578rul , 1580rum , 1582run , 1584rur , 1586rus , 1588rut , 1590reb , 1592ref, 1594reh, 1596rek , 1598rel , 1600rem , 1602ren , 1604rer , 1606res , 1608ret , 1610rob , 1612rof, 1614roh, 1616rok , 1618rol , 1620rom , 1622ron , 1624ror , 1626ros , 1628

rot , 1630sab , 1632saf, 1634sah, 1636sak , 1638sal , 1640sam , 1642san , 1644sar , 1646sas , 1648sat , 1650sib , 1652sif, 1654sih, 1656sik , 1658sil , 1660sim , 1662sin , 1664sir , 1666sis , 1668sit , 1670sub , 1672suf, 1674suh, 1676suk , 1678sul , 1680sum, 1682sun , 1684sur , 1686sus , 1688sut , 1690seb , 1692sef, 1694

seh, 1696sek, 1698sel , 1700sem, 1702sen , 1704ser , 1706ses , 1708set , 1710sob , 1712sof, 1714soh, 1716sok , 1718sol , 1720som , 1722son , 1724sor , 1726sos , 1728sot , 1730tab , 1732taf, 1734tah, 1736tak , 1738tal , 1740tam , 1742tan , 1744tar , 1746tas , 1748tat , 1750tib , 1752tif, 1754tih, 1756tik , 1758til , 1760

tim , 1762 tin , 1764 tir , 1766 tis , 1768 tit , 1770 tub, 1772 tuf, 1774 tuh, 1776 tuk , 1778 tul , 1780 tum, 1782 tun , 1784 tur , 1786 tus , 1788 tut , 1790 teb , 1792 tef, 1794 teh, 1796 tek , 1798 tel, 1800 tem, 1802 ten , 1804 ter , 1806 tes , 1808 tet , 1810 tob , 1812 tof, 1814 toh, 1816 tok , 1818 tol , 1820 tom , 1822 ton , 1824 tor , 1826

Page 91: 7105040018 Pengubah Teks Ke Suara

tos , 1828tot , 1830wab , 1832waf, 1834wah, 1836wak , 1838wal , 1840wam, 1842wan , 1844war , 1846was , 1848wat , 1850wib , 1852wif, 1854wih, 1856wik , 1858wil , 1860wim , 1862win , 1864wir , 1866wis , 1868wit , 1870wub , 1872wuf, 1874wuh, 1876wuk , 1878wul , 1880wum , 1882wun , 1884wur , 1886wus , 1888wut , 1890web , 1892

wef, 1894weh, 1896wek , 1898wel , 1900wem , 1902wen , 1904wer , 1906wes , 1908wet , 1910wob , 1912wof, 1914woh, 1916wok, 1918wol , 1920wom, 1922won , 1924wor , 1926wos , 1928wot , 1930YAP, 1932yaf, 1934yah, 1936yak , 1938yal , 1940yam , 1942yan , 1944yar , 1946yas , 1948yat , 1950yib , 1952yif, 1954yih, 1956yik , 1958

yil , 1960yim , 1962yin , 1964yir , 1966yis , 1968yit , 1970yub , 1972yuf, 1974yuh, 1976yuk , 1978yul , 1980yum , 1982yun , 1984yur , 1986yus , 1988yut , 1990yeb , 1992yef, 1994yeh, 1996yek , 1998yel , 2000yem , 2002yen , 2004yer , 2006yes , 2008yet , 2010yob , 2012yof, 2014yoh, 2016yok , 2018yol , 2020yom , 2022yon , 2024

yor , 2026 yos , 2028 yot , 2030 zab, 2032 zaf, 2034 zah, 2036 zak, 2038 zal, 2040 zam, 2042 zan, 2044 zar, 2046 zas, 2048 zat, 2050 zib, 2052 zif, 2054 zih, 2056 zik, 2058 zil, 2060 zim, 2062 zin, 2064 zir, 2066 zis, 2068 zit, 2070 (KVKK) *** BANG, 2072 bing, 2074 bung, 2076 beng, 2078 bong, 2080 cang, 2082 cing, 2084 cung, 2086 ceng, 2088

Page 92: 7105040018 Pengubah Teks Ke Suara

cong, 2090dang, 2092ding, 2094dung, 2096deng, 2098dong, 2100FANG, 2102fing, 2104fung, 2106feng, 2108fong, 2110gang, 2112ging, 2114gung, 2116geng, 2118gong, 2120hang, 2122hing, 2124hung, 2126heng, 2128hong, 2130JANG, 2132jing, 2134jung, 2136jeng, 2138jong, 2140kang, 2142king, 2144kung, 2146keng, 2148kong, 2150lang, 2152ling, 2154

lung, 2156leng, 2158long, 2160mang, 2162ming, 2164mung, 2166meng, 2168mong, 2170nang, 2172ning, 2174nung, 2176neng, 2178nong, 2180PANG, 2182ping, 2184pung, 2186peng, 2188pong, 2190RANG, 2192ring, 2194rung, 2196reng, 2198rong, 2200sang, 2202sing, 2204sung, 2206seng, 2208song, 2210tang, 2212ting, 2214tung, 2216teng, 2218tong, 2220

WANG, 2222wing, 2224wung, 2226weng, 2228wong, 2230yang, 2232ying, 2234yung, 2236yeng, 2238yong, 2240***** *****(VKK) *** ang, 0ing, 2ins, 4ung, 6eng, 8ong, 10(KKV) *** bri, 12dra, 14dwi, 16gra, 18gri, 20gla, 22kra, 24kro, 26kla, 28kli, 30nga, 32ngi, 34ngu, 36nge, 38

ngo, 40 nya, 42 nyi, 44 nyu, 46 nye, 48 nyo, 50 pro, 52 sta, 54 tra, 56 tri, 58 tro, 60 (KKVK) *** blis, 62 brak, 64 brik, 66 bruk, 68 brol, 70 drop, 72 gram, 74 klan, 76 klim, 78 krab, 80 ngat, 82 ngan, 84 ngin, 86 nyer, 88 staf, 90 stan, 92 tran, 94

Page 93: 7105040018 Pengubah Teks Ke Suara

1

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

//sEOS.c #include "sEOS.h" #include "ketik.h" #include "adc.h" void sEOS_Init_Timer0(void) { TCCR0=0x05; TCNT0=0; TIMSK=0x01; #asm("sei") } void sEOS_Idle_Init(void) { MCUCR |= 0x40; }

Page 94: 7105040018 Pengubah Teks Ke Suara

2

interrupt [TIM0_OVF] void sEOS_ISR(void) { scan(); cek_baterai(); }

//pwmku.c #include "pwmku.h" void pwm_init(void) { DDRB.1=1; TCCR1A=0x81; TCCR1B=0x09; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x80; OCR1BH=0x00; OCR1BL=0x00; }

//spiku.c #include <mega8.h> #include "spiku.h" #include <spi.h> #include <lcd2.h> //------------------------------------------------------- void mcu_spi_init(void) { DDRB.2 = 1; DDRB.3 = 1; DDRB.4 = 0; DDRB.5 = 1; SPCR = 0b01010011 ; SPSR = 0; PORTB.2= 0; } //------------------------------------------------------- char Command(char cmd, unsigned int AdrH, unsigned int AdrL, char CRCbits ) { spi(0xFF); spi(cmd);

Page 95: 7105040018 Pengubah Teks Ke Suara

3

spi((unsigned char)(AdrH >> 8)); spi((unsigned char)AdrH); spi((unsigned char)(AdrL >> 8)); spi((unsigned char)AdrL); spi(CRCbits); spi(0xFF); return spi(0xFF); } //------------------------------------------------------- char mmc_init(void) { char i; PORTB.2= 1; for(i=0; i < 10; i++) spi(0xFF); PORTB.2= 0; if (Command(0x40,0,0,0x95) != 1) goto mmcerror; st: if (Command(0x41,0,0,0xFF) !=0) goto st; SPCR = 0b01010000; SPSR = 1; return 1; mmcerror: lcd_gotoxy(0,0); lcd_putsf("MMC Init Error!"); return 0; } //------------------------------------------------------- char set_blok(unsigned int block) { if(Command(0x50,0,block,0xFF) != 0) { lcd_gotoxy(0,0); lcd_putsf("Blok Set Error!"); return 0; } else return 1; }

//ttf&address.c # include "ttf&address.h" # include <string.h> #include "driver.h" //------------------------------------------------------ void pola(char a[50]){

Page 96: 7105040018 Pengubah Teks Ke Suara

4

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

Page 97: 7105040018 Pengubah Teks Ke Suara

5

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

Page 98: 7105040018 Pengubah Teks Ke Suara

6

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

Page 99: 7105040018 Pengubah Teks Ke Suara

7

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

Page 100: 7105040018 Pengubah Teks Ke Suara

8

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

Page 101: 7105040018 Pengubah Teks Ke Suara

9

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

Page 102: 7105040018 Pengubah Teks Ke Suara

10

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

Page 103: 7105040018 Pengubah Teks Ke Suara

11

urut=7; lebar=1; memcpy(b,a2+panjang-ofset,lebar); for (i=0;i<5;i++){ hasil=strncmp(b,rule[urut],lebar); if (hasil==0){ memcpy(kata[suku],a+panjang-ofset,lebar); //---------------------------------------------- p=kata[suku]; if ((*p>='a')&&(*p<='z')) nilai=(unsigned int)(*p-'a')*2; else if(*p=='_') nilai=10000; else if(*p==',') nilai=10001; else if(*p=='.') nilai=10002; alamat[j]=nilai; j++; //---------------------------------------------- goto lagi;} else{ urut++;} } output(suku,alamat); }

//driver.c #include "driver.h" #define off 0 #define on 1 void output(char suku,unsigned int alamat[25]) { unsigned long int ofset_mmc; unsigned long int tabel_awal; unsigned long int awal, lo=0; unsigned int pembuka, hi=0, j, sample=0, batas, output; unsigned char i, data; bit potong=on; bit habis, hilang, titik, kecuali; for(i=suku-1;i>0;i--){ if (alamat[i-1]<10000){ if (alamat[i-1]<5000){ ofset_mmc= 0x42000+ 0x2B;

Page 104: 7105040018 Pengubah Teks Ke Suara

12

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

Page 105: 7105040018 Pengubah Teks Ke Suara

13

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

Page 106: 7105040018 Pengubah Teks Ke Suara

14

} }

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

~end of code~

Page 107: 7105040018 Pengubah Teks Ke Suara

15

I. Lampiran 3. Hasil pengujian kualitas output suara sistem

Responden 1

No Kalimat hasil identifikasi pendengar Error(%) 1. Saya makan nasi. 0 2. Nama saya mapola abdia rayana. 0 3. Gempa lagu bumi berkali 55.5 4. Aku beli gula satu kilogram. 0 5. Ibu membeli sayur di pasar. 0 6. Tolong ambilkan buku di meja itu. 0 7. Hari hari, pada lupa di jalan. 36.6 8. Selamat pagi. 0 9. Politeknik elektronika negeri surabaya. 0 10. Padanya seratus lima puluh ribu rupiah. 13.3

Responden 2

No Kalimat hasil identifikasi pendengar Error(%) 1. Plagiat makan nasi. 33.3 2. ---- ---- mapola abdia rayana. 30.7 3. Kepalaku pusing sekali. 0 4. --- ---- ---- satu kilogram. 54.5 5. Ibu membeli sayur di pasar. 0 6. - 100 7. - 100 8. Selamat pagi. 0 9. Politeknik elektronika negeri surabaya. 0 10. Harganya tujuh ratus lima puluh ribu rupiah. 6.6

No Kalimat Referensi 1. Saya makan nasi. 2. Nama saya mapola abdia rayana. 3. Kepalaku pusing sekali. 4. Aku beli gula satu kilogram. 5. Ibu membeli sayur di pasar. 6. Tolong ambilkan buku di meja itu. 7. Hati hati, ada lubang di jalan. 8. Selamat pagi. 9. Politeknik elektronika negeri surabaya. 10. Harganya seratus lima puluh ribu rupiah.

Page 108: 7105040018 Pengubah Teks Ke Suara

16

Responden 3 No Kalimat hasil identifikasi pendengar Error(%) 1. Saya makan nasi. 0 2. ---- saya mapola abdia rayana. 15.3 3. Kepalaku pusing sekali. 0 4. --- ---- ---- satu kilogram. 54.5 5. Ibu membeli sayur di pasar. 0 6. Tolong ambilkan buku di meja itu. 0 7. Hati hati, pada paku di dalam. 27.2 8. Selamat pagi. 0 9. Politeknik elektronika negeri surabaya. 0 10. Harganya seratus lima puluh ribu rupiah. 0

Responden 4

No Kalimat hasil identifikasi pendengar Error(%) 1. Saya makan nasi. 0 2. Nama saya mapola abdia rayana. 0 3. Tempahlaku pusing sekali. 22.2 4. Aku beli gula di program. 36.6 5. Ibu membeli sayur di pasar. 0 6. Tolong ambilkan bulu di meja itu. 8.3 7. Hali hali, ada lubang di jalan. 18.8 8. Selamat pagi. 0 9. Politeknik ----------- negeri surabaya. 31.2 10. Harganya ------- lima puluh ribu rupiah. 20

Responden 5

No Kalimat hasil identifikasi pendengar Error(%) 1. Satria makan nasi. 16.6 2. Nama saya mapola ahmad radia. 30.7 3. Tingkah laku pusing sekali. 22.2 4. Kumpulan di satu program. 72.7 5. Ibu membeli sayur di pasar. 0 6. Tolong ambilkan buku di meja itu. 0 7. Tadi pagi, ada lubang di jalan. 36.6 8. Selamat pagi. 0 9. Politeknik elektronika negeri surabaya. 0 10. Temperaturnya lima puluh lima ribu rupiah. 40

Page 109: 7105040018 Pengubah Teks Ke Suara

17

Responden 6

Responden 7

Responden 8

No Kalimat hasil identifikasi pendengar Error(%) 1. Saya makan nasi. 0 2. - 100 3. Tingkah laku pusing sekali. 22.2 4. Aku ---- ---- ---- diprogram. 72.7 5. Ibu membeli baju di pasar. 20 6. Tolong ambilkan buku di meja itu. 0 7. Hati hati, ada lubang di jalan. 0 8. Selamat pagi. 0 9. Politeknik elektronika negeri surabaya. 0 10. Harganya tujuh ratus lima puluh ribu rupiah. 6.6

No Kalimat hasil identifikasi pendengar Error(%) 1. Saya makan nasi. 0 2. Nama saya marona ----- ------. 58.3 3. ----laku pusing sekali. 22.2 4. - 100 5. Ibu membeli sayur di pasar. 0 6. Tolong ambilkan buku di meja itu. 0 7. Pagi pagi masak tumpang di jalan 72.7 8. Selamat pagi. 0 9. Politeknik elektronika negeri surabaya. 0 10. Harganya seratus lima puluh ribu rupiah. 0

No Kalimat hasil identifikasi pendengar Error(%) 1. Saya makan nasi. 0 2. Nama saya mapola abdia rayana. 0 3. Kepalaku pusing sekali. 0 4. Aku nomor satu diprogram 54.5 5. Ibu membeli sayur di pasar. 0 6. Tolong ambilkan buku di meja itu. 0 7. - 100 8. Selamat pagi. 0 9. Politeknik elektronika negeri surabaya. 0 10. Harganya seratus lima puluh ribu rupiah. 0

Page 110: 7105040018 Pengubah Teks Ke Suara

18

Responden 9

Responden 10

II.

No Kalimat referensi 1. Buku pergi mandi. 2. Saya nasi lalu. 3. Program makan beli. 4. Murah lagi gula. 5. Badak jelas pagi. 6. Tadi kursi kancil. 7. Lupa jalan nama ribu. 8. Baju binatang kepala. 9. Surabaya negara sekolah. 10. Sudah mata kebakaran selamat.

No Kalimat hasil identifikasi pendengar Error(%) 1. Saya makan nasi. 0 2. Nama saya mapola abdia rayana. 0 3. Kepalaku pusing sekali. 0 4. Aku hobi sekali memprogram 72.7 5. Ibu membeli sayur di pasar. 0 6. Tolong ambilkan buku di meja itu. 0 7. Hati hati, ada lubang di jalan. 0 8. Selamat pagi. 0 9. Politeknik elektronika negeri surabaya. 0 10. Harganya seratus lima puluh ribu rupiah. 0

No Kalimat hasil identifikasi pendengar Error(%) 1. Tagihan makan nasi. 33.3 2. Nama saya mapola abdia negara. 25 3. Kepalaku pusing sekali. 0 4. Aku serli bunga diprogram. 63.6 5. Ibu membeli sayur di pasar. 0 6. Tolong ambilkan buku di meja itu. 0 7. Hati hati, banyak lubang di jalan. 18.8 8. Selamat pagi. 0 9. Politeknik elektronika negeri surabaya. 0 10. Harganya seratus lima puluh ribu rupiah. 0

Page 111: 7105040018 Pengubah Teks Ke Suara

19

Responden 1 No Kalimat hasil identifikasi pendengar Error (%) 1. Bu-- pergi mandi. 16.6 2. Saya ---- ---- 66.6 3. Program ---- ----. 66.6 4. Murah lagi ----. 33.3 5. ----- ----- pagi. 66.6 6. Tadi kursi -----. 33.3 7. ---- jalan nama ribu. 25 8. Baju binatang kepala. 0 9. Surabaya negara sekolah. 0 10. Sudah ---- ---- --------- -------. 81.8

Responden 2

No Kalimat hasil identifikasi pendengar Error(%) 1. - 100 2. Saya ---- ---- 66.6 3. Program ----- ---- 66.6 4. Murah ---- ---- 66.6 5. - 100 6. ----- kursi ----- 66.6 7. ---- ----- ---- ribu. 75 8. - 100 9. -------- ------ sekolah. 70 10. Sudah ---- ---- --------- ------- 81.8

Responden 3

No Kalimat hasil identifikasi pendengar Error(%) 1. ------ --gi mandi. 50 2. Saya nasi la--. 16.6 3. ------- ----- --li. 83.3 4. Murah ---- ---- 66.6 5. ----- ----- pagi. 66.6 6. - 100 7. - 100 8. - 100 9. Surabaya negara sekolah. 0 10. - 100

Page 112: 7105040018 Pengubah Teks Ke Suara

20

Responden 4 No Kalimat hasil identifikasi pendengar Error(%) 1. ---- pergi mandi. 33.3 2. Saya nasi ----. 33.3 3. Program makan ----. 33.3 4. Murah lagi -----. 33.3 5. ----- ----- pagi. 66.6 6. Tadi kursi -----. 33.3 7. ---- jalan ---- ribu. 50 8. Baju binatang ----- 37 9. Surabaya negara sekolah. 0 10. Sudah ---- --------- ------- 81.8

Responden 5

No Kalimat hasil identifikasi pendengar Error(%) 1. ---- pergi mandi. 33.3 2. Saya nasi ---- 33.3 3. Program makan ---- 33.3 4. Murah lagi ---- 33.3 5. ----- ----- pagi. 66.6 6. Tadi kursi ------. 33.3 7. ---- jalan ---- ----. 75 8. Baju binatang ------- 37 9. Surabaya negara sekolah. 0 10. Sudah ---- --------- ------- 81.8

Responden 6

No Kalimat hasil identifikasi pendengar Error(%) 1. ---- pergi mandi. 33.3 2. Saya ---- ----. 66.6 3. - 0 4. Murah lagi ---- 33.3 5. ---- jelas pagi. 33.3 6. Ta-- kursi ------ 50 7. ---- jalan nama ribu. 33.3 8. - 100 9. Surabaya negara sekolah. 0 10. Sudah ---- --------- ------- 81.8

Page 113: 7105040018 Pengubah Teks Ke Suara

21

Responden 7 No Kalimat hasil identifikasi pendengar Error(%) 1. Buku pergi mandi. 0 2. Saya nasi ----. 33.3 3. Program makan ----. 33.3 4. Mu--- ---- ---- 83.3 5. ----- ----- pagi. 66.6 6. ---- kursi ------ 66.6 7. ---- jalan nama ---- 50 8. - 100 9. Surabaya negara sekolah. 0 10. - 100

Responden 8

No Kalimat hasil identifikasi pendengar Error(%) 1. ---- pergi mandi. 33.3 2. Saya nasi ---- 33.3 3. Program makan ---- 33.3 4. ----- lagi ---- 66.6 5. ----- ----- pagi. 66.6 6. ---- kursi ------ 66.6 7. ---- jalan ---- ---- 75 8. - 100 9. Surabaya negara sekolah. 0 10. Sudah ---- --------- ------- 81.8

Responden 9

No Kalimat hasil identifikasi pendengar Error(%) 1. ---- pergi mandi. 33.3 2. Saya ---- ---- 66.6 3. Program makan beli. 0 4. Murah lagi ---- 33.3 5. Badak ----- pagi. 66.6 6. ---- kursi ------ 33.3 7. ---- jalan nama ---- 50 8. Baju -------- ------ 75 9. Surabaya negara sekolah. 0 10. Sudah ---- kebakaran ----mat. 36.3

Page 114: 7105040018 Pengubah Teks Ke Suara

22

Responden 10 No Kalimat hasil identifikasi pendengar Error(%) 1. ---- pergi mandi. 33.3 2. ---- ---- lalu. 66.6 3. Program ----- ---- 66.6 4. ----- ---- gula. 66.6 5. ----- ----- pagi. 66.6 6. --di kursi ------ 50 7. ---- jalan nama ---- 50 8. Baju binatang ----- 37.5 9. Surabaya negara sekolah. 0 10. Sudah ---- kebakaran ----mat. 36.3

Page 115: 7105040018 Pengubah Teks Ke Suara

23

Lampiran 4. Range frekuensi suara manusia

VOCAL Approximate frequency range Soprano 250Hz – 1k Contralto 200Hz – 700Hz Baritone 110Hz – 425Hz

Bass 80Hz – 350Hz WOODWIND

Piccolo 630Hz – 5k Flute 250Hz – 2.5k Oboe 250Hz – 1.5k

Clarinet (B flat or A) 125Hz – 2k Clarinet (E flat ) 200Hz – 2k

Bass clarinet 75Hz – 800Hz Basset Horn 90Hz – 1k Cor Anglais 160Hz – 1k

Bassoon 55Hz – 575Hz Double Bassoon 25Hz – 200Hz

BRASS Soprano Saxophone 225Hz – 1k

Alto Saxophone 125Hz – 900Hz Tenor Saxophone 110Hz – 630Hz

Baritone Saxophone 70Hz – 450Hz Bass Saxophone 55Hz – 315Hz

Trumpet (C) 170Hz – 1k

Page 116: 7105040018 Pengubah Teks Ke Suara

24

PENULIS

Identitas:

• Mapola Abdia Rayana • Ngawi, 28 Oktober 1986 • Rt03/Rw02 Dsn/Ds/Kec. Jogorogo Kab.Ngawi -

Jawa Timur 63262 • 085655208020 – [email protected]

Pendidikan:

1992 – 1998 SDN 1 Jogorogo 1998 – 2001 SLTPN 1 Jogorogo 2001 – 2004 SMUN 2 Ngawi 2005 – 2009 EEPIS-ITS

D4-T.Elektronika

”tidur untuk kesehatan”

Penulis telah mengikuti seminar Proyek Akhir pada

tanggal 22 Juli 2009, sebagai salah satu persyaratan untuk memperoleh gelar Sarjana Sains Terapan (S.ST.).