对单个关键短语的分裂假设
Split hypothesis on individual keyphrases
我在 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"
);
}
}
请注意,有些词听起来很相似。事情是,
- "One" 结果为
"done one" recognized
- "Done" 结果为
"one done" recognized
不幸的是,我找不到任何关于 hypstr_get
的文档(如果你能指导我,我将不胜感激)但实际上它似乎 return 一个连接的可能匹配字符串在增加概率顺序。
如何从 hypothesis
中检索实际命令?我不能只用空格分隔 hypothesis.getHypstr()
,因为有些命令是关键短语而不是关键字。我只想要一个最有可能的结果。
谢谢。
您可以遍历细分,每个细分都是一个关键字
for (Segment seg : recognizer.getDecoder().seg()) {
System.out.println(seg.getWord() + " " + seg.getProb());
}
我在 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"
);
}
}
请注意,有些词听起来很相似。事情是,
- "One" 结果为
"done one" recognized
- "Done" 结果为
"one done" recognized
不幸的是,我找不到任何关于 hypstr_get
的文档(如果你能指导我,我将不胜感激)但实际上它似乎 return 一个连接的可能匹配字符串在增加概率顺序。
如何从 hypothesis
中检索实际命令?我不能只用空格分隔 hypothesis.getHypstr()
,因为有些命令是关键短语而不是关键字。我只想要一个最有可能的结果。
谢谢。
您可以遍历细分,每个细分都是一个关键字
for (Segment seg : recognizer.getDecoder().seg()) {
System.out.println(seg.getWord() + " " + seg.getProb());
}