This is a code snippet in response to a request on how to recognise voice of a person. This is useful for the translator app, I built in some previous tutorial.
package com.gilo.voice; import java.util.ArrayList; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.speech.RecognizerIntent; import android.view.View; import android.view.View.OnClickListener; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.ListView; public class MainActivity extends Activity { Button speak; ListView options; ArrayList<String> results; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); speak = (Button) findViewById(R.id.bSpeak); options = (ListView) findViewById(R.id.lvOptions); speak.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub // This are the intents needed to start the Voice recognizer Intent i = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); i.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); i.putExtra(RecognizerIntent.EXTRA_PROMPT, "Say something"); startActivityForResult(i, 1010); } }); // retrieves data from the previous state. This is incase the phones // orientation changes if (savedInstanceState != null) { results = savedInstanceState.getStringArrayList("results"); if (results != null) options.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, results)); } } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO Auto-generated method stub // retrieves data from the VoiceRecognizer if (requestCode == 1010 && resultCode == RESULT_OK) { results = data .getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS); options.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, results)); } super.onActivityResult(requestCode, resultCode, data); } @Override protected void onSaveInstanceState(Bundle outState) { // This should save all the data so that when the phone changes // orientation the data is saved super.onSaveInstanceState(outState); outState.putStringArrayList("results", results); } }
And for the xml file
<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:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <ListView android:id="@+id/lvOptions" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/button1" > </ListView> <Button android:id="@+id/bSpeak" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:text="Speak" /> </RelativeLayout>
vallabh
March 15, 2014 at 5:03 pm
ohhhh dear its so cool …….
can i get the source code for this app 🙂
Inah Claudine Domingo
June 19, 2014 at 2:16 am
can i get the source code and use for a case study?
Gilbert Kimutai
July 24, 2014 at 9:47 am
Sorry for the long delay. Sure thing. Let me know how the study goes or went.
iand
September 24, 2014 at 3:18 pm
please provide me the source code for example of my work, now I working on translation project for my research thesis..thanks anyway
developadi@gmail.com
Gilbert Kimutai
October 6, 2014 at 5:17 pm
The code is availed somewhere in this blog. I will have to look for it. I wrote this article a long time ago.
Mapula
October 3, 2014 at 2:14 pm
hi, i have so much errors on the code I don’t know where to place the codes pls help
Gilbert Kimutai
October 6, 2014 at 5:15 pm
Its probably something small. Persevere on and maybe you’ll get some breakthrough
hana
October 10, 2014 at 11:27 am
how can i write this code and translator app in one project ,, please give me explane ..
hana
October 10, 2014 at 12:20 pm
the intent is not found :
Intent i = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
i.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
i.putExtra(RecognizerIntent.EXTRA_PROMPT, “Say something”);
help me!