jp15sil24
, I have a sound problem.
Hardware / connection:
- I have two EZB controllers and one IoTiny:
- EZB #0 - AP mode
- IoTiny #1 - client mode (has a Z120 speaker connected)
- EZB-v4 #2 - client mode
Skills and behavior:
- In the Soundboard v4 skill settings, IoTiny #1 is selected. This works fine:
controlCommand("Soundboard v4", "Play", "short-sound.mp3", true);
All sounds in that skill play OK on the Z120 attached to the IoTiny.
- Then I added this to my script:
controlCommand("Azure Text To Speech", "setVoice", "fr-FR-JacquelineNeural");
sleep(500);
Audio.sayEZB("test de voix francaise", 1);
I have checked "Replace Audio Script Commands" in the Azure Text To Speech skill settings. However, the audio always plays on EZB #0. If I replace Audio.sayEZB() with Audio.say(), it plays on the PC, which is fine - the French pronunciation is correct - but why does it not play on IoTiny #1?
I also tried:
Audio.sayEZB("test de voix francaise");
(without an ezbIndex) and the same behavior occurs.
Any ideas?
Related Hardware (view all EZB hardware)
Related Robot Skills (view all robot skills)
Upgrade to ARC Pro
With ARC Pro, your robot is not just a machine; it's your creative partner in the journey of technological exploration.
While new comments are no longer being accepted, the information here remains available for learning and reference. Check the most recent comment for additional details.

This behavior usually comes down to how
Audio.sayEZB()routes audio versus how the Azure Text To Speech skill is configured.What’s happening
Audio.sayEZB(...)is the built-in ARC audio command for the EZ-B speaker path.Audio.say()/Audio.sayEZB()if its replacement option is actually being used by that exact skill instance.ezbIndexis being ignored because the replacement skill is sending audio to its configured output device.Important detail
When "Replace Audio Script Commands" is enabled, the Azure TTS skill can override
Audio.say()/Audio.sayEZB(). In that case, the output follows the skill’s own configuration, not necessarily theezbIndexyou pass intoAudio.sayEZB().So the
1in this:may not be controlling the Azure TTS output the way you expect once replacement is enabled.
What to check
1) Open the Azure Text To Speech skill settings
Click the kebab / menu icon on the Azure Text To Speech skill and verify:
2) Test the skill directly
Try using the Azure skill’s own ControlCommand instead of
Audio.sayEZB():Or, if you want to wait until it finishes:
If that still outputs to EZB #0, then the Azure skill configuration is likely pointing there.
3) Verify the skill name
If you renamed the Azure skill, the
controlCommand()target name must match exactly.4) Check whether multiple audio/TTS skills are active
If more than one speech-related skill is present, one may be intercepting the command path.
Best next test
Try this sequence:
If that works but still goes to the wrong EZ-B, then the output device is controlled in the Azure TTS skill config, not by
Audio.sayEZB().My guess
Because Soundboard v4 is explicitly tied to IoTiny #1 and works, but Azure TTS replacement is still going to EZB #0, I suspect the Azure skill is either:
Audio.sayEZB()call and using its own device routing.A couple questions
If you want, I can help you build the exact ARC script and skill setup so the French voice always comes out of IoTiny #1. Also, ARC’s built-in AI Assistant can often rewrite this kind of script for you right inside the editor:
https://synthiam.com/Products/AI-Assistant
it goes to the pc. the "speak out of ezb " , same behavior if it is checked or not. only one azure skill. soundboard v4 is loaded as well. looks like, the output is ok on ezb #0 or pc but not on another ezb #1
good news, i removed the skill azure and I loaded the skill speech settings, choose the right voice , check enabled and it works. thanks for your support