我试图找出python库Dragonfly是否可以使用你提供的上下文和语法来提高识别率。这个想法是,如果语音识别引擎本身知道你能说什么的语法,那么识别应该大大改进,但如果Dragonfly库只是检查识别器中的任意听写是否与语法匹配,我希望没有改善。
此外,由于Dragonfly同时支持Dragon和Windows语音识别,因此根据引擎确定答案是否有所不同是有帮助的。
答案 0 :(得分:1)
实际答案是肯定的。从技术上讲,Dragonfly只是将语法传递给语音识别引擎(Dragon或WSR),但引擎确实使用语法来提高识别率。我现在已经使用了一段时间,只要你不让你的语法变得很大,它就能很好地运作。其他答案说不,只是观察蜻蜓本身并没有做任何工作,但这并没有实际后果,因为发动机反而做了。语法识别比任意听写更好 。我有800多个命令可靠地被识别并使用来自aenea项目的SeriesMappingRule我甚至可以在一个单一的话语中依次说出多个命令。
答案 1 :(得分:0)
我无法肯定Dragon,但我确定Dragonfly使用CFG来定义Windows语音识别的命令语法。 (如果Dragonfly 也不会使用CFG来代替Dragon,我会感到非常惊讶;重要的好处是巨大的。)
答案 2 :(得分:0)
似乎不,Dragonfly不使用给定的语法来提高识别率。它只是将SR引擎的第一个选项传递给语法规则。在engine.py的第264行你可以找到:
words = tuple(unicode(w, "windows-1252") for w in results.getWords(0))
根据NatLink talk introduction and explanation方法
result.getWords(n)
返回引擎的第N个选项,所以(遗憾的是)似乎DragonFly只保留了第一个选项。
我有同样的问题,所以我把liberty to ask带给了开发人员,在这个问题的文档中添加了一个FAQ