How to implement voice recognition
With your blank project setup, you should have an AndroidManifest file like the following<? xml version = "1.0" encoding = "utf-8" ?> package = "com.jameselsey" android:versionCode = "1" android:versionName = "1.0" > < application android:label = "VoiceRecognitionDemo" android:icon = "@drawable/icon" android:debuggable = "true" > < activity android:name = ".VoiceRecognitionDemo" 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" ?> 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 = "Click the button and start speaking" /> < Button android:id = "@+id/speakButton" android:layout_width = "fill_parent" android:onClick = "speakButtonClicked" android:layout_height = "wrap_content" android:text = "Click Me!" /> < ListView android:id = "@+id/list" android:layout_width = "fill_parent" android:layout_height = "0dip" android:layout_weight = "1" /> </ LinearLayout > |
<? xml version = "1.0" encoding = "utf-8" ?> android:orientation = "vertical" android:layout_width = "fill_parent" android:layout_height = "fill_parent" > < TextView android:layout_width = "fill_parent" android:layout_height = "wrap_content" android:text = "VoiceRecognition Demo!" /> </ LinearLayout > |
You should copy this into your activity :
package com.jameselsey; 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; /** * A very simple application to handle Voice Recognition intents * and display the results */ public class VoiceRecognitionDemo extends Activity { private static final int REQUEST_CODE = 1234 ; private ListView wordsList; /** * Called with the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.voice_recog); Button speakButton = (Button) findViewById(R.id.speakButton); wordsList = (ListView) findViewById(R.id.list); // Disable button if no recognition service is present PackageManager pm = getPackageManager(); List<ResolveInfo> activities = pm.queryIntentActivities( new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH), 0 ); if (activities.size() == 0 ) { speakButton.setEnabled( false ); speakButton.setText( "Recognizer not present" ); } } /** * Handle the action of the button being clicked */ public void speakButtonClicked(View v) { startVoiceRecognitionActivity(); } /** * Fire an intent to start the voice recognition activity. */ private void startVoiceRecognitionActivity() { Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Voice recognition Demo..." ); startActivityForResult(intent, REQUEST_CODE); } /** * Handle the results from the voice recognition activity. */ @Override protected void onActivityResult( int requestCode, int resultCode, Intent data) { if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) { // Populate the wordsList with the String values the recognition engine thought it heard ArrayList<String> matches = data.getStringArrayListExtra( RecognizerIntent.EXTRA_RESULTS); wordsList.setAdapter( new ArrayAdapter<String>( this , android.R.layout.simple_list_item_1, matches)); } super .onActivityResult(requestCode, resultCode, data); } } |
Text to speech simple example
package com.aviyehuda.android.text2speech; import android.app.Activity; import android.os.Bundle; import android.speech.tts.TextToSpeech; import android.speech.tts.TextToSpeech.OnInitListener; public class Text2SpeechTest extends Activity implements OnInitListener { TextToSpeech talker; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); talker = new TextToSpeech(this, this); } public void say(String text2say){ talker.speak(text2say, TextToSpeech.QUEUE_FLUSH, null); } @Override public void onInit(int status) { say("Hello World"); } @Override public void onDestroy() { if (talker != null) { talker.stop(); talker.shutdown(); } super.onDestroy(); } }
So, look through this selection and appreciate this greatest record of totally free online Convert tts voice web centered solutions that you can use to turn written text into speech.
ReplyDeletehi i am ganesh u r blog is awesome .........am a fresher in android development,i have learnt so many things from u r blog...
ReplyDeletei am developing smschat App,,it contains list of messages,i want to set the date & time to each message,the date & time shoud update every time....in textview but am unable get set the date & time
so plz could u help me in this app....
my mail id is:ganeshmudhiraj12@gmail.com
my code is as follows......
GregorianCalendar calCreationDate = new GregorianCalendar();
int intMilli = calCreationDate.get(Calendar.MILLISECOND);
int intSeconds = calCreationDate.get(Calendar.SECOND);
calCreationDate.add(Calendar.MILLISECOND, (-1*intMilli));
calCreationDate.add(Calendar.SECOND, -1*intSeconds);
calCreationDate.add(Calendar.MINUTE, 1);
Date dateStartDate = calCreationDate.getTime();
String time =dateStartDate.toString();
Thanks.....