1.)	Create a new project by File-> New -> Android Project name it VoiceRecognitionActivity.
2.)	Write following into main.xml:
| 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 
39 
40 
41 
42 
43 | <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical">    <EditText        android:id="@+id/etTextHint"        android:gravity="top"        android:inputType="textMultiLine"        android:lines="1"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="@string/etSearchHint"/>        <Button        android:id="@+id/btSpeak"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:onClick="speak"        android:padding="@dimen/padding_medium"        android:text="@string/btSpeak"        tools:context=".VoiceRecognitionActivity"/>    <Spinner        android:id="@+id/sNoOfMatches"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:entries="@array/saNoOfMatches"        android:prompt="@string/sNoOfMatches"/>        <TextView        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="@string/tvTextMatches"        android:textStyle="bold"/>    <ListView        android:id="@+id/lvTextMatches"        android:layout_width="match_parent"        android:layout_height="wrap_content"/></LinearLayout> | 
3.)	Write following into strings.xml:
| 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 | <?xml version="1.0"encoding="utf-8"?><resources>    <string name="app_name">VoiceRecognitionActivity</string>    <string name="hello_world">Hello world!</string>    <string name="menu_settings">Settings</string>    <string name="btSpeak">Speak</string>    <string name="tvTextMatches">Text Matches</string>    <string name="sNoOfMatches">No of Matches</string>    <string name="etSearchHint">Speech hint here</string>    <string-array name="saNoOfMatches">        <item>1</item>        <item>2</item>        <item>3</item>        <item>4</item>        <item>5</item>        <item>6</item>        <item>7</item>        <item>8</item>        <item>9</item>        <item>10</item>    </string-array></resources> | 
4.)	Create and write following into values/dimens.xml:
| 
1 
2 
3 
4 
5 
6 
7 | <resources>    <dimen name="padding_small">8dp</dimen>    <dimen name="padding_medium">8dp</dimen>    <dimen name="padding_large">16dp</dimen></resources> | 
5.)	Write following into manifest file:
| 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 | <?xml version="1.0"encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.example.voicerecognitionactivity"    android:versionCode="1"    android:versionName="1.0">    <uses-sdk        android:minSdkVersion="16"        android:targetSdkVersion="16"/>    <uses-permission android:name="android.permission.INTERNET"/>    <application        android:allowBackup="true"        android:icon="@drawable/ic_launcher"        android:label="@string/app_name"        android:theme="@style/AppTheme">        <activity            android:name="com.example.voicerecognitionactivity.VoiceRecognitionActivity"            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> | 
6.)	Run for output.
Steps:
1.) Create a project named VoiceRecognitionActivity and set the information as stated in the image.
Build Target: Android 4.0
Application Name: VoiceRecognitionActivity
Package Name: com. example. VoiceRecognitionActivity
Activity Name: VoiceRecognitionActivity
Min SDK Version: 4.0
Application Name: VoiceRecognitionActivity
Package Name: com. example. VoiceRecognitionActivity
Activity Name: VoiceRecognitionActivity
Min SDK Version: 4.0
2.) Open VoiceRecognitionActivity.java file and write following code there:
| 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 
39 
40 
41 
42 
43 
44 
45 
46 
47 
48 
49 
50 
51 
52 
53 
54 
55 
56 
57 
58 
59 
60 
61 
62 
63 
64 
65 
66 
67 
68 
69 
70 
71 
72 
73 
74 
75 
76 
77 
78 
79 
80 
81 
82 
83 
84 
85 
86 
87 
88 
89 
90 
91 
92 
93 
94 
95 
96 
97 
98 
99 
100 
101 
102 
103 
104 
105 
106 
107 
108 
109 
110 
111 
112 
113 
114 
115 
116 
117 
118 
119 
120 
121 
122 
123 
124 
125 
126 
127 
128 
129 | packagecom.example.voicerecognitionactivity;importjava.util.ArrayList;importjava.util.List;importandroid.app.Activity;importandroid.app.SearchManager;importandroid.content.Intent;importandroid.content.pm.PackageManager;importandroid.content.pm.ResolveInfo;importandroid.os.Bundle;importandroid.speech.RecognizerIntent;importandroid.view.View;importandroid.widget.AdapterView;importandroid.widget.ArrayAdapter;importandroid.widget.Button;importandroid.widget.EditText;importandroid.widget.ListView;importandroid.widget.Spinner;importandroid.widget.Toast;publicclassVoiceRecognitionActivity extendsActivity {    privatestaticfinalintVOICE_RECOGNITION_REQUEST_CODE = 1001;    privateEditText metTextHint;    privateListView mlvTextMatches;    privateSpinner msTextMatches;    privateButton mbtSpeak;    @Override    publicvoidonCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        metTextHint = (EditText) findViewById(R.id.etTextHint);        mlvTextMatches = (ListView) findViewById(R.id.lvTextMatches);        msTextMatches = (Spinner) findViewById(R.id.sNoOfMatches);        mbtSpeak = (Button) findViewById(R.id.btSpeak);    }    publicvoidcheckVoiceRecognition() {        // Check if voice recognition is present        PackageManager pm = getPackageManager();        List<ResolveInfo> activities = pm.queryIntentActivities(newIntent(                RecognizerIntent.ACTION_RECOGNIZE_SPEECH), 0);        if(activities.size() == 0) {            mbtSpeak.setEnabled(false);            Toast.makeText(this, "Voice recognizer not present",                    Toast.LENGTH_SHORT).show();        }    }    publicvoidspeak(View view) {        Intent intent = newIntent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);        // Specify the calling package to identify your application        intent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE, getClass()                .getPackage().getName());        // Display an hint to the user about what he should say.        intent.putExtra(RecognizerIntent.EXTRA_PROMPT, metTextHint.getText()                .toString());        // Given an hint to the recognizer about what the user is going to say        intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,                RecognizerIntent.LANGUAGE_MODEL_WEB_SEARCH);        // If number of Matches is not selected then return show toast message        if(msTextMatches.getSelectedItemPosition() == AdapterView.INVALID_POSITION) {            Toast.makeText(this, "Please select No. of Matches from spinner",                    Toast.LENGTH_SHORT).show();            return;        }        intnoOfMatches = Integer.parseInt(msTextMatches.getSelectedItem()                .toString());        // Specify how many results you want to receive. The results will be        // sorted where the first result is the one with higher confidence.        intent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS, noOfMatches);        startActivityForResult(intent, VOICE_RECOGNITION_REQUEST_CODE);    }    @Override    protectedvoidonActivityResult(intrequestCode, intresultCode, Intent data) {        if(requestCode == VOICE_RECOGNITION_REQUEST_CODE)            //If Voice recognition is successful then it returns RESULT_OK            if(resultCode == RESULT_OK) {                ArrayList<String> textMatchList = data                .getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);                if(!textMatchList.isEmpty()) {                    // If first Match contains the 'search' word                    // Then start web search.                    if(textMatchList.get(0).contains("search")) {                        String searchQuery = textMatchList.get(0).replace("search",                        " ");                        Intent search = newIntent(Intent.ACTION_WEB_SEARCH);                        search.putExtra(SearchManager.QUERY, searchQuery);                        startActivity(search);                    } else{                        // populate the Matches                        mlvTextMatches                        .setAdapter(newArrayAdapter<String>(this,                                android.R.layout.simple_list_item_1,                                textMatchList));                    }                }            //Result code for various error.                }elseif(resultCode == RecognizerIntent.RESULT_AUDIO_ERROR){                showToastMessage("Audio Error");            }elseif(resultCode == RecognizerIntent.RESULT_CLIENT_ERROR){                showToastMessage("Client Error");            }elseif(resultCode == RecognizerIntent.RESULT_NETWORK_ERROR){                showToastMessage("Network Error");            }elseif(resultCode == RecognizerIntent.RESULT_NO_MATCH){                showToastMessage("No Match");            }elseif(resultCode == RecognizerIntent.RESULT_SERVER_ERROR){                showToastMessage("Server Error");            }        super.onActivityResult(requestCode, resultCode, data);    }    voidshowToastMessage(String message){        Toast.makeText(this, message, Toast.LENGTH_SHORT).show();    }} | 
3.) Compile and build the project.
Output
 
 
No comments:
Post a Comment