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.