Перезагрузка грамматик при использовании DragonFly WSR

#python #python-3.x #speech-recognition #python-dragonfly

#python #python-3.x #распознавание речи #python-dragonfly

Вопрос:

Недавно я начал заниматься DragonFly (из-за незначительных проблем с RSI), и я использую его с WSR и wsr_module_loader_plus.py сценарий.

Одна вещь, которую я нахожу действительно раздражающей, это то, что всякий раз, когда я настраиваю грамматику, мне нужно перезапускать основной скрипт. Закрытие занимает несколько секунд после того, как я нажимаю Ctrl C (idk почему), что только добавляет скуки.

Возможно ли выполнить горячую перезагрузку грамматик с помощью команды? Я видел демонстрацию, где докладчик делал это, но они использовали Dragon NaturallySpeaking, а не WSR.

Здесь я упускаю что-то очевидное, но я новичок в Python. Если я в конечном итоге выясню это, я обязательно опубликую решение… Поиск в Google не помог ._.

(В качестве альтернативы, также может работать голосовая команда только для завершения скрипта, но это только ускоряет перезапуск, а не избавляет от них полностью.)

Ответ №1:

Оказывается, это на самом деле довольно просто. Путем копирования кода в wsr_module_loader_plus.py скрипт и поместив это в свою собственную команду, я смог заставить dragonfly перезагрузить скрипты.

Это рассматриваемый код:

 import os.path
from dragonfly.loader import CommandModuleDirectory

def reload():
    path = os.path.dirname(__file__)
    directory = CommandModuleDirectory(path, excludes=[__file__])
    directory.load()
  

Тогда это просто вопрос выполнения команды, вызывающей команду reload .

При этом я не считаю, что это идеальное решение. Я не думаю, что это фактически выгружает какие-либо старые грамматики. Я пока оставлю это в качестве ответа, но я не думаю, что это лучшее решение.