BAB 2 LANDASAN TEORI 2.1 Teori Umum 2.1.1 Artificial

advertisement
BAB 2
LANDASAN TEORI
2.1
Teori Umum
2.1.1
Artificial Intelligence
Artificial Intelligence atau kecerdasan buatan merupakan kecerdasan
yang dibuat oleh manusia dan ditanamkan dalam sebuah mesin atau teknologi
tertentu sehingga mesin tersebut dapat melakukan suatu pekerjaan seperti yang
dapat dilakukan oleh manusia.
Ada 4 pendekatan mengenai Artificial Intelligence (Russell, & Norvig,
2010, p2) yaitu sebagai berikut:
1. Dapat berpikir seperti manusia
2. Dapat bertindak seperti manusia
3. Dapat berpikir rasional
4. Dapat bertindak rasional
Berdasarkan 4 pendekatan Artificial Intelligence di atas maka dapat
digolongkan menjadi 2 bagian, yaitu : pendekatan yang berpusat di sekitar
manusia dan pendekatan yang berpusat terhadap hal yang rasional. Pendekatan
yang berpusat pada manusia harus menjadi ilmu empiris yang melibatkan
hipotesis dan eksperimental konfirmasi.Sedangkan pendekatan rasionalis
melibatkan kombinasi matematika dan rekayasa.
Pada teknologi zaman sekarang ini, aplikasi sistem yang memiliki
kecerdasan buatan atau biasa disebut Artificial Intelligence (AI) sudah banyak
digunakan.Sehingga sudah tidak heran lagi bahwa masyarakat sudah banyak
9
10
yang mengenal kemampuan sistem kecerdasan buatan ini. Contohnya saja
teknologi yang memiliki sistem kecerdasan buatan atau Artificial Intelligence
yang biasa digunakan sebagai peralatan rumah tangga, antara lain :Air
Conditioner, mesin cuci, kulkas dan lain-lain.
Artificial Intelligence memiliki ruang lingkup didasarkan pada output
yang diberikan (Kusumadewi, 2003, p7), antara lain :
a. Sistem Pakar (Expert systems). Disini komputer digunakan sebagai sarana
penyimpanan
pengetahuan
para
pakar.
Sehingga
komputer
dapat
memanfaatkan pengetahuan tersebut untuk menyelesaikan masalah sesuai
dengan kemampuan para pakar.
b. Pengolahan Bahasa Alami (Natural Language Processing). Disini komputer
diberikan kemampuan untuk mengolah bahasa alami manusia, agar
diharapkan user dapat berkomunikasi dengan komputer dengan bahasa
sehari-hari.
c. Pengenalan Ucapan (Speech Recognition). Disini komputer diharapkan dapat
mengenal ucapan yang dikeluarkan oleh user, yang selanjutnya diolah untuk
mempermudah komunikasi user dengan komputer menggunakan suara.
d. Robotika dan Sistem Sensor (Robotics & Sensory Systems). Disini komputer
diharapkan dapat melakukan sesuatu seperti manusia, dibantu dengan
dukungan perangkat keras sebagai agen dan sensor sebagai indera.
e. Computer Vision. Disini komputer mencoba untuk dapat menginterpretasikan
gambar atau objek-objek yang tampak melalui komputer.
f. Intelligent Computer-aided Instruction. Disini komputer digunakan untuk
menjadi pelatih dan pengajar.
11
g. Game Playing.
Dari keseluruhan cabang AI yang telah disebutkan, maka salah satu
cabang Artificial Intelligence (AI) yang akan dibahas dalam penelitian ini
yaituSpeech Recognition (Pengenalan Ucapan) atau biasa disebut juga Speech-toText.
2.1.2
Java
Java merupakan perangkat lunak produksi Sun Microsoft Inc. yang
pertama kali dikembangkan oleh James Goslingpada tahun 1990-an (Irawan,
2011, p1).Java digunakan untuk pemrograman beberapa tujuan (multi purpose),
multiplatform (dapat berjalan di beberapa sistem operasi), mudah dipelajari dan
powerful.Aplikasi-aplikasi yang dapat dibuat dengan Java, meliputi web
programming (pemrograman web), Desktop Programming (pemrograman
desktop), Mobile Programming (pemrograman mobile / handphone).
Perangkat lunak Java sintaknya (tulisannya) mirip dengan bahasa C,
karena bahasa Java dibuat memakai bahasa pemrograman C, tetapi bahasa Java
menyempurnakan kekurangan C. Pertama rilis, Java disebut Java Development
Kit (JDK), hingga JDK Versi 2 atau dikenal dengan Java 2, yang dibagi menjadi
3 edisi (Supardi, 2011, p1-2), yaitu :
1. Java 2 Standard Edition (J2SE), merupakan edisi atau teknologi untuk
pemrograman desktop atau aplikasi layar (console). J2SE juga merupakan
perangkat lunak dasar yang harus diinstal sebelum memakai J2EE dan J2ME.
12
2. Java 2 Enterprise Edition (J2EE), merupakan edisi atau teknologi untuk
pemrograman enterprise, seperti pemrograman database, JSP, Beans, dan
lain-lainnya.
3. Java 2 Micro Edition (J2ME), merupakan edisi atau teknologi untuk
pemrograman mobile atau handphone dan peralatan kecil (small device).
Selain itu juga terdapat Java Virtual Machine (JVM) yang akan didapat
secara otomatis ketika menginstall Java ke dalam sistem komputer. Di dalam
JVM tersebut terdapat Java Runtime Environment (JRE). Program yang diketik
dengan bahasa Java memiliki ekstensi .java, akan menghasilkan file dengan
ekstensi .class jika dikompilasi. File .class (kelas) dapat dijalankan dengan
memanfaatkan JRE.
2.2
Teori Khusus
2.2.1
Speech Recognition
Speech recognition atau pengenalan suara adalah proses otomatis
mengenali kata-kata yang diucapkan kemudian mengubahnya ke dalam bentuk
teks (Mains, 2001, p3). Dengan kata lain speech recognition merupakan suatu
proses yang memungkinkan komputer untuk mengenali apa yang diucapkan oleh
seseorang lalu mengubahnya ke bentuk tulisan. Input data yang diterima berupa
suara atau ucapan manusia, kemudian sistem akan mengidentifikasi kata atau
kalimat yang diucapkan dan menghasilkan keluaran atau output berupa teks yang
sesuai dengan apa yang diucapkan. Input yang berupa kata-kata tersebut diubah
menjadi sinyal digital dengan cara mengubah gelombang suara menjadi
sekumpulan angka lalu disesuaikan dengan kode-kode tertentu dan dicocokan
13
dengan suatu pola yang tersimpan dalam suatu perangkat. Untuk setiap ucapan
yang berbeda akan dihasilkan pola ciri yang berbeda.
Penganalisis sintaks akan melakukan transformasi sinyal ucapan
daridomain waktu ke domain frekuensi. Pada domain frekuensi, untuk kurun
waktuyang singkat, setiap sinyal dapat terlihat memiliki ciri-ciri yang unik.
Namundemikian, pengucapan suatu unit bunyi ucapan atau fonemseringkali
bervariasi antarorang yang berbeda, juga terpengaruh oleh berbagai faktor,
seperti : fonem-fonem disekitarnya, kondisiemosi, noise, dan faktor-faktor
lainnya. Sistem speech recognition akanmelakukan pengenalan untuk setiap unit
bunyi pembentuk ucapan ataufonem,selanjutnya mencoba mencari kemungkinan
kombinasi hasil ucapan yang palingdapat diterima. Bentuk sistemspeech
recognition yang sederhana adalah sistem yang hanya dapatmengenal sejumlah
kata yang jumlahnya terbatas.Sistem ini biasanya lebih akuratdan lebih mudah
dilatih, tetapi tidak dapat mengenal kata yang berada di luar kosakata yang
pernah diajarkan.
Ada dua jenis atau tipe speech recognition jika dilihat dari
ketergantungan pembicara (Mains, 2001, p5), antara lain :
a. Independent
Speech
tanpaterpengaruh
Recognition,
dengan
siapa
yaitu
yang
sistem
berbicara,
pengenal
tetapi
ucapan
mempunyai
keterbatasan dalamjumlah kosakata. Model ini akan mencocokan setiap
ucapan dengan kata yangdikenali dan memilih yang ”sepertinya” cocok.
Untuk mendapatkan kecocokan kata yang diucapkan maka digunakan model
statistic yang dikenal dengan namaHidden Markov Model (HMM).
14
b. Dependent
Speech
Recognition,
yaitu
sistem
pengenal
ucapan
yangmemerlukan pelatihan khusus dari pembicara, dimana hasil pelatihan
dari masing-masingpembicara akan disimpan dalam sebuah profil. Profil
inilah yang nantinyadigunakan untuk berinteraksi dengan sistem pengenal
ucapan dan sistem akanbergantung siapa yang berbicara. Sistem ini biasanya
lebih mudah untukdikembangkan, dimana contoh suara sudah dibuat
sebelumnya dan disimpandalam database atau basis data dan jumlah
kosakatanya
lebih
besar
dibandingkandengan
independent
speech
recognition. Proses pengenalan ucapan dengan caramembandingkan ucapan
pembicara dengan contoh suara yang sudah ada.
2.2.2
Hidden Markov Model
Hidden Markov Model atau HMMadalah suatu proses stokastik
ganda(ketidakpastian yang menggunakan data-data statistik) dari sebuah sistem
yang diasumsikan sebuah proses Markov dengan salah satu parameter yang tidak
dapat diobservasi (hidden). Proses yang tidak dapat diobservasi ini hanya dapat
diobservasi melalui proses yang dapat diobservasi.
Teori dasar rantai Markov telah diketahui oleh seorang ahli Matematika
dan Insinyur sekitar tahun 1980, tetapi hanya dalam dekade terkahir yang telah
diterapkan secara eksplisit untuk masalah dalam speech processing. Salah satu
alasan utama mengapa speech model berdasarkan pada Markov chains atau rantai
Markov belum dikembangkan sampai saat ini adalah kurangnya metode untuk
mengoptimalkan parameter dari Markov model untuk menyesuaikan pola sinyal
yang diamati. Perbaikan lanjutan dalam teori dan implementasi dari teknik
15
Markov modelling telah dikembangkan dan ditingkatkan, sehingga telah sering
digunakan atau diterapkan untuk masalah seperti speech recognition (Handel,
2008, p1).
Hidden Markov Model menggabungkan dua atau lebih rantai Markov
dengan hanya satu rantai yang terdiri dari state yang dapat diobservasi dan rantai
lainnya membentuk state yang tidak dapat diobservasi (hidden), yang
mempengaruhi hasil dari state yang dapat diobservasi.
Gambar 2.1 Ilustrasi HMM
Jika X= {X1, X2, … ,XT} adalah sebuah proses Markov, dan O= {O1, O2,
… , OT} adalah sebuah fungsi dari X, maka Xadalah sebuah HMMyang dapat
diobservasi melalui O, atau dapat ditulis O= f(X) untuk sebuah fungsi f.
Parameter Xmenyatakan state process yang tersembunyi (hidden), sementara
parameter Omenyatakan observation process yang dapat diobservasi (Handel,
2008, p4).
16
2.2.3
Pocketsphinx
Pocketsphinx merupakan libraryyang digunakanuntuk speech recognition
versi mobile application dari sistem Sphinx yang dikembangkan oleh Carniege
Mellon University(CMUSphinx). Atau dengan kata lain fungsi Pocketsphinx itu
sendiriadalah sebagai engine atau library yang memudahkan developer yang
ingin mengembangkan aplikasi mobile di bidang speech recognition. Pada
Pocketsphinx, metode yang digunakan dalam speech recognition adalah Hidden
Markov Model (HMM).
2.2.4
Pengenalan Android
Android merupakan sebuah sistem operasi perangkat mobile berbasis
Linux yang mencakup sistem operasi, middleware, dan aplikasi. Beberapa
pengertian lain dari Android (Supardi, 2011, p2-3),yaitu :
-
Merupakan platform terbuka atau biasa disebut open source bagi para
pengembang (Programmer) untuk membuat aplikasi.
-
Merupakan sistem operasi yang dibeli Google Inc. dari Android Inc.
-
Bukan bahasa pemrograman, akan tetapi hanya menyediakan lingkungan
hidup atau run time environment yang disebut DVM (Dalvik Virtual
Machine)yang telah dioptimasi untuk device atau alat dengan sistem memori
yang kecil.
Untuk mengembangkan Android, dibentuk OHA (Open Handset Aliance),
konsorsium dari 34 perusahaan hardware (peranti keras), software (perangkat
lunak), dan telekomunikasi, termasuk Google, HTC, Intel, Motorola, Qualcomm,
T-Mobile,dan Nvidia.
17
Pada tanggal 5 November 2007, Android dirilis pertama kali.Android
bersama OHA menyatakan mendukung pengembangan open source pada
perangkat mobile.
Sekitar bulan September 2007, Google mengenalkan Nexus One, salah
satu
jenis
smartphone
yang
menggunakan
Android
sebagai
sistem
operasinya.Telepon seluler ini diproduksi oleh HTC Corp. dan tersedia di
pasaran pada tanggal 5 Januari 2008.
Pada tanggal 9 Desember 2008, diumumkan anggota baru yang
bergabung
dalam
program
kerja
Android
ARM
Holdings,
Atheros
Communications,diproduksi oleh Asustek Computer Inc., Garmin Ltd, Softbank,
Sony Ericsson, Toshiba Corp.,dan Vodafone Group Plc.
Seiring dengan pembentukan OHA, OHA mengumumkan produk perdana
Android yang telah dibuat, perangkat mobile yang merupakan modifikasi kernel
Linux 2.6.
Pada masa sekarang ini banyak vendor-vendor yang menggunakan sistem
operasi Android untuk smartphone, seperti HTC, Motorola, Samsung, LG, HKC,
Huawei, Archos, Webstation Camangi, Dell, Nexus, SciPhone, WayteQ, Sony
Ericsson, Acer, Philips, T-Mobile, Nexian, IMO, Asus,dan masih banyak lagi
vendor-vendor lain. Pada saat ini juga Android bersaing dengan Apple dalam
sistem operasi untuk PC Tablet.
Sistem operasi
Androidmemiliki dua jenis distributor. Yang pertama
adalah Google Mail Service (GMS) dan yang kedua adalah Open Handset
Distribution (OHD).GMS adalah distributor Android yang mendapat dukungan
penuh dari Google, sedangkan OHD adalah distributor Android tanpa dukungan
18
langsung dari Google.(Supardi, 2011, Semua Bisa Menjadi Programmer Android
Basic).
Android merupakan platform mobile yang memiliki tiga hal sebagai
berikut (Safaat, 2011,p3) :
-
Lengkap (complete platform), karena Android menyediakan banyak tools
dalam
membangun
perangkat
lunak
dan
memiliki
peluang
untuk
mengembangkan aplikasi.
-
Terbuka (open source platform), karena pengembang secara bebas dapat
mengembangkan aplikasi dan platformAndroid yang disediakan melalui
lisensi open source.
-
Bebas (free platform), karena Android merupakan platform yang bebas untuk
dikembangkan dan tidak ada royalti untuk pengembangan pada platform
Android.
2.2.4.1 Arsitektur Android
Secara garis besar (Supardi, 2011, p4-5) arsitektur Android
terdiri atas :
-
Applications dan Widgets merupakan layer (lapis) yang hanya dapat
berhubungan dengan aplikasi saja.
-
Applications Frameworks merupakan Open Development Platform
yang ditawarkan Android untuk dapat dikembangkan guna
membangun aplikasi. Pengembang memiliki akses penuh menuju
API Frameworks seperti yang dilakukan oleh aplikasi kategori inti.
Komponen-komponen yang termasuk di dalam Applications
19
Frameworks adalah sebagai berikut :Views, Content Provider,
Resource Manager, Notification Manager,dan Activity Manager.
-
Libraries merupakan layer, dimana fitur-fitur Android berada.
-
Android Run Time merupakan layer yang membuat aplikasi Android
dapat
dijalankan,
dimana
dalam
prosesnya
menggunakan
implementasi Linux.
-
Linux Kernel merupakan layer inti dari sistem operasi Android
berada.
Gambar 2.2 Arsitektur Android
2.2.4.2 Versi Android
Banyak smartphone dan PC Tablet yang menggunakan sistem
operasi Android dengan versi yang berbeda.Semakin tinggi versi,
fiturnya semakin canggih dan banyak. Berikut adalah versi Android
20
(Supardi, 2011,p6-7)yang telah diciptakan dan digunakan oleh para
user dari pertama kali diciptakan, yaitu :
1. Android versi 1.1
Pertama kali dirilis oleh Google pada tanggal 9 Maret 2009. Versi
ini memiliki fitur-fitur seperti :
• Jam.
• Alarm.
• Voice search.
• Pengiriman pesan dengan Gmail.
• Pemberitahuan email.
2. Android versi 1.5 (Cupcake)
Fitur-fitur yang dimiliki versi ini adalah :
• Merekam dan menonton video dengan modus kamera.
• Upload video ke YouTube dan gambar ke Picasa langsung dari
telepon.
• Dukungan Bluetooth Advanced Audio Distribution Profile
(A2DP).
• Kemampuan terhubung secara otomatis atau langsung ke headset
bluetooth dengan jarak tertentu.
• Transisi animasi layar dan keyboard pada layar yang disesuaikan
dengan sistem.
3. Android versi 1.6 (Donut)
21
Android versi ini didasarkan pada Linux Kernel 2.6.29. Dengan
fitur-fitur baru seperti :
• Penggunaan baterai indikator dan kontrol applet VPN.
• Galeri memilih foto yang akan dihapus, kamera, dan camcorder.
• Teknologi yang mendukung CDMA/EVDO, 802.1x, VPN, Textto-Speech engine, dan Dial Contact.
• supportlayar dengan resolusi WVGA.
4. Android versi 2.0 / 2.1 (Eclair)
Versi Eclair ini memiliki fitur-fitur seperti :
• Perubahan yang dilakukan untuk pengoptimalan hardware dari
versi sebelumnya.
• Peningkatan Google Maps.
• Perubahan user interface dengan browser baru dan dukungan
HTML5.
• Daftar kontak yang baru.
• Dukungan flash untuk kamera.
• Digital zoom.
• Bluetooth 2.1.
5. Android versi 2.2 (Froyo : Frozen Yoghurt)
Versi Froyo yang diciptakan ini memiliki fitur-fitur seperti :
• Kerangka aplikasi yang memungkinkan pengguna untuk dapat
menghapus komponen.
• Dalvik Virtual Machine (DVM)yang dioptimalkan.
22
• Adanya grafik dalam bentuk 2D dan 3D.
• SQLite.
• Mendukung media audio dan video dalam berbagai format.
• GSM, Bluetooth, EDGE, 3G, WiFi, Camera, Global Positioning
(GPS),
Kompas,
dan
Accelerometer
(tergantung
hardwaredevice).
6. Android versi 2.3 (Gingerbread)
Versi Gingerbread ini memiliki fitur-fitur seperti :
• SIP-based VoIP.
• Near Field Communications (NFC).
• Gyroscope dan sensor.
• Multiple Cameras Support.
• Mixable Audio Effects.
• Download Manager.
7. Android versi 3.0 / 3.1 (Honeycomb)
Honeycomb merupakan versi yang dirilis khusus untuk PC Tablet,
dengan memiliki fitur-fitur seperti :
• Aksesoris API terbuka.
• USB host API.
• Keyboard external dan perangkat penunjuk.
• Joystick dan Gamepads.
• Layar home widget resizeable.
8. Android versi 4.0 (Ice Cream Sandwich)
23
Android versi ini memiliki fitur-fitur sebagai berikut :
• Membuka kunci dengan pengenalan wajah atau biasa disebut face
recognition.
• Jaringan data pemantuan pengguna dan kontrol.
• Terpadu kontak jaringan sosial.
• Perangkat tambahan fotografi.
• Mencari email secara offline dan berbagi informasi menggunakan
NFC.
Sumber: (http://developer.android.com/about/versions/android-4.0highlights.html)
9. Android versi 4.1 (Jelly Bean)
Versi Android terbaru yang dikenal dengan nama Jelly Bean ini
memiliki fitur-fitur sebagai berikut :
• Tampilan user inteface yang semakin menarik.
• Voice Search yang semakin baik.
• Ukuran widget selalu pas karena dapat otomatis menyesuaikan
ukuran dengan space yang tersisa pada layar.
Sumber:(http://developer.android.com/about/versions/jellybean.html)
2.2.4.3 Android SDK
Android SDK (Software Development Kit) adalah tools
Application Programming Interface (API) yang diperlukan untuk mulai
24
mengembangkan aplikasi pada platform Android. Android merupakan
subset perangkat lunak untuk ponsel yang meliputi sistem operasi,
middleware, dan aplikasi kunci yang di-release oleh Google. Saat ini
disediakan Android SDK sebagai alat bantu dan API untuk mulai
mengembangkan aplikasi pada platform Android dengan menggunakan
bahasa pemrograman Java(Safaat, 2011, p5).
2.2.4.4 Eclipse
Eclipse adalah IDE (Integrated Development Environment)
yang akan digunakan untuk mengembangkan perangkat lunak dan dapat
dijalankan di semua platform. Eclipse merupakan perangkat lunak
untuk bahasa pemrograman Java (Supardi, 2011, p11).
2.2.4.5 ADT
Android Development Tools (ADT) adalah plugin yang didesain
untuk
IDE
Eclipse
yang
memberikan
kemudahan
dalam
mengembangkan dan membuat aplikasiproject Android, dan membuat
GUI aplikasi (Safaat, 2011, p6). Dengan kata lain ADT merupakan
penghubung antara IDE Eclipse dengan Android SDK.
2.2.5
Keterbaruan
Pada pembuatan aplikasi speech recognition ini akan dilakukan beberapa
keterbaruan yang membuat aplikasi ini berbeda dengan aplikasi speech
25
recognition yang pernah dibuat sebelumnya. Aplikasi speech recognition yang
pernah dibuat sebelumnya antara lain :
1. Pembuatan speech recognition dengan Bahasa Arab dan menggunakan CMU
Sphinx.
2. Speech recognition yang digunakan untuk menganalisa teknik Spectral
Decomposition.
3. Speech recognition pada mobile phone yang digunakan untuk menulis Short
Message Service atau biasa disebut SMS.
4. Penerapan speech recognition untuk mengendalikan robot.
Berdasarkan aplikasi speech recognition yang telah dibuat sebelumnya,
maka kali ini penulis akan melakukan beberapa keterbaruan yang akan
membedakan speech recognition dari yang telah ada sebelumnya, antara lain :
1. Speech recognition ini akan menerapkan Bahasa Indonesia dalam
penggunaannya.
2. Speech recognition ini diterapkan pula pada mobile phone dan menggunakan
metode Hidden Markov Model (HMM) seperti yang pernah dilakukan
sebelumnya.
3. Aplikasi speech recognition ini tidak digunakan untuk menulis pesan SMS,
namun akan lebih kepada aplikasi khusus speech recognitionuntuk mobile
phone dengan platform Android.
Download