Multiple Voices without connection issues

MyCroft has started behaving strangely. I get correct responses, however, MyCroft uses different voices for some reason. There is no issue with the internet connection.

NOTE - the below questions are asked one. after the other.

If I ask “When will it rain next” - The default, robotic, voice is used.
If I ask “What is today’s weather” - the default voice is used.
IF I ask “What time is it” - the correct, ‘American Male’ voice is used
If I ask “When will it rain next” - The default voice is used.

I would expect the same voice to be used for all responses rather than it switching between them.

Connection issues to the tts server cause this to occur.

1 Like

if we only had this functionality, would be super nice. But it’s most likely that you have mimic built locally and some cloud tts set up as default. Without connection, mimic acts as a fallback.

It is a stock SD image with Git pulls added to resolve an issue not included in the latest release. Nothing built locally.

I run updates (… install update, … install upgrade) a couple of times a month over ssh. Other than that, it is all stock.

NOTE - this just started happening in the last week. Only thing that changed from my side was running the updates. Checking the version, “Mycroft, What software version are you running”, shows the same version as before the issue and states to be on the latest version.

While I thought this could be the issue, it is too precise for that. As stated, I can ask the 4 questions back to back and get the same results every time. I doubt the tts server is this consistent with its connection issues.

They’re probably cached responses that it’s loading then.

If they are cached, wouldn’t it use the correct voice? I would hope only the text to speak is cached and not the voice to be used when stating it is cached.

Either way, I am considering this a closed issue. I’m sure it will eventually work correctly and even if it sounds horrible, it is giving the correct information.

THe local device will save the wav file it gets in its cache. When it plays that answer again and it matches the cache, then it’ll play the relevant wav it has stored.

Is there a setting for how long to keep the cache files? I would rather use more bandwidth and have a decent sounding reply than it take just as long to poll and alternate between a good voice and one I’d rather never hear.

No settings, but there is a TextToSpeechCache.clear() that gets run when initializing a new TTS class. So in order to flush the cache, reboot or restart.

Not clear if we’re talking about the observeable version of mycroft-core here

Thanks for the info. It’s a Mark I. So if I hear the mimic voice, reboot and the cache will be cleared once back up and running.

I think I have narrowed this down to some functions not using the assigned voice and instead using the Mimic I voice.

Example - asking “Hey, MyCroft say ‘how are you today’” uses the Mimic I voice even though the Mark I is connected to the internet and another voice is assigned.

This causes, at times, asking “Hey, MyCroft, what’s the weather tomorrow?” to be stated in two different voices rather than using the defined one.