키워드 목록 및 상대 임계 값을 기반으로 연속 키워드 검색을 테스트하기 위해 pocketsphinx android 데모를 수정합니다.둘 이상의 일치 항목이있는 동안 SegmentList를 반복 할 수 없습니다.
내 구현 edu.cmu.pocketsphinx.RecognitionListener의 onResult 메서드를이 문자열 hypothesis.getHypstr()
이라고 할 때 가능한 일치 목록이 포함됩니다. SegmentList가 비어있는 경우 내 코드 실행이 결코 세그먼트 반복되지
for (Segment seg : recognizer.getDecoder().seg()) {
System.out.println(seg.getWord() + " " + seg.getProb());
}
이 hypothesis.getHypstr()
더 보여줍니다 동안 같은 :
나는 그것을 같이 할 수 있습니다 매 경기 자신의 무게를 얻을 수 here 읽기 일치하는 것보다
더 일치 쉽게 찾을 수 있도록 내가 매우 낮은 역치이 키워드 목록을 사용하고 경우 재현하려면 다음
rainbow /1e-50/
about /1e-50/
blood /1e-50/
energies /1e-50/
내 onPartialResult
방법은 아무것도하지를하는 동안 :
public void onEndOfSpeech() {
switchSearch(KWS_SEARCH);
}
public void onResult(Hypothesis hypothesis) {
if (hypothesis != null) {
for (Segment seg : recognizer.getDecoder().seg()) {
//No iteration is done here!!!
Log.d("onResult", seg.getWord() + " " + seg.getProb());
}
String text = hypothesis.getHypstr();
makeText(getApplicationContext(), text, Toast.LENGTH_SHORT).show();
}
}
예를 들어 "energies"라고 말하면 hypothesis.getHypstr()
= "blood about energy blood"하지만 SegmentList에 반복은 수행되지 않습니다. onResult 메서드의 시작 부분에 중단 점을 넣어서 볼 수 있습니다.
의견이 있으십니까?
감사합니다.
대부분 반복되지만 인쇄되지는 않습니다. 당신은 또한 hypothesis! = null 조건 내에서 루프를 움직일 필요가 있습니다. –
고마워요 @ 니콜라이, 표준 출력의 출력을 찾고있는 대신 코드를 디버깅 중이며 블록이 입력되지 않습니다. 당신은 맞습니다! = null 조건이지만 디버깅하는 동안 어쨌든 다음 블록이 입력되어 있기 때문에 가설이 null이 아닌 것을 볼 수 있습니다 – salvolds