Configure Windows Audio.say()/Audio.sayEZB() TTS on EZB#0: voice, emphasis, rate, volume, speed/stretch and audio effects; copy control script.
How to add the Speech Synthesis Settings robot skill
- Load the most recent release of ARC (Get ARC).
- Press the Project tab from the top menu bar in ARC.
- Press Add Robot Skill from the button ribbon bar in ARC.
- Choose the Audio category tab.
- Press the Speech Synthesis Settings 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 Speech Synthesis Settings robot skill.
How to use the Speech Synthesis Settings robot skill
Use this Robot Skill to change how the built-in Windows Text‑to‑Speech (TTS) voice sounds inside Synthiam ARC. These settings apply when you speak using scripting commands like Audio.say() and Audio.sayEZB() (on EZB Index #0).
Audio.say() / Audio.sayEZB(). It does not change other TTS skills (for example, Azure Text‑to‑Speech). If you want a more natural human voice, use a cloud TTS skill such as Azure. If you want a more robotic voice, use Windows TTS and customize it here.
Main Window
What each option does
Voice (Drop-down)
Selects which Windows voice ARC will use when it speaks. This list comes from voices installed in Windows. If you don’t see many options, you may only have one Windows voice installed.
Emphasis (Drop-down)
Chooses the “style” or emphasis level for speech (when supported by the selected Windows voice). Some voices support emphasis better than others, and some options may sound very similar depending on the voice.
Rate (Drop-down)
Changes how fast the Windows TTS engine speaks. Note: This Rate setting only works when Emphasis is set to Not set. If you choose an emphasis level other than “Not set,” the rate may not change.
Volume (Slider)
Sets how loud the text-to-speech output will be, from 1% to 100%. If your robot is too quiet or too loud compared to other sounds, adjust this first.
Speed Effect
Applies an audio “time stretch” effect after the voice is generated. This can create fun robotic effects that are different from the Windows Rate.
How to read the values:
100 = original (normal) speed
50 = about half speed (slower / drawn out)
> 100 = faster than normal
Effects
Adds optional audio effects to the spoken voice, such as pitch shifting, delay/echo, or flanger. These effects are meant to make the already-robotic Windows voice sound even more “robot-like.” You can experiment by turning one effect on at a time, then adjusting its sliders/values to hear the difference.
Copy Values To Script
Generates ARC script commands (using ControlCommand) for every effect setting you changed and copies them to your clipboard.
Even though these settings are saved with your ARC project, this button is helpful if you want to:
- Restore your preferred voice/effects automatically in an Init script
- Change voice/effects “on the fly” while the robot is running
- Learn which parameters are being modified behind the scenes
Audio.say("Hello"), then add one effect at a time so you can clearly hear what each setting changes.
Control Commands for the Speech Synthesis Settings 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 Manual"SetSpeed", [0-200]
Example: controlCommand("Speech Settings", "SetSpeed", [0-200])
SetVoice", "Microsoft David Desktop
Example: controlCommand("Speech Settings", "SetVoice", "Microsoft David Desktop")
SetVoice", "Microsoft Zira Desktop
Example: controlCommand("Speech Settings", "SetVoice", "Microsoft Zira Desktop")
SetVoiceEmphasis", "NotSet
Example: controlCommand("Speech Settings", "SetVoiceEmphasis", "NotSet")
SetVoiceEmphasis", "Strong
Example: controlCommand("Speech Settings", "SetVoiceEmphasis", "Strong")
SetVoiceEmphasis", "Moderate
Example: controlCommand("Speech Settings", "SetVoiceEmphasis", "Moderate")
SetVoiceEmphasis", "None
Example: controlCommand("Speech Settings", "SetVoiceEmphasis", "None")
SetVoiceEmphasis", "Reduced
Example: controlCommand("Speech Settings", "SetVoiceEmphasis", "Reduced")
SetVoiceRate", "NotSet
Example: controlCommand("Speech Settings", "SetVoiceRate", "NotSet")
SetVoiceRate", "ExtraFast
Example: controlCommand("Speech Settings", "SetVoiceRate", "ExtraFast")
SetVoiceRate", "Fast
Example: controlCommand("Speech Settings", "SetVoiceRate", "Fast")
SetVoiceRate", "Medium
Example: controlCommand("Speech Settings", "SetVoiceRate", "Medium")
SetVoiceRate", "Slow
Example: controlCommand("Speech Settings", "SetVoiceRate", "Slow")
SetVoiceRate", "ExtraSlow
Example: controlCommand("Speech Settings", "SetVoiceRate", "ExtraSlow")
"BadBussMojo", "Enable", [true/false]
Example: controlCommand("Speech Settings", "BadBussMojo", "Enable", [true/false])
"BadBussMojo", "Pos. Thresh (dB)", [-60 to 0]
Example: controlCommand("Speech Settings", "BadBussMojo", "Pos. Thresh (dB)", [-60 to 0])
"BadBussMojo", "Neg. Thresh (dB)", [-60 to 0]
Example: controlCommand("Speech Settings", "BadBussMojo", "Neg. Thresh (dB)", [-60 to 0])
"BadBussMojo", "Pos. Nonlinearity", [1 to 2]
Example: controlCommand("Speech Settings", "BadBussMojo", "Pos. Nonlinearity", [1 to 2])
"BadBussMojo", "Neg. Nonlinearity", [1 to 2]
Example: controlCommand("Speech Settings", "BadBussMojo", "Neg. Nonlinearity", [1 to 2])
"BadBussMojo", "Pos. Knee (dB)", [0 to 6]
Example: controlCommand("Speech Settings", "BadBussMojo", "Pos. Knee (dB)", [0 to 6])
"BadBussMojo", "Neg. Knee (dB)", [0 to 6]
Example: controlCommand("Speech Settings", "BadBussMojo", "Neg. Knee (dB)", [0 to 6])
"BadBussMojo", "Mod A", [0 to 100]
Example: controlCommand("Speech Settings", "BadBussMojo", "Mod A", [0 to 100])
"BadBussMojo", "Mod B", [0 to 100]
Example: controlCommand("Speech Settings", "BadBussMojo", "Mod B", [0 to 100])
"Chorus", "Enable", [true/false]
Example: controlCommand("Speech Settings", "Chorus", "Enable", [true/false])
"Chorus", "chorus length (ms)", [1 to 250]
Example: controlCommand("Speech Settings", "Chorus", "chorus length (ms)", [1 to 250])
"Chorus", "number of voices", [1 to 8]
Example: controlCommand("Speech Settings", "Chorus", "number of voices", [1 to 8])
"Chorus", "rate (hz)", [0.1 to 16]
Example: controlCommand("Speech Settings", "Chorus", "rate (hz)", [0.1 to 16])
"Chorus", "pitch fudge factor", [0 to 1]
Example: controlCommand("Speech Settings", "Chorus", "pitch fudge factor", [0 to 1])
"Chorus", "wet mix (dB)", [-100 to 12]
Example: controlCommand("Speech Settings", "Chorus", "wet mix (dB)", [-100 to 12])
"Chorus", "dry mix (dB)", [-100 to 12]
Example: controlCommand("Speech Settings", "Chorus", "dry mix (dB)", [-100 to 12])
"Delay", "Enable", [true/false]
Example: controlCommand("Speech Settings", "Delay", "Enable", [true/false])
"Delay", "delay (ms)", [0 to 4000]
Example: controlCommand("Speech Settings", "Delay", "delay (ms)", [0 to 4000])
"Delay", "feedback (dB)", [-120 to 6]
Example: controlCommand("Speech Settings", "Delay", "feedback (dB)", [-120 to 6])
"Delay", "mix in (dB)", [-120 to 6]
Example: controlCommand("Speech Settings", "Delay", "mix in (dB)", [-120 to 6])
"Delay", "output wet (dB)", [-120 to 6]
Example: controlCommand("Speech Settings", "Delay", "output wet (dB)", [-120 to 6])
"Delay", "output dry (dB)", [-120 to 6]
Example: controlCommand("Speech Settings", "Delay", "output dry (dB)", [-120 to 6])
"Delay", "resample on length change", [0 to 1]
Example: controlCommand("Speech Settings", "Delay", "resample on length change", [0 to 1])
"DelayPong", "Enable", [true/false]
Example: controlCommand("Speech Settings", "DelayPong", "Enable", [true/false])
"DelayPong", "delay (ms) - 0 for beatsync", [0 to 13000]
Example: controlCommand("Speech Settings", "DelayPong", "delay (ms) - 0 for beatsync", [0 to 13000])
"DelayPong", "feedback (dB)", [-120 to 6]
Example: controlCommand("Speech Settings", "DelayPong", "feedback (dB)", [-120 to 6])
"DelayPong", "mix in (dB)", [-120 to 6]
Example: controlCommand("Speech Settings", "DelayPong", "mix in (dB)", [-120 to 6])
"DelayPong", "output wet (dB)", [-120 to 6]
Example: controlCommand("Speech Settings", "DelayPong", "output wet (dB)", [-120 to 6])
"DelayPong", "output dry (dB)", [-120 to 6]
Example: controlCommand("Speech Settings", "DelayPong", "output dry (dB)", [-120 to 6])
"DelayPong", "ping-pong width", [0 to 100]
Example: controlCommand("Speech Settings", "DelayPong", "ping-pong width", [0 to 100])
"DelayPong", "beatsync - fraction of whole note", [0.0625 to 4]
Example: controlCommand("Speech Settings", "DelayPong", "beatsync - fraction of whole note", [0.0625 to 4])
"EventHorizon peak eating limiter", "Enable", [true/false]
Example: controlCommand("Speech Settings", "EventHorizon peak eating limiter", "Enable", [true/false])
"EventHorizon peak eating limiter", "Threshold", [-30 to 0]
Example: controlCommand("Speech Settings", "EventHorizon peak eating limiter", "Threshold", [-30 to 0])
"EventHorizon peak eating limiter", "Ceiling", [-20 to 0]
Example: controlCommand("Speech Settings", "EventHorizon peak eating limiter", "Ceiling", [-20 to 0])
"EventHorizon peak eating limiter", "Soft clip (dB)", [0 to 6]
Example: controlCommand("Speech Settings", "EventHorizon peak eating limiter", "Soft clip (dB)", [0 to 6])
"EventHorizon peak eating limiter", "Soft clip ratio", [3 to 20]
Example: controlCommand("Speech Settings", "EventHorizon peak eating limiter", "Soft clip ratio", [3 to 20])
"FairlyChildish compressor/limiter", "Enable", [true/false]
Example: controlCommand("Speech Settings", "FairlyChildish compressor/limiter", "Enable", [true/false])
"FairlyChildish compressor/limiter", "Threshold (dB)", [-60 to 0]
Example: controlCommand("Speech Settings", "FairlyChildish compressor/limiter", "Threshold (dB)", [-60 to 0])
"FairlyChildish compressor/limiter", "Bias", [0.1 to 100]
Example: controlCommand("Speech Settings", "FairlyChildish compressor/limiter", "Bias", [0.1 to 100])
"FairlyChildish compressor/limiter", "Makeup gain", [-30 to 30]
Example: controlCommand("Speech Settings", "FairlyChildish compressor/limiter", "Makeup gain", [-30 to 30])
"FairlyChildish compressor/limiter", "AGC", [0 to 1]
Example: controlCommand("Speech Settings", "FairlyChildish compressor/limiter", "AGC", [0 to 1])
"FairlyChildish compressor/limiter", "Time Constant", [1 to 6]
Example: controlCommand("Speech Settings", "FairlyChildish compressor/limiter", "Time Constant", [1 to 6])
"FairlyChildish compressor/limiter", "Level detector RMS window", [1 to 10000]
Example: controlCommand("Speech Settings", "FairlyChildish compressor/limiter", "Level detector RMS window", [1 to 10000])
"Fast Attack Compressor 1175", "Enable", [true/false]
Example: controlCommand("Speech Settings", "Fast Attack Compressor 1175", "Enable", [true/false])
"Fast Attack Compressor 1175", "Threshold (dB)", [-60 to 0]
Example: controlCommand("Speech Settings", "Fast Attack Compressor 1175", "Threshold (dB)", [-60 to 0])
"Fast Attack Compressor 1175", "Ratio", [0 to 3]
Example: controlCommand("Speech Settings", "Fast Attack Compressor 1175", "Ratio", [0 to 3])
"Fast Attack Compressor 1175", "Gain", [-20 to 20]
Example: controlCommand("Speech Settings", "Fast Attack Compressor 1175", "Gain", [-20 to 20])
"Fast Attack Compressor 1175", "Attack time (usec.)", [20 to 2000]
Example: controlCommand("Speech Settings", "Fast Attack Compressor 1175", "Attack time (usec.)", [20 to 2000])
"Fast Attack Compressor 1175", "Release time (msec.)", [20 to 1000]
Example: controlCommand("Speech Settings", "Fast Attack Compressor 1175", "Release time (msec.)", [20 to 1000])
"Fast Attack Compressor 1175", "Mix", [0 to 100]
Example: controlCommand("Speech Settings", "Fast Attack Compressor 1175", "Mix", [0 to 100])
"FlangeBaby", "Enable", [true/false]
Example: controlCommand("Speech Settings", "FlangeBaby", "Enable", [true/false])
"FlangeBaby", "Flange (Delay)", [1 to 10]
Example: controlCommand("Speech Settings", "FlangeBaby", "Flange (Delay)", [1 to 10])
"FlangeBaby", "Depth", [0 to 1]
Example: controlCommand("Speech Settings", "FlangeBaby", "Depth", [0 to 1])
"FlangeBaby", "Feedback", [-1 to 1]
Example: controlCommand("Speech Settings", "FlangeBaby", "Feedback", [-1 to 1])
"FlangeBaby", "Speed (Hz, 0=tempo)", [0 to 10]
Example: controlCommand("Speech Settings", "FlangeBaby", "Speed (Hz, 0=tempo)", [0 to 10])
"FlangeBaby", "Mix", [0 to 1]
Example: controlCommand("Speech Settings", "FlangeBaby", "Mix", [0 to 1])
"FlangeBaby", "Channel Offset", [0 to 5]
Example: controlCommand("Speech Settings", "FlangeBaby", "Channel Offset", [0 to 5])
"FlangeBaby", "beatsync - fraction of whole note", [0.0625 to 4]
Example: controlCommand("Speech Settings", "FlangeBaby", "beatsync - fraction of whole note", [0.0625 to 4])
"FlangeBaby", "LFO Waveform", [0 to 1]
Example: controlCommand("Speech Settings", "FlangeBaby", "LFO Waveform", [0 to 1])
"3 Band EQ with crossover", "Enable", [true/false]
Example: controlCommand("Speech Settings", "3 Band EQ with crossover", "Enable", [true/false])
"3 Band EQ with crossover", "lo drive", [0 to 100]
Example: controlCommand("Speech Settings", "3 Band EQ with crossover", "lo drive", [0 to 100])
"3 Band EQ with crossover", "lo gain", [-12 to 12]
Example: controlCommand("Speech Settings", "3 Band EQ with crossover", "lo gain", [-12 to 12])
"3 Band EQ with crossover", "mid drive", [0 to 100]
Example: controlCommand("Speech Settings", "3 Band EQ with crossover", "mid drive", [0 to 100])
"3 Band EQ with crossover", "mid gain", [-12 to 12]
Example: controlCommand("Speech Settings", "3 Band EQ with crossover", "mid gain", [-12 to 12])
"3 Band EQ with crossover", "hi drive", [0 to 100]
Example: controlCommand("Speech Settings", "3 Band EQ with crossover", "hi drive", [0 to 100])
"3 Band EQ with crossover", "hi gain", [-12 to 12]
Example: controlCommand("Speech Settings", "3 Band EQ with crossover", "hi gain", [-12 to 12])
"3 Band EQ with crossover", "low-mid xover for multiband", [60 to 500]
Example: controlCommand("Speech Settings", "3 Band EQ with crossover", "low-mid xover for multiband", [60 to 500])
"3 Band EQ with crossover", "mid-high xover for multiband", [510 to 10000]
Example: controlCommand("Speech Settings", "3 Band EQ with crossover", "mid-high xover for multiband", [510 to 10000])
"SuperPitch", "Enable", [true/false]
Example: controlCommand("Speech Settings", "SuperPitch", "Enable", [true/false])
"SuperPitch", "Pitch adjust (cents)", [-100 to 100]
Example: controlCommand("Speech Settings", "SuperPitch", "Pitch adjust (cents)", [-100 to 100])
"SuperPitch", "Pitch adjust (semitones)", [-12 to 12]
Example: controlCommand("Speech Settings", "SuperPitch", "Pitch adjust (semitones)", [-12 to 12])
"SuperPitch", "Pitch adjust (octaves)", [-8 to 8]
Example: controlCommand("Speech Settings", "SuperPitch", "Pitch adjust (octaves)", [-8 to 8])
"SuperPitch", "Window size (ms)", [1 to 200]
Example: controlCommand("Speech Settings", "SuperPitch", "Window size (ms)", [1 to 200])
"SuperPitch", "Overlap size (ms)", [0.05 to 50]
Example: controlCommand("Speech Settings", "SuperPitch", "Overlap size (ms)", [0.05 to 50])
"SuperPitch", "Wet mix (dB)", [-120 to 6]
Example: controlCommand("Speech Settings", "SuperPitch", "Wet mix (dB)", [-120 to 6])
"SuperPitch", "Dry mix (dB)", [-120 to 6]
Example: controlCommand("Speech Settings", "SuperPitch", "Dry mix (dB)", [-120 to 6])
"SuperPitch", "Filter", [0 to 1]
Example: controlCommand("Speech Settings", "SuperPitch", "Filter", [0 to 1])
"3 Band EQ", "Enable", [true/false]
Example: controlCommand("Speech Settings", "3 Band EQ", "Enable", [true/false])
"3 Band EQ", "lo drive", [0 to 100]
Example: controlCommand("Speech Settings", "3 Band EQ", "lo drive", [0 to 100])
"3 Band EQ", "lo gain", [-12 to 12]
Example: controlCommand("Speech Settings", "3 Band EQ", "lo gain", [-12 to 12])
"3 Band EQ", "mid drive", [0 to 100]
Example: controlCommand("Speech Settings", "3 Band EQ", "mid drive", [0 to 100])
"3 Band EQ", "mid gain", [-12 to 12]
Example: controlCommand("Speech Settings", "3 Band EQ", "mid gain", [-12 to 12])
"3 Band EQ", "hi drive", [0 to 100]
Example: controlCommand("Speech Settings", "3 Band EQ", "hi drive", [0 to 100])
"3 Band EQ", "hi gain", [-12 to 12]
Example: controlCommand("Speech Settings", "3 Band EQ", "hi gain", [-12 to 12])
"3 Band EQ", "low-mid freq", [60 to 680]
Example: controlCommand("Speech Settings", "3 Band EQ", "low-mid freq", [60 to 680])
"3 Band EQ", "mid-high freq", [720 to 12000]
Example: controlCommand("Speech Settings", "3 Band EQ", "mid-high freq", [720 to 12000])
"Tremolo", "Enable", [true/false]
Example: controlCommand("Speech Settings", "Tremolo", "Enable", [true/false])
"Tremolo", "frequency (Hz)", [0 to 100]
Example: controlCommand("Speech Settings", "Tremolo", "frequency (Hz)", [0 to 100])
"Tremolo", "amount (dB)", [-60 to 0]
Example: controlCommand("Speech Settings", "Tremolo", "amount (dB)", [-60 to 0])
"Tremolo", "stereo separation (0..1)", [0 to 1]
Example: controlCommand("Speech Settings", "Tremolo", "stereo separation (0..1)", [0 to 1])
Related Tutorials
Make Robot Talk
Cepstral Voice Effects
Tutorial On Fixing Voice Synthesis Problem With Windows 8.1...
Breaking Out The Sound From The V4 Ezb
Speech Synthesis Markup Language (SSML)
Related Robots
Related Questions
Inconsistent Speed Speech Settings After Installing Cepstral...
Use Voice Recognition For Unsupported Languages
2 Versions Of This Speech Settings?
Geschwindigkeit Der Sprachausgabe Dauerhaft Speichern!
Anyone Else Experiencing Cereproc Voice Causing ARC To...
Upgrade to ARC Pro
Unleash your robot's full potential with the cutting-edge features and intuitive programming offered by Synthiam ARC Pro.

Two things about that...
You can adjust the "rate" which will change the speed. This can be set using a controlcommand
You can adjust the speed but it doesn't seem to save. And i noticed there isn't a ControlCommand for it. So, i'll have to put that in for an update. Stay tuned
Thanks DJ for the prompt reply.
I should add there is a difference between the speed and rate setting.
The speed uses an algorithm to stretch or compress audio without changing the pitch. It’s done as an effect and not native to the speech synthesis engine
the rate is a parameter built into the speech synthesis engine. Some voices may be produced differently because it’ll be part of the synthesis.