Assalamualaiqum ☺
Kali ini masih saya akan memposting materi Android yaitu Speech To Text Voice Recognition Android.
Ok langsung saja berikut langkah – langkahnya:
1. Pertama buat Project
Android. Kemudian pada MainActivity kita tuliskan kode program ini :
package com.amijaya.speechtotextinggris;
import java.util.ArrayList;
import android.os.Bundle;
import android.app.Activity;
import android.content.ActivityNotFoundException;
import android.content.Intent;
import android.speech.RecognizerIntent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity {
// http://cariprogram.blogspot.com
// nuramijaya@gmail.com
@Override
protected void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button1 =
(Button)findViewById(R.id.button1);
button1.setOnClickListener(new
OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent intent = new Intent(
RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
"en-US");
try {
startActivityForResult(intent, 1);
EditText editText1 =
(EditText)findViewById(R.id.editText1);
editText1.setText("");
} catch (ActivityNotFoundException a) {
Toast t = Toast.makeText(getApplicationContext(),
"Device Not
Supported",
Toast.LENGTH_SHORT);
t.show();
}
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode,
Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case 1: {
if (resultCode == RESULT_OK && null != data) {
ArrayList<String> text = data
.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
EditText editText1 =
(EditText)findViewById(R.id.editText1);
editText1.setText(text.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.activity_main,
menu);
return true;
}
/*
// CARA MENGECEK APAKAH TTS DISUPPORT DAN MEMANGGIL INSTALLER TTS
GOOGLE PLAY
//find out whether speech recognition is
supported
PackageManager packManager
= getPackageManager();
List<ResolveInfo>
intActivities = packManager.queryIntentActivities
(new
Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH), 0);
if (intActivities.size()
!= 0) {
//speech
recognition is supported - detect user button clicks
speechBtn.setOnClickListener(this);
//prepare
the TTS to repeat chosen words
Intent
checkTTSIntent = new Intent();
//check
TTS data
checkTTSIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
//start
the checking Intent - will retrieve result in onActivityResult
startActivityForResult(checkTTSIntent,
MY_DATA_CHECK_CODE);
}
else
{
//speech
recognition not supported, disable button and output message
speechBtn.setEnabled(false);
Toast.makeText(this,
"Oops - Speech recognition not supported!",
Toast.LENGTH_LONG).show();
}
@Override
protected void onActivityResult(int requestCode,
int resultCode, Intent data) {
//check speech recognition result
if (requestCode ==
VR_REQUEST && resultCode == RESULT_OK)
{
//store the
returned word list as an ArrayList
ArrayList<String>
suggestedWords = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
//set
the retrieved list to display in the ListView using an ArrayAdapter
wordList.setAdapter(new
ArrayAdapter<String> (this, R.layout.word, suggestedWords));
}
//returned from TTS data
check
if (requestCode ==
MY_DATA_CHECK_CODE)
{
//we have the data
- create a TTS instance
if (resultCode ==
TextToSpeech.Engine.CHECK_VOICE_DATA_PASS)
repeatTTS =
new TextToSpeech(this, this);
//data not
installed, prompt the user to install it
else
{
//intent
will take user to TTS download page in Google Play
Intent
installTTSIntent = new Intent();
installTTSIntent.setAction(TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);
startActivity(installTTSIntent);
}
}
//call superclass method
super.onActivityResult(requestCode,
resultCode, data);
}
*/
}
2.
Kemudian buat layout di file activity_main.xml
seperti ini :
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Speech
To Text English" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Speak"
/>
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
>
<requestFocus />
</EditText>
</LinearLayout>
3.
Dan terakhir
file AndroidManifest.xml tidak perlu kita rubah :
<manifest android:versioncode="1"
android:versionname="1.0"
package="com.amijaya.speechtotextinggris"
xmlns:android="http://schemas.android.com/apk/res/android">
<uses-sdk android:minsdkversion="8"
android:targetsdkversion="16">
<application
android:allowbackup="true" android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<activity
android:label="@string/app_name"
android:name="com.amijaya.speechtotextinggris.MainActivity">
<intent-filter>
<action
android:name="android.intent.action.MAIN">
<category
android:name="android.intent.category.LAUNCHER">
</category></action></intent-filter>
</activity>
</application>
</uses-sdk></manifest>
Hasilnya, Setelah kita klik Tombol akan muncul dialog Speak Now :
Kemudian akan diproses :
Kemudian setelah suara dikenali akan muncul
tulisannya di EditText :
Agar pengenalan Speech To Text bekerja maksimal dalam mengenali
kata dalam Bahasa Inggris (English) silakan ubah di Setting dengan Language
English (United States) :
Semoga Bermanfaat ☺
0 Komentar