Engines sub-package

Dragonfly supports multiple speech recognition engines as its backend. The engines sub-package implements the interface code for each supported engine.

Main SR engine back-end interface


Get the currently initialized SR engine object.

If an SR engine has not been initialized yet, None will be returned instead.

Return type:EngineBase | None
Returns:engine object or None

Usage example:

# Print the name of the current engine if one has been
# initialized.
from dragonfly import get_current_engine
engine = get_current_engine()
if engine:
    print("Engine name: %r" % engine.name)
    print("No engine has been initialized.")
get_engine(name=None, **kwargs)[source]

Get the engine implementation.

This function will initialize an engine instance using the get_engine and is_engine_available functions in the engine packages and return an instance of the first available engine. If one has already been initialized, it will be returned instead.

If no specific engine is requested and no engine has already been initialized, this function will initialize and return an instance of the first available engine in the following order:

SR engine back-end Engine name string(s)
  1. Dragon/Natlink
  1. Kaldi
  1. WSR/SAPI 5
"sapi5", "sapi5inproc", "sapi5shared"
  1. CMU Pocket Sphinx

The Text-input engine can be initialized by specifying "text" as the engine name. This back-end will not be initialized if no specific engine is requested because the back-end is not a real SR engine and is used mostly for testing.


  • name (str) – optional human-readable name of the engine to return.
  • **kwargs – optional keyword arguments passed through to the engine for engine-specific configuration.
Return type:



engine instance




Register initialization of an engine.

This function sets the default engine to the first engine initialized.