Aplikasi Android Speech To Text
Aplikasi Android Speech To Text
Deskripsi :
Aplikasi ini merupakan aplikasi yang dapat merubah inputan berupa suara menjadi teks. Dengan
menggunakan fitur bawaan dari android itu sendiri dapat mengubah inputan suara. Aplikasi ini
dapat bekerja jika tersambung pada koneksi internet. Dikarenakan inputan suara yang didapatkan
harus dikirim ke server yang kemudian serverlah yang merubah suara tersebut menjadi teks dan
kemudian dikirim kembali ke aplikasi ini.
3. Buka colors.xml pada res values dan tambahkan warna seperti dibawah ini.
<code style="color: #000000"> colors.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="white">#ffffff</color>
<color name="bg_gradient_start">#31244e</color>
<color name="bg_gradient_end">#6b394c</color>
</resources>
</code>
4. Sekarang buka layout untuk activity utama(activity_main.xml) dan tambahkan kode dibawah
ini.
<code style="color: #000000"> activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bg_gradient"
android:orientation="vertical" >
<TextView
android:id="@+id/txtSpeechInput"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="100dp"
android:textColor="@color/white"
android:textSize="26dp"
android:textStyle="normal" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="60dp"
android:gravity="center"
android:orientation="vertical" >
<ImageButton
android:id="@+id/btnSpeak"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@null"
android:src="@drawable/ico_mic" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="@string/tap_on_mic"
android:textColor="@color/white"
android:textSize="15dp"
android:textStyle="normal" />
</LinearLayout>
</RelativeLayout>
</code>
5. Buka MainActivity.java dan lakukan beberapa berubahan, yang akan selesai dalam dua
langkah.
Pertama : Memulai RecognizerIntent
Pertama kita perlu membuat RecognizerIntent dengan menetapkan flags yang diperlukan seperti
ACTION_RECOGNIZE_SPEECH Cukup mengambil input pidato pengguna dan
mengembalikannya ke activity yang sama.
LANGUAGE_MODEL_FREE_FORM Anggap bahwa masukan dalam bentuk English yang
bebas.
EXTRA_PROMPT Teks prompt untuk menunjukkan kepada pengguna ketika meminta mereka
untuk berbicara.
Kedua : Menerima inputan suara
Ketika melakukan input selesai maka inputan ditangkap dalam onActivityResult dan melakukan
tindakan selanjutnya.
<code style="color: #000000"> MainActivity.java
package info.androidhive.speechtotext;
import java.util.ArrayList;
import java.util.Locale;
import
import
import
import
import
import
import
import
import
import
android.app.Activity;
android.content.ActivityNotFoundException;
android.content.Intent;
android.os.Bundle;
android.speech.RecognizerIntent;
android.view.Menu;
android.view.View;
android.widget.ImageButton;
android.widget.TextView;
android.widget.Toast;
});
}
/**
* Showing google speech input dialog
* */
private void promptSpeechInput() {
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.getDefault());
intent.putExtra(RecognizerIntent.EXTRA_PROMPT,
getString(R.string.speech_prompt));
try {
startActivityForResult(intent, REQ_CODE_SPEECH_INPUT);
} catch (ActivityNotFoundException a) {
Toast.makeText(getApplicationContext(),
getString(R.string.speech_not_supported),
Toast.LENGTH_SHORT).show();
}
}
/**
* Receiving speech input
* */
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent
data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case REQ_CODE_SPEECH_INPUT: {
if (resultCode == RESULT_OK && null != data) {
ArrayList<String> result = data
.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
txtSpeechInput.setText(result.get(0));
}
break;
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is
present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
</code>