title: RecognizerIntent in offline mode
body: <p>I use RecognizerIntent that works pretty well (see the below function). What I want is to run in offline mode. If RecognizerIntent is not a good solution what is the alternative? Also if it is another solution I will want to set the language...Thanks</p>
  
  <pre><code>public void speak(View view) {
          Intent intent = new Intent(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;
          }
  
          int noOfMatches = 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);
      }
  </code></pre>