i
PENGENALAN UCAPAN DENGAN METODE FFT PADA
MIKROKONTROLER ATMEGA32
Disusun Oleh :
Nama : Rizki Septamara
Nrp
: 0622034
Jurusan Teknik Elektro, Fakultas Teknik, Universitas Kristen Maranatha,
Jl. Prof.Drg.Suria Sumantri, MPH no.65, Bandung, Indonesia.
Email : ans87_0622034@yahoo.com
ABSTRAK
Teknologi suara adalah salah satu aplikasi teknologi yang sangat berguna
dalam kehidupan sehari-hari. Contohnya, dalam menyalakan sebuah lampu orang
hanya menepuk tangannya, dan lampu pun akan menyala, dan masih banyak lagi
dari teknologi suara yang dapat digunakan untuk mengontrol sesuatu.
Pada Tugas Akhir ini, dirancang sebuah alat yang dapat mengenali ucapan
dengan menggunakan metode FFT (Fast Fourier Transform). Dengan metode ini
akan didapatkan sinyal dalam domain frekuensi, hal ini bertujuan agar pola
karakteristik ucapan kata yang satu dengan yang lainnya dapat dibedakan. Sinyal
suara masuk yang merupakan sinyal analog dikonversikan menjadi sinyal digital
dengan
ADC
pada
mikrokontroler
ATMega32,
selanjutnya
akan
ditransformasikan menggunakan transformasi fourier diskrit (FFT). Langkah
berikutnya, informasi yang didapat dibandingkan dengan database nilai FFT
beberapa ucapan yang telah disimpan sebelumnya dalam memori EEPROM
mikrokontroler, dan dicari
error
terkecil dengan metode RMSE (Root Mean
Squared Error). Kata-kata yang dikenali adalah
kanan
,
kiri
,
maju
,
mundur
, dan
stop
.
Berdasarkan percobaan yang dilakukan dalam Tugas Akhir ini, sistem
pengenalan ucapan yang dibuat berhasil direalisasikan dengan persentase
keberhasilan yang paling tinggi adalah kata maju (91.33%) dan persentase
keberhasilan yang paling kecil adalah kata mundur (66.67%).
ii
SPEECH RECOGNITION WITH FFT METHOD IN ATMEGA32
MICROCONTROLLER
Composed by :
Name : Rizki Septamara
Nrp
: 0622034
Electrical Engineering, Maranatha Cristian University,
Jl. Prof.Drg.Suria Sumantri, MPH no.65, Bandung, Indonesia.
Email : ans87_0622034@yahoo.com
ABSTRACT
Voice technology is one of technology application that very useful in
routine life. For example, to turn on the lamp, people just clap his hand and the
lamp will be aglow, and still many more from voice technology that applicable to
control something.
In this Final Project, an instrument will be designed that can recognize a
speech used FFT (Fast Fourier Transform) method. This method will get a signal
in frequency domain, that purpose a signal characteristic pattern from one with
other can distinguishable. A voice signal that is an analog signal will be
conversioned to be a digital signal with ADC in ATMega32 microcontroller and
will transformed with discrete fourier transform. Next, an information that geted
will be compared with database that saved in microcontroller EEPROM, and
search the samallest error with RMSE (Root Mean Squared Error) method. A
words that recognized are
right
,
left
,
forward
,
back
, and
stop
.
According to the experiments in this Final Project, a speech recognition
system fare well made with highest success persentage is
forward
word (91.33%)
and lowest success persentage is
back
word (66.67%).
v
DAFTAR ISI
Halaman
ABSTRAK ...
i
ABSTRACT ...
ii
KATA PENGANTAR ...
iii
DAFTAR ISI ...
v
DAFTAR TABEL ...
viii
DAFTAR GAMBAR ...
ix
DAFTAR RUMUS ...
xi
BAB I
PENDAHULUAN
I.1 Latar Belakang ...
1
I.2 Identifikasi Masalah ...
2
I.3 Perumusan Masalah ...
2
I.4 Tujuan ...
2
I.5 Pembatasan Masalah ...
2
I.6 Spesifikasi Alat yang Digunakan ...
3
I.7 Sistematika Penulisan ...
3
BAB II
LANDASAN TEORI
II.1 Transformasi Fourier ...
5
II.1.1 Transformasi Fourier Diskrit ...
5
II.2 RMSE (Root Mean Squared Error) ...
7
II.3 Pengertian Suara ...
7
II.3.1 Frekuensi ...
8
II.3.2 Periode ...
9
II.3.3 Amplituda ...
9
II.3.4 Proses ADC (Analog to Digital Converter) ...
9
II.4 Pengertian Microphone ...
12
vi
II.4.2 Microphone Dynamic ...
14
II.4.3 Microphone Condensor ...
15
II.5 Pengontrol Mikro ATmega16 ...
16
II.5.1 Pengenalan ATMEL AVR RISC ...
16
II.5.2 Pengontrol Mikro ATMega32 ...
17
II.5.2.1 Fitur ATMega32 ...
17
II.5.2.2 Konfigurasi Pin ATMega32 ...
18
II.5.2.3 Blok Diagram ATMega32 ...
23
II.5.2.4 Peta Memori ATMega ...
24
II.6 Op-Amp (Operational Amplifier) ...
25
II.6.1 Penguat Inverting ...
27
II.6.2 Penguat Non-Inverting ...
28
BAB III PERANCANGAN DAN REALISASI
III.1 Desain Sistem ...
30
III.2 Desain Hardware ...
32
III.2.1 Desain Penguat Microphone ...
33
III.2.2 Desain Mikrokontroler ...
35
III.2.2.1 ADC ATMega32 ...
36
III.2.2.2 Port C ATMega32 ...
36
III.3 Algoritma Pemrograman Sistem Pengenalan Ucapan ...
37
III.3.1 Diagram Alir Pembuatan Database ...
37
III.3.2 Diagram Alir Proses Pengenalan Ucapan ...
48
BAB IV DATA PENGAMATAN DAN ANALISI DATA
IV.1 Gambar Sinyal Suara untuk Tiap Kata ...
50
IV.2 Gambar Sinyal Input dan Output Menggunakan Penguat
Microphone ...
55
IV.3 Pengujian Hasil Pengucapan untuk Tiap Kata ...
55
vii
V.2 Saran ...
58
DAFTAR PUSTAKA ...
60
LAMPIRAN A FOTO ALAT PENGENALAN UCAPAN
LAMPIRAN B SKEMATIK ALAT PENGENALAN UCAPAN
LAMPIRAN C PROGRAM PADA PENGONTROL MIKRO ATMEGA32
viii
DAFTAR TABEL
Halaman
Tabel 2.1 Fungsi Khusus Port A ...
19
Tabel 2.2 Fungsi Khusus Port B ...
20
Tabel 2.3 Fungsi Khusus Port C ...
21
Tabel 2.4 Fungsi Khusus Port D ...
21
Tabel 3.1 Hasil FFT untuk Kata Kanan ...
38
Tabel 3.2 Hasil FFT untuk Kata Kiri ...
40
Tabel 3.3 Hasil FFT untuk Kata Maju ...
42
Tabel 3.4 Hasil FFT untuk Kata Mundur ...
44
Tabel 3.5 Hasil FFT untuk Kata Stop ...
46
ix
DAFTAR GAMBAR
Halaman
Gambar 2.1 Transformasi Fourier ...
5
Gambar 2.2 Gelombang Suara Halo ...
8
Gambar 2.3 Gelombang Sinusoidal ...
9
Gambar 2.4 Proses Sampling ...
10
Gambar 2.5 Proses Kuantisasi ...
11
Gambar 2.6 Proses Pengkodean ...
12
Gambar 2.7 Respon Frekuensi Microphone Arang ...
13
Gambar 2.8 Penampang Microphone Arang ...
14
Gambar 2.9
Respon Frekuensi Microphone Dynamic ...
14
Gambar 2.10
Elemen Penyusun Microphone Dynamic ...
15
Gambar 2.11
Frekuensi Respon Microphone Condensor ...
15
Gambar 2.12 Elemen PenyusunMicrophone Condensor ...
16
Gambar 2.13
Konfigurasi PIN ATMega32 ...
19
Gambar 2.14 ADC Control and Status Register A - ADCSRA ...
20
Gambar 2.15 Register Port A ...
22
Gambar 2.16 Blok Diagram ATMega32 ...
23
Gambar 2.17 Peta Memori Program ATMega32 ...
24
Gambar 2.18 Peta Memori Data ATMega32 ...
25
Gambar 2.19 Penguat Diferensial ...
26
Gambar 2.20 Simbol Op-Amp ...
27
Gambar 2.21 Rangkaian Dasar Penguat Inverting ...
27
Gambar 2.22 Rangkaian Dasar Penguat Non-Inverting ...
28
Gambar 3.1 Blok Diagram Sistem Implementasi Pengenalan Ucapan ...
30
Gambar 3.2 Penguat Microphone ...
33
Gambar 3.3 Rangkaian Mikrokontroler ...
35
Gambar 3.4 Diagram Alir Pembuatan Database ...
37
x
Gambar 3.6 Spektrum Frekuensi Kata
Kiri
...
41
Gambar 3.7 Spektrum Frekuensi Kata
Maju
...
43
Gambar 3.8 Spektrum Frekuensi Kata
Mundur
...
45
Gambar 3.9 Spektrum Frekuensi Kata
Stop
...
47
Gambar 3.10 Diagram Alir Proses Pengenalan Ucapan ...
48
Gambar 4.1 Sinyal Suara untuk Kata Kanan ...
50
Gambar 4.2 Sinyal Suara untuk Kata Kiri ...
50
Gambar 4.3 Sinyal Suara untuk Kata Maju ...
51
Gambar 4.4 Sinyal Suara untuk Kata Mundur ...
51
Gambar 4.5 Sinyal Suara untuk Kata Stop ...
51
xi
DAFTAR RUMUS
Halaman
Rumus 2.1 ...
5
Rumus 2.2 ...
6
Rumus 2.3 ...
7
Rumus 2.4 ...
7
Rumus 2.5 ...
11
Rumus 2.6 ...
12
Rumus 2.7 ...
28
LAMPIRAN A
LAMPIRAN B
LAMPIRAN C
PROGRAM PADA PENGONTROL MIKRO
C-1
PROGRAM UTAMA
/***************************************************** This program was produced by the
CodeWizardAVR V1.25.3 Professional Automatic Program Generator
© Copyright 1998-2007 Pavel Haiduc, HP InfoTech s.r.l. http://www.hpinfotech.com
Project : Version : Date : 8/15/2010
Author : F4CG Company : F4CG Comments:
Chip type : ATmega32 Program type : Application Clock frequency : 4.000000 MHz Memory model : Small External SRAM size : 0 Data Stack size : 512
*****************************************************/
#include <mega32.h> #include <math.h> #include <stdio.h> #include <delay.h>
// Alphanumeric LCD Module functions #asm
.equ __lcd_port=0x15 ;PORTC #endasm
#include <lcd.h>
// Standard Input/Output functions #include <stdio.h>
#define ADC_VREF_TYPE 0x60
// Read the 8 most significant bits // of the AD conversion result
unsigned char read_adc(unsigned char adc_input) {
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff); // Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete while ((ADCSRA & 0x10)==0);
C-2
// Declare your global variables hereunsigned int k,n,adc[25],j,s,x;
float r[25],i[25],m[25],hasil,hasil2,hasil3,hasil4,hasil5,h1,h2,h3,h4,h5;
eeprom float kanan[25]={3192.7, 106.08, 72.18, 81.76, 50.98, 76.93, 88.87, 56.03, 60.68, 46.23, 49.2, 48.1, 54.48, 54.48, 48.1, 49.2, 46.23, 60.68, 56.03, 88.87, 76.93, 50.98, 81.76, 72.18, 106.08};
eeprom float kiri[25]={4439.3, 229.27, 220.49, 278.26, 193.43, 192.52, 159.28, 217.87, 202.32, 133, 169.44, 170.84, 138.14, 138.14, 170.84, 169.44, 133, 203.32, 217.87, 159.28, 192.46, 193.43, 278.26, 220.49, 229.27}; eeprom float maju[25]={3793.5, 170.19, 126.59, 151.54, 207.31, 108.64, 138.11, 154.18, 130.93, 123.19, 155.44, 118.19, 136.08, 136.08, 118.19, 155.44, 124.19, 130.84, 154.18, 168.11, 108.64, 361.31, 151.54, 126.59, 170.19}; eeprom float mundur[25]={4410.4, 394.04, 268.62, 177.38, 131.38, 105.58, 132.27, 203.04, 141.03, 114.90, 202.45, 147.31, 194.64, 194.64, 147.25, 202.39, 114.9, 141.03, 203.04, 132.27, 105.58, 131.44, 177.38, 268.62, 394.04};
eeprom float stop[25]={5072.8, 151.38, 187, 184.37, 145.77, 146.19, 127.72, 207.98, 85.35, 127.39, 198.06, 119.13, 118.52, 118.52, 119.13, 198.06, 127.39, 85.35, 207.92, 127.72, 146.19, 145.77, 184.37, 187, 151.38};
void main(void) {
// Declare your local variables here
// Input/Output Ports initialization // Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTA=0x00;
DDRA=0x00;
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTB=0x00;
DDRB=0x00;
// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTC=0x00;
DDRC=0x00;
// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTD=0x00;
DDRD=0x00;
// Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped // Mode: Normal top=FFh // OC0 output: Disconnected TCCR0=0x00;
TCNT0=0x00; OCR0=0x00;
C-3
// Mode: Normal top=FFFFh// OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off
// Input Capture on Falling Edge // Timer 1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00;
// Timer/Counter 2 initialization // Clock source: System Clock // Clock value: Timer 2 Stopped // Mode: Normal top=FFh // OC2 output: Disconnected ASSR=0x00;
TCCR2=0x00; TCNT2=0x00; OCR2=0x00;
// External Interrupt(s) initialization // INT0: Off
// INT1: Off // INT2: Off MCUCR=0x00; MCUCSR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x00;
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity // USART Receiver: Off
// USART Transmitter: On // USART Mode: Asynchronous // USART Baud rate: 9600 UCSRA=0x00;
UCSRB=0x08; UCSRC=0x86; UBRRH=0x00; UBRRL=0x19;
// Analog Comparator initialization // Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80;
C-4
// ADC initialization// ADC Clock frequency: 31.250 kHz // ADC Voltage Reference: AVCC pin // Only the 8 most significant bits of // the AD conversion result are used ADMUX=ADC_VREF_TYPE & 0xff; ADCSRA=0x87;
// LCD module initialization riski: lcd_init(16); lcd_gotoxy(0,0); lcd_putsf("Silakan Bicara:"); while (1) {
for (n=0; n<25; n++) { ulang:
adc[n]=read_adc(0); if (adc[n]<=110) {goto ulang; }
else goto lanjut; lanjut:
delay_ms(20);
};
for (k=0; k<25; k++) { for (j=0; j<25; j++)
{ r[k]=r[k]+adc[j]*cos(6.28*k*j/25); i[k]=i[k]+adc[j]*sin(6.28*k*j/25); m[k]=sqrt((r[k]*r[k])+(i[k]*i[k])); };
};
for (s=0;s<25;s++)
C-5
{lcd_gotoxy(0,1); lcd_putsf("kanan"); delay_ms(2000); lcd_gotoxy(0,1); lcd_putsf("Accepted"); delay_ms(2000); }else if ((h2<h1)&&(h2<h3)&&(h2<h4)&&(h2<h5)&&(h2<375)) {lcd_gotoxy(0,1); lcd_putsf("maju"); delay_ms(2000); lcd_gotoxy(0,1); lcd_putsf("Accepted"); delay_ms(2000); }
else if ((h3<h1)&&(h3<h2)&&(h3<h4)&&(h3<h5)&&(h3<375)) {lcd_gotoxy(0,1); lcd_putsf("kiri"); delay_ms(2000); lcd_gotoxy(0,1); lcd_putsf("Accepted"); delay_ms(2000); }
else if ((h4<h1)&&(h4<h2)&&(h4<h3)&&(h4<h5)&&(h4<375)) {lcd_gotoxy(0,1); lcd_putsf("mundur"); delay_ms(2000); lcd_gotoxy(0,1); lcd_putsf("Accepted"); delay_ms(2000); }
C-6
m[x]=0;hasil=0; hasil2=0; hasil3=0; hasil4=0; hasil5=0; }; goto riski;
// Place your code here
C-7
PROGRAM PEMBUATAN DATABASE/***************************************************** This program was produced by the
CodeWizardAVR V1.25.3 Professional Automatic Program Generator
© Copyright 1998-2007 Pavel Haiduc, HP InfoTech s.r.l. http://www.hpinfotech.com
Project : Version : Date : 8/10/2010
Author : F4CG Company : F4CG Comments:
Chip type : ATmega32 Program type : Application Clock frequency : 4.000000 MHz Memory model : Small External SRAM size : 0 Data Stack size : 512
*****************************************************/
#include <mega32.h> #include <math.h> #include <stdio.h> #include <delay.h>
// Alphanumeric LCD Module functions #asm
.equ __lcd_port=0x15 ;PORTC #endasm
#include <lcd.h>
// Standard Input/Output functions #include <stdio.h>
#define ADC_VREF_TYPE 0x60
// Read the 8 most significant bits // of the AD conversion result
unsigned char read_adc(unsigned char adc_input) {
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff); // Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete while ((ADCSRA & 0x10)==0);
C-8
// Declare your global variables hereunsigned int k,n,adc[25],j; float r[25],i[25],m[25];
char buffer[33],buffer2[33],buffer3[33],buffer4[33],buffer5[33];
void main(void) {
// Declare your local variables here
// Input/Output Ports initialization // Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTA=0x00;
DDRA=0x00;
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTB=0x00;
DDRB=0x00;
// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTC=0x00;
DDRC=0x00;
// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTD=0x00;
DDRD=0x00;
// Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped // Mode: Normal top=FFh // OC0 output: Disconnected TCCR0=0x00;
TCNT0=0x00; OCR0=0x00;
// Timer/Counter 1 initialization // Clock source: System Clock // Clock value: Timer 1 Stopped // Mode: Normal top=FFFFh // OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off
// Input Capture on Falling Edge // Timer 1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=0x00;
C-9
TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00;// Timer/Counter 2 initialization // Clock source: System Clock // Clock value: Timer 2 Stopped // Mode: Normal top=FFh // OC2 output: Disconnected ASSR=0x00;
TCCR2=0x00; TCNT2=0x00; OCR2=0x00;
// External Interrupt(s) initialization // INT0: Off
// INT1: Off // INT2: Off MCUCR=0x00; MCUCSR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x00;
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity // USART Receiver: Off
// USART Transmitter: On // USART Mode: Asynchronous // USART Baud rate: 9600 UCSRA=0x00;
UCSRB=0x08; UCSRC=0x86; UBRRH=0x00; UBRRL=0x19;
// Analog Comparator initialization // Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80;
SFIOR=0x00;
// ADC initialization
// ADC Clock frequency: 31.250 kHz // ADC Voltage Reference: AVCC pin // Only the 8 most significant bits of // the AD conversion result are used ADMUX=ADC_VREF_TYPE & 0xff; ADCSRA=0x87;
C-10
while (1){
for (n=0; n<25; n++) { ulang:
adc[n]=read_adc(0); if (adc[n]<=110) {goto ulang; }
else goto lanjut; lanjut:
delay_ms(20); };
for (k=0; k<25; k++) { for (j=0; j<25; j++)
{ r[k]=r[k]+adc[j]*cos(6.28*k*j/25); i[k]=i[k]+adc[j]*sin(6.28*k*j/25); m[k]=sqrt((r[k]*r[k])+(i[k]*i[k]));
sprintf(buffer,"%3.1f %3.1f %3.1f %3.1f %3.1f",m[0],m[1],m[2],m[3],m[4]); lcd_gotoxy(0,0);
lcd_puts(buffer); delay_ms(500);
sprintf(buffer2,"%3.1f %3.1f %3.1f %3.1f %3.1f ",m[5],m[6],m[7],m[8],m[9]); lcd_gotoxy(0,0);
lcd_puts(buffer2); delay_ms(500);
sprintf(buffer3,"%3.1f %3.1f %3.1f %3.1f %3.1f ",m[10],m[11],m[12],m[13],m[14]); lcd_gotoxy(0,0);
lcd_puts(buffer3); delay_ms(500);
sprintf(buffer4,"%3.1f %3.1f %3.1f %3.1f %3.1f ",m[15],m[16],m[17],m[18],m[19]); lcd_gotoxy(0,0);
lcd_puts(buffer4); delay_ms(500);
sprintf(buffer5,"%3.1f %3.1f %3.1f %3.1f %3.1f ",m[20],m[21],m[22],m[23],m[24]); lcd_gotoxy(0,0);
lcd_puts(buffer5); delay_ms(500); };
};
// Place your code here
1
Universitas Kristen MaranathaBAB I
PENDAHULUAN
Pada bab ini berisi latar belakang, identifikasi masalah, perumusan masalah,
tujuan, pembatasan masalah, spesifikasi alat, dan sistematika penulisan.
1.1
Latar Belakang
Seiring dengan perkembangan zaman, sistem pengenalan suara sangat
berguna dalam kehidupan sehari-hari seperti dalam menyalakan sebuah
lampu, orang hanya menepuk tangannya dan lampu pun akan menyala. Sistem
pengenalan suara pun sangat berguna dalam mengontrol sesuatu, seperti
mengontrol sebuah robot. Misal, untuk menggerakan robot maju ke depan,
maka orang hanya mengucapkan kata maju, sehingga robot pun akan maju ke
depan sesuai dengan perintah yang diberikan.
BAB I PENDAHULUAN
2
Universitas Kristen Maranatha
1.2
Identifikasi Masalah
Identifikasi masalah dalam pembuatan Tugas Akhir ini adalah cara
mengaplikasikan mikrokontroler ATmega32 agar dapat menampilkan kata
yang diucapkan pada LCD display.
1.3
Perumusan Masalah
Perumusan masalah dalam pembuatan Tugas Akhir ini adalah:
1. Bagaimana cara mendapatkan karakteristik spektrum dari sinyal suara yang
diucapkan dengan metode FFT (
Fast Fourier Transform
)?
2. Bagaimana cara mengaplikasikan mikrokontroler ATMega32 agar dapat
menampilkan kata pada LCD display sesuai dengan apa yang diucapkan?
1.4
Tujuan
Tujuan yang hendak dicapai dari pembuatan Tugas Akhir ini adalah:
1. Dapat mendapatkan karakteristik spektrum dari sinyal suara yang
diucapkan dengan metode FFT (
Fast Fourier Transform
).
2. Dapat mengaplikasikan mikrokontroler ATMega32 agar dapat
menampilkan kata pada LCD display sesuai dengan apa yang diucapkan.
1.5
Pembatasan Masasah
Pembatasan masalah dalam pembuatan Tugas Akhir ini adalah:
1. Jumlah kata yang dikenali sebanyak lima buah kata, yaitu
kanan
,
kiri
,
maju
,
mundur
, dan
stop
.
2. Keadaan di sekitar tidak berisik.
BAB I PENDAHULUAN
3
Universitas Kristen Maranatha
4. Waktu yang dibutuhkan untuk mengucapkan kata yang dikenali sekitar 1.5
detik.
1.6
Spesifikasi Alat yang Digunakan
Spesifikasi alat pada pembuatan Tugas Akhir ini adalah:
1. Microphone
2. Penguat
Microphone
3. Mikrokontroler ATmega32
4. LCD Display 16x2
1.7
Sistematika Penulisan
Laporan Tugas akhir ini disusun dengan sistematika sebagai berikut:
Bab I Pendahuluan
Pada bab ini berisi tentang latar belakang, identifikasi masalah, perumusan
masalah, tujuan, pembatasan masalah, spesifikasi alat yang digunakan, dan
sistematika penulisan laporan tugas akhir.
Bab II Landasan Teori
Pada bab ini berisi teori-teori penunjang, yaitu berupa teori FFT (
Fast Fourier
Transform
), teori RMSE (
Root Mean Square Error
), teori sinyal suara, teori
microphone
, teori mikrokontroler ATMega32, dan teori Op-Amp.
Bab III Perancangan dan Realisasi
BAB I PENDAHULUAN
4
Universitas Kristen Maranatha
Bab IV Data Pengamatan dan Analisis Data
Pada bab ini berisi tentang gambar sinyal suara untuk tiap kata, gambar sinyal
input dan output pada penguat
microphone
, serta data pengamatan dan
analisis dari alat yang dibuat berdasarkan persentase keberhasilan dari
beberapa pengujian yang dilakukan.
Bab V Kesimpulan dan Saran
58
Universitas Kristen MaranathaBAB V
KESIMPULAN DAN SARAN
Pada bab ini berisi kesimpulan dari Tugas Akhir dan saran-saran yang
perlu dilakukan untuk perbaikan di masa mendatang.
V.1
Kesimpulan
Dalam merealisasikan dan memprogram sistem pengenalan
ucapan, dapat disimpulkan bebarapa hal seperti berikut :
1. Sistem pengenalan ucapan dapat diralisasikan menggunakan
mikrokontroler ATMega32 dengan menggunakan metode FFT (
Fast
Fourier Transform
).
2. Persentase keberhasilan dari uji coba dalam Tugas Akhir ini untuk kata
kanan sebesar 89.33%, persentase keberhasilan untuk kata kiri sebesar
70.67%, persentase keberhasilan untuk kata maju sebesar 91.33%,
persentase keberhasilan untuk kata mundur sebesar 66.67%, dan
persentase keberhasilan untuk kata stop sebesar 88%.
3. Kata maju memiliki persentase keberhasilan yang paling tinggi, yaitu
91.33% dan kata mundur memiliki persentase keberhasilan yang paling
kecil, yaitu 66.67%.
4. Hasil dari tiap pengujian berbeda-beda, hal ini disebabkan karena intonasi,
kecepatan bicara, dan keras lemahnya suara saat mengucapkan suatu kata
selalu berbeda-beda.
V.2
Saran
Saran-saran yang dapat diberikan untuk perbaikan dan pengembangan
Tugas Akhir ini di masa mendatang adalah :
1. Proses pengenalan tidak dilihat dari sisi spektrumnya saja tetapi dilihat
dari sisi yang lainnya.
BAB V KESIMPULAN DAN SARAN
59
60
Universitas Kristen MaranathaDAFTAR PUSTAKA
1. Andrianto, Heri,
Pemrograman Mikrokontroler AVR ATMega16
Menggunakan Bahasa C
, 2008.
2. Basuki, Achmad.
Pengolahan Citra Digital Menggunakan Visual Basic
.
Graha Ilmu, 2005.
3. Pitas, Ioannis.
Digital Image Processing Algorithms
. Prentice Hall, 1993.
4. Stefanus, Wiliam.
Diktat Kuliah Operational Amplifier (Op-Amp),
2008.
5.
http://courses.cit.cornell.edu/ee476/FinalProjects/
6.
http://emy-maidah.blogspot.com/2009/10/jenis-jenis-microphone.html
7.
http://en.wikipedia.org/wiki/Mean_squared_error
8.
http://go-kerja.com/proses-produksi-suara-manusia/
9.
http://id.wikipedia.org/wiki/Mikrofon
10.
http://jfkoernia.wordpress.com/2010/08/07/microphone-prinsip-kerja/
11.
http://kursusaudio.wordpress.com/category/bab-1-teori-suara/
12.