Hipótese dividida em frases-chave individuais
Eu uso o Pocketsphinx no meu aplicativo Android. Eu tenho um conjunto relativamente pequeno de comandos a serem reconhecidos independentemente, então acabei usando uma pesquisa por palavra-chave em um arquivo parecido com este:
one/1.0/
done/1.0/
recognition on/1e-10/
recognition off/1e-10/
A lista real não está em inglês, portanto, essas palavras-chave são escolhidas arbitrariamente para fins de exemplo. Percebo que esses limites podem ser um pouco abaixo do ideal e que palavras curtas são propensas a incompatibilidades.
O problema surge neste método:
@Override
public void onPartialResult(Hypothesis hypothesis) {
if (hypothesis != null) {
Log.d(
"Sphinx",
"\"" + hypothesis.getHypstr() + "\" recognized"
);
}
}
Observe que algumas palavras parecem muito parecidas. A coisa é,
"Um" resulta em"done one" recognized
"Concluído" resulta em"one done" recognized
Infelizmente, não encontrei nenhuma documentação sobrehypstr_get
(Eu apreciaria se você pudesse me indicar isso), mas efetivamente parece retornar uma sequência unida de correspondências prováveis em ordem crescente de probabilidade.
Como recuperar comandos reais dehypothesis
? Não posso simplesmente dividirhypothesis.getHypstr()
por espaço em branco, pois alguns comandos são frases-chave em vez de palavras-chave. Eu só quero um resultado único e mais provável.
Obrigado.