Mimic 3 and Home Assistant - can't use german voice

Hi, so I guess this is already known but I couldn’t find a similar topic through the search function:
I set up Mimic 3 in a docker container and wanted to use it as TTS service in Home Asisstant.

I configured it to use the MaryTTS integration but after changing my config according to the Mimic 3 documentation I am unable to restart Home Assistant:

The system cannot restart because the configuration is not valid: Invalid config for [tts.marytts]: value must be one of ['de', 'en_GB', 'en_US', 'fr', 'it', 'lb', 'ru', 'sv', 'te', 'tr'] for dictionary value @ data['language']. Got 'de_DE'. (See ?, line ?).

Mimic 3 expects the locale selection in the format “de_DE” but Home Assistant only validates with “de”.
If “de” is used Mimic 3 errors out with:

INFO:hypercorn.error:Running on http://0.0.0.0:59125 (CTRL + C to quit)
INFO:mimic3_tts.tts:Loaded voice from /home/mimic3/.local/share/mycroft/mimic3/voices/de_DE/thorsten_low
INFO:mimic3_tts.tts:Loaded voice from /home/mimic3/.local/share/mycroft/mimic3/voices/de_DE/thorsten-emotion_low
ERROR:mimic3_http.synthesis:Error during inference
Traceback (most recent call last):
  File "/home/mimic3/app/mimic3_http/synthesis.py", line 125, in do_synthesis_proc
    result = do_synthesis(item, mimic3)
  File "/home/mimic3/app/mimic3_http/synthesis.py", line 81, in do_synthesis
    raise e
  File "/home/mimic3/app/mimic3_http/synthesis.py", line 61, in do_synthesis
    mimic3.speak_text(params.text, text_language=params.text_language)
  File "/home/mimic3/app/mimic3_tts/tts.py", line 368, in speak_text
    voice = self._get_or_load_voice(self.voice)
  File "/home/mimic3/app/mimic3_tts/tts.py", line 561, in _get_or_load_voice
    raise VoiceNotFoundError(voice_key)
mimic3_tts.tts.VoiceNotFoundError: Voice not found: thorsten_low
ERROR:mimic3_http.app:Voice not found: thorsten_low
Traceback (most recent call last):
  File "/home/mimic3/app/.venv/lib/python3.9/site-packages/quart/app.py", line 1512, in full_dispatch_request
    result = await self.dispatch_request(request_context)
  File "/home/mimic3/app/.venv/lib/python3.9/site-packages/quart/app.py", line 1557, in dispatch_request
    return await self.ensure_async(handler)(**request_.view_args)
  File "/home/mimic3/app/mimic3_http/app.py", line 295, in api_marytts_process
    wav_bytes = await text_to_wav(
  File "/home/mimic3/app/mimic3_http/app.py", line 102, in text_to_wav
    wav_bytes = await future
  File "/home/mimic3/app/mimic3_http/synthesis.py", line 125, in do_synthesis_proc
    result = do_synthesis(item, mimic3)
  File "/home/mimic3/app/mimic3_http/synthesis.py", line 81, in do_synthesis
    raise e
  File "/home/mimic3/app/mimic3_http/synthesis.py", line 61, in do_synthesis
    mimic3.speak_text(params.text, text_language=params.text_language)
  File "/home/mimic3/app/mimic3_tts/tts.py", line 368, in speak_text
    voice = self._get_or_load_voice(self.voice)
  File "/home/mimic3/app/mimic3_tts/tts.py", line 561, in _get_or_load_voice
    raise VoiceNotFoundError(voice_key)
mimic3_tts.tts.VoiceNotFoundError: Voice not found: thorsten_low

I tried to work around it by doing a quick

cp -R de_DE/ de/

but Mimic 3 displays the same error, Voice not found.

Any suggestions on what I should try next?

Hi @markus1540, welcome to the community :slight_smile:

It’s a bit confusing, but Mimic 3 only pays attention to the “voice” property of the MaryTTS configuration, not the “language”. So you should have something like:

tts:
  - platform: marytts
    voice: "de_DE/thorsten_low"
2 Likes

Hi @synesthesiam, thanks for your help.
After changing the configuration it works as expected.
I just learned about Mycroft and Mimic 3 a few days ago through the youtube channel of @Thorsten
Thank you for suppling the community with this awesome piece of software, until now I used MaryTTS but Mimic 3 is far beyond its capabilities!

3 Likes

Hi @markus1540 ,
thanks for watching my videos. Are you using “my” voice in Mimic 3 or any other german voice or are you using Mimic 3 in a complete other language?

1 Like

Gude @Thorsten ,
I’m using your thorsten voice for all my current TTS needs (basically just greetings and some status updates) and plan to extend that to services like Rhasspy.

Thank you for sharing this data and your activity in the whole tts community, your channel really helps discovering new things and provides some guidance on how to set them up!

Greetings from Darmstadt.

2 Likes