AnyControl is a small JavaScript SpeechRecognition library that lets your users control your site with voice commands. It is build on top of Webkit Speech API.
npm install anycontrolAnyControl is a small JavaScript SpeechRecognition library that lets your users control your site with voice commands. It is build on top of Webkit Speech API.
AnyControl has no dependencies, just 5 KB small, and is free to use and modify under the MIT license.







Google Chrome 31+
``html`
Add command
`javascript
ctrl.addCommand("home", function() {
// Navigate to home
});
ctrl.addCommand("search", function(param) {
console.log("Search for:", param);
});
`
Add command with keyword support
`javascript
ctrl.addCommand("send a message to ${USER} saying ${THIS_TEXT} and send it at ${SPECIFIED_TIME}", function (ctx) {
console.log('Result', ctx)
/*
{
USER: "michael",
transcript: "hello siri send a message to michael saying hi there and send it at 2 p.m.",
THIS_TEXT: "hi there",
SPECIFIED_TIME: "2 p.m."
}
*/
});
ctrl.addCommand("${MY_ASSISTANT} what ${OBJECT} is it", function (ctx) {
console.log('Result', ctx)
/*
{
MY_ASSISTANT: "alexa",
OBJECT: "day",
transcript: "alexa what day is it"
}
*/
});
/ Variations /
function calculateSum (ctx) {
alert(The result of ${ctx.VALUE_1} times ${ctx.VALUE_2} equals ${ctx.VALUE_1 * ctx.VALUE_2})
}
ctrl.addCommand("${MY_ASSISTANT} what is ${VALUE_1} x ${VALUE_2}", calculateSum);
ctrl.addCommand("${MY_ASSISTANT} what's ${VALUE_1} x ${VALUE_2}", calculateSum);
function presidentLookup (country) {
switch (country) {
case 'argentina': {
return 'Alberto Fernández'
}
case 'angola': {
return 'João Lourenço'
}
case 'brazil': {
return 'Jair Bolsonaro'
}
case 'china': {
return 'Xi Jinping'
}
case 'america': {
return 'Donald Trump'
}
}
}
function checkPresidentOfCountry(ctx) {
const president = presidentLookup(ctx.COUNTRY);
alert(The president of ${ctx.COUNTRY} is ${president}.);
}
ctrl.addCommand("Who's the president of ${COUNTRY}", checkPresidentOfCountry);
ctrl.addCommand("Who is the president of ${COUNTRY}", checkPresidentOfCountry);
`
Remove command
`javascript`
ctrl.removeCommand("search");
Start listening (continuously)
`javascript`
ctrl.start();
Stop listening
`javascript`
ctrl.stop();
Get single command
`javascript`
ctrl.getCommand();
Turn debug mode on/off
`javascript``
ctrl.debug(true|false);
MIT