2010-09-04 7 views
9

He estado tratando de descubrir cómo usar el módulo Dragonfly. He echado un vistazo a la documentación, pero parece que no puedo entender cómo usarla. Solo quiero poder reconocer algunas frases y actuar sobre esas frases.¿Cómo se reconoce el habla con el módulo de Python Dragonfly?

+2

Debe decidir si desea que Dragon NaturallySpeaking proporcione la traducción de voz a texto, o si desea confiar en la aplicación integrada de reconocimiento de voz de Windows. – reckoner

Respuesta

5

Eso es correcto, este ejemplo se terminará. He visto bastante este ejemplo en particular y me faltan algunas características clave.

Lo primero es que Pythoncom no se importa. Esto proporciona un ciclo principal para el programa. Lo anterior

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) 
+0

Arreglo menor: necesita agregar "importar pythoncom" antes de usarlo. –

+0

La bomba de mensajes aquí la proporciona la propia aplicación NaturallySpeaking cuando el dll natlink.pyd está vinculado a la aplicación NaturallySpeaking en el registro. Esto es parte del proceso de configuración que está documentado en el sitio de cómputo del discurso. Una vez que el registro y las rutas asociadas se han configurado, la bomba de mensajes externos no es necesaria y la aplicación debe responder directamente al habla. Tenga en cuenta que este comentario solo se aplica si usa NaturallySpeaking para proporcionar la traducción de voz a texto. – reckoner

+1

¿No era mejor simplemente corregir la respuesta existente en lugar de copiar su contenido y modificarlo en una publicación separada? – halflings

1

encuentro el ejemplo de uso dada en this document a ser bastante simple y autoexplicativo:

Un ejemplo muy simple del uso de la libélula es crear un comando estática voz con una devolución de llamada que se llamará cuando el comando es hablado. Esto se hace de la siguiente manera: ::

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. 
+2

Este ejemplo no funciona para mí. La secuencia de comandos termina. – Moh

+0

Esto se debe a que no hay ningún bucle while esperando el bombeo de mensajes como se explica en la respuesta anterior del usuario1110728. –

+0

En mi caso, este módulo me pregunta acerca de win32gui, mientras lo estoy ejecutando en Debian: V – erm3nda

3

En primer lugar, en caso de que esté utilizando Linux, usted debe saber que la libélula sólo funciona con Windows reconocimiento de voz Dragon NaturallySpeaking o + Natlink. (Es posible hacerlo funcionar en Linux con una máquina virtual y Aenea, pero eso parece estar fuera del alcance de esta pregunta.)

Si lo está utilizando con WSR, debe ser tan simple como asegurarse libélula que se encuentra en la ruta de Python y llamando a la siguiente al final de su script principal:

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

Si se está usando con Dragon NaturallySpeaking, siga el enlace anterior para la página web Natlink y siga las instrucciones para instala y activa Natlink antes de intentar usar Dragonfly. Una vez que esté instalado (utilice todos los valores predeterminados), debería poder colocar scripts de Dragonfly en su carpeta C: \ NatLink \ NatLink \ MacroSystem y hacer que se activen automáticamente cuando inicie Dragon NaturallySpeaking.

Cuestiones relacionadas