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.
Clayton G. Hobbs a6e27df2cc Ported to new pocketsphinx and pygi 8 lat temu
assets Added Gtk Tray UI (thanks padfoot) 10 lat temu
data Added Gtk Tray UI (thanks padfoot) 10 lat temu
.gitignore Ported to new pocketsphinx and pygi 8 lat temu
Blather.py Ported to new pocketsphinx and pygi 8 lat temu
GtkTrayUI.py Ported to new pocketsphinx and pygi 8 lat temu
GtkUI.py Ported to new pocketsphinx and pygi 8 lat temu
QtUI.py Added -p --pass-words flag that will pass the recognized words to the shell command 9 lat temu
README.md Ported to new pocketsphinx and pygi 8 lat temu
Recognizer.py Ported to new pocketsphinx and pygi 8 lat temu
commands.tmp added gstreamer0.10-base-plugins to the requirements in the README 10 lat temu
gpl-3.0.txt licensing 11 lat temu
language_updater.sh The updater uses the correct commands file 10 lat temu
options.yaml.tmp Added invalid sentence command and valid sentence command to the documentation 8 lat temu

README.md

Kaylee

Kaylee is a somewhat fancy speech recognizer that will run commands and perform other functions when a user speaks loosely preset sentences. It is based on Blather by Jezra, but adds a lot of features that go beyond the original purpose of Blather.

Requirements

  1. pocketsphinx
  2. gstreamer-1.0 (and what ever plugin has pocket sphinx support)
  3. gstreamer-1.0 base plugins (required for alsa)
  4. pyside (only required for the Qt based UI)
  5. pygtk (only required for the Gtk based UI)
  6. pyyaml (only required for reading the options file)

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

Usage

  1. Move commands.tmp to ~/.config/blather/commands.conf and fill the file with sentences and command to run
  2. Run Blather.py, this will generate ~/.config/blather/sentences.corpus based on sentences in the ‘commands’ file
  3. Quit blather (there is a good chance it will just segfault)
  4. Go to http://www.speech.cs.cmu.edu/tools/lmtool.html and upload the sentences.corpus file
  5. Download the resulting XXXX.lm file to the ~/.config/blather/language directory and rename to file to ‘lm’
  6. Download the resulting XXXX.dic file to the ~/.config/blather/language directory and rename to file to ‘dic’
  7. Run Blather.py
    • For Qt GUI, run Blather.py -i q
    • For Gtk GUI, run Blather.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
  8. Start talking

Note: to start Blather without needing to enter command line options all the time, copy options.yaml.tmp to ~/.config/blather/options.yaml and edit accordingly.

Bonus

Once the sentences.corpus file has been created, run the language_updater.sh script to automate the process of creating and downloading language files.

Examples

  • To run blather with the GTK UI and start in continuous listen mode: ./Blather.py -i g -c

  • To run blather with no UI and using a USB microphone recognized and device 2: ./Blather.py -m 2

  • To have blather pass the matched sentence to the executing command: ./Blather.py -p

    explanation: if the commands.conf contains: good morning world : example_command.sh then 3 arguments, ‘good’, ‘morning’, and ‘world’ would get passed to example_command.sh as example_command.sh good morning world

  • To run a command when a valid sentence has been detected: ./Blather.py --valid-sentence-command=/path/to/command note: this can be set in the options.yml file

  • To run a command when a invalid sentence has been detected: ./Blather.py --invalid-sentence-command=/path/to/command note: this can be set in the options.yml file

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