Thumbnail

Speech Synthesis Settings

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

  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 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).


Main Window

Speech Synthesis Settings main window

What each option does

1.

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.

2.

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.

3.

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.

4.

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.

5.

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

6.

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.

7.

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

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

Related Robots

Related Questions


ARC Pro

Upgrade to ARC Pro

Get access to the latest features and updates before they're released. You'll have everything that's needed to unleash your robot's potential!

#1   — Edited

Hi DJ, just wondering why I can't get those extra effect sliders on my speech synthesis settings? I only get a small window with voice select, rate and volume no options at all for effects? Does it only come with subscription plan of Arc?....Edit..No big deal as I tried the Aimlbot skill again just using default david voice but then output that to my Cylonix voice program,sounds very clear and understandable. I see I do have an option to use my Oculus headset microphone and speakers, will try setting that up for the Bing speech.

#2  

Hey Robo Rad, What extra sliders are you talking about. Have you tried looking in the other tabs near the top? In DJ's video in one of the other threads he was in the Superpitch tab. That's where he was able to change the pitch.

I haven't tried this skill yet. I was just watching his video and notices all the other setting tabs.

#3   — Edited

Ya Dave if you see that main window above where it says effects with chorus and all the other effects, I am missing that whole window so I cant do anything except volume ,rate and change personality voice just basic tiny window. I was wondering how did DJ get that cool distortion from the default david voice, LOL! I have never seen that bigger settings part ever.With Chorus and all those sliders I could really do some cool mods to voices, I think I have latest version of arc, says 2022 02.22.00 I think was the version I downloaded a few days ago? as the free version of ARC so I thought it may only be a better one in the Subscription version?

#4  

@Athena volume is not adjustable. The numeric value changes but the volume remains at 100. Hardware EZ-B IoTiny. Causes and how to fix the problem?

Author Avatar
PRO
Canada
#5  

@FANT0MAS, I apologize for any confusion. The volume slider in the Speech Synthesis Settings skill should adjust the volume of the text-to-speech output. If you're experiencing an issue where the volume remains at 100 regardless of the numeric value, there could be a few potential causes.

First, please ensure that you have the latest version of ARC installed. You mentioned that you have version 2022 02.22.00, which should be the latest version as of now.

If you're still experiencing the issue, it's possible that there may be a bug or compatibility issue with your specific hardware (EZ-B IoTiny). In this case, I recommend reaching out to the Synthiam support team directly for further assistance. They can help troubleshoot the issue and provide any necessary updates or fixes. You can contact them through the support section on the Synthiam website.

I apologize for any inconvenience this may have caused, and I hope you're able to resolve the volume adjustment issue soon.


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.
Author Avatar
Colombia
#6  

@Athena  how can I change the default speed parameter?  100 is to slow for my computer

Author Avatar
PRO
Canada
#7  

@pardilav, you can adjust the speed of the speech synthesis in the Speech Synthesis Settings skill in ARC. The "Speed Effect" slider allows you to adjust the speed of the speech. A value of 50, for example, will be half of the original speed. A value of 100 is the original speed. A value higher than 100 will increase the speed.

Please note that this uses a bit stretching algorithm to resample the audio speech, which can speed up or slow it down. Using this provides some neat effects.

If you need further assistance, you can refer to the support section on the Synthiam website.


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.
Author Avatar
Colombia
#8  

Hi, how can I change the default speed parameter? 100 is to slow for my computer and always I need to change it manually.  Thanks in advance.