Thumbnail

Advanced Speech Recognition

by Microsoft

This is an advanced alternative to the Bing Speech Recognition robot skill for ARC. This skill is a paid service from Microsoft.

Requires ARC v42 (Updated 1/31/2025)

How to add the Advanced Speech Recognition robot skill

  1. Load the most recent release of ARC (Get ARC).
  2. Press the Project tab from the top menu bar in ARC.
  3. Press Add Robot Skill from the button ribbon bar in ARC.
  4. Choose the Audio category tab.
  5. Press the Advanced Speech Recognition icon to add the robot skill to your project.

Don't have a robot yet?

Follow the Getting Started Guide to build a robot and use the Advanced Speech Recognition robot skill.

How to use the Advanced Speech Recognition robot skill

This is an advanced alternative to the Bing Speech Recognition robot skill for ARC. It allows you to specify your own Azure Cognitive Service credentials using the Bing Speech Recognition cloud service, which is by far the most accurate speech recognition service we've ever used. Due to its nature, this robot skill is meant for advanced users who wish to write scripts to customize the behavior. For most use cases, it is recommended to use the Bing Speech Recognition robot skill because it has several easy-to-use features.

Main Window

User-inserted image

1. Start Recording Once you have entered the API Key in the advanced configuration, you can begin translating speech to text using this button.

2. Audio Waveform This gives visual feedback that your audio input device (microphone) is configured correctly and is picking up voice and sounds.

3. Response Display and Log Here, you will get feedback from the Speech Recognition robot skill. It will show the text version of your detected words and any log messages for debugging, etc.

Configuration

User-inserted image

1. Language The language that will be used for recognition.

2. Variables The variable that holds the text from the speech recognizer. This may be used in your Script to determine what was spoken.

3. Script This script will execute for every detected phrase. It will not be called if there is no match for recognition.

4. Settings The settings section has several options for customizing the translation result. The Strip Punctuation checkbox removes commas, periods, question marks, etc., from the result, making string comparison easier. The Make All Responses Lowercase checkbox does the same, aiding string comparison in your code.

How to Use Advanced Speech Recognition Skill

You will need a Microsoft Azure account and an API key to use this robot skill. There are many steps to create an Azure key, which isn't very easy for the average person. That is why we made a free version available here. However, you can create an Azure account to unlock this skill's full functionality and manage your paid subscription. The Azure account allows you to create a Cognitive Speech Recognition service. Locate the Region and API key to use in the Advanced tab of this skill. You can create an Azure account by clicking here.

  1. Add a Cognitive Services resource to your Azure portal account.

  2. Click Add and search for the "Speech" service in the Marketplace.

  3. Create the Speech service and then enter in a name (ex: Test), a subscription (ex: Pay-as-You-Go), Location (ex: West US), pricing tier (ex: Free  0) and create a new resource group (ex: BingSpeechTest).

  4. Once your deployment is complete, click the "Go to resource" button.

  5. In the left menu, select "Keys and Endpoint".

  6. Click the "Show Keys" button and copy the generated key in the KEY 1 field.

  7. If you don't remember the location you selected above, you can find the location in the Location field.

User-inserted image

  1. Add the Advanced Speech Recognition Skill to your ARC project (Project -> Add Skill -> Audio -> Advanced Speech Recognition).

  2. In the Advanced tab of the Advanced Speech Recognition Configuration menu, enter the region and paste the API key.

User-inserted image

  1. Save your configuration and start speaking to activate the speech recognition.

*Note: When not in use, ensure that the Advanced Speech Recognition skill is PAUSED, as it will charge your account as it is used.

Script Samples

Add this code to the configuration of this skill to send detected speech to the PandoraBot control.

ControlCommand("PandoraBot", SetPhrase, $BingSpeech)

User-inserted image

Video

Here's an example of the skill in action combined with the Cognitive Vision and Cognitive Emotion services.

Requirements

The Advanced Speech Recognition skill requires paying for an API key from Microsoft. We provide another version that does not require an API key, and you can install it from here.

This service requires an internet connection, meaning a second USB WiFi adapter or an ethernet connection will be needed. Read about having two network connections here.

Resources

When this control detects a phrase, it will be assigned to the variable and the specified script will execute. With this model, you can have this skill send the detected speech to a PandoraBot skill using ControlCommand(). Here's a sample project: bingsearchtest.EZB


Control Commands for the Advanced Speech Recognition robot skill

There are Control Commands available for this robot skill which allows the skill to be controlled programmatically from scripts. These commands enable you to automate actions, respond to sensor inputs, and integrate the robot skill with other systems or custom interfaces. If you're new to the concept of Control Commands, we have a comprehensive manual available here that explains how to use them, provides examples to get you started and make the most of this powerful feature.


  • controlCommand("Advanced Speech Recognition", "StartListening")
    -- Begin listening for speech to text. The script will execute when completed, and the variable will be set with the result


ARC Pro

Upgrade to ARC Pro

Stay at the forefront of robot programming innovation with ARC Pro, ensuring your robot is always equipped with the latest advancements.

#1  

Let me ask how to add any language pack in the world to ez_builder?

#2  

Hello

Language selection is no more working ,  I just try to switch to fr-FR and recognition is english one,

User-inserted image

User-inserted image

PRO
USA
#3  

Is this a new version? 11/25/2019?

#4  

ARC Designer Beta Version 2019.11.22.00

Ang plugin Version 24

PRO
Synthiam
#5  

Updated (version 30) to fix errors that popped up when unpausing and pausing the listener

PRO
Synthiam
#6  

Updated the plugin to use microsoft's latest library (1.10.0)

PRO
Synthiam
#7  

Updated: Uses the internal ARC VAD (voice activity detection) rather than continuous speech detection. This means the API usage will be much less because only spoken (Detected) phrases are sent to the API rather than continuous recording.

#9  

Quote:

Is this any more accurate than Bing?
Good question. I was under the impression Bing was the "Gold Standard" and the best. I'd love it if someone would do a comparison test. Maybe you could give both a try and let us know??

PRO
Synthiam
#10   — Edited

It’s identical. The first paragraph explains that this is the same is Bing. It just allows your to use your own credentials and pay your own service fees.

User-inserted image

#11  

It worked well but suddenly I'm getting error like this Script Done (00:00:00.0230097)

Session started

Concelled. Timeout no recognition result received Sessionid e9ea404674a94e7eba781846d6682911

Response.

Session stopped,

pronunciation assessment_config_to_json pronunciation assessment_config_to_json 54941994 (SymFromAddr() error. Attempt to access invalid address) -54941994 (SymFromAddr() error Attempt to access invalid address) pronunciation assessment_config to json pronunciation_assessment_config.to json

i tried bing speech recognition skill also I'm getting error like this Data Sore!Error in response received . The remote name could not be resolved "ecimen synthsam comHeard wake word 10.94)Recording...Wake word. Tod NoizySersdrag data (168046 Byte)Data Sert!Emor in response received: The remote name could not be resolved: admin synthiam.com

@Athena Could you please let me know How to resolve this in advanced speech recognition skill?

PRO
Canada
#12  

It sounds like you're experiencing connectivity issues with the Advanced Speech Recognition skill in ARC. Here are a few steps you can take to troubleshoot and resolve the issue:

  1. Check Internet Connection: Ensure that your internet connection is stable. The Advanced Speech Recognition skill requires an active internet connection to communicate with the Azure Cognitive Services.

  2. Verify API Key and Region: Double-check that the API key and region you entered in the Advanced Speech Recognition configuration are correct. Any mismatch can lead to connectivity issues.

  3. Firewall and Network Settings: Ensure that your firewall or network settings are not blocking the connection to the Azure Cognitive Services. You may need to whitelist the service or adjust your network settings.

  4. Update ARC: Make sure you are using the latest version of ARC. Updates often include bug fixes and improvements that might resolve your issue.

  5. Test with Another Network: If possible, try connecting your device to a different network to see if the issue persists. This can help determine if the problem is network-specific.

  6. Check Azure Service Status: Visit the Azure status page to ensure there are no outages or issues with the Cognitive Services in your region.

  7. Review Logs: Check the logs in ARC for any additional error messages or details that might provide more insight into the issue.

  8. Reconfigure the Skill: As a last resort, try removing the Advanced Speech Recognition skill from your project and re-adding it. Re-enter your API key and region to see if this resolves the issue.

If you've tried all these steps and the issue persists, please let me know, and we can explore further troubleshooting options.


I am a customer support GPT-powered AI and still learning. If you have doubts about my response, please use the support documentation to verify my answer.