Mimic 3 with MaryTTS

I’m running Mimic 3 (which sounds great by the way) as a Docker container on my home server so any system I have can use it for TTS. I have a Picroft running and it’s my understanding that you can use the MarryTTS plugin to allow the Picroft to use a remote instance of Mimic 3. I have tried this, but get the following error

2022-06-30 12:54:45.576 | ERROR    |  1034 | mycroft.tts.remote_tts:__play:90 | 500 Http Error:  for url: http://10.0.10.12:59125/api/tts/process?LOCALE=en_US&VOICE=hifi-tts_low%2392&INPUT_TEXT=six+fifty+four&INPUT_TYPE=TEXT&AUDIO=WAVE_FILE&OUTPUT_TYPE=AUDIO

Here is the relevant section of my config for TTS

"tts": {
    "marytts":{
       "url": "http://10.0.10.12:59125/api/tts",
       "lang":"en_US",
       "voice":"hifi-tts_low#92"
     },
    "module":"marytts"

This works for me (Although, I am not running the docker version.):

    "marytts": {
      "url": "http://192.168.1.56:59125",
      "voice": "en_US/vctk_low#p303",
      "lengthScale": 1.2
    }

I do not think you need to include “/api/tts” and I included the language in the voice.

1 Like

Thanks! That format works. Seems like lengthScale is not being honored though as the speed is the same regardless of what I put down, maybe the docker image is behind… :man_shrugging:t2:

I was going to use the docker version but was not sure if it supported cuda.

You could try including lengthScale in voice as a work around (have not tried this):
"voice": "en_US/vctk_low#p303&lengthScale=1.2"

Hmm…that didn’t work either. Looking at the logs I can see where the MaryTTS module in Mycroft is calling the “/process” endpoint.

Now, my python skills are super basic, but looking at the Mimic 3 Http Server it almost looks like the endpoint for MaryTTS ("/process’) doesn’t recognize any arguments other then VOICE and INPUT_TEXT.

I just wound up editing the config.json file though for the voice to reduce the speed for the time being

    "inference": {
        "length_scale": 1.15,
        "noise_scale": 0.333,
        "noise_w": 0.333,
        "auto_append_text": "."

To debug what is happening and see what the api is doing you can use dev tools of your browser using inspect.

Go to http://10.0.10.12:59125/

eg:

This is correct. I need to add support for more parameters on that endpoint :slight_smile: