代码之家  ›  专栏  ›  技术社区  ›  Joseph Garvin

蜻蜓是否使用给定的语法/上下文来提高识别能力?

  •  1
  • Joseph Garvin  · 技术社区  · 10 年前

    我想知道python库 Dragonfly 可以使用你给它的上下文和语法来提高识别能力。其想法是,如果语音识别引擎本身知道你所说的语法,那么识别应该会大大提高,但如果Dragonfly库只是检查识别器中的任意听写是否符合语法,我预计不会有任何提高。

    此外,由于Dragonfly支持Dragon和Windows语音识别,因此了解答案是否因引擎而异会有所帮助。

    3 回复  |  直到 10 年前
        1
  •  1
  •   Joseph Garvin    9 年前

    实际答案是肯定的。从技术上讲,Dragonfly只是将语法传递给语音识别引擎(Dragon或WSR),但这些引擎实际上使用语法来提高识别。我已经用了一段时间了,只要你不让你的语法变得庞大,它就可以很好地工作。其他回答是否定的,只是观察到蜻蜓本身没有做任何工作,但这并没有实际意义,因为它是由引擎来做的。语法识别是 比任意听写更好。我有超过800条命令被可靠地识别并使用 SeriesMappingRule 在aenea项目中,我甚至可以在一次发言中依次说出多个单词。

        2
  •  0
  •   Eric Brown    10 年前

    我不能肯定Dragon,但我确信Dragonfly使用CFG来定义Windows语音识别的命令语法。(如果Dragonfly 对Dragon也使用CFG;收益可观。)

        3
  •  0
  •   El Marce    9 年前

    似乎没有,Dragonfly没有使用给定的语法来提高识别能力。它只是将SR引擎的第一个选项传递给语法规则。第264行 engine.py 您可以发现:

    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 让开发人员从这个问题开始在文档中添加常见问题解答