yesterday I managed to setup my Raspberry PI 4B with mycroft. I did not use the Picroft image and had quite some trouble with the audio of my Respeaker 4 Mic-Array but luckily some folks here posted scripts that helped solve this issue.
Today I switched from the default British male voice to the American one because it sound better for me and as I understood uses Mimic2. Ok at first I thought it would work, but then I tested some skills. Now comes the strange behavior:
If I use the Jokes skill, I get the American voice. But if I use the Date and Time skill then I get the British voice.
I had a look at the log files. In the audio.log I saw the call to the tts api and also that it failed for some skills. I compared one that works with one that does not and the call to the APi seems different for some reason.
Have a look at this example:
2020-04-17 15:43:12.363 | INFO | 14696 | mycroft.audio.speech:mute_and_speak:127 | Speak: Confirming: Would you like me to restart now?
2020-04-17 15:43:12.366 | DEBUG | 14696 | mycroft.tts.mimic2_tts:get_tts:232 | Generating Mimic2 TSS for: Confirming: Would you like me to restart now?
2020-04-17 15:43:12.370 | DEBUG | 14696 | urllib3.connectionpool | Resetting dropped connection: mimic-api.mycroft.ai
2020-04-17 15:43:13.051 | DEBUG | 14696 | urllib3.connectionpool | https://mimic-api.mycroft.ai:443 “GET /synthesize?text=Confirming%3A%20Would%20you%20like%20me%20to%20restart%20now%3F&visimes=True HTTP/1.1” 200 153071
Playing WAVE ‘/tmp/mycroft/cache/tts/Mimic2/abd13f60f1c34cf52ef8cb37418c9e0d.wav’ : Signed 16 bit Little Endian, Rate 22000 Hz, Mono
2020-04-17 15:44:02.045 | INFO | 14696 | mycroft.audio.speech:mute_and_speak:127 | Speak: fifteen forty four
2020-04-17 15:44:02.048 | DEBUG | 14696 | mycroft.tts.mimic2_tts:get_tts:232 | Generating Mimic2 TSS for: fifteen forty four.
2020-04-17 15:44:02.214 | DEBUG | 14696 | urllib3.connectionpool | https://mimic-api.mycroft.ai:443 “GET /synthesize?text=fifteen%20forty%20four.&visimes=True HTTP/1.1” 500 290
2020-04-17 15:44:02.218 | ERROR | 14696 | mycroft.audio.speech:mute_and_speak:131 | Backend returned HTTP status 500
2020-04-17 15:44:02.221 | DEBUG | 14696 | mycroft.audio.speech:mimic_fallback_tts:146 | Mimic fallback, utterance : fifteen forty four
Playing WAVE ‘/tmp/mycroft/cache/tts/Mimic/645ceacf20711308e7e301b7c9bf9a96.wav’ : Signed 16 bit Little Endian, Rate 44100 Hz, Mono
At the “GET /synthesize?test=…” are at the end some numbers. Either a 200 and a number that varies, or a 500 followed by a 290.
And every time the 500 290 combination is requested, it fails. The 200 ones always succeed.
Now the question is why is for some skills the one called and for others the 200. I do not see what could cause such a behavior.
Could it be an issue in my configuration? Maybe, but I do not know what could cause this.
Or it this a bug in the core or the tts API?
I know I live dangerous by not using the Pycroft Image, but I have the feeling that the Raspberry PI 4B with 4GB can handle mycroft and a Desktop running at the same time. At least well enough for me now.
Mycroft Version 20.02 (latest stable)
If more information is required, feel free to ask. I just do not want to dump even more information now since I do not know what is necessary and what not.