Judul : Aplikasi agar HP bisa mendengar dan bisa menulis
link : Aplikasi agar HP bisa mendengar dan bisa menulis
Aplikasi agar HP bisa mendengar dan bisa menulis
Saya telah mengirimi kode ini ke beberapa teman2 yang membutuhkan-nya. Tapi karena penyakit bawaan saya yang bernama m a l a s kambuh lagi maka untuk selanjutnya saya tidak akan kirim lagi lewat email dan atau PM. Bagi yang berminat menelusuri kode ini silahkan datang kesini dan ambil sendiri... sorry yahIni adalah struktur kode paling sederhana untuk aplikasi Speech Recognition yaitu aplikasi yang bisa membuat HP menulis apa yang kita ucap(ucapnya yang jelas yah biar HPnya bisa paham). Bagi teman2 yang pintar java tentunya sangat mudah untuk mengembangkan aplikasi ini lebih lanjut sesuai kebutuhan masing2.
Aplikasi ini telah saya jalankan testing di beberapa device yang menggunakan sistim android baik yang layar kecil seperti HP maupun di layar lebar seperti tablet khususnya tablet samsung dan motorola ukuran 7 inch maupun yang 10 inch, dan alhamdulillah tampang user interfacenya(UI) semuanya terlihat sama, begitu pula cara kerja dan logika aplikasinya semuanya sama, hal itu menunjukan bahwa aplikasinya telah bekerja sesuai rencana.
Walau aplikasi ini sudah bekerja dengan baik namun saya enggan untuk di pasang ke android market karena masih membutuhkan koneksi internet untuk bisa bekerja.
Alasan-nya bahwa terlalu banyak kata yang di pakai oleh aplikasi untuk mencoba menebak kira2 kata apa saja yang di ucapkan manusia saat berbicara dengan HP. Oleh karena terlalu banyak, maka tempat simpan(storage) HP terlalu kecil sehingga lebih baik di biarkan saja di simpan milliaran kata2 tsb di server-nya google. Dengan demikian maka pada halaman AndroidManifest.xml hanya membutuhkan permission khusus yang berbunyi ' <uses-permission android:name="android.permission.RECORD_AUDIO" /> ' sehingga setiap kali kitan ngomong dengan HP maka dengan cepat HP-nya mencari ke server kira2 kata2 apa yang telah kita ucap, dan suguhkan-nya ke layar dari yang kira2 benar sampai yang ke paling benar.
Hal itu berbeda dengan aplikasi 'TTS(text to speech) yang bekerja tanpa koneksi internet yang saya tulis sebelumnya silahkan baca TTS disini
Tapi... oleh karena banyak teman yang PM saya untuk minta kodenya, maka berikut adalah class utama untuk menjalankan aplikasi 'Speech Recognition' yang saya beri nama SuaraJadiTeks.java
package com.vik_sintus.projects.suaraJadiTeks;
import android.app.Activity;
import android.os.Bundle;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.speech.RecognizerIntent;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import java.util.ArrayList;
import java.util.List;
/**
*aplikasi agar HP bisa mendengar dan menulis
*silahkan di pakai untuk kepentingan belajar
*Tak boleh di pakai utk kepentingan komersial
*hubungi vik.sintus@gmail.com
*segala kelebihan dan kekurangan di luar tanggungjawab pembuat
*/
public class SuaraJadiTeks extends Activity {
private static final int PRIKSA_KEBENARAN_NYA = 1234;
private ListView daftarKataYangKeluar;
//suruh android utk buka aplikasi yang
//tampang depannya berada di R.layout.suara_jadi_teks
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.suara_jadi_teks);
Button tombol = (Button) findViewById(R.id.tombolUntukBicara);
daftarKataYangKeluar = (ListView) findViewById(R.id.daftarKataKata);
// Kalau tak ada service maka matikan tombolnya
// dan tinggalkan pesan agar pengguna tak bingung
PackageManager paketAplikasi = getPackageManager();
List<resolveinfo> aktivitas = paketAplikasi.queryIntentActivities(
new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH), 0);
if (aktivitas.size() == 0){
tombol.setEnabled(false);
tombol.setText("salah..tak bisa di buka...coba konek ke internet");
}
}
//ketika tombol di tekan apa yang harus di lakukan
public void ketikaTombolDiTekan(View v)
{
mulaiAktivitasSuaraJadiTeks();
}
// mulai aktivitas voice recognition dengan
// menghidupkan Intent-nya.
private void mulaiAktivitasSuaraJadiTeks(){
Intent ubahSuaraJadiTeks = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
ubahSuaraJadiTeks.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
ubahSuaraJadiTeks.putExtra(RecognizerIntent.EXTRA_PROMPT, "Demo suara jadi teks...");
startActivityForResult(ubahSuaraJadiTeks, PRIKSA_KEBENARAN_NYA);
}
//Olah hasil dari Intent.
@Override
protected void onActivityResult(int kodePriksa, int ambilHasil, Intent hasil){
if (kodePriksa == PRIKSA_KEBENARAN_NYA && ambilHasil == RESULT_OK){
// isi dengan kata2 yang cocok menurut apa yang di
// dengar oleh device
// dan kalau device mendengar/merekam lebih
// banyak kata-kata(EXTRA_RESULT)maka daftarKataKataYangKeluar di
// adaptasikan dengan ArrayAdapter menggunakan
// tampilan/interface yang bernama simple_list_item_1
ArrayList<string> kataYangCocok = hasil.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);daftarKataYangKeluar.setAdapter(new ArrayAdapter<string>(this, android.R.layout.simple_list_item_1,kataYangCocok));
}
super.onActivityResult(kodePriksa, ambilHasil, hasil);
}
}
Berikut adalah sedikit penjelasan dari kode di atas
public class SuaraJadiTeks extends Activity {Untuk melakukan kegiatan-nya class 'SuaraJadiTeks' harus bergandengan dengan class 'Activity'.
private static final int PRIKSA_KEBENARAN_NYA = 1234;
private ListView daftarKataYangKeluar;
}
class 'Activity itu sendiri sudah ada dalam android sistim, kita hanya merangkulnya saja dengan kata kunci extends.
Kita juga butuh tempat untuk menampung kata-kata yang di dengarkan oleh hp, dan kita ingin kata-kata yang keluar di layar HP harus berjajar baris demi baris mulai dari bagian atas layar. Untuk menghasilkan itu kita membutuhkan bantuan class ListView . Selain itu kita juga membutuhkan sebuah data bertipe integer(int) yang di pergunakan untuk mengecek kebenaran bahwa suara yang keluar dari HP adalah benar2 menuliskan kata-kata yang kita ucap alias bukan membaca dari tempat lain.
@OverrideKode di atas menjelaskan apa yang akan di lakukan ketika aplikasinya di buka? lihat isi aplikasinya di setContentView(R.layout.suara_jadi_teks);
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.suara_jadi_teks);
Button tombol = (Button) findViewById(R.id.tombolUntukBicara);
daftarKataYangKeluar = (ListView) findViewById(R.id.daftarKataKata);
Di dalam aplikasi akan ada tombol Button tombol = (Button) findViewById(R.id.tombolUntukBicara); dan juga akan ada daftar deretan kata yang di tuliskan oleh HP daftarKataYangKeluar = (ListView) findViewById(R.id.daftarKataKata);
Kemudian, kita membutuhkan jasa class PackageManager untuk membungkus semua objects dan classses yang menjalankan aktivitas aplikasi agar tidak tercecer. Sedangkan class List dan class ResolveInfo adalah untuk mengatur aktivitas aplikasi agar dapat di proses oleh class RecognizerIntent yang notabene adalah engine utama aplikasi ini yang beraksi sebagai ACTION_RECOGNIZE_SPEECH atau aksi yang memahami kata-kata yang kita ucap.
Kalau aktivitasnya tak ada if (aktivitas.size() == 0) maka matikan tombolnya tombol.setEnabled(false); dan berikan penjelasan kepada pengguna mengapa aplikasinya tak bekerja dengan tombol.setText("tak bisa di buka...mungkin kodenya salah... coba konek ke internet")
PackageManager paketAplikasi = getPackageManager();
List<resolveinfo> aktivitas = paketAplikasi.queryIntentActivities(
new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH), 0);
if (aktivitas.size() == 0)
{
tombol.setEnabled(false);
tombol.setText("tak bisa di buka, mungkin kodenya salah... coba konek ke internet");
}
Beberapa dokumen lain yang di butuhkan
Ada ciri khas khusus dalam android struktur, seperti adanya AndroidManifest.xml ia bekerja sebagai pintu gerbang bagi semua aplikasi android, silahkan baca tentang AndroidManifest selengkapnya di http://developer.android.com/guide/topics/manifest/manifest-intro.htmlBerikut adalah isi dari AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>Selain AndroidManfest.xml, aplikasi ini juga membutuhkan tampang/interface agar dapat di lihat, di colek dan di sentuh oleh manusia. Berikut adalah interface dari aplikasi ini yang saya beri nama suara_jadi_teks.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.vik_sintus.projects.suaraJadiTeks"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="4" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<application android:label="VoiceRecognition" android:icon="@drawable/icon"
>
<activity android:name=".SuaraJadiTeks"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
<?xml version="1.0" encoding="utf-8"?>Berikut adalah strings.xml seperti yang di isyaratkan oleh @string pada kode di atas
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingBottom="4dip"
android:text="@string/suruhBicara" />
<Button android:id="@+id/tombolUntukBicara"
android:layout_width="fill_parent"
android:onClick="tombolSudahDiTekan"
android:layout_height="wrap_content"
android:text="@string/tombol" />
<ListView android:id="@+id/daftarKataKata"
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1" />
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">SuaraJadiTeks</string>
<string name="voice_recognition_prompt">Demo Suara Jadi Teks</string>
<string name="tombol">Tekan disini</string>
<string name="suruhBicara">Tekan tombol dan mulai bicara</string>
</resources>
mmmhhh.... apa lagi yah
Saya rasa itu saja yang di butuhkan agar aplikasi 'speech recognition' ini bisa bekerja.
Untuk refresh ingatan... yang kita butuhkan adalah
1 SuaraJadiTeks.java
2 AndroidManifest.xml
3 suara_jadi_teks.xml
4 strings.xml
Note: nama file adalah case sensitive, maksudnya harus mengindahkan huruf kecil atau huruf besar serta tanda baca yang ada di nama file tsb
Baca disini langkah untuk bangun aplikasi android pakai eclipse
Demikianlah Artikel Aplikasi agar HP bisa mendengar dan bisa menulis
Sekianlah artikel Aplikasi agar HP bisa mendengar dan bisa menulis kali ini, mudah-mudahan bisa memberi manfaat untuk anda semua. baiklah, sampai jumpa di postingan artikel lainnya.
Anda sekarang membaca artikel Aplikasi agar HP bisa mendengar dan bisa menulis dengan alamat link https://aplikasijalantikus.blogspot.com/2012/03/aplikasi-agar-hp-bisa-mendengar-dan.html
0 Response to "Aplikasi agar HP bisa mendengar dan bisa menulis"
Posting Komentar