2014-12-25 3 views
1

Я создающего Android приложение, которое работает отлично, когда он слушает одну ключевую фразу с следующей конфигурации:Слушайте более одного KeyphraseSearch

private static final String KWS_SEARCH = "wakeup"; 
private static final String KEYPHRASE = "oh mighty computer"; 

    recognizer = SpeechRecognizerSetup.defaultSetup() 
      .setAcousticModel(new File(modelsDir, "hmm/en-us-semi")) 
      .setDictionary(new File(modelsDir, "dict/cmu07a.dic")) 
      .setKeywordThreshold(1e-20f) 
      .getRecognizer(); 

    recognizer.addListener(this); 

    recognizer.addKeyphraseSearch(KWS_SEARCH, KEYPHRASE); 

Как я могу добавить вторую ключевую фразу, которая признана слишком? Я попробовал следующее:

private static final String KWS_SEARCH2 = "up"; 
private static final String KEYPHRASE2 = "hello my name is"; 

recognizer.addKeyphraseSearch(KWS_SEARCH2, KEYPHRASE2); 

@Override 
public void onPartialResult(Hypothesis hypothesis) { 
    if (hypothesis == null) 
     return; 

    String text = hypothesis.getHypstr(); 

    if (text.equals(KWS_SEARCH)) 
     restartRecognizer(KWS_SEARCH); 
    else if (text.equals(KWS_SEARCH2)) 
     restartRecognizer(KWS_SEARCH2); 
} 

Спасибо за помощь!

+0

А что случилось, когда вы это пробовали? Что вы ожидали вместо этого? Будьте как можно детальнее, а не просто «это не сработало». –

ответ

1

Вы можете создать файл в активах со списком ключевой фразы следующего вида (по одному на линию со следующим порогом):

oh mighty computer /1e-40/ 
hello my name is /1e-38/ 

и создать поиск с addKeywordSearch, который загружает файл вместо addKeyphraseSearch.

Смежные вопросы