All Projects → evilC → HotVoice

evilC / HotVoice

Licence: MIT License
Adds Speech Recognition support to AutoHotkey, via a C# DLL

Programming Languages

autohotkey
350 projects
C#
18002 projects
powershell
5483 projects

Projects that are alternatives of or similar to HotVoice

spokestack-android
Extensible Android mobile voice framework: wakeword, ASR, NLU, and TTS. Easily add voice to any Android app!
Stars: ✭ 52 (+26.83%)
Mutual labels:  speech-recognition
Multi-Hotword Spotting
Won't it be cool to build a speech assistant like Alexa or Siri yourself without voice API and network connection?
Stars: ✭ 31 (-24.39%)
Mutual labels:  speech-recognition
learning invariances in speech recognition
In this work I investigate the speech command task developing and analyzing deep learning models. The state of the art technology uses convolutional neural networks (CNN) because of their intrinsic nature of learning correlated represen- tations as is the speech. In particular I develop different CNNs trained on the Google Speech Command Dataset…
Stars: ✭ 15 (-63.41%)
Mutual labels:  speech-recognition
SpeechToText
Speech To Text in Android
Stars: ✭ 53 (+29.27%)
Mutual labels:  speech-recognition
musicologist
Music advice from a conversational interface powered by Algolia
Stars: ✭ 19 (-53.66%)
Mutual labels:  speech-recognition
StageMate
StageMate is the smart assistant for your presentation. It will cover all aspects of your pitch from skipping slides to reminding you if you miss some major point.
Stars: ✭ 60 (+46.34%)
Mutual labels:  speech-recognition
VoiceCom
A Simple Voice Command Application powered by Java and Sphinx4 Speech Recognition Library
Stars: ✭ 17 (-58.54%)
Mutual labels:  speech-recognition
Speech-Command-Recognition-with-Capsule-Network
Speech command recognition with capsule network & various NNs / KWS on Google Speech Command Dataset.
Stars: ✭ 20 (-51.22%)
Mutual labels:  speech-recognition
download audioset
📁 This repo makes it easy to download the raw audio files from AudioSet (32.45 GB, 632 classes).
Stars: ✭ 53 (+29.27%)
Mutual labels:  speech-recognition
kim-voice-assistant
Kim,你的私人语音助理。
Stars: ✭ 70 (+70.73%)
Mutual labels:  speech-recognition
sepia-stt-server
SEPIA server to support open-source speech recognition via WebSocket connection.
Stars: ✭ 45 (+9.76%)
Mutual labels:  speech-recognition
leon
🧠 Leon is your open-source personal assistant.
Stars: ✭ 8,560 (+20778.05%)
Mutual labels:  speech-recognition
Recording-Bot
A bot built to record and transcribe audio fragments from Discord.
Stars: ✭ 22 (-46.34%)
Mutual labels:  speech-recognition
speech-to-text
mixlingual speech recognition system; hybrid (GMM+NNet) model; Kaldi + Keras
Stars: ✭ 61 (+48.78%)
Mutual labels:  speech-recognition
demo vietasr
Vietnamese Speech Recognition
Stars: ✭ 22 (-46.34%)
Mutual labels:  speech-recognition
scim
[wip]Speech recognition tool-box written by Nim. Based on Arraymancer.
Stars: ✭ 17 (-58.54%)
Mutual labels:  speech-recognition
voicekit-examples
Examples on how to use Tinkoff Voicekit
Stars: ✭ 35 (-14.63%)
Mutual labels:  speech-recognition
Listen-Attend-Spell-v2
PyTorch implementation of Listen Attend and Spell Automatic Speech Recognition (ASR).
Stars: ✭ 29 (-29.27%)
Mutual labels:  speech-recognition
UnityASR
Automatic Speech Recognition in Unity.
Stars: ✭ 14 (-65.85%)
Mutual labels:  speech-recognition
sova-asr
SOVA ASR (Automatic Speech Recognition)
Stars: ✭ 123 (+200%)
Mutual labels:  speech-recognition

HotVoice

Use your voice as a Hotkey in AutoHotkey!

Discussion Thread

Help improve HotVoice!

If you speak a language other than English, I would greatly appreciate it if you could help expand the demo or suggest other changes!

Using HotVoice in your scripts

Initial Setup

  1. Install the Microsoft Speech Platform Runtime
    You will need either x86 or x64, depending on what version of AHK you run. No harm in installing both, just to be sure.
  2. Install at least one Language Pack
    Speech recognition packs will have SR in their name. TTS labelled downloads are for Text-to-speech and will not work with HotVoice.
    eg MSSpeech_SR_en-US_TELE.msi
    Note that while Windows 7 is technically supported, language packs may fail to properly load. See here
  3. Download a release of HotVoice from the Releases Page and unzip it to a folder of your choice (This shall be referred to as the "HotVoice folder" from now on).
    DO NOT use the "Clone or Download" button on the main GitHub page, this is for developers.
  4. Ensure the DLLs that are in the HotVoice Folder are not blocked.
    Right-click unblock.ps1 in the HotVoice Folder and select "Run as Administrator".
  5. Run the Demo script and make sure it works for you.
    It should look something like this:

"Recognizers" are basically Language Packs. Ordering seems to be based on installation order, with the "Lightweight" pack always present and at the end of the list. Therefore, if you only install one language pack, it should always be ID 0, so everything in HotVoice defaults to using ID 0. The Mic Volume slider should move when you speak.
HotVoice uses the "Default Recording Device" that is configured in Windows.

Using the Library

Grammar and Choices objects

HotVoice uses these two types of object to build up commands.
Throughout this documentation, the following syntax will be used to denote a phrase with optional components:
Launch [Notepad, Word]
In this instance it can mean "Launch Notepad" or "Launch Word".

Choices Objects

Choices objects represent a series of optional words. As in the above example, [Notepad, Word] is a series of Choices.

Grammar Objects

Grammar objects are the primary building blocks of HotVoice. They can hold either single words, or choices objects, or even other Grammar objects.

Initializing HotVoice

A HotVoice script must do the following:

  1. Load the HotVoice Library
    #include Lib\HotVoice.ahk

  2. Create a new HotVoice class

hv := new HotVoice()
  1. Add at least one Grammar
; Create a new Grammar
testGrammar := hv.NewGrammar()

; Add the word "Test" to it
testGrammar.AppendString("Test")

; Load the Grammar
hv.LoadGrammar(testGrammar, "Test", Func("MyFunc"))
  1. Start the Recognizer
hv.StartRecognizer()

Function Reference

NewChoices

Creates a new Choices object from a comma-separated string Choices NewChoices(string choiceListStr)
eg choices := hv.NewChoices("Up, Down, Left, Right")
Note that if you want to re-use the same choices in multiple scripts, see MikeHotelOscar's ChoiceBuilder library

NewGrammar

Creates a new, empty Grammar Object
GrammarObj NewGrammar()
eg grammarObj := hv.NewGrammar()

GetChoices(name)

Gets a Choices object from HotVoice's store of choices objects.
By default, this is empty execpt for the Percent Choices object, which contains the numbers 0-100
Choices GetChoices(string name)
eg percentChoices := hv.GetChoices("Percent")

SetChoices(name)

Adds a Choices object to HotVoice's store of choices objects.
void SetChoices(string name, Choices choices)
eg percentChoices := hv.SetChoices("Directions", hv.NewChoices("Up, Down, Left, Right"))

LoadGrammar

Loads a GrammarObject into the Recognizer and specifies which function to call when it is triggered.
void LoadGrammar(GrammarObject g, string name, BoundFunc callback)
eg hv.LoadGrammar(testGrammar, "Test", Func("MyFunc"))

GetRecognizerList

Gets a list of available recognizers
RecognizerObject GetRecognizerList()
eg recgonizers := recognizers := hv.GetRecognizerList()
RecognizerObject is an array containing objects with the following properties:
ID: The ID of the recognizer (Starts at 0)
Name: The Name of the recognizer
TwoLetterISOLanguageName: The ISO 639-1 code for the language (eg "en")
LanguageDisplayName: The display name for the language (eg "English (United States)")

Initialize

Loads a Recognizer
void Initialize(int recognizerId = 0)
eg hv.Initialize()
Note that if you call Initialize, any previously loaded recognizer is unloaded.

StartRecognizer

Starts the Recognizer
void StartRecognizer()
eg hv.StartRecognizer()

Object Reference

GrammarObject
GetPhrases

Gets a human-readable string that describes the phrasology that this Grammar supports
string GetPhrases()
eg phrases := grammarObj.GetPhrases()

AppendString

Adds a word or words to a GrammarObject
void AppendString(string text)
eg grammarObj.AppendString("Hello")

AppendChoices

Adds a ChoicesObject to this GrammarObject
void AppendChoices(Choices choices)
eg grammarObj.AppendChoices(choicesObj)

AppendGrammars

Adds up to 10 GrammarObjects to this GrammarObject
void AppendGrammars(GrammarObject g1, ... , GrammarObject g10)
eg grammarObj1.AppendGrammars(grammarObj2, grammarObj3)

Developers

This ONLY APPLIES if you want to work with the C# code that powers HotVoice.
If you are writing AHK scripts using HotVoice, this does not apply to you.

Initial Setup

  1. Install the Microsoft Speech Platform SDK 11.
  2. When you open the SLN, you may need to fix the reference to Microsoft.Speech
    It can be found in C:\Program Files\Microsoft SDKs\Speech\v11.0\Assembly

Speech API Reference on MSDN

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].