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