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?
risposta
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)
Correzione minore: è necessario aggiungere "import pythoncom" prima di usarlo. –
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
Non è stato meglio correggere la risposta esistente invece di copiarne il contenuto e modificarlo in un post separato? – halflings
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.
Questo esempio non funziona per me. Lo script termina. – Moh
Ciò è dovuto al fatto che non esiste un ciclo di attesa in attesa di messaggi di pompaggio, come spiegato nella precedente risposta dell'utente1110728. –
Nel mio caso questo modulo mi sta chiedendo di win32gui, mentre sto eseguendolo su Debian: V – erm3nda
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.
È 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