سؤال

I am developing an android app that has two parts: 1. converts speech to text and 2. manipulates the text to query a database. I have both parts working separately - what is the best way to join the activities together?

To be clear, I want to take the text output from the Speech to text and use that as an input for another Activity. Any help is greatly appreciated!

هل كانت مفيدة؟

المحلول

First activity:

Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
intent.putExtra("speechtext", yourstring);
startActivity(intent);
finish();

Second activity:

String speechtext = getIntent().getStringExtra("speechtext");

نصائح أخرى

Kindly take a look at below codes!..

   **Using Intent:::**

            Intent intent = new Intent(
                    RecognizerIntent.ACTION_RECOGNIZE_SPEECH);

            intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, "en-US");

            try {
                startActivityForResult(intent, RESULT_SPEECH);
                txtText.setText("");
            } catch (ActivityNotFoundException a) {
                Toast t = Toast.makeText(getApplicationContext(),
                        "Opps! Your device doesn't support Speech to Text",
                        Toast.LENGTH_SHORT);
                t.show();
            }

Without Using Intent::

Step 1: Implement RecognitionListener in your class.

Step 2. Add the Below codes:

    private SpeechRecognizer speech = null;
    private Intent speechIntent=null;

    /**
 * Speech Result is used to Store the Voice Commands
 */
    private ArrayList<String> speechResult;


    inside onCreate()  --- > 

     speech = SpeechRecognizer.createSpeechRecognizer(this);
     speech.setRecognitionListener(this);


   Trigger this after your button Click: 

           if (SpeechRecognizer.isRecognitionAvailable(this)) {
                if(speechIntent==null ){
                    speechIntent=new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
                    speechIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_PREFERENCE, "en");
                    speechIntent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE, this.getPackageName());
                    speechIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_WEB_SEARCH);
                    speechIntent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS,12);
                    speech.startListening(speechIntent);
                }else{
                    if(speech!=null){
                        speech.startListening(speechIntent);
                    }
                }
            }

replace the onResults with below code:::

public void onResults(Bundle results) {
    speechResult = results.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION);
    if(speechResult!=null){
        if(speechResult.size()>0 ){
            String command=speechResult.get(0).toString();
                     }
             }

}

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top