title: PocketSphinx android displaying results even without me speaking
body: <p>I am using pocketsphinx on android for spotting a keyword, but it doesn't recognize any other keyword than the required one. Moreover it doesn't even wait for me to speak and displays the keyword in the logcat.</p>
  
  <p>Here is my code:</p>
  
  <pre><code>public class SpeechService extends Service implements RecognitionListener {
  
  private static final String TAG = "myTag";
  private static final String KWS_SEARCH = "wakeup";
  private static final String KEY_PHRASE = "hello";
  
  private SpeechRecognizer recognizer;
  private PowerManager.WakeLock lock;
  
  @Override
  public IBinder onBind(Intent intent) {
      return null;
  }
  
  @Override
  public void onDestroy() {
      super.onDestroy();
      recognizer.cancel();
      recognizer.shutdown();
      lock.release();
  }
  
  @Override
  public int onStartCommand(Intent data, int flags, int startId) {
      new AsyncTask&lt;Void, Void, Exception&gt;() {
          @Override
          protected Exception doInBackground(Void... params) {
              try {
                  Assets assets = new Assets(SpeechService.this);
                  File assetDir = assets.syncAssets();
                  setupRecognizer(assetDir);
              } catch (IOException e) {
                  return e;
              }
              return null;
          }
  
          @Override
          protected void onPostExecute(Exception result) {
              if(result == null)
                  recognizer.startListening(KWS_SEARCH);
          }
      }.execute();
  
      return START_STICKY;
  }
  
  private void setupRecognizer(File assetsDir) throws IOException {
      // The recognizer can be configured to perform multiple searches
      // of different kind and switch between them
  
      recognizer = defaultSetup()
              .setAcousticModel(new File(assetsDir, "en-us-ptm"))
              .setDictionary(new File(assetsDir, "cmudict-en-us.dict"))
  
  
              //.setRawLogDir(assetsDir)
  
  
              .setKeywordThreshold(1e-40f)
  
  
              .setBoolean("-allphone_ci", true)
  
              .getRecognizer();
      recognizer.addListener(this);
  
      // Create keyword-activation search.
      recognizer.addKeyphraseSearch(KWS_SEARCH, KEY_PHRASE);
  }
  
  @Override
  public void onBeginningOfSpeech() {
      //Log.i(TAG, "onBeginningOfSpeech");
  }
  
  @Override
  public void onEndOfSpeech() {
      //Log.i(TAG, "onEndOfSpeech");
      if(!recognizer.getSearchName().equals(KWS_SEARCH)) {
          recognizer.cancel();
          recognizer.startListening(KWS_SEARCH);
      }
  }
  
  @Override
  public void onPartialResult(Hypothesis hypothesis) {
      //Log.i(TAG, "onPartialResult");
      if(hypothesis == null)
          return;
      String result = hypothesis.getHypstr();
      Log.i(TAG, "result = " + result);
      recognizer.cancel();
      recognizer.startListening(KWS_SEARCH);
  }
  
  @Override
  public void onResult(Hypothesis hypothesis) {
      //Log.i(TAG, "onResult");
  }
  
  @Override
  public void onError(Exception e) {
      Log.i(TAG, "onError");
      recognizer.startListening(KWS_SEARCH);
  }
  
  @Override
  public void onTimeout() {
      Log.i(TAG, "onTimeout");
      recognizer.startListening(KWS_SEARCH);
  }
  }
  </code></pre>
  
  <p>Here is the Logcat when I haven't even spoken yet.</p>
  
  <pre><code>result = hello
  result = hello
  result = hello hello
  result = hello
  result = hello hello
  result = hello
  </code></pre>
  
  <p>and so on...</p>
  
  <p>What am I doing wrong???</p>