Somewhat fancy voice command recognition software
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Clara Hobbs 70f05dbe5d Update copyright for 2017 7 years ago
assets New icons! 8 years ago
data New icons! 8 years ago
kayleevc Update copyright for 2017 7 years ago
systemd Add a systemd service file for starting Kaylee 8 years ago
.gitignore Add packaging files to .gitignore 8 years ago
COPYING Rename license file to COPYING 8 years ago
README.rst Updated README for new configuration 7 years ago
kaylee.py Update copyright for 2017 7 years ago
options.json.tmp Give plugins the ability to talk 7 years ago
plugins.json.tmp Moved plugin configuration to plugins.json 7 years ago
setup.py Update URL in setup script 7 years ago

README.rst

Kaylee
======

Kaylee is a somewhat fancy speech recognizer that runs commands and
performs other functions when a user speaks loosely preset sentences. It
is based on `Blather <https://gitlab.com/jezra/blather>`__ by
`Jezra <http://www.jezra.net/>`__, but adds a lot of features that go
beyond the original purpose of Blather.

Requirements
------------

1. Python 3 (tested with 3.5, may work with older versions)
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 (required for automatic language updating)

**Note:** it may also be required to install
``pocketsphinx-hmm-en-hub4wsj``

Usage
-----

1. Copy options.json.tmp to ~/.config/kaylee/options.json. Default
values for command-line arguments may be specified in this file.
2. Copy plugins.json.tmp to ~/.config/kaylee/plugins.json and fill the
".shell" section of the file with sentences to speak and commands
to run.
3. Run Kaylee with ``./kaylee.py``. This generates a language model and
dictionary using the `Sphinx Knowledge Base Tool
<http://www.speech.cs.cmu.edu/tools/lmtool.html>`__, then listens for
commands with the system default microphone.

- For the GTK UI, run ``./kaylee.py -i g``.
- To start a UI in 'continuous' listen mode, use the ``-c`` flag.
- 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``

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``