我在我的 Android 应用程序中使用 Pocketsphinx。我有一组相对较少的命令需要独立识别,所以我最终使用了来自如下文件的关键字搜索:
one/1.0/
done/1.0/
recognition on/1e-10/
recognition off/1e-10/
实际列表不是英文的,因此为了示例,这些关键字是任意选择的。我意识到这些阈值可能不太理想,而且短词容易出现不匹配。
这种方法会出现问题:
@Override
public void onPartialResult(Hypothesis hypothesis) {
if (hypothesis != null) {
Log.d(
"Sphinx",
"\"" + hypothesis.getHypstr() + "\" recognized"
);
}
}
请注意,有些词听起来非常相似。事情是,
- “一”导致
"done one" recognized
- “完成”导致
"one done" recognized
不幸的是,我找不到任何文档hypstr_get
(如果您能指导我,我将不胜感激)但实际上它似乎以概率递增的顺序返回了可能匹配的连接字符串。
如何从中检索实际命令hypothesis
?我不能只hypothesis.getHypstr()
用空格分割,因为有些命令是关键短语而不是关键字。我只想要一个最可能的结果。
谢谢。