Azure neural text-to-speech for ARCx scripts and skills, with multilingual voices, SSML support, and EZB audio output.
How to add the Advanced Speech Synthesis robot skill
- Load the most recent release of ARCx on a compatible operating system (Get ARCx).
- Press the + Skills menu from the top menu bar in ARCx.
- Choose the Audio category tab.
- Press the Advanced Speech Synthesis 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 Synthesis robot skill.
How to use the Advanced Speech Synthesis robot skill
Advanced Speech Synthesis
Natural sounding text to speech using Microsoft Azure neural voices, in many languages.
This robot skill is a text to speech engine: it does not speak on its own, it is what ARCx uses whenever anything in the project asks for speech. Add it, pick a voice, and every Audio.Say() in your scripts - plus the voice of skills such as Autonomous AI - uses that voice.
Requirements
- You must be logged into your Synthiam account in ARCx. The audio is synthesized through Synthiam's web service, and without a login the skill raises "There is no user logged into ARC."
- An internet connection.
- Only one instance of this skill per project, and only one text to speech engine skill in a project at a time.
Adding it to a project
- Add the skill to the project (Audio category).
- Open its configuration.
- Type the Text To Speech Voice code you want, for example
en-US-JennyNeural. The question mark beside the field opens Microsoft's list of every supported voice: https://learn.microsoft.com/en-us/azure/ai-services/speech-service/language-support?tabs=tts - Type something in the Test box and press Test to hear it.
- Save.
The window
- Stop Speaking - stops whatever is being spoken right now, immediately.
- Log - the last 25 lines of activity, including what was spoken and any errors.
Configuration
| Setting | Meaning |
|---|---|
| Text To Speech Voice | The Azure voice name, such as en-US-JennyNeural, en-GB-RyanNeural, fr-FR-DeniseNeural, ja-JP-NanamiNeural. Default is en-US-JennyNeural. |
| Test | Type a phrase and press Test to hear the current voice speak it. |
Picking a voice code
Voice codes follow the pattern language-REGION-NameNeural. Copy the Voice name column from Microsoft's language support page exactly - if the code is wrong the service returns an error, which appears in the log.
The Window tab sets the robot skill's window title, its size on the workspace and notes about what it does in this project.
SSML
If the text handed to the engine is SSML, it is detected and passed to Azure as SSML, so you can control emphasis, breaks, rate and pitch:
Audio.SayWait("<speak version='1.0' xmlns='http://www.w3.org/2001/10/synthesis'; xml:lang='en-US'><voice name='en-US-JennyNeural'>Hello <break time='500ms'/> world</voice></speak>");
Speaking from a script
Audio.Say("Hello, I am a robot"); // PC speaker, returns immediately
Audio.SayWait("Hello, I am a robot"); // PC speaker, waits until finished
Audio.SayEZB("Hello from my own speaker"); // EZB #0 speaker
Audio.SayEZBWait("Hello", 0); // EZB #0 speaker, waits until finished
When the audio is destined for an EZB, the skill resamples it to the rate and sample size the EZB asked for (8 bit or 16 bit), so it plays correctly out of robot hardware.
Troubleshooting
| Symptom | Cause |
|---|---|
| "There is no user logged into ARC" | Log into your Synthiam account in ARCx. |
| An error in the log mentioning the voice | The voice code is misspelled or is not one Azure offers. Copy it from the Microsoft page. |
| Nothing is spoken | No text to speech engine in the project, or two engines are fighting - keep only one. |
| Audio out of the EZB sounds bad | The EZB speaker is low fidelity by design; try 16 bit if the EZB supports it. |
See also
- Basic Speech Synthesis - English only, no configuration
- Windows Speech Engine - offline, uses the voices installed in Windows
Control Commands for the Advanced Speech Synthesis robot skill
There are Control Commands available for this robot skill which allows the skill to be controlled programmatically from scripts or other robot skills. 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.
Control Command ManualThis skill has no control commands.
It is a text to speech engine. It does not receive commands; it provides the voice that ARCx uses whenever something asks for speech.
How to make it speak
Use the Audio object from a JavaScript or Python script:
| Script command | What it does |
|---|---|
Audio.Say("text") |
Speaks out of the PC speaker and returns immediately. |
Audio.SayWait("text") |
Speaks out of the PC speaker and waits until it has finished. |
Audio.SayEZB("text") |
Speaks out of the speaker on EZB #0. |
Audio.SayEZB("text", ezbIndex) |
Speaks out of the speaker on the given EZB. |
Audio.SayEZBWait("text") |
Speaks out of EZB #0 and waits until it has finished. |
Audio.SayEZBWait("text", ezbIndex) |
Speaks out of the given EZB and waits. |
Example:
Audio.SayWait("Bonjour, je suis un robot");
SSML is accepted by these commands and is passed through to Azure untouched.
Changing the voice from a script
The voice is a configuration setting, not a control command. Change it in the skill's
configuration dialog, or programmatically through ARCx's configuration API using the
VoiceCode field of this skill's configuration.
Stopping speech
The Stop Speaking button in the skill's window stops playback. There is no control command equivalent in this skill.




This robot skill has been updated to v1.
This robot skill has been updated to v2.
This robot skill has been updated to v3.
This robot skill has been updated to v4.
What has changed
compatible with latest ARCx v2026.09.27.01
This robot skill has been updated to v5.
What has changed
updated to support latest audio service of ARCx 2026.09.28.02