Welcome to dragonfluid!


The dragonfluid library is a simple extension to dragonfly, a library to create rules or macros that work with Dragon NaturallySpeaking or Windows Speech Recognition. dragonfluid adds “out of the box” support for chaining multiple commands in a row without pausing during speech. You are assumed to be familiar with dragonfly and its use.

It’s Not For Everyone

If you have existing voice commands whose words you absolutely do not want to alter, dragonfluid might not be for you, especially if those commands consist of hoots, made up words, or novel syllables. If you are willing to alter your commands then little should get in your way. I recommend trying in any case rather than assuming the worst if you’re interested in easy to add on chaining support, but thought you should know in advance it’s not equally great with all scenarios.

You may want to read further details regarding The Effect Of Fluidity on command recognition, especially if you have strange commands or commands you cannot or will not alter.

Quick Start

The easiest way to give it a whirl is to:

  • use pip install dragonfluid from the command line to install dragonfluid, if Python pip is on your path, otherwise it can be located in the Scripts folder of your Python installation or downloaded. For help installing with pip, look here.
  • or download and unzip a release from here and from the command line run the setup script using python setup.py install assuming python.exe is on your path. For help installing, look here.
  • once installed, import the following objects into your code,
from dragonfluid import GlobalRegistry, FluidRule, QuickFluidRules

You don’t have to change all your files at once, but chaining will generally occur only between dragonfluid rule types added to dragonfluid grammars.

How To Speak

Just speak naturally. Don’t worry if pauses are needed, speak as if you trust they are not, and only then address the situations where the intended functionality does not result.

However, now that you can speak multiple commands in a row, there is an additional need to say a literal tag before anything that looks like a command but is not meant to be one. The default literal tag options are “literal”, “english”, and “English”. For additional details see the literalization concept section.