Speech Recognition for the Web
A tiny JavaScript library that adds voice commands to any project — websites, home automation, accessibility tools, VR, drones, and more.
Go ahead, try it…
Say "Hello!"
annyang!
Let's try something more interesting…
Say "Show me cute kittens!"
Say "Show me Arches National Park!"
Now go wild. Say "Show me…" and make your demands!
That's cool, but in the real world it's not all kittens and hello world.
No problem, say "Show TPS report"
How did you do that?
import annyang from 'annyang'; const commands = { 'hello': () => alert('Hello!'), 'show tps report': () => document.getElementById('tpsreport').show() }; annyang.addCommands(commands); annyang.start();
What about more complicated commands?
annyang understands commands with named variables, splats, and optional words.
const commands = { // Splats (*) capture multi-word text at the end of a command. // "Show me Batman and Robin" calls showFlickr('Batman and Robin') 'show me *query': showFlickr, // Named variables (:name) capture a single word anywhere. // "calculate October stats" calls calculateStats('October') 'calculate :month stats': calculateStats, // Optional words are wrapped in parentheses. // Matches both "say hello friend" and "say hello to my little friend" 'say hello (to my little) friend': greeting }; annyang.addCommands(commands); annyang.start();
© 2026 Tal Ater · Free to use under the MIT license
Tal Ater retains creative control, spin-off rights and theme park approval for Mr. Banana Grabber, Baby Banana Grabber, and any other Banana Grabber family character that might emanate there from.
annyang works with all browsers, progressively enhancing those that support the SpeechRecognition standard.
annyang commands can even be triggered manually in unsupported browsers (e.g., “Show me snowboarding”)
Please visit talater.com/annyang in a supported browser like Chrome.