Linux Voice Activated Macro
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.
Aidan Gustard a229683c57
Merge pull request #3 from smirgol/master
pirms 10 mēnešiem
.idea added the initial version for voice command spotting pirms 2 gadiem
.img other cleanup pirms 2 gadiem
keyboard other cleanup pirms 2 gadiem
model/en-us added the initial version for voice command spotting pirms 2 gadiem
pynput other cleanup pirms 2 gadiem
.gitignore Fixes & implementation of playing audio files. See changes.md for details. pirms 1 gada
LICENSE.txt Added GPLv3 licence pirms 2 gadiem
README.md fixed semicolons in main, and type in readme, centered volume slider pirms 1 gada
changes.md Small fix in finding correct ED game window, added pressed key output to shell pirms 1 gada
command.list Readme tweaks pirms 2 gadiem
commandeditwnd.py Fixes & implementation of playing audio files. See changes.md for details. pirms 1 gada
commandeditwnd.ui added the initial version for voice command spotting pirms 2 gadiem
keyactioneditwnd.py remove modules not used pirms 2 gadiem
keyactioneditwnd.ui initial commit pirms 2 gadiem
main.py Merge branch 'master' of https://github.com/smirgol/LinVAM pirms 1 gada
mainwnd.ui Fixes & implementation of playing audio files. See changes.md for details. pirms 1 gada
mouseactioneditwnd.py remove modules not used pirms 2 gadiem
mouseactioneditwnd.ui initial commit pirms 2 gadiem
pauseactioneditwnd.py remove modules not used pirms 2 gadiem
pauseactioneditwnd.ui initial commit pirms 2 gadiem
profileeditwnd.py Fixes & implementation of playing audio files. See changes.md for details. pirms 1 gada
profileeditwnd.ui initial commit pirms 2 gadiem
profileexecutor.py Small fix in finding correct ED game window, added pressed key output to shell pirms 1 gada
profiles.dat Readme tweaks pirms 2 gadiem
set_kws_threshold.py added the initial version for voice command spotting pirms 2 gadiem
soundactioneditwnd.py Fixes & implementation of playing audio files. See changes.md for details. pirms 1 gada
soundactioneditwnd.ui Fixes & implementation of playing audio files. See changes.md for details. pirms 1 gada
soundfiles.py Fixes & implementation of playing audio files. See changes.md for details. pirms 1 gada
ui_commandeditwnd.py added the initial version for voice command spotting pirms 2 gadiem
ui_keyactioneditwnd.py initial commit pirms 2 gadiem
ui_mainwnd.py fixed semicolons in main, and type in readme, centered volume slider pirms 1 gada
ui_mouseactioneditwnd.py initial commit pirms 2 gadiem
ui_pauseactioneditwnd.py initial commit pirms 2 gadiem
ui_profileeditwnd.py initial commit pirms 2 gadiem
ui_soundactioneditwnd.py Fixes & implementation of playing audio files. See changes.md for details. pirms 1 gada

README.md

LinVAM

Linux Voice Activated Macro

Status

This project is currently a work-in-progress and is minimally functional only for english.

Utilising Pocketsphinx, a lightweight voice to text engine you can specify voice commands for the tool to recognise and actions to perform.

Known bugs and planned additions

  • To save and use changes click Ok on the main GUI then reload.
  • Remember last loaded profile and load on start
  • Log window showing spoken words the V2T recognises with ability to right click and assign voice command and actions to current profile
  • Support for joysticks and gaming devices

Requirements

  • python3
  • PyQt5
  • python3-xlib
  • pyaudio
  • pocketsphinx
  • swig3.0

Optional requirements

  • xdotool
  • ffplay (part of ffmpeg, usually already installed)
  • HCS voicepacks

Install

  • $ pip3 install PyQt5
  • $ pip3 install python3-xlib
  • $ pip3 install pyaudio
  • $ pip3 install pocketsphinx
  • $ sudo apt-get install swig3.0
  • $ (optional) sudo apt install xdotool
  • $ (optional) sudo apt install ffmpeg
  • $ sudo ln -s /usr/bin/swig3.0 /usr/bin/swig
  • $ git clone https://github.com/aidygus/LinVAM.git

Usage

This script must be run with root privilege because it must hook and simulate input devices such as keyboard, mouse etc.

  • $ cd LinVAM
  • $ xhost +
  • $ sudo ./main.py

As an alternative, if you use the X window manager and have xdotool installed, you can run the script like this:

  • $ cd LinVAM
  • $ ./main.py -noroot

Profiles

Multiple profiles are supported. To create a new profile for a specific task/game click new and the main profile editor window will be displayed

Main GUI

Key combinations

To assign key combinations first decide which functional key to press by clicking on Ctrl, Alt, Shift or Win to denote left or right key then press the actual command key

Main GUI

Complex commands

It is possible to add multiple actions to a voice command for complex macros with the ability to add a pause between each action. You can also assign mouse movements and system commands if you require (eg opening applications such as calculator, browser etc)

Main GUI

Threshold

As a rough guide use a value of 10 for each syllable of a word then tweak it down for better accuracy.

Output audio

In the Command Edit Dialog, chose 'Other' and then 'Play sound'. Pick the sound you would like to play. For this to work you need to copy any audio file you would like to use to the folder 'voicepacks'. You are required to create a subfolder to hold all your audio files (voicepack folder), then within that subfolder, create as many folders as you like to group your audio files (category folders). Place the audio file into these category folders or in any subfolder within a category folder. In theory any audio file should work, but tested only with MP3 files.

Example: /voicepacks/my voicepack/custom commands/hello.mp3 /voicepacks/my voicepack/other/thank you.mp3

If you own a HCS voicepack, copy the whole voicepack folder (like 'hcspack', 'hcspack-eden', ...) to the 'voicepacks' folder, so it reads like this: /voicepacks/hcspack/...

Improve voice recognition accuracy

Please see this resource on how to train the acoustic model of pocketsphinx to match your voice: https://cmusphinx.github.io/wiki/tutorialadapt/