【发布时间】:2017-09-22 07:31:13
【问题描述】:
我目前正在尝试获取已使用 CMU Sphinx 检测到的单词的时间戳。
while ((result = recognizer.getResult()) != null) {
for(WordResult w : result.getWords()){
if(w.getWord() != Word.UNKNOWN){
System.out.println(w.getTimeFrame().getStart());
System.out.println(w.getWord() + " " + (w.getTimeFrame().getStart()/100)/60 + ":" + (w.getTimeFrame().getStart()/100 % 60));
}
}
}
是我目前拥有的代码。我认为这是因为样本/帧速率不是上面逻辑中规定的每秒 100 个。
上面的代码显然不准确,因为整个文件只有 8 分钟长,而且帧时间计算器输出的时间戳超过一小时?
有没有办法从 WordResult 获取时间戳或找到 Sphinx 正在使用的样本/帧速率?
我在网上查了一下,没有找到关于 TimeFrame 类的任何文档。
【问题讨论】:
-
时间帧是毫秒,不是帧,所以你需要除以1000,而不是100。
-
呃 - 我怎么可能没有意识到这一点......谢谢尼古拉
标签: speech-recognition cmusphinx sphinx4