Kaylee ====== Kaylee is a somewhat fancy voice command recognition program that performs actions when a user speaks loosely preset sentences. It has a flexible plugin API allowing developers to add new advanced features that can be distributed and loaded with ease. Kaylee is based on `Blather `__ by `Jezra `__, but adds a lot of features that go beyond the original purpose of Blather. Installation ------------ Kaylee is only tested on GNU/Linux systems, so make sure you're trying to install it on one of those. The current recommended way to use Kaylee is to check out the Git repository and run it from there:: git clone https://git.clayhobbs.com/clay/kaylee.git cd kaylee Dependencies ~~~~~~~~~~~~ 1. Python 3.6 2. pocketsphinx 5prealpha 3. gstreamer-1.0 (and what ever plugin has pocketsphinx support) 4. gstreamer-1.0 base plugins (required for ALSA) 5. python-gobject (required for GStreamer and the GTK-based UI) 6. python-requests 7. python-setuptools **Note:** it may also be required to install ``pocketsphinx-hmm-en-hub4wsj`` Optional Dependencies ~~~~~~~~~~~~~~~~~~~~~ 1. python-pydbus (required for MPRIS plugin) Usage ----- 1. Copy plugins.json.dist to ~/.config/kaylee/plugins.json and fill the ".shell" section of the file with sentences to speak and commands to run. 2. Run Kaylee with ``./kaylee.py``. This generates a language model and dictionary using the `Sphinx Knowledge Base Tool `__, then listens for commands with the system default microphone. To use a microphone other than the system default, use the ``-m`` flag. 3. Start talking! Examples ~~~~~~~~ - To run Kaylee with the GTK UI, starting in continuous listen mode: ``./kaylee.py -i g -c`` - To run Kaylee with no UI and using a USB microphone recognized as device 2: ``./kaylee.py -m 2`` - To run a command when a valid sentence has been detected: ``./kaylee.py --valid-sentence-command=/path/to/command`` - To run a command when an invalid sentence has been detected: ``./kaylee.py --invalid-sentence-command=/path/to/command`` Default values for command-line arguments may be specified in ~/.config/kaylee/options.json. It is recommended to base this file on the default configuration file, kayleevc/conf/options.json. Finding the Device Number of a USB microphone ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ There are a few ways to find the device number of a USB microphone. - ``cat /proc/asound/cards`` - ``arecord -l``