Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Customize the Speech Recognition Dialog

I want to know if there is any way to change and customize the style of the Speech Recognition dialog in my app?

i.e.: change google logo or texts.
enter image description here

i use this code, is it complete?

public void onReadyForSpeech(Bundle params) {
     proccessTXT.setText("Speak now!");
}

@Override
public void onBeginningOfSpeech() {

}

@Override
public void onRmsChanged(float rmsdB) {

}

@Override
public void onBufferReceived(byte[] buffer) {

}

@Override
public void onEndOfSpeech() {
    proccessTXT.setText("Waiting");
}

@Override
public void onError(int error) {
     proccessTXT.setText(R.string.toast_disconnect);
}

@Override
public void onResults(Bundle results) {
        match_text_dialog = new Dialog(MainActivity.this);
        match_text_dialog.setContentView(R.layout.dialog_maches_flag);
        match_text_dialog.setTitle(R.string.selection_list);
        textlist = (ListView) match_text_dialog.findViewById(R.id.list);
        matches_text = getIntent().getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, matches_text);
        textlist.setAdapter(adapter);
        textlist.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override

            public void onItemClick(AdapterView<?> parent, View view,
                                    int position, long id) {

                type_texts = matches_text.get(position);

                speech_text.append(type_texts + " ");

                match_text_dialog.hide();

                //  speech_text.setCustomSelectionActionModeCallback(new SelectText());
                actionMode = MainActivity.this.startActionMode(new SelectText());
            }
        });
        match_text_dialog.show();// show dialog

}

@Override
public void onPartialResults(Bundle partialResults) {

}

this is LogCat:

FATAL EXCEPTION: main
                                                                                Process: PACKAGE, PID: 25645
                                                                                java.lang.NullPointerException: Attempt to invoke interface method 'int java.util.List.size()' on a null object reference
                                                                                    at android.widget.ArrayAdapter.getCount(ArrayAdapter.java:330)
                                                                                    at android.widget.ListView.setAdapter(ListView.java:502)
                                                                                    at PACKAGE.MainActivity.onResults(MainActivity.java:245)
                                                                                    at android.speech.SpeechRecognizer$InternalListener$1.handleMessage(SpeechRecognizer.java:456)
                                                                                    at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                                    at android.os.Looper.loop(Looper.java:145)
                                                                                    at android.app.ActivityThread.main(ActivityThread.java:6837)
                                                                                    at java.lang.reflect.Method.invoke(Native Method)
                                                                                    at java.lang.reflect.Method.invoke(Method.java:372)
                                                                                    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
                                                                                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
like image 681
Mina Dahesh Avatar asked May 07 '16 17:05

Mina Dahesh


People also ask

What is an example of speech recognition?

Examples of Speech Recognition in Use Note Taking/Writing: An example of speech recognition technology in use is speech-to-text platforms such as Speechmatics or Google's speech-to-text engine. In addition, many voice assistants offer speech-to-text translation.

How do you do speech recognition?

Enter speech recognition in the search box, and then tap or click Windows Speech Recognition. Say "start listening," or tap or click the microphone button to start the listening mode. Open the app you want to use, or select the text box you want to dictate text into. Say the text you want to dictate.


1 Answers

As an option you can launch speech recognizer with ACTION_RECOGNIZE_SPEECH (without UI) and show whatever dialog you need

SpeechRecognizer speechRecognizer = SpeechRecognizer.createSpeechRecognizer(this);
speechRecognizer.setRecognitionListener(this);
Intent speechIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
speechIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
speechIntent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE, this.getPackageName());
speechRecognizer.startListening(speechIntent);

Here you need to implement RecognitionListener so you can show the dialog in public void onReadyForSpeech(Bundle params) callback. Dismiss in public void onResults(Bundle results) or public void onError(int error)

like image 99
Oleg Khalidov Avatar answered Sep 26 '22 07:09

Oleg Khalidov