AUTOMATISASI PERINTAH SUARA SEBAGAI KENDALI
FORMASI PADA PERMAINAN FUTSAL MENGGUNAKAN
CODEBOOK
ACHMAD RIFAI
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
AUTOMATISASI PERINTAH SUARA SEBAGAI KENDALI
FORMASI PADA PERMAINAN FUTSAL MENGGUNAKAN
CODEBOOK
ACHMAD RIFAI
Skripsi
Skripsi sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer pada
Departemen Ilmu Komputer
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
ABSTRACT
ACHMAD RIFAI. Automation of Voice Command for Formation Control of Futsal Game Using Codebook. Supervised by AGUS BUONO.
Game development today is very advanced. Game Industry has been developing games in terms of graphics, storyline, and artificial intelligence. Artificial intelligence existing in current games development are getting smarter. The problem is, most game consoles are still using controllers such as joystick, keyboards and the other tools. In this research, has been developed a futsal game as artificial intelligence simulation, has been developed a futsal game as artificial intelligence simulation, by implementing some steering behaviors and finite state machine for modeling their movement. This futsal game controlled by voice command for the formation transition.
The artificial intelligence of this futsal games are implemented using object oriented programming language. They consist of 4 steering behaviors and 7 field player states for their movement and 4 goal keeper states. Voice command are implemented using mel frequency cepstrum coefficients (MFCC) as feature extraction and modeling codebook as pattern recognition. The best frames for voice command system is 125 and 256 with value of K is 32. The accuracy of integration of two system (artificial intelligence system and voice command system) is testing of frame 128 for offence formation is 92,75% and for defence formation is 73%. Testing of frame 256 for offence formation is 93% and for defence formation is 73,5%
Judul Penelitian : Automatisasi Perintah Suara Sebagai Kendali Formasi Pada Permainan Futsal Menggunakan Codebook
Nama : Achmad Rifai
NRP : G64070104
Menyetujui: Pembimbing
Dr. Ir. Agus Buono, M.Si, M.Kom. NIP. 19660702 199302 1 001
Mengetahui:
Ketua Departeman Ilmu Komputer
Dr. Ir. Sri Nurdiati, M.Sc. NIP 19601126 198601 2 001
RIWAYAT HIDUP
Penulis dilahirkan di Bekasi pada tanggal 26 Agustus 1989 dari pasangan H. Lili Rochili dan Hj. Eneng Hafsah. Penulis merupakan anak keempat dari empat bersaudara.
Tahun 2007 penulis lulus dari SMA Bani Saleh Bekasi dan pada tahun yang sama, penulis diterima Institut Pertanian Bogor (IPB) melalui jalur Seleksi Penerimaan Mahasiswa Baru (SPMB). Penulis masuk S1 Ilmu Komputer. Departemen Ilmu Komputer, Fakultas Matematika dan Ilmu Pengetahuan Alam, Institut Pertanian Bogor.
PRAKATA
Puji dan syukur penulis panjatkan kehadirat Allah SWT yang senantiasa memberikan rahmat sehat, iman dan islam sehingga penulis dapat menyelesaikan tulisan ini dengan judul: Automatisasi Perintah Suara Untuk Kendali Formasi Pada Permainan Futsal Menggunakan
Codebook. Shalawat serta salam senantiasa tercurahkan kepada nabi besar Muhammad SAW yang telah memberikan penerangan dari zaman jahiliyah sampai pada zaman yang terang benderang seperti sekarang ini.
Penulis mengucapkan terima kasih yang sebesar-besarnya kepada Bapak Dr. Ir. Agus Buono, M.Si, M.Kom selaku pembimbing atas segala saran, kritik, motivasi dan bimbinganya selama penelitian dan penyusunan tulisan ini.. Ucapan terima kasih yang selalu penulis ucapkan sampai akhir hayat nanti kepada kedua orang tua atas nasihat, doa dan bimbingannya. Penulis juga mengucapkan terima kasih kepada Ahmad Fauzy sebagai kakak dan sekaligus memberikan bimbingan tentang kuliah dan akademik. Penulis juga mengucapkan terima kasih kepada teman-teman Ilmu Komputer 44, terutama kepada anak warkop. Terima kasih juga kepada Nicholas Bertoa yang telah membantu penulis selama pengerjaan AI. Semoga tulisan ini bermanfaat dan dapat menambah wawasan ilmu pengetahuan bagi penulis khususnya dan pembaca umumnya.
Bogor, Oktober 2011
.
DAFTAR ISI
Halaman
DAFTAR GAMBAR ... viii
DAFTAR TABEL ... viii
DAFTAR LAMPIRAN ... viii
PENDAHULUAN ... 1
Latar Belakang ... 1
Tujuan Penelitian ... 1
Ruang Lingkup ... 1
Manfaat Penelitian ... 1
TINJAUAN PUSTAKA ... 1
Artificial Intelligence (AI) ... 1
Steering Behavior ... 1
Ekstraksi Ciri Sinyal Suara ... 2
Codebook ... 3
Speech Recognition ... 4
Finite State Machine (FSM) ... 4
Pemrograman Berorientasi Objek ... 4
Digitasi Sinyal ... 4
Automatic Speech Recognition (ASR) ... 4
METODE PENELITIAN ... 4
Kerangka Pemikiran ... 4
Studi Literatur ... 4
Rumusan Masalah ... 4
Pengembangan Sistem Pengenalan Suara ... 5
Pengembangan Sistem AI ... 5
Integrasi ... 6
Uji Sistem Automatisassi Perintah Suara ... 7
HASIL DAN PEMBAHASAN ... 7
Pengembangan Sistem Pengenalan Suara ... 7
Pengenmbangan Sistem AI ... 9
Integrasi ... 13
Hasil Uji Sistem Automatisasi Perintah Suara ... 13
KESIMPULAN DAN SARAN ... 14
Kesimpulan ... 14
Saran ... 15
DAFTAR GAMBAR
Halaman
1 Ilustrasi steering behavior seek ... 1
2 Ilustrasi steering behavior flee ... 2
3 Ilustrasi steering behavior arrive ... 2
4 Ilustrasi steering behavior pursuit ... 2
5 Diagram proses MFCC ... 2
6 Ilustrasi prinsip dasar penggunaan codebook ... 3
7 Alur pengembangan sistem automatisasi perintah suara pada AI ... 5
8 Grafik akurasi perintah suara untuk setiap nilai frame. ... 7
9 Akurasi setiap nilai k pada frame 128. ... 8
10 Akurasi setiap nilai k pada frame 256 ... 8
11 Akurasi setiap nilai k pada frame 512 ... 9
12 Rancangan objek sistem AI futsal. ... 9
13 Region pada lapangan futsal ... 10
14 Hasil desain steering behavior seek. ... 10
15 Hasil desain steering behavior flee. ... 10
16 Hasil desain steering behavior arrive. ... 10
17 Hasil desain steering behavior pursuit. ... 11
18 Diagram state pemain ... 11
19 Diagram state keeper ... 12
20 Grafik akurasi pergerakan state formasi offence pada frame 128 ... 13
21 Grafik akurasi pergerakan state formasi defence pada frame 128 ... 14
22 Grafik akurasi pergerakan state formasi offence pada frame 256 ... 14
23 Grafik akurasi pergerakan state formasi defence pada frame 256 ... 14
DAFTAR TABEL
Halaman 1 Rataan nilai akurasi perintah suara pada frame 128 ... 82 Rataan nilai akurasi perintah suara pada frame 256 ... 8
3 Rataan nilai akurasi perintah suara pada frame 512 ... 9
4 Rataan nilai akurasi dengan input suara secara langsung ... 9
5 Daftar state pemain dan steering behavior-nya ... 11
6 Penjelasan inisialisasi triggerstate pemain ... 11
7 Daftar state keeper dan steering behavior-nya ... 12
8 Hasil pengujian kesesuaian state tim ... 13
DAFTAR LAMPIRAN
Halaman 1 Hasil visual rancangan sistem AI ... 172 Daftar state tim, formasi, dan regionnya ... 17
3 Desain diagram class ... 18
4 Hasil pencatatan kesesuaian state pemain ... 20
5 Hasil pencatatan kesesuaian state keeper ... 21
6 Daftar perintah suara untuk formasi offence ... 23
PENDAHULUAN Latar Belakang
Perkembangan teknologi pada masa sekarang ini sudah sangat pesat salah satu dalam bidang automatisasi. Automatisasi adalah sebuah proses untuk menjadikan suatu pekerjaan lebih mudah dengan bantuan komputer. Automatisasi sudah dikembangkan sejak komputer pertama diciptakan salah satunya adalah automatisasi perintah suara. Sudah banyak aplikasi yang mengimplementasikan perintah suara sebagai kendali untuk mengerjakan sesuatu. Walaupun aplikasi automatisasi perintah suara sudah banyak dikembangkan tetapi jarang ada yang mengembangkan automatisasi perintah suara pada sebuah game. Game yang ada sekarang ini masih menggunakan alat kendali seperti
joy stick, keyboard, mouse dan alat kendali lainnya. Padahal game adalah objek yang sangat mungkin untuk mengaplikasikan automatisasi perintah suara.
Beberapa konsol game yang sudah mengembangkan automatisasi adalah Nintendo Wii dengan automatisasi pengenalan gerakan benda (tongkat) lalu Xbox 360 kinect
dengan automatisasi gerakan tangan.
Pada penelitian ini akan dikembangkan sebuah aplikasi automatisasi perintah suara pada game futsal. Ide dasarnya adalah seorang pelatih. Pelatih pada permainan futsal, sepak bola atau basket dapat memberikan perintah kepada para pemainnya yang bertujuan untuk memenangkan pertandingan. Sering kali seorang pelatih berteriak di pinggir lapangan pada saat memberikan perintah. Sama halnya dengan sistem ini, perintah dapat diberikan langsung melalui suara agar dapat seperti seorang pelatih di pinggir lapangan.
Tujuan Penelitian
Tujuan penelitian ini adalah untuk mengimplementasikan state pada agent, mengimplementasikan steering behavior
sederhana pada agent dan memodelkan fitur automatisasi perintah suara pada sebuah
game.
Ruang Lingkup Penelitian
Adapun ruang lingkup dari penelitian ini adalah :
1. Agent yang dimodelkan hanya meliputi pergerakan agent, komunikasi antar
agent dan state agent.
2. Permainan tidak mengikuti peraturan FIFA, yaitu pelanggaran, out, tendangan bebas, penalty, dan tendangan penjuru. 3. Tidak melibatkan wasit dan waktu. 4. Perintah suara hanya untuk merubah
formasi.
TINJAUAN PUSTAKA
Artificial Intelligence (AI)
Artificial intelligence (AI) adalah ilmu tentang bagaimana membuat computer melakukan sesuatu, dimana pada sewaktu-waktu manusia dapat melakukannya lebih baik, karena AI hanya diciptakan untuk menyerupai manusia bukan untuk menciptakan manusia baru (Rich & Knight 1991).
Steering Behavior
Menurut Buckland (2005), steering behavior adalah pergerakan agent yang mana pada sewaktu-waktu agent tersebut akan melakukan improvisasi tertentu terhadap pergerakannya tergantung pada kondisi.
Steering behavior yang umumnya dipakai untuk memodelkan agent yaitu:
1. Steering behavior seek
Prinsip dasar steering behaviorseek adalah
agent bergerak lurus ke arah target. Steering behavior seek adalah steering behavior yang paling baku untuk setiap pemodelan agent
karena memang behavior-nya hanya berpindah posisi dari posisi satu ke posisi lain dengan lurus. Ilustrasi steering behavior dapat dilihat pada Gambar 1.
Gambar 1 Ilustrasi steering behavior seek.
2. Steering behavior flee
Prinsip dasar steering behavior flee adalah
ada dua targ 1 menuju tar
Gambar 2 3. Steering
Prinsip adalah age
dengan perg dengan stee
ditambahkan adalah age
memotong
Ilustrasi steer g behavior arr
dasar steerin ent bergerak gerakan yang
ering behavio n (deceleratio
gan kata la but ke arah tar
Ilustrasi steer g behavior pu
dasar steerin ent bergerak
(intercept
motong disin pergerakan d e arah target
asuk ke targe
nt X meng n (dece
an menghindar
ring behavior
rive
ng behavior
k mendekati tidak lurus. B
or seek, pada kit perla dekati target. I
e dapat dilih bar 3 terdapa
ggambarkan
on) pada per ain, agent b
rget.
ring behavior
ursuit
ng behavior
seperti per
t), yang di ni adalah age
dari agent lai yang sama. I
e dapat dilih ar 4 terlihat a
n Agent Y. A
rget, sedangka ergerakan Ag ent Y dapat d et. Garis putu ggambarkan
eleration)
ri target
Gambar 4 Ilu
Ekstraksi Ci
Ekstraksi satu nilai ata sebagai penci Cepstral Co salah satu tek ekstraksi ciri teknik yang kinerja paling
Cara ke pendengaran dilihat pada G
Gambar 5 D Tahapan-taha MFCC (Do 1 1.Frame Bloc
Pada tahap dibagi ke da memiliki N dalam bentu bersebelahan
overlap. Hal informasi yan 2.Windowing
Setiap fram
satu unit info antar frame
dengan tekni dilakukan meminimalka awal dan akh
ya. Sedangka t perlambatan
ustrasi steering
iri Sinyal Sua
ciri dilakukan au vektor yan
iri objek/indiv oefficients (M
knik yang dap i suara. Tekn
umumnya dip 994) adalah:
cking
pan ini sinyal lam bentuk f
sample yang uk frame. S
saling tum l ini ditujuka ng hilang.
g
me dari sinyal formasi. Oleh tersebut ha k windowing
pada setiap an diskontinu hir setiap fram
an pada Age
.
g behavior pur
ara
n untuk menen ng dapat digu vidu. Mel Freq MFCC) meru pat digunakan knik ini meru
pakai dan me didasarkan roses MFCC
s MFCC (Do dilakukan
l suara yang d
frame. Setiap g direpresent Setiap frame
mpang tindih an agar tida
l suara menga karena itu d arus diminim . Proses wind
p frame
uitas sinyal
me. Metodenya
dengan mengalikan tiap frame dengan fungsi window. Jika kita mendefinisikan fungsi window sebagai w, dan x(i) sebagai sinyal digital pada frame ke i, maka hasil dari
windowing pada frame ke i adalah y(i) = x(i)w, yaitu perkalian skalar antara vektor x(i) dengan w.
3.FFT (Fast Fourier Transform)
FFT akan mengonversi setiap frame
dengan N sample dari domain waktu ke domain frekuensi. Konversi ini dilakukan karena pendengaran manusia didasarkan atas domain frekuensi. FFT merupakan fast algorithm yang mengimplementasikan Discreate Fourier Transform (DFT) yang didefinisikan pada himpunan N samples { } sebagai berikut:
digunakan untuk menunjukan bilangan imajiner, seperti j = Secara umum adalah bilangan kompleks.
4. Mel-frequency Wrapping
Persepsi manusia dalam frekuensi sinyal suara tidak mengikuti skala linear. Untuk setiap bunyi dengan frekuensi actual , dalam satuan Hertz, nilai subjektif dari pitch-nya diukur menggunakan skala ‘mel’. Skala mel-frequency adalah selang frekuensi linear di bawah 1000 Hz dan selang logaritmik untuk frekuensi di atas 1000 Hz. Mel-Frequency Wrapping umumnya digunakan menggunakan filterbank. Pendekatan yang dapat digunakan untuk menghitung mel-frequency untuk frekuensi dalam Hertz:
5. Cepstrum
Pada tahap ini akan dikonversi mel-frequency ke dalam domain waktu dengan menggunakan Discreate Cosine Transform (DCT). Hasilnya disebut dengan mel-frequency cepstrum coefficient (MFCC). Seanjutnya MFCC dapat dihitung sebagai
dengan persamaan:
dengan K adalah banyaknya koefisien cepstral, k= 0,1,…, K-1 dan n = 0,1,…,K-1.
Codebook
Codebook adalah sekumpulan titik (vektor) yang mewakili distribusi dari individu maupun objek tertentu dalam ruang suara. Titik-titik pada codebook disebut codeword.
Codebook merupakan cetakan yang dihasilkan suara setalah melalui proses training. Dalam pengenalan suara, masing-masing suara yang akan dikenali harus dibuatkan codebook-nya.
Codebook dibentuk dengan cara membentuk kluster semua vektor ciri yang dijadikan sebagai training set dengan menggunakan algoritme klustering. Algoritme klustering yang dipakai adalah algoritme K-means.
Ilustrasi prinsip dasar penggunaan
codebook dapat dilihat pada Gambar 6. Seperti yang telah diilustrasikan pada Gambar 6, prinsip dasar dalam penggunaan codebook
adalah setiap suara yang masuk akan dihitung jaraknya ke setiap codebook yang telah dibuat. Kemudian jarak setiap sinyal suara ke
codebook dihitung sebagai jumlah jarak setiap
frame sinyal suara tersebut ke setiap
codeword yang ada pada codebook. Kemudian dipilih codeword dengan jarak minimum. Setelah itu setiap sinyal suara yang masuk akan diidentifikasi berdasarkan jumlah dari jarak minimum tersebut.
Gambar 6 Ilustrasi prinsip dasar penggunaan
codebook.
Jika dalam sinyal suara input X terdapat T
frame dan codewordk adalah masing-masing
codeword yang ada pada codebook, maka jarak X dengan codebook dapat dirumuskan:
Dengan x dan y adalah vektor yang akan dihitung jaraknya sebanyak d dimensi.
(1)
Codeword2 Codewordk
min min min
dimana x dan y adalah vektor yang akan dihitung jaraknya dengan d dimensi. Jarak akan dihitung sebanyak n frame
Speech Recognition
Speech recognition adalah konversi dari suara ke teks, dimana sistem akan mendeteksi sinyal analog menjadi digital lalu mencari pola sinyalnya dan mengeluarkan output
berupa teks (Pelton 1993). Speech recognition
terjadi sesuai urutan unit diskrit (kata atau kalimat) yang diturunkan dari gelombang suara atau bentuk gelombang akustik (Moore 1994).
Finite State Machine (FSM)
Finite state machine (FSM) adalah model perilaku (behavioral model) yang digunakan untuk merancang sebuah program computer. Terdiri dari sejumlah state yang terkait dengan jumlah yang terbatas untuk transisi. Transisi adalah serangkaian tindakan yang dimulai dari satu state dan berakhir di state
lain (atau sama). Sebuah transisi dimulai dengan pemicu (trigger), dan pemicu bias menjadi peristiwa atau kondisi (Buckland 2005), Dalam permainan futsal, trigger adalah berupa kondisi lingkunga yang terjadi pada saat itu (actual condition).
Pemrograman Berorientasi Objek
Pemrograman berorientasi objek adalah suatu paradigma pemrograman yang membagi kode-kode program menjadi beberapa modul. Setiap modul berisi beberapa fungsi. Modul dalam sebuah aplikasi yang besar akan dipecah menjadi beberapa submodul, atau mendekomposisikan fungsi-fungsi yang ada di dalam sebuah modul (Braude 2004).
Digitasi Sinyal
Gelombang yang dihasilkan oleh suara adalah gelombang analog. Agar suara dapat diolah dengan peralatan elektronik, gelombang suara harus direpresentasikan dalam bentuk digital. Proses mengubah suara dari gelombang analog menjadi representasi data digital dinamakan digitalisasi suara.
Tahapan pada digitalisasi suara ada dua, yaitu sampling dan kuantisasi (Jurafsky & Martin 2000). Sampling adalah proses pengambilan nilai dalam jangka waktu tertentu. Nilai yang dinyatakan adalah amplitudo suara saat itu. Hasilnya adalah sebuah vektor yang menyatakan nilai-nilai hasil sampling. Panjang vektor data bergantung pada panjang/lamanya suara yang
didigitalisasikan serta sampling rate yang digunakan. Sampling rate merupakan banyaknya nilai yang nilai yang diambil setiap detik. Sampling rate yang biasa digunakan adalah 8000 Hz dan 16000 Hz (Jurafsky & Martin 2000).
Automation Speech Recognition (ASR)
Teknologi seperti automatic speech recognition (ASR) dan text-to-speech telah dikembangkan sejak awal berdirinya teknologi komputer. Automatic speech recognition telah membuat kemajuan yang signifikan dari tahun 1980 dan telah dapat membuat sistem entri data dengan speech-driven secara praktis (Oberteuffer, 1995). Pengembangan automatic speech recognition
telah diteruskan oleh beberapa perusahaan dan universitas.
METODE PENELITIAN Kerangka Pemikiran
Secara umum penelitian ini dikembangkan oleh metode yang terdiri dari dua tahap yaitu studi literatur dan rumusan masalah, rumusan masalah terbagi menjadi dua bagian yaitu pengembangan sistem pengenalan suara dan pengembangan sistem AI. Pada pengembangan sistem pengenalan suara terdiri dari beberapa tahap yaitu: (1) pengumpulan sampel suara, (2)
preprocessing, (3) pemodelan codebook, (4) uji suara. Pengembangan sistem AI terdiri dari beberapa tahap yaitu: (1) analisis objek, (2) desain steering behavior, (3) desain state, (5) desain diagram class, (6) implementasi, (7) uji AI. Setelah sistem pengenalan suara dan AI dibuat maka kedua sistem tersebut akan diintegrasikan lalu dilakukan pengujian terhadap sistem yang telah diintegrasikan. Alur metode pengembangan ini dapat dilihat pada Gambar 7.
Studi Literatur
Pada tahap ini dilakukan studi literatur tentang permainan futsal, pemodelan agent, dan prinsip pengenalan suara. Studi literatur dilakukan dengan membaca buku referensi dan paper.
Rumusan Masalah
.
Gambar 7 Alur pengembangan sistem automatisasi perintah suara pada AI. Preprocessing:
1. Pemotongan Silence
2. Ekstraksi ciri (MFCC)
Mulai
Selesai
SISTEM AI
SISTEM PENGENALAN SUARA
Integrasi
Pengujian
Dokumentasi
Analisis Objek
Desain Steering Behavior
1.Steering behavior seek 2.Steering behavior flee 3.Steering behavior
arrive
4.Steering behavior pursuit
Desain State
Desain Diagram Class
Implementasi Pengujian
Studi Literatur
Rumusan Masalah
1. Permainan futsal
2. Pengembangan sistem pengenalan
suara
3. Pengembangan sistem AI
1. Paradigma program
2. Implementasi
3. Akurasi
Pengumpulan Sampel Suara (Berupa Perintah)
10 Data Training
8 Data Testing
Hasil Preprocessing Data Training
Hasil Preprocessing Data Testing
Pemodelan Codebook
Codebook Data Training
Pencocokan Data Tiap Perintah
Hasil Pengenalan
Pengembangan Sistem Perintah Suara
Pengembangan sistem pengenalan suara terbagi menjadi beberapa tahap yaitu: 1. Pengumpulan sampel suara
Suara yang direkam adalah perintah yang akan digunakan untuk mengendalikan formasi pada AI. Perintah yang digunakan adalah sebanyak 8 perintah yaitu ‘Satu’, ‘Dua’, ‘Tiga’, ‘Empat’, ‘Lima’, ‘Enam’, ‘Tujuh’, dan ‘Delapan’. Setiap perintah direkam sebanyak 144 kali (setiap perintah direkam sebanyak 18 kali), dari 144 sampel suara, dibagi menjadi 80 sampel untuk data
training dan 64 sampel untuk data testing
(data training sebanyak 10 data dan data
testing sebanyak 8 data untuk masing-masing perintah). Data direkam dengan menggunakan software MATLAB selama 1 detik, disimpan dalam format WAV dengan
sampling rate sebesar 11 kHz (11000 Hz). 2. Preprocessing
Pada tahap ini setiap sampel suara akan dilakukan pemotongan silence dan dilanjutkan dengan ekstraksi ciri menggunakan MFCC. Pada penelitian ini lebar frame yang digunakan sebesar 128, 256, dan 512, dengan overlap sebesar 50% (0,5), dan jumlah koefisien cepstral
sebanyak 13 koefisien. 3. Pemodelan codebook
Setiap sampel suara pada masing-masing perintah yang telah melalui tahap
preprocessing akan dimodelkan codebook -nya. Hasil dari ekstraksi ciri MFCC adalah sebuah matriks ciri untuk setiap sampel pada suatu perintah yang berisi vektor ciri. Setiap matriks ciri pada suatu perintah akan digabungkan menjadi satu matriks dan dilakukan klustering dengan menggunakan
K-means. Setelah gabungan matriks ciri dikluster akan dihasilkan vektor centroid
sebagai codeword dari suatu perintah. Kumpulan dari codeword pada suatu perintah disebut codebook untuk suatu perintah.
4. Pengujian sistem pengenalan suara Pada tahap ini akan dilakukan dua pengujian, yang pertama dengan menggunakan data training yang telah disiapkan pada tahap pengumpulan sampel suara dan yang kedua dengan menggunakan
input suara secara langsung dengan jenis
akurasi =
suara yang berbeda. Nilai akurasi dihitung dengan menggunakan rumus berikut:
Pengujian ini berguna untuk menentukan
frame dan nilai k yang baik, parameter baik disini adalah akurasi yang paling tinggi.
Frame dan nilai k yang terbaik akan digunakan untuk sistem automatisasi perintah suara pada AI.
Pengembangan Sistem AI
Pengembangan sistem AI terbagi menjadi beberapa tahap yaitu:
1. Analisis objek
Pada tahap ini akan dianalisis apa saja objek yang terlibat dalam pembuatan AI futsal, hasil analisis objek akan digunakan untuk desain diagram class.
2. Desain steering behavior
Steering behavior digunakan untuk memberikan perilaku (behavior) agent pada AI agar agent dapat melakukan improvisasi pada gerakannya, karena perilaku agent
dapat berubah tergantung dari kondisi pada lingkungan. Pada sistem ini terdapat empat
steering behavior yang digunakan yaitu:
steering behavior seek, steering behavior flee, steering behavior arrive, dan steering behavior pursuit.
3. Desain state
Pergerakan agent yang dihasilkan oleh
steering behavior tidak akan dapat
dieksekusi tanpa adanya state. Pada sistem ini, akan ditentukan penggunaan steering
behavior pada suatu state agar
pergerakannya sesuai dengan kondisi pada saat itu (actual condition). Pada sistem ini akan didesain state untuk pemain, keeper, dan tim.
4. Desain diagram class
Data yang telah ditetapkan pada tahap analisis objek akan dimodelkan diagram class-nya. Desain diagram class pada sistem ini berguna untuk implementasi sistem. 5. Implementasi
Implementasi dilakukan dengan menggunakan bahasa pemrograman C++ dengan paradigma pemrograman berorientasi
∑ Percobaan yang benar
∑ Banyaknya percobaan
0%
128 256 512
objek (OOP). C++ memberikan dukungan penuh terhadap paradigma OOP sehingga dalam implementasi sistem ini tidak membutuhkan waktu yang terlalu lama. 6. Uji AI
Pengujian dilakukan dengan cara mencatat kesesuaian pergerakan dari pemain
dan keeper selama 15 menit dengan
membagi pencatatan setiap 5 menit. Parameter kesesuaian gerakan adalah jika
agent memasuki state dan mengeksekusi
behavior yang tepat pada state yang telah didesain sebelumnya. Sebelum pengujian sistem AI, harus dilakukan restart pada computer agar tidak terjadi leak memory
yang dapat menggangu eksekusi program pada sistem AI.
Integrasi
Sistem AI akan diintegrasikan oleh sistem pengenalan suara agar kedua sistem ini dapat berinteraksi. Cara pengintegrasian kedua sistem ini adalah dengan menggunakan fitur input output handling (IO
handling).
Uji Sistem Automatisasi Perintah Suara
Sistem pengenalan suara dan sistem AI yang telah diintegrasikan akan diuji dengan menggunakan rumus berikut:
akurasi =
Uji sistem berguna untuk mengetahui apakah sistem pengenalan suara sudah siap diintegrasikan atau belum. Pengujian dilakukan sebanyak 20 kali untuk setiap perintah. Pengujian ini dilakukan dengan menggunakan frame dan nilai K yang terbaik, frame dan nilai K yang baik akan ditentukan pada tahap pengujian sistem pengenalan suara
HASIL DAN PEMBAHASAN Pengembangan Sistem Pengenalan Suara
1. Preprocessing
Dari data yang telah direkam yaitu 80 data training dan 64 data testing, terlebih dahulu dilakukan pemotongan silence pada bagian depan dan belakang sinyal, pemotongan silence berguna untuk memfokuskan sinyal sehingga ukuran
matriks untuk setiap data suara akan sama. Setelah pemotongan silence, data suara diekstraksi ciri dengan menggunakan MFCC. Dalam pemakaiannya terdapat lima parameter yang harus digunakan yaitu input
suara, sampling rate, frame, overlap, dan
cepstral coefficient berturut-turut adalah 11000 Hz, 50% dan 13. Untuk nilai frame
yang akan diuji adalah 128, 256 dan 512. Hasil dari ekstraksi ciri adalah berupa matriks ciri yang berisi vektor ciri untuk setiap perintah.
2. Pemodelan codebook
Setiap matriks ciri pada suatu perintah akan digabung menjadi satu matriks dan dikluster dengan menggunakan K-means
yang menghasilkan vektor centroid sebagai
codeword dari suatu perintah. Proses ini berlaku untuk setiap perintah. Hasil dari tahap ini adalah kumpulan codebook
sebanyak 8 dimana setiap codebook
mewakili perintah yang akan dikenali suaranya.
3. Pengujian
Pengujian akan dilakukan dengan data
testing yang telah direkam dengan sampling rate 11000 Hz. Banyaknya data testing
adalah 64 data dengan data untuk masing-masing perintah sebanyak 8. Setiap data
testing akan melewati tahap preprocessing
dan akan dikenali dengan menghitung jarak terdekat menggunakan jarak euclid terhadap model codebook yang telah dibuat sebelumnya. Dari hasil pengujian dapat dilihat bahwa akurasi paling tinggi adalah 93,75% pada saat frame 128. Untuk akurasi setiap frame dapat dilihat pada Gambar 8.
Frame yang diuji adalah 128, 256, dan 512 untuk setiap nilai k dan dihitung akurasinya.
0%
Percobaan dengan frame 128
Pada percobaan ini overlap dan koefisien yang dipakai untuk setiap perintah dan codebook masing-masing adalah 50% dan 13. Setiap perintah pada data testing
akan diuji dengan mencari jarak terdekat dengan model codebook dengan nilai k
sebesar 5, 10, 15, dan 32. Rataan tingkat akurasi untuk setiap perintah pada saat frame
128 dapat dilihat pada Tabel 1. Nilai akurasi tersebut didapatkan dengan merata-ratakan total dari nilai akurasi yang dihasilkan oleh setiap perintah untuk nilai k.
Tabel 1 Rataan nilai akurasi perintah suara pada frame 128
Perintah Akurasi
Tiga, Lima, Enam 100%
Delapan 96,75% Satu 96,75% Tujuh 87,5% Empat 65,62% Dua 61,65% Pada percobaan saat frame 128, nilai k
yang diuji yaitu 5, 10, 15, dan 32. Untuk grafik akurasi setiap nilai k dapat dilihat pada Gambar 9. Dari hasil percobaan tersebut didapatkan akurasi tertinggi saat nilai k sebesar 32 dengan akurasi sebesar 93,75%. Dari Gambar 9 dapat disimpulkan bahwa nilai k yang optimum dalam memodelkan codebook pada frame 128 adalah saat k bernilai 32.
Gambar 9 Akurasi setiap nilai k pada frame
128.
Percobaan dengan frame 256
Pada percobaan ini overlap dan koefisien yang dipakai untuk setiap perintah dan codebook masing-masing adalah 50% dan 13. Setiap perintah pada data testing
akan diuji dengan mencari jarak terdekat
dengan model codebook dengan nilai k
sebesar 5, 10, 15, dan 32. Rataan tingkat akurasi untuk setiap perintah pada saat frame
256 dapat dilihat pada Tabel 2. Nilai akurasi tersebut didapatkan dengan merata-ratakan total dari nilai akurasi yang dihasilkan oleh setiap perintah untuk nilai k.
Tabel 2 Rataan nilai akurasi perintah suara pada frame 256
Perintah Akurasi
Satu, Lima, Enam, Tujuh 100% Tiga, Delapan 96,75%
Dua 68,75% Empat 62,75% Pada percobaan saat frame 256, nilai k
yang diuji yaitu 5, 10, 15, dan 32. Untuk grafik akurasi setiap nilai k dapat dilihat pada Gambar 10. Dari hasil percobaan tersebut didapatkan akurasi tertinggi saat nilai k sebesar 32 dengan akurasi sebesar 92,70%. Dari Gambar 10 dapat disimpulkan bahwa nilai k yang optimum dalam memodelkan codebook pada frame 256 adalah saat k bernilai 32.
Gambar 10 Akurasi setiap nilai k pada frame
256.
Percobaan dengan frame 512
Pada percobaan ini overlap dan koefisien yang dipakai untuk setiap perintah dan codebook masing-masing adalah 50% dan 13. Setiap perintah pada data testing
akan diuji dengan mencari jarak terdekat dengan model codebook dengan nilai k
sebesar 5, 10, 15, dan 32. Rataan tingkat akurasi untuk setiap perintah pada saat frame
512 dapat dilihat pada Tabel 3. Nilai akurasi tersebut didapatkan dengan merata-ratakan total dari nilai akurasi yang dihasilkan oleh setiap perintah untuk nilai k.
0%
Tabel 3 Rataan nilai akurasi perintah suara pada frame 512
Perintah Akurasi
Tiga, Lima, Enam, Delapan 100%
Tujuh 96,75% Satu 87,5% Dua 84,34% Empat 56,25% Pada percobaan saat frame 512, nilai k
yang diuji yaitu 5, 10, 15, dan 32. Untuk grafik akurasi setiap nilai k dapat dilihat pada Gambar 11. Dari hasil percobaan tersebut didapatkan akurasi tertinggi saat nilai k sebesar 32 dengan akurasi sebesar 92,70%. Dari Gambar 11 dapat disimpulkan bahwa nilai k yang optimum dalam memodelkan codebook pada frame 512 adalah saat k bernilai 15.
Gambar 11 Akurasi setiap nilai k pada frame
512.
Percobaan dengan input suara secara langsung
Telah diuji untuk input suara secara langsung dengan menggunakan jenis suara yang berbeda dengan data testing. Percobaan ini dilakukan sebanyak tiga kali dengan
frame 128, 256, dan 512 dengan nilai k
sebanyak 5, 10, 15, dan 32. Rataan akurasi keseluruhan dapat dilihat pada Tabel 4. Nilai akurasi tersebut didapatkan dengan merata-ratakan total dari nilai akurasi yang dihasilkan oleh setiap nilai k dan untuk setiap frame.
Tabel 4 Rataan nilai akurasi dengan input
suara secara langsung
Perintah Akurasi
Satu, Dua, Tujuh, Delapan 100%
Lima 87,75%
Perintah Akurasi
Enam 85,5% Tiga 65,34% Empat 56,25% Pada percobaan menggunakan input
secara langsung kata yang paling sering dikenali adalah kata ‘Satu’, ‘Dua’, ‘Tujuh’, dan ‘Delapan’. Sedangkan kata yang jarang dikenali adalah kata ‘Lima’ dan ‘Enam’ dan kata yang hampir tidak dikenali adalah kata ‘Tiga’ dan ‘Empat’.
Pengembangan Sistem AI
1. Analisis objek
Dari hasil analisis, objek dibagi menjadi dua yaitu lingkungan dan agent. Lingkungan adalah objek yang berinteraksi secara tidak langsung terhadap agent (objek mati) sedangkan agent objek utama yang yang berinteraksi dengan lingkungan dan agent
lain (objek hidup). Hasil analisis objek yang terlibat pada pembuata AI futsal yaitu: • Lapangan futsal,
• Dua gawang, • Satu bola, • Delapan pemain, • Dua keeper,
• Dua tim,
• Empat formasi menyerang, • Empat formasi bertahan.
Lingkungan pada sistem AI futsal adalah lapangan futsal, dua gawang dan satu bola. Sedangkan agent pada sistem AI futsal adalah delapan pemain, dua keeper, dan dua tim. Sedangkan empat formasi menyerang dan empat formasi bertahan adalah sebagai objek pelengkap. Objek-objek tersebut akan dirancang ke dalam suatu gambar. Rancangan objek sistem AI futsal dapat dilihat pada Gambar 12.
Gambar 12 Rancangan objek sistem AI futsal.
Akurasi
Kluster
Pada Gambar 12 terlihat para agent
menempati posisi masing-masing, posisi tersebut dapat berubah jika permainan sudah dimulai, untuk mengetahui posisi agent
maka lapangan akan dibagi menjadi 18 region, Region tersebut dapat memonitori posisi agent pada saat agent bergerak. Pembagian region dapat dilihat pada Gambar 13.
Gambar 13 Region pada lapangan futsal. Region dapat diperluas atau dipersempit, tetapi harus diperhatikan juga posisi pemain jika region diperluas atau dipersempit, pada penelitian ini hanyak memakai luas region sebesar 6x3 atau 18 region. Setiap pemain dapat menjelajahi setiap region tergantung dari kondisi pada saat memasuki suatu state. Desain visual rancangan sistem AI futsal dapat dilihat pada Lampiran 1.
2. Steering behavior
Steering behavior berguna untuk
menjadikan perilaku agent seperti pemain futsal yang sebenarnya, dalam permainan futsal pergerakan setiap pemain tidak dapat diprediksi, untuk mengatasi hal ini perlu didesain steering behavior yang tepat. Dalam penelitian ini, steering behavior yang digunakan adalah seek, flee, arrive, dan
pursuit.
Desain steering behavior seek
Pada desain steering behavior seek, agent
akan dapat berpindah dari suatu posisi ke posisi lain dengan lurus, hal ini serupa dengan pergerakan manusia yang berpindah dari posisi asal ke posisi target. Ilustrasi pada saat agent menggunakan steering behavior seek dapat dilihat pada Gambar 14.
Desain steering behavior flee
Pada desain steering behavior flee, agent
dapat menghindari suatu target dan berpindah ke posisi lain, hal ini serupa dengan seorang pemain futsal yang menghindari lawan pada saat dihadang.
Agent dapat menghindari agent lain atau menghidari suatu posisi yang menurutnya berbahaya. Ilustrasi pada saat agent
menggunakan steering behavior flee dapat dilihat pada Gambar 15. Pada Gambar 15 terdapat dua garis putus-putus, yang pertama garis putus-putus ke arah Spot Z, yang kedua adalah garis putus-putus ke arah Clear Spot. Skenario pada ilustrasi ini adalah ketika Agent X mendekati Agent Y dia akan menghindar ke arah Spot Z, ternyata Spot Z adalah posisi yang berbahaya, maka dia akan berpindah ke Clear Spot.
Gambar 15 Hasil desain steering behavior flee.
Desain steering behavior arrive
Pada desain steering behavior arrive,
agent akan berpindah dari suatu posisi ke posisi lain dengan berbelok atau gerakan membentuk lingkaran, hal ini serupa dengan pemain futsal yang sedang mencari spot
yang bagus agar mendapat passing dari temannya. Ilustrasi pada saat agent
menggunakan steering behavior arrive dapat dilihat pada Gambar 16.
Gambar 16 Hasil desain steering behavior arrive.
Pada Gambar 16 terdapat garis putus-putus ke arah Clear Spot, garis putus-putus-putus-putus menggambarkan pergerakan yang disertai dengan perlambatan (deceleration) ke arah Clear Spot.
Desain steering behavior pursuit
Pada desain steering behavior pursuit,
agent akan berpindah dari suatu posisi ke posisi lain dengan maksud menghadang
agent lain yang bergerak ke arah yang sama, hal ini serupa dengan seorang pemain yang sedang memotong (intercept) pergerakan lawan. Ilustrasi pada saat agent
menggunakan steering behavior pursuit
dapat dilihat pada Gambar 17. Pada Gambar 17 terdapat dua agent yaitu Agent T dan Agent Y yang bersebrangan. Agent T ingin berlari ke arah Spot Z sedangkan Agent Y ingin memotong pergerakan Agent T, dalam hal ini agent yang menggunakan steering behavior pursuit adalah Agent Y. Pada Agent T terdapat garis putus-putus yang menggambarkan perlambatan (deceleration) sedangkan pada Agent Y tidak ada perlambatan.
Gambar 17 Hasil desain steering behavior pursuit.
3. Desain state
Desain state terbagi menjadi tiga bagian yaitu desain state untuk agent, desain state
untuk keeper, dan desain state untuk tim. Pada state tim terdapat dua sub state yaitu, sub state general dan sub state formasi. Desain state berguna untuk menentukan apa yang harus dilakukan oleh agent terhadap kondisi yang ada (trigger). Setiap state yang didesain dapat menggunakan steering behavior. Sebuah state dapat menggunakan banyak steering behavior atau tidak menggunakannya sama sekali.
Desain state pemain
Dalam permainan futsal sederhana, pemain hanya dapat melakukan beberapa
state yaitu, chase ball, kick ball, wait, support attacker,mark supporting opponent, return to home region, dan receive ball. Daftar penggunaan steering behavior pada setiap state dapat dilihat pada Tabel 5.
Tabel 5 Daftar state pemain dan steering behavior-nya.
State Steering behavior
Chase ball Seek, Arrive
Wait Tidak ada
Support Attacker Arrive
Return to home region
Seek, Arrive
Kick ball Tidak ada
Receive ball Pursuit
Mark supporting opponent
Interpose, pursuit
(pendukung) Sedangkan untuk state pemain dapat dilihat pada Gambar 18.
Gambar 18 Diagram state pemain. Pada Gambar 18 terdapat inisialisasi
trigger yaitu A1, A2, A3, A4, A5, A6, A7, A8, A9, dan A10 Penjelasan mengenai inisialisasi trigger dapat dilihat pada Tabel 6.
Tabel 6 Penjelasan inisialisasi triggerstate
pemain
Trigger Penjelasan
A1 Dalam kontrol
A2 Tidak dalam kontrol
A3 Dekat jarak tembak
A4 Bola masuk ke
gawang
A5 Tim tidak dalam
Trigger Penjelasan
A6 Tim dalam kontrol A8 Dalam posisi bagus A9 Jauh dari jarak
tembak
A10 Setelah terjadi goal
Pada Gambar 18 state Kickoff dilingkari tebal, ini menandakan bahwa state Kickoff
adalah sebagai start state.
Desain statekeeper
Dalam permainan futsal sederhana,
keeper hanya dapat melakukan beberapa
state yaitu, tend goal, put ball bak, return to home region,dan intercept ball. Daftar penggunaan steering behavior pada state keeper dapat dilihat pada Tabel 7.
Tabel 7 Daftar state keeper dan steering behavior-nya
State Steering behavior
Tend goal Interpose
Intercept ball Pursuit
Return home Arrive
Put ball back Arrive
Sedangkan diagram state keeper dapat dilihat pada Gambar 19.
Gambar 19 Diagram state keeper. Pada Gambar 19 terdapat inisial kondisi yaitu B1, B2, B3, B4 dan B5 . B1 adalah bola sedang ditangkap, B2 adalah dalam jarak intercept, B3 adalah jauh dari gawang, B4 adalah tidak dalam kontrol dan B5 adalah bola tidak tertangkap. Daftar state tim dan formasi serta regionnya dapat dilihat pada Lampiran 2.
4. Desain diagram class
Dari hasil desain objek terdapat 6 class
untuk lingkungan dan 10 class untuk agent. Dari desain class yang dihasilkan, terdapat
class untuk lingkungan meliputi untuk
LapanganFutsal, Gawang, TeamFutsal,
Bola, StateMachine, dan Formation. Class LapanganFutsal
Class LapanganFutsal adalah class parent dari lingkungan, karena semua komponen (bola, gawang, dan tim) akan menempati lapangan dan automatis akan mewarisi semua sifat pada lapangan. Pada
class LapanganFutsal terdapat dua fungsi (method) utama, yaitu render dan update.
Render berfungsi untuk menggambar
lapangan dan komponen lain yang ada pada lapangan dengan menggunakan library
CGDI yang terdapat dari buku Programming AI by Example.
Class Gawang
Class Gawang hanya mempunyai satu fungsi (method) utama yaitu Scored. Method
ini untuk memeriksa apakah bola masuk ke gawang atau tidak, pada kondisi class seperti ini maka class Gawang membutuhkan
passing parameter dari class Bola. Class Bola
Class Bola mempunyai enam fungsi (method) utama yaitu Update, Render, Kick,
FuturePosition, Trap, dan
TimeToCoverDistance. Update berfungsi untuk menggambar bentuk bola sedangkan
render berfungsi untuk memproses aliran bola dari frame ke frame. Method Kick
berfungsi untuk memproses arah dan gaya (force) pada saat bola ditendang. Sedangkan
method FuturePosition berfungsi untuk memproses waktu (time) pergerakan bola pada saat ditendang. Method Trap berfungsi untuk memproses bola yang akan melewati garis untuk persiapan collision pada dinding.
Method TimeToCoverDistance berguna
untuk kondisi bola yang baru ditendang agar tidak dapat ditendang oleh pemain lain. Class TeamFutsal
Class TeamFutsal mempunyai empat
method utama yaitu Update, Render, CanShoot, dan RequestPass. Method Render
berfungsi untuk menggambar pemain yang nantinya akan dilakukan oleh class Pemain
dan Keeper. Sedangkan method Update
berfungsi untuk memproses pergerakan
agent secara keseluruhan dari frame ke
frame. Method CanShoot berfungsi untuk memeriksa apakah agent dapat menendang bola atau tidak. Method RequestPass
berfungsi untuk meminta bola kepada agent
0%
Satu Dua Tiga Empat
RequestPass mempunyai parameter
BasisPemain. Class StateMachine
Class StateMachine mempunyai banyak
method untuk masing-masing state yaitu,
Enter, Execute, Exit, dan onMessage. Pada penggunaannya class ini memakai design pattern singleton. Design pattern singleton
berguna untuk memastikan bahwa hanya ada satu instance yang dapat mengakses class
tersebut, hal ini diperlukan untuk membuat
resource memory tidak terlalu berat. Class Formation
Class Formation adalah penurunan dari
class State. Class Formation mempunyai
method yang sama dengan class State hanya pada tiap-tiap method Enter dilakukan perubahan region.
Desain diagram class dapat dilihat pada Lampiran 3.
5. Pengujian sistem AI
Pengujian dilakukan dengan mencatat pergerakan state pemain dan state keeper
selama 15 menit. Hasil pencatatan kesesuaian state pemain dapat dilihat pada Lampiran 4. Sedangkan hasil pencatatan kesesuaian state keeper dapat dilihat pada Lampiran 5. Untuk pencatatan kesesuaian
state tim dapat dilihat pada Tabel 8.
Tabel 8 Hasil pengujian kesesuaian state tim
State Jumlah
Transisi
Kesesuaian
Kick off 5 Sesuai
2-2 Defence 5 Sesuai
2-2 Offence 5 Sesuai
1-2-1
4-0 Defence 5 Sesuai
4-0 Offence 5 Tidak sesuai
1-3 Offence 0 Error
1-3 Defence 0 Error
Dari hasil pencatatan untuk pergerakan
state pemain pada Lampiran 4, terlihat bahwa rentang waktu 1-5 menit dan 5-10 menit ada dua state yang pergerakannya tidak sesuai, sedangkan pada rentang waktu 10-15 menit ada tiga state yang pergerakannya tidak sesuai. Kesalahan dapat terjadi karena ketidaksesuaian agent dalam mengeksekusi state. Akurasi dari pengujian
pergerakan state pemain adalah sebesar 71%. Sedangkan untuk pencatatan state keeper
akurasi mencapai 100%.
Dari hasil pencatatan terlihat bahwa ada
state formasi yang ternyata error, hal ini dapat disebabkan region untuk agent tidak terdefinisi yang menyebabkan overflow pada sistem (looping forever). Akurasi pengujian pergerakan state tim terhadap formasi mencapai 75%.
Integrasi
Langkah terakhir dari penelitian ini adalah pengintegrasian sistem AI dan sistem pengenalan suara agar kedua sistem dapat berinteraksi. Pengintegrasian dilakukan dengan cara menuliskan output pada sistem pengenalan suara yang dibuat dengan MATLAB ke dalam format text (.txt). File text akan dibaca oleh C++ sebagai input
yang akan menjadi kondisi pada sistem. Daftar perintah suara untuk formasi offence
dapat dilihat pada Lampiran 6. Sedangkan untuk formasi defence dapat dilihat pada Lampiran 7.
Hasil Uji Sistem Automatisasi Perintah Suara
Pengujian program dimulai dengan memberikan perintah sebanyak 10 kali transisi untuk setiap perintah pada formasi
offence dan defence. Frame adalah 128 dan 256 dengan nilai k sebesar 32, dimana seperti yang telah diketahui bahwa frame dan nilai k
tersebut selalu mencapai akurasi yang tinggi pada pengujian sistem pengenalan suara. Grafik hasil pengujian untuk perintah suara formasi offence pada frame 128 dapat dilihat pada Gambar 20. Sedangkan grafik akurasi perintah suara formasi defence pada frame
256 dapat dilihat pada Gambar 21.
0%
Satu Dua Tiga Empat
0%
Pada hasil pengujian untuk pergerakan formasi offence, perintah yang menghasilkan akurasi tertinggi adalah perintah ‘Satu’ pada formasi offence sebesar 100%, kata ‘Lima’ dan ‘Enam’ untuk formasi defence sebesar 100%. Artinya dalam 10 kali percobaan transisi dengan menyebut kata ‘Satu’ semuanya berhasil. Total akurasi perintah suara terhadap formasi offence pada frame
128 adalah 92,75%. Sedangkan total akurasi perintah suara terhadap formasi defence
pada frame 128 adalah 73%.
Pada hasil pengujian dengan frame 256 dengan nilai k sebesar 32 untuk formasi
offence dapat dilihat pada Gambar 22. Sedangkan untuk formasi defence dapat dilihat pada Gambar 23.
Pada hasil pengujian untuk pergerakan formasi offence, perintah yang menghasilkan akurasi tertinggi adalah perintah ‘Satu’ sebesar 100%. Artinya dalam 10 kali percobaan transisi dengan menyebut kata ‘Satu’ semuanya berhasil. Total akurasi perintah suara terhadap formasi offence pada
frame 256 adalah 93%. Sedangkan total akurasi perintah suara terhadap formasi
defence pada frame 256 adalah 73,5%. Dari hasil pengujian pada saat frame128 dan frame 256, ternyata akurasi tertinggi dihasilkan pada saat frame 256 dengan akurasi pada formasi offence 93% dan pada formasi defence 73,5%. Dapat disimpulkan bahwa frame yang baik untuk digunakan pada sistem automatisasi perintah suara untuk kendali formasi pada permainan futsal adalah pada saat frame 256
KESIMPULAN DAN SARAN Kesimpulan
Penelitian ini telah berhasil mengimplementasikan pemodelan agent
dalam permainan futsal, serta dapat mengontrol agent tersebut melalui suara.
Pada sistem pengenalan suara akurasi tertinggi adalah pada saat frame 128 dan 256 dengan masing-masing akurasi sebesar 93,74% dan 92% sedangkan untuk frame
512 akurasi mencapai 75%. Dengan hasil akurasi pada percobaan ini maka dapat disimpulkan frame yang baik untuk memodelkan codebook adalah 128 dan 256.
Untuk pengujian masing-masing frame
telah dihitung akurasi berdasarkan nilai k. Akurasi tertinggi pada frame 128 adalah pada saat nilai k 32 sebesar 93,75%, sedangkan akurasi tertinggi pada frame 256 adalah pada saat nilai k 32 sebesar 92%. Pada frame 512 akurasi tertinggi pada saat nilai k 15 sebesar 92%. Dengan hasil akurasi pada percobaan ini dapat disimpulkan frame
yang baik untuk digunakan dalam sistem automatisasi perintah suara adalah 128 dan 256 dengan nilai k sebesar 32 jika dilihat dari akurasi tertinggi.
Pada sistem AI akurasi untuk pergerakan
state pemain adalah sebesar 71% , akurasi untuk pergerakan state keeper adalah sebesar 100%.
Hasil akurasi untuk sistem yang telah diintegrasikan adalah pada frame 128
Perintah Akurasi
100% 100%
0%
92%
Gambar 21 Grafik akurasi pergerakan state
dengan nilai k sebesar 32 untuk pengujian formasi offence sebesar 92,75% dan untuk pengujian formasi defence sebesar 78%. Sedangkan hasil akurasi pada frame 256 dengan nilai k sebesar 32 untuk pengujian formasi offence sebesar 93% dan untuk pengujian formasi defence sebesar 73,5%.
Nilai akurasi tertinggi berdasarkan perintah suara adalah pada frame 128 dengan nilai k sebesar 32 adalah pada saat perintah ‘Satu’, ‘Lima’, dan ‘Enam’ sebesar 100%, sedangkan pada frame 256 dengan nilai k sebesar 32 pada saat perintah ‘Satu’, ‘Lima’, dan ‘Enam’ sebesar 100%.
Saran
Agent yang dimodelkan masih dapat dikembangkan lagi dengan cara menambah
steering behaviornya dan menambah
statenya. Perintah suara dalam penelitian ini hanya sampai penggerakan state formasi dan masih dapat dikembangkan lebih lanjut. Saran-saran yang dapat diberikan untuk penelitian lebih lanjut adalah:
1. Permainan dapat dikembangkan dari futsal menjadi sepak bola.
2. Agent dapat dikembangkan agar
menjadi lebih cerdas dengan menambah
steering behaviornya dan menambah pergerakan statenya.
3. Pada sistem ini harus menggunakan dua sistem, pada penelitian selanjutnya dapat dikembangkan dengan hanya menggunakan satu sistem saja.
4. Perintah suara dapat dikembangkan bukan hanya menggerakkan state
formasi, tetapi juga stateagent.
5. Formasi yang diwakili oleh perintah ‘Tujuh’ masih terdapat error, hal ini disebabkan karena kurangnya jumlah region pada lapangan. Jumlah region harus ditambah agar agent tidak keluar batas lapangan dalam pergerakannya. Dengan adanya penambahan region maka diperlukan pengaturan posisi awal
agent.
DAFTARPUSTAKA
Braude, Eric. 2004. Software Design: From Programming To Architecture. Boston University: John Willey & Sons, Inc. Buckland, Mat. 2005. Programming Game
AI by Example. United State: Wordware Publishing, Inc.
Do MN.1994. Digital Signal Processing Mini-Project: An Automatic Speaker
Recognition System. Audio Visual
Communication Labolatory, Swiss Federal Institute of Technology, Lausanne,
Switzerland.http://www.ifp.illinois.edu/~ minhdo/teaching/speaker_recognition/
[19 Januari 2011].
Jurafsky D, Martin JH. 2000. Speech and Languange Processing An Introduction to Natural Languange Processing, Computational Linguistic and Speech Recognition. New Jersey: Prentice Hall. Moore, D.W. 1994. Automatic speech
recognition for electronic warfare verbal reports. Unpublished master’s thesis, Virginia Polytechnic Institute and State University, Blacksburg, VA.
Oberteuffer, J.A. 1995. Commercial applications of speech interface technology: An industry at the threshold. In Proceedings of the National Academy of Science. Vol. 92, pp. 10007-10010. Pelton GE. 1993. Voice Processing. United
State: McGraw-Hill, Inc.
Lampiran 1 Hasil visual rancangan sistem AI futsal
Lampiran 2 Daftar state tim dan formasiserta regionnya
State Region Tim
Kick Off Tidak ada KOM, MAT
2-2 Offence {16, 9, 11, 6, 4} KOM
2-2 Offence {1,14,12,9,11} MAT
1-2-1 Offence {16,4,9,11,13} KOM
1-2-1 Offence {1,4,9,11,13} MAT
4-0 Offence {1, 12,13, 14, 10} KOM
4-0 Offence {16, 3, 4, 5, 7} MAT
2-2 Defence {1, 3, 5, 0, 2} MAT
2-2 Defence {16, 12, 14, 15, 17} KOM 1-2-1 Defence {16, 7, 9, 11, 14} KOM 1-2-1 Defence {1, 10, 6, 8, 4} MAT 4-0 Defence {16, 12, 14, 13, 10} KOM
4-0 Defence {1, 3, 4, 5, 7} MAT
1-3 Offence {16, 4, 6, 7, 8} KOM
1-3 Offence {1, 13,9, 10, 11} MAT
1-3 Defence {16, 10, 12, 13, 14} KOM
1-3 Defence {1, 7, 3,4,5} MAT
Lampiran 3 Desain diagram class
LapanganFutsal
+Update(): void +Render(): void
Gawang
+Scored(Bola*): bool
+Update(): void +Render(): void
+Kick(Direction, Force): void +FuturePosition(time): Vector2D +Trap(): void
+TimeToCove <Parameters>
TeamFutsal
+Update(): void +Render(): void
+CanShoot(From, To, Heading, Power): bool +RequestPass(BasisPemain*): void
Lampiran 3 Lanjutan
StateMachine
BasisPemain
-m_pSteering:SteeringBehaviors* -m_pTeam: TeamFutsal*
-m_iHomeRegion:int +CanPassForward(): bool +CanPassBackward(): bool +IsThreatened(): bool
+BallWithinPlayerRange():bool +BallWithinKickRange():bool +BallWithinReceiveRange():bool +InHomeRegion():bool
+isWithinSupportSpotRange():bool +isWithinTargetRange():bool
+isClosestTeamMemberToBall():bool +isClosestPlayerOnPitchToBall():bool +AtTarget():bool
+isControllingPlayer():bool
SteeringBehaviors
-m_pBall: Bola*
-m_pPitch : LapanganFutsal* -m_pPlayer : BasisPemain* +Calculate(): Vector2D +ArriveOn()
+ArriveOff() +SeekOn() +SeekOff() +PursuitOn() +PursuitOff() +InterposeOn() +InterposeOff() +SeparationOn() +SeparationOff()
Keeper +Update(): void +Render(): void
+HandleMessage(telegram): bool
Pemain
+Update(): void +Render(): void
+HandleMessage(telegram): bool
TeamFutsal
+Update(): void +Render(): void
+CanShoot(From, To, Heading, Power): bool +RequestPass(BasisPemain*): void
+GetSupportSpot(): Vector2D +InControl(): bool
+Receiver(): BasisPemain* +SetReceiver():
+SupportingPlayer()
+ControllingPlayer(): BasisPemain* +SetControllingPlayer()
+PlayerClosestToBall():BasisPemain*
MessageDispatcher
MovingEntity
+Update(): void +Render(): void
+HandleMessage(telegram): bool
Lampiran 4 Hasil pencatatan kesesuaian state pemain
State Waktu Kesesuaian
Chase ball 1-5 menit Sesuai
Chase ball 5-10 menit Sesuai
Chase ball 10-15 menit Tidak sesuai
Support attacker
1-5 menit Tidak sesuai
Support attacker
5-10 menit Sesuai
Support attacker
10-15 menit Tidak sesuai
Return to home region
1-5 menit Sesuai
Return to home region
5-10 menit Sesuai
Return to home region
10-15 menit Sesuai
Wait 1-5 menit Sesuai
Wait 5-10 menit Sesuai
Wait 10-15 menit Sesuai
Mark supporting
opponents
1-5 menit Sesuai
Mark supporting
opponents
5-10 menit Tidak sesuai
Mark supporting
opponents
10-15 menit Tidak sesuai
Kick ball 1-5 menit Sesuai
Kick ball 5-10 menit Sesuai
Kick ball 10-15 menit Tidak sesuai
Receive ball
1-5 menit Sesuai
Receive ball
5-10 menit Sesuai
Receive ball
Lampiran 5 Hasil pencatatan kesesuaian statekeeper
State Waktu Kesesuaian
Tend goal 1-5 menit Sesuai
Tend goal 5-10 menit Sesuai
Tend goal 10-15 menit Sesuai
Intercept ball 1-5 menit Sesuai
Intercept ball 5-10 menit Sesuai
Intercept ball 10-15 menit Sesuai
Return home 1-5 menit Sesuai
Return home 5-10 menit Sesuai
Return home 10-15 menit Sesuai
Put ball back 1-5 menit Sesuai
Put ball back 5-10 menit Sesuai
Put ball back 10-15 menit Sesuai Lampiran 6 Daftar perintah suara untuk formasi offence
Perintah Previous state
Next state
satu 2-2 Offence
-dua 2-2 Offence 1-2-1 Offence
tiga 2-2 Offence 1-3 Offence
empat 2-2 Offence 4-0 Offence
satu 1-2-1 Offence 2-2 Offence
dua 1-2-1 Offence -
tiga 1-2-1 Offence 1-3 Offence
empat 1-2-1 Offence 4-0 Offence
satu 1-3 Offence 2-2 Offence
dua 1-3 Offence 1-2-1 Offence
tiga 1-3 Offence -
empat 1-3 Offence 4-0 Offence
satu 4-0 Offence 2-2 Offence
dua 4-0 Offence 1-2-1 Offence
tiga 4-0 Offence 1-3 Offence
empat 4-0 Offence -
lima Defending 2-2 Defence
enam Defending 1-2-1 Defence
tujuh Defending 1-3 Defence
delapan Defending 4-0 Defence
Lampiran 7 Daftar perintah suara untuk formasi defence
Perintah Previous state Next state
lima 2-2 Defence
-enam 2-2 Defence 1-2-1 Defence
tujuh 2-2 Defence 1-3 Defence
delapan 2-2 Defence 4-0 Defence
lima 1-2-1 Defence 2-2 Defence
enam 1-2-1 Defence -
tujuh 1-2-1 Defence 1-3 Defence
delapan 1-2-1 Defence 4-0 Defence
lima 1-3 Defence 2-2 Defence
enam 1-3 Defemce 1-2-1 Defence
Perintah Previous state Next state lima 4-0 Defence 2-2 Defence
enam 4-0 Defence 1-2-1 Defence
tujuh 4-0 Defence 1-3 Defence
delapan 4-0 Defence - Satu Attacking 2-2 Offence
Dua Attacking 1-2-1 Offence
Tiga Attacking 1-3 Offence
empat Attacking 4-0 Offence