any

anycontrol

Voice control for your websites and applications

Showing:

Popularity

Downloads/wk

24

GitHub Stars

46

Maintenance

Last Commit

2yrs ago

Contributors

3

Package

Dependencies

0

Size (min+gzip)

1.4KB

License

MIT

Type Definitions

Tree-Shakeable

No?

Categories

Readme

AnyControl

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.

AnyControl has no dependencies, just 5 KB small, and is free to use and modify under the MIT license.

NPM

Issues Forks Stars License Package CodeOfConduct

Browser support

Google Chrome 31+

Live Demo + Documentation

Link

Getting started

<script src="https://unpkg.com/anycontrol/dist/index.umd.min.js"></script>
<script>
  var ctrl = new anycontrol()

  ctrl.addCommand("previous page", function() {
    console.log('Go to previous page')
  });

  ctrl.addCommand("next page", function () {
    console.log('Go to next page')
  });

  ctrl.start();
</script>

API

Add command

ctrl.addCommand("home", function() {
  // Navigate to home
});

ctrl.addCommand("search", function(param) {
  console.log("Search for:", param);
});

Add command with keyword support

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

ctrl.removeCommand("search");

Start listening (continuously)

ctrl.start();

Stop listening

ctrl.stop();

Get single command

ctrl.getCommand();

Turn debug mode on/off

ctrl.debug(true|false);

LICENSE

MIT

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100