10

我一直在试图弄清楚如何使用 Dragonfly 模块。我已经查看了文档,但我似乎无法弄清楚如何使用它。我只想能够识别一些短语并根据这些短语采取行动。

4

3 回答 3

5

没错,这个例子将终止。我已经看过这个特定的例子很多,它缺少一些关键特性。

首先是没有导入pythoncom。这为程序提供了一个主循环。以上

from dragonfly.all import Grammar, CompoundRule

# Voice command rule combining spoken form and recognition processing.
class ExampleRule(CompoundRule):
    spec = "do something computer"                  # Spoken form of command.
    def _process_recognition(self, node, extras):   # Callback when command is spoken.
         print "Voice command spoken."

# Create a grammar which contains and loads the command rule.
grammar = Grammar("example grammar")                # Create a grammar to contain the command    rule.
grammar.add_rule(ExampleRule())                     # Add the command rule to the grammar.
grammar.load()                                      # Load the grammar.

while True:
    pythoncom.PumpWaitingMessages()
    sleep(.1)
于 2013-04-09T22:20:01.507 回答
3

首先,如果您使用的是 Linux,您应该知道 Dragonfly 仅适用于 Windows Speech Recognition 或 Dragon NaturallySpeaking + Natlink。(可以通过虚拟机和Aenea在 Linux 上运行它,但这似乎超出了这个问题的范围。)

如果你将它与 WSR 一起使用,它应该像确保 Dragonfly 在你的 Python 路径中并在你的主脚本末尾调用以下命令一样简单:

while True:
    pythoncom.PumpWaitingMessages()
    time.sleep(0.1)

如果您将它与 Dragon NaturallySpeaking 一起使用,请按照上面的链接到 Natlink 网站并按照那里的说明安装和激活 Natlink,然后再尝试使用 Dragonfly。安装后(使用所有默认值),您应该能够将 Dragonfly 脚本放在 C:\NatLink\NatLink\MacroSystem 文件夹中,并在启动 Dragon NaturallySpeaking 时自动激活它们。

于 2014-11-13T00:21:09.587 回答
1

我发现本文档中给出的使用示例非常简单且不言自明:

一个非常简单的 Dragonfly 使用示例是创建一个带有回调的静态语音命令,当说出命令时将调用该回调。这是按如下方式完成的:::

   from dragonfly.all import Grammar, CompoundRule

   # Voice command rule combining spoken form and recognition processing.
   class ExampleRule(CompoundRule):
       spec = "do something computer"                  # Spoken form of command.
       def _process_recognition(self, node, extras):   # Callback when command is spoken.
           print "Voice command spoken."

   # Create a grammar which contains and loads the command rule.
   grammar = Grammar("example grammar")                # Create a grammar to contain the command rule.
   grammar.add_rule(ExampleRule())                     # Add the command rule to the grammar.
   grammar.load()                                      # Load the grammar.
于 2013-03-22T11:39:45.110 回答