With "Speech Recognition Anywhere" you can control the Internet with your voice.
Use Speech Recognition to fill out inputs, textareas, forms or documents on the Internet!
The speech you speak is automatically typed into the form on the website. "Speech
Recognition Anywhere" can also be used as an awesome Virtual Assistant.
Download the Speech Recognition Anywhere Chrome or Edge Extension today.
A user can use simple voice commands to go to websites or to click on buttons and links.
It also works with Google Docs, Microsoft Word online, Gmail, outlook.com and more.
Medical professionals and other health professionals use Speech Recognition Anywhere
to fill out web based online patient medical records using speech to text.
Business professionals use it dictate letters and emails. Custom commands can be created
by the user to allow the user to say shortcut phrases (also known as macros or autotext)
that print out a lot of text into a form.
Get Extension
Features
- Browser extension for
Chrome or Add-on for
Edge browser for desktop and laptop computers.
- Virtual Assistant Mode.
- Choose between dozens of languages and dialects for speech recognition.
- Dictate emails and online documents.
- Fill in forms with your voice.
- Go to the next or previous field with your voice.
- Go to any website with your voice.
- Switch tabs and navigate websites with your voice.
- Scroll page up or down.
- Click on links and buttons with your voice.
- Cut, Copy, Paste, Clear, Highlight.
- Say "Show labels" to see labels to buttons on a website.
- Say "Show numbers" to see numbers next to links and buttons. Then say "Click on (number)".
- Say "Youtube (name of artist or song) (in the background)" to play music instantly.
- Create Custom Voice Commands.
- Text To Speech.
- Scripting.
- Auto Punctuation.
- Export/Import custom commands.
Get Extension
Custom Commands
Look in the comments below for "Custom Commands" that you can add to Speech Recognition Anywhere.
If you have created some awesome commands for Speech Recognition Anywhere then please share them
in the comments section below. (If you have urls (http: https:) in the action then please surround
it with <code> </code> tags so the comment box does not convert it to a link.)
To create custom commands you do not need to use
regular expressions
but regular expressions will make your custom commands more powerful. For example, you could create this
basic custom command:
Phrase: Display the weather satellite
Action: https://weather.weatherbug.com/maps/
Description: Display the weather satellite
But you would have to say the exact phrase, "Display the weather satellite" in order for
the satellite image to display. But if you use regular expressions like in the example below
then you can say a number of similar sentences to activate the command:
Phrase: (?:Display|Show)(?:.*?)?(?:satellite|clouds)(?:.*?)?(?:for |of |in )?(.*?)?
Action: https://weather.weatherbug.com/maps/$1
Description: Display the weather satellite
With the above phrase you could say "Show me the clouds" or "Display the weather satellite for New York".
Here is a breakdown of the phrase:
(?:Display|Show)
means to look for either "display" or "show".
The | symbol means "or". Putting ?:
at the beginning of the match inside the parentheses ()
means to look for the match but don't remember the match.
(?:.*?)?
means to look for any number of optional words like "the" or "the weather" and do not
remember the match. The ? at the end outside of the parentheses
() means these words are optional.
For example, you could say "Show me the weather satellite" or you could just say "Show satellite".
(?:satellite|clouds)
means that the user has to say either "satellite" or "clouds" in the phrase
for the phrase to be detected.
(?:.*?)?
means that we again look for any number of optional words.
(?:for |of |in )?
means that we look for "for " or "of " or "in " so that the user can say
"Display the satellite for Colorado". Putting the ? at the end means this is optional.
(.*?)?
means that we look for one more optional words or group of words at the end. But this
time we don't put ?: at the beginning inside the parentheses
() because we want to remember the
match to use it later on. We want to remember the last word for a spoken command like "Show me the weather satellite
for London". Then the remembered match can be used in the action:
https://weather.weatherbug.com/maps/$1 .
The $1 will be replaced with London in the url.
$1 is used for the first match and $2 for the second, etc.
If you wanted to put the whole spoken command in the action then you would use $0 .
As an example, if you were wanting to let Google decide how to play music for you then you could use this phrase: Play (.*?) . So the
spoken command could be "Play Coldplay". And the action could be:
http://www.google.com/search?btnI&q=$0 because
the $0 would match the entire phrase "Play Coldplay" so what would be sent to Google as:
http://www.google.com/search?btnI&q=Play Coldplay .
btnI means to instantly use the I'm feeling lucky button, so
Google would use the first result which would probably be a Youtube video.
Medical Record Macros and Autotext
Here are some examples of how medical professionals and other health professionals can use
Speech Recognition Anywhere to create
custom commands for patient medical record macros or autotext.
Phrase: Rash negative|Negative rash
Action: Rash not worrisome for scabies, measles, meningococcemia,
varicella, bullous disorder, Stevens-Johnson syndrome, Toxic epidermal necrolysis, staph scalded
skin syndrome, or disseminated herpes. No evidence of erythema multiforme, Lyme, cellulitis,
necrotizing fasciitis, meningococcemia, rocky mountain spotted fever.
Description: Say "Rash negative" or say "Negative rash"
Here is an example of a short phrase that you can say for a medical test and have it write a detailed description:
Phrase: Lyme disease test|Lyme antibody test
Action: LYME DISEASE IGG/IGM, As recommended by the Food and Drug Administration (FDA), all samples
with positive or equivocal results in the Borrelia burgdorferi
antibody EIA (Screening) will be tested by Western Blot.
Description: Say "Lyme disease test" or say "Lyme antibody test"
Text to Speech
Speech Recognition Anywhere Chrome extension also has text to speech
capabilities. Here is an example of a custom command for making Wolfram Alpha into a talking
virtual assistant with voice recognition.
Phrase: Wolfram\s*Alpha,? (.*?)
Action: http://www.wolframalpha.com/input/?i=$1;speak_element(img._3c8e[1])
Description: Wolfram Alpha Question
Note: As of 12/30/2018 the latest Chrome update blocks speechSynthesis on websites
without any notification. To allow speechSynthesis on a website you will need to click on the lock symbol
🔒 or ⓘ to the left of the website address in the address bar and then scroll down and click on the down arrow
next to Sound and select "Allow". You will need to do this on every website that you want to use
the speak() command on.
The above phrase includes \s* between Wolfram and Alpha because sometimes Google's Web
Speech API detects the phrase as "Wolfram Alpha" and other times as "WolframAlpha". This command
will accept both. The Action is actually a script. Each script command is separated by ;
(semi-colon). The first action in the script goes to wolframalpha website with the input string
that was spoken. For example, say "Wolfram Alpha When is the next moon rise?". The next action in
the script tells Speech Recognition Anywhere to speak out loud with text-to-speech an element
on the web page. The element is an img tag with class="_3c8e" . Wolfram Alpha puts the result in an
image instead of plain text. But that image has an alt attribute with a plain text answer to
the question. So img._3c8e[1] reads out loud the second or [1] img tag with class="_3c8e" .
Here is another example of a text-to-speech custom command that creates a Decision Maker:
Phrase: Should I (.*?)
Action: say(Yes|No|Definitely Yes|Absolutely Not|Probably Not)
Description: Decision Maker
The say command will read aloud whatever text you put there. The | or pipe (also called vertical bar)
separates each text to read as an OR. The say command will randomly choose one
of the answers to read aloud. Now ask any question that begins with "Should I...?"
Scripting
In the Action field of custom commands you can create an action script. Each command is
separated with a ; (semi-colon). Here is an example:
Action: http://example.com/; scroll_it(down); click_element(search); speak(answer)
The above action script will first go to example.com . Then it will scroll down the page,
then click on an element with an id of search and
then speak out loud the text in an element with an id of answer .
Scripting Commands
; | Separate each command in the Action field with ; |
;; | Pause for 1 second. (Each command is separated by half a second, so to pause for 1 second use two semi-colons. |
%3B | To print a ; on the screen use the url encoded (percent encoded) version which is %3B |
%28 %29 | To print parenthesis () use %28 and %29 respectively. |
%2C | To print a text comma , in an "Action" function
use %2C or surround the text with double quotes.
|
\btext\b | If the phrase begins and ends with \b then text will be replaced with the text in the action field.
For Example: To replace open round bracket with ( use:
Phrase: \bOpen round bracket\b
Action: (
Description: Always replace: "Open round bracket" with "("
|
add_labels(option) |
Add labels to buttons that are only images. option can be show or hide . |
add_numbers(option) |
Add numbers to links, buttons, and inputs. option can be show or hide . |
backspace(x) | Press the backspace key. Where x is the amount of times to press it. Default is 1. |
browse(option) | Navigate the browser history. option can be back, forward, reload, refresh .
Example to create a command to Go Back in browser history in Spanish:
Phrase: retroceder
Action: browse(back)
Description: Navigate Back in Spanish |
capitalize_first_letter(text, all_words) |
Convert the first letter of text to a capital.
If all_words is true then every first letter of every word in text will be converted to a capital. The default is false .
For example:
Phrase: capitalize (.*?)
Action: capitalize_first_letter($1, true)
Description: Say "Capitalize hello world" to print "Hello World"
|
clear_text() | Clear all text in the currently selected input or textarea. |
click_element(el) | el can be the id of an element to click on or if the element does not have
an id then it can be a tag under an element. For example, if el is results.img[0] then the click_element command
will click on the first (0) img under the element with id of "results" . |
click_keyword(el) | el can be the id of an element to click or the name, text, title, aria-label or alt of an element to click. |
clipboard(option) | option can be copy, cut, paste |
dictation(option) | Turn dictation (speech-to-text) on or off. option can be on, off, start, stop . (Only available in Full Version) |
enter_key(x) | Press the enter key. Where x is the amount of times to press it. Default is 1. |
escape_key(x) | Press the escape key. Where x is the amount of times to press it. Default is 1. |
find_phrase(keywords) | Find a word or phrase on the page and highlight or select it.
For example, to create a custom command
to search for a word or phrase using Spanish such as "Buscar restaurante":
Phrase: (?:búsqueda |buscar )(?:de |para )?(.*?)
Action: find_phrase($1)
Description: Buscar en Espanol |
https:// | Start a command in the Action field with
http:// , https:// , ftp:// , file:/// to go to that website or file. For example:
https://seabreezecomputers.com will change the current location to seabreezecomputers.com |
insertHTML(html) | Previously any html in the action field would print as HTML .
Now it will print as text since version 1.4.4 (3/5/2021). To print html now use the insertHTML()
function in the action field:
Phrase: line break
Action: insertHTML(<br>)
Description: Say line break to insert html: <br> |
insertText(text) | To easily print text on the screen including < > ( ) ;
then put the text in the insertText() command.
Normally html tags < > will not print and ( ) ; are special reserved characters in the Action field.
But if you put the characters in insertText() then they will print fine to the screen.
Example:
Action: insertText(<div onclick="alert('Hello');">) |
keypress(n, ctrl, alt, shift) | For webpages that listen for keypresses.
Where n is the keyCode of the key to press.
For example: keypress(49) will press the 1 key.
See
Table of keyCodes. Or n can be the letter to press such as keypress(z). Example to send
ALT+Z : keypress(z, false, true) ; Example to send CTRL+Z :
keypress(z, 1);
If n is a string then the string will be converted to keypresses to the website.
For example: keypress(zebra) ; will send keypress events for z,e,b,r,a . |
moveCursor(direction, x, option) | Move the cursor in direction of up, down, left, right, top, bottom, start, end.
x is the number of times to move that direction. The default is 1. option can be character, word,
sentence, paragraph, document, paper, box, text or field.
The default is word. |
open(website, name_of_tab) | Open website in name_of_tab tab. This command is used to always
open in the same tab. If the tab name_of_tab is already open then it will stay in the background if it is not the active tab.
If name_of_tab is not supplied then this command will always open a new tab. |
play(keywords, new_tab) | Play keywords song or video using Google's I'm feeling lucky button. The default for
new_tab is false . Here is an example of a custom command for playing music or a video using Spanish:
Phrase: (?:Toca|Juega) (.*?)(?: *?)?(?:en )?(?:una )?(nueva pesta[nñ]a)?
Action: play($1, $2)
Description: play() in Spanish. Di "Toca (música) (en una nueva pestaña)"
|
print_text(text) | To easily print text on the screen including < > ( ) ;
then put the text in the print_text() command.
Normally html tags < > will not print and ( ) ; are special reserved characters in the Action field.
But if you put the characters in print_text() then they will print fine to the screen.
Example:
Action: print_text(<div onclick="alert('Hello');">)
print_text() is synonymous with insertText() .
|
read(option) | Read out loud with text to speech. option can be
all, everything, page, webpage, paragraph, screen, article, website, site, main, content, main content,
alert, notification, status,
buttons, inputs, links, hyperlinks, web links, images, figures, headings, titles, headlines,
menu, navigation, header, banner, footer, contentinfo, sidebar, aside, complementary, toolbar,
selection, selected, highlighted
|
redo(x) | Redo the last text that was undone with undo. x is the number of times to redo. The default is 1. |
replace_word(text) | Replace a word in a sentence with text.
For example: To replace "ok" with "okay" use:
Phrase: ok
Action: replace_word(okay)
Description: Always replace "ok" with "okay"
Another example: To replace "+" with "plus" use:
Phrase: (.*?)\+
Action: replace_word($1 plus)
Description: Always replace "+" with "plus"
|
say(text) | Speak out loud text with text-to-speech. |
script(code) | You can put advanced scripting in code using the script command.
Use return variable at the end to have the variable displayed in the textarea.
For example, here is a custom command script for displaying today's date in en-US format:
Phrase: (Enter |type )?today's date
Action: script(var today = new Date().toLocaleDateString('en-US'); return today;)
Description: Say 'Enter today's date' or 'Type today's date' or 'Today's date'
Another example: When you spell out words like names, such as "g e o f f", the Web Speech API
automatically adds spaces in between the letters. Here is a custom command to remove those spaces:
Phrase: (\S\s){1,}\S
Action: script(var text = " $0".replace(/\s/g, ""); return text;)
Description: Spell out g e o f f without spaces (Ex: geoff)
Another example: To spell out a word and have its first letter capitalized:
Phrase: Capital ((\S\s)+\S)
Action: script(var text = " $1".replace(/\s/g, ""); text = text.charAt(0).toUpperCase() + text.slice(1); return text;)
Description: Say "Capital g e o f f" to print "Geoff"
Note: At this time script() only works on some websites. Some websites block external scripts from running.
It also will NOT work on the Speech Recognition Anywhere tab at this time.
|
scroll_it(direction) | Scroll the page. direction can be up, down, right, left, top or bottom.
You can also include an element type with the direction separated by a comma. The element type can be
body, page, menu, navigation, sidebar or box. For example: scroll_it(menu, down) will scroll a menu on the
page down. scroll_it(box) will default to scrolling a textbox on the page down.
|
scrollToPosition(el) | Scroll to HTML element if it is not in view. el should be the id of the element. |
select(option) | option can be all or none .
Select all text or none of the text in the currently selected input or textarea or on page.
Some textareas on some websites also allow option to be character, letter, word, sentence, paragraph.
These textareas can also have multiple options separated by a comma that includes a direction or the amount.
For example select(last, 3, words) will select the previous 3 words behind the cursor. Another example,
select(next, 2, sentences) will select the next 2 sentences in front of the cursor.
select(sentence) will select the previous sentence.
|
set_language(language) | Set the speech recognition language to language temporarily. A drop down list of languages
can be seen in Speech Recognition Anywhere "Settings" menu. |
spacebar(x) | Press the spacebar. Where x is the amount of times to press it. Default is 1. |
speak_element(el) | Read or speak out loud the contents of an element. It will read the innerText,
alt, aria-label or title attribute of the element. el can be a selector like using
querySelectorAll in JavaScript
with an optional [n] to specify which element in the array to read. For Example: To read the WolframAlpha result use
speak_element(img._3c8e[1]); The element is an img tag with class="_3c8e" . Wolfram Alpha puts the result in an
image instead of plain text. But that image has an alt attribute with a plain text answer to
the question. So img._3c8e[1] reads out loud the second or [1] img tag with class="_3c8e" .
| submit_form() | Submit the current form on the website. |
switch_fields(option) | Switch fields in a form or switch links. option can be next, previous, keyword such as the name or id of
a form element or the number in order of the form/link element on the page. |
switch_tabs(option) | Switch browser tabs. option can be next, previous, close, last, first, number of tab, title or url of tab.
Here is an example of a custom command for Spanish to switch tabs:
Phrase: Cambiar (?:a )?(?:la )?(.*?)? ?pesta[nñ]as? ?(.*?)?
Action: switch_tabs($1$2)
Description: Switch tabs in Spanish. Say "Cambiar a la siguiente pestaña" or "Cambiar a la pestaña anterior".
|
text | Type text on to the page in the currently selected input or textarea or it will choose the first available input on the page |
.toUpperCase() | Javascript String manipulation can now be used such as toUpperCase() . Here is an example of
a custom command for making speech spoken to be uppercase or all caps:
Phrase: (?:uppercase|all caps) (.*?)
Action: $1.toUpperCase()
Description: Say "Uppercase hello world" to print "HELLO WORLD"
|
undo(x) | Undo the last text command. x is the number of times to undo. The default is 1. Here is
an example of translating an undo command into Spanish:
Phrase: Deshacer(?: *?)(\S*?)?(?: *?)(veces)?$
Action: undo($1)
Description: Undo() in Spanish. Say "Deshacer" or "Deshacer (Número) veces"
|
url(website, new_tab, focused) | Change location to website. The default for new_tab is false.
The default for focused is true . If focused is set to false then the tab will stay in the background.
Just put url() with no parameters to open a new tab. Here is an example
of a custom command for visiting a website using Spanish:
Phrase: Visit[ea]r? (.*?\.\s?\S{2,6})(?: *?)?(?:en )?(?:una )?(nueva pesta[nñ]a)?
Action: url($1, $2)
Description: url() in Español. Di "Visita google punto com (en una Nueva pestaña)"
new_tab can also be the name of a tab so that a tab is reused if the name is the same.
new_tab can also be a url. If new_tab is a url then it will look to see if there is a tab
that starts with that url and use it, otherwise it will create a new tab. For example, here is a custom command
that will look for a tab that starts with https://www.youtube.com/ when a user says "Youtube name of song" and
use that tab if it exists:
Phrase: (Youtube) (.*?)
Action: url(https://www.google.com/search?btnI&q=youtube $2, https://www.youtube.com, true)
Description: "Play (title of song or video)" using Youtube
|
Privacy Policy
Last updated on September 19, 2023
Created on December 11, 2016 |