2010-09-04 14 views
9

Ho cercato di capire come utilizzare il modulo Dragonfly. Ho dato un'occhiata alla documentazione, ma non riesco a capire come usarlo. Voglio solo essere in grado di riconoscere alcune frasi e agire su quelle frasi.Come si riconosce il parlato con il modulo Python Dragonfly?

+2

È necessario decidere se Dragon NaturallySpeaking deve fornire la conversione da testo a testo o se si desidera fare affidamento sull'applicazione di riconoscimento vocale di Windows incorporata. – reckoner

risposta

5

Questo è corretto, questo esempio terminerà. Ho visto questo particolare esempio un bel po 'e manca un certo numero di funzionalità chiave.

La prima cosa è che pythoncom non viene importato. Ciò fornisce un ciclo principale per il programma. Quanto sopra

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

Correzione minore: è necessario aggiungere "import pythoncom" prima di usarlo. –

+0

Il pump dei messaggi qui viene effettivamente fornito dall'applicazione NaturallySpeaking stessa quando la dll natlink.pyd è associata all'applicazione NaturallySpeaking nel registro. Questo fa parte del processo di installazione che è documentato sul sito speechcomputing. Una volta che il registro e i percorsi associati sono stati impostati, il messaggio esterno non è necessario e l'applicazione deve rispondere direttamente al parlato. Si noti che questo commento si applica solo se si utilizza NaturallySpeaking per fornire la traduzione vocale in testo. – reckoner

+1

Non è stato meglio correggere la risposta esistente invece di copiarne il contenuto e modificarlo in un post separato? – halflings

1

trovo l'esempio l'uso riportate nel this document ad essere piuttosto semplice e di auto-spiegando:

Un esempio molto semplice di utilizzo Dragonfly è quello di creare un comando statica vocale con un callback che verrà chiamato quando il comando è parlato. Questo viene fatto come segue: ::

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

Questo esempio non funziona per me. Lo script termina. – Moh

+0

Ciò è dovuto al fatto che non esiste un ciclo di attesa in attesa di messaggi di pompaggio, come spiegato nella precedente risposta dell'utente1110728. –

+0

Nel mio caso questo modulo mi sta chiedendo di win32gui, mentre sto eseguendolo su Debian: V – erm3nda

3

In primo luogo, nel caso in cui si sta utilizzando Linux, si deve sapere che Libellula funziona solo con Windows riconoscimento vocale Dragon NaturallySpeaking o + Natlink. (È possibile farlo funzionare su Linux con una macchina virtuale e Aenea, ma sembra fuori dallo scopo di questa domanda.)

Se lo si utilizza con WSR, dovrebbe essere semplice come assicurarsi che Dragonfly è nel tuo percorso Python e chiamando il seguente alla fine dello script principale:

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

Se si sta usando con Dragon NaturallySpeaking, seguire il link qui sopra per il sito Natlink e seguire le istruzioni per installa e attiva Natlink prima di provare a utilizzare Dragonfly. Una volta installato (usa tutti i valori predefiniti), dovresti essere in grado di inserire script Dragonfly nella cartella C: \ NatLink \ NatLink \ MacroSystem e farli attivare automaticamente all'avvio di Dragon NaturallySpeaking.

Problemi correlati