0
onPartialResult
나는 hypotesis
이 내가 관심있어하는 키워드 중 하나인지를보기 위해 사용하고 있습니다. 나는 사용자가 무언가를 말하는 경우를 처리하고자하고 키워드로 인식되지 않습니다키워드 spotting : hypoteis는 당신이 찾고있는 키워드 중 하나 일 때까지 null입니다.
@Override
public void onPartialResult(Hypothesis hypothesis) {
Log.d(TAG, "onPartialResult");
if (hypothesis == null) {
return;
}
String text = hypothesis.getHypstr();
String wordWithProb = "";
String mostProbableWord = "";
int probability = -10000;
if (text.contains("|")) {
for (Segment seg : recognizer.getDecoder().seg()) {
wordWithProb += "|" + seg.getWord() + " " + seg.getProb() + "|";
if (seg.getProb() > probability)
mostProbableWord = seg.getWord().trim();
}
}
else
mostProbableWord = text.trim();
Log.i(TAG, "onPartialResults: " + mostProbableWord);
String recognizedCommand = "Please repeat";
if (mostProbableWord.equals("one")) {
//do something...
} else if (mostProbableWord.equals("two")) {
//do something...
} else if (mostProbableWord.equals("three")) {
//do something...
}
//text to speech
speak(recognizedCommand);
startListening(KWS_SEARCH);
}
이제 ; 여기
내 코드입니다 이 경우onPartialResult
방법의 hypotesis는 항상 null
: 예상 되나요? 여기에 null hypoteis가 없다고 기대하고 있습니다 ...
onPartialResult
메서드가 pocketsphinx에 의해 자동으로 호출됨을 고려하면 (공중에 소리가 들리지 않을 때도) 나는 운전 조건으로
null
가설을 사용할 수 없습니다.
또한 각 인식 후에 음성 인식이 이루어 지므로 인식 청취자를 다시 시작해야합니다. 인식기는 음성 텍스트가 진행되는 동안 청취해서는 안됩니다 ...
onEndOfSpeech
으로 해결책을 시도했지만 아무 것도 좋지 않았습니다. 지금까지 ... 아이디어가 있으십니까?
때때로 @ (드물게) 귀무 가설이 생성되지 않고 키워드와 일치하지 않는 경우가 있습니다. 이것은 연설이 키워드와 매우 유사 할 때 발생합니다 ... 어쨌든 ... 사용자가 무언가를 말하고 키워드로 인식되지 않는 경우 어떻게 처리합니까? onEndOfSpeech가 솔루션입니까? 적어도 소음과 스피치를 구별 할 수있는 방법이 있습니까? – salvolds
잡음과 음성을 구별하는 해결책은 아직 없지만 직접 구현해야합니다. –