Command-line Interface (CLI)
Command-line interface to the Dragonfly speech recognition framework
usage: python -m dragonfly [-h] {test,load,load-directory} ...
Positional Arguments
- command
Possible choices: test, load, load-directory
Sub-commands
test
Load grammars from Python files for testing with a dragonfly engine. By default input from stdin is passed to engine.mimic() after command modules are loaded.
python -m dragonfly test [-h] [-e ENGINE]
[-o ENGINE_OPTIONS [ENGINE_OPTIONS ...]]
[--language LANGUAGE] [-n] [-d DELAY]
[-l {DFLY,DEBUG,INFO,WARNING,ERROR,CRITICAL}] [-q]
[file ...]
Positional Arguments
- file
Command module file(s).
Named Arguments
- -e, --engine
Name of the engine to use for testing.
Default: “text”
- -o, --engine-options
One or more engine options to be passed to get_engine(). Each option should specify a key word argument and value. Multiple options should be separated by spaces or commas. Values are treated as Python literals if possible, otherwise as strings.
Default: []
- --language
Speaker language to use. Only applies if using an engine backend that supports changing the language (e.g. the “text” engine).
Default: “en”
- -n, --no-input
Whether to load command modules and then exit without reading input from stdin or recognizing speech.
Default: False
- -d, --delay
Time in seconds to delay before mimicking each command. This is useful for testing contexts.
Default: 0
- -l, --log-level
Possible choices: DFLY, DEBUG, INFO, WARNING, ERROR, CRITICAL
Logging defaults/level to use. By default, Dragonfly’s setup_log() function is called.
Default: “DFLY”
- -q, --quiet
Suppress loader-related informational messages.
Default: False
load
Load and recognize from command module files.
python -m dragonfly load [-h] [-e ENGINE]
[-o ENGINE_OPTIONS [ENGINE_OPTIONS ...]]
[--language LANGUAGE] [-n] [--no-recobs-messages]
[-l {DFLY,DEBUG,INFO,WARNING,ERROR,CRITICAL}] [-q]
[file ...]
Positional Arguments
- file
Command module file(s).
Named Arguments
- -e, --engine
Name of the engine to use for loading and recognizing from command modules. By default, this is the first available engine backend.
- -o, --engine-options
One or more engine options to be passed to get_engine(). Each option should specify a key word argument and value. Multiple options should be separated by spaces or commas. Values are treated as Python literals if possible, otherwise as strings.
Default: []
- --language
Speaker language to use. Only applies if using an engine backend that supports changing the language (e.g. the “text” engine).
Default: “en”
- -n, --no-input
Whether to load command modules and then exit without reading input from stdin or recognizing speech.
Default: False
- --no-recobs-messages
Disable recognition state messages for each spoken phrase.
Default: False
- -l, --log-level
Possible choices: DFLY, DEBUG, INFO, WARNING, ERROR, CRITICAL
Logging defaults/level to use. By default, Dragonfly’s setup_log() function is called.
Default: “DFLY”
- -q, --quiet
Suppress loader-related informational messages.
Default: False
load-directory
Load and recognize from command module files in one or more directories. Only module files starting with an underscore (_*.py) are loaded by this command.
python -m dragonfly load-directory [-h] [-r] [-e ENGINE]
[-o ENGINE_OPTIONS [ENGINE_OPTIONS ...]]
[--language LANGUAGE] [-n]
[--no-recobs-messages]
[-l {DFLY,DEBUG,INFO,WARNING,ERROR,CRITICAL}]
[-q]
dir [dir ...]
Positional Arguments
- dir
One or more command module directories.
Named Arguments
- -r, --recursive
Whether to recursively load command modules in sub-directories.
Default: False
- -e, --engine
Name of the engine to use for loading and recognizing from command modules. By default, this is the first available engine backend.
- -o, --engine-options
One or more engine options to be passed to get_engine(). Each option should specify a key word argument and value. Multiple options should be separated by spaces or commas. Values are treated as Python literals if possible, otherwise as strings.
Default: []
- --language
Speaker language to use. Only applies if using an engine backend that supports changing the language (e.g. the “text” engine).
Default: “en”
- -n, --no-input
Whether to load command modules and then exit without reading input from stdin or recognizing speech.
Default: False
- --no-recobs-messages
Disable recognition state messages for each spoken phrase.
Default: False
- -l, --log-level
Possible choices: DFLY, DEBUG, INFO, WARNING, ERROR, CRITICAL
Logging defaults/level to use. By default, Dragonfly’s setup_log() function is called.
Default: “DFLY”
- -q, --quiet
Suppress loader-related informational messages.
Default: False
Usage Examples
Below are some examples using each of the available sub-commands. All examples should work in Bash, PowerShell, cmd.exe, etc.
test
examples
# Load a command module and mimic two commands separately.
echo "command one\n command two" | python -m dragonfly test module.py
# Same test without the pipe.
python -m dragonfly test module.py
command one
command two
# Same test with quieter output.
echo "command one\n command two" | python -m dragonfly test -q module.py
# Test loading two modules with the sphinx engine and exit without
# checking input.
python -m dragonfly test -e sphinx --no-input module1.py module2.py
# Load a command module with the text engine's language set to German.
python -m dragonfly test --language de module.py
# Use the --delay command to test context-dependent commands.
echo "save file" | python -m dragonfly test --delay 1 _notepad_example.py
load
examples
# Load command modules and recognize speech in a loop using the default
# engine.
python -m dragonfly load _*.py
# Load command modules and exit afterwards.
python -m dragonfly load --no-input _*.py
# Load command modules and disable recognition state messages such as
# "Speech start detected".
python -m dragonfly load --no-recobs-messages _*.py
# Load one command module with the Sphinx engine.
python -m dragonfly load --engine sphinx sphinx_commands.py
# Initialize the Kaldi engine backend with custom arguments, then load
# command modules and recognize speech.
python -m dragonfly load _*.py --engine kaldi --engine-options " \
model_dir=kaldi_model_zamia \
vad_padding_end_ms=300"
load-directory
examples
# Load command modules in the "command-modules" directory and recognize
# speech in a loop using the default engine.
python -m dragonfly load-directory command-modules
# Load command modules in the "command-modules" directory and any sub-
# directories, then recognize speech in a loop using the default engine.
python -m dragonfly load-directory -r command-modules
python -m dragonfly load-directory --recursive command-modules
# Load command modules in the "command-modules" directory and recognize
# speech without printing recognition state messages.
python -m dragonfly load-directory --no-recobs-messages command-modules
# Load command modules in the "wsr-modules" directory and recognize
# speech using the WSR/SAPI5 in-process engine backend.
python -m dragonfly load-directory -e sapi5inproc wsr-modules
# Initialize the Kaldi engine backend with some custom arguments, then
# load command modules in the current directory and recognize speech.
python -m dragonfly load-directory . --engine kaldi --engine-options " \
model_dir=kaldi_model_zamia \
vad_padding_end_ms=300"