Regarding Polly TTS support

Hello,

I see the latest release notes say - Amazon polly support is now enabled. But i tried setting it up and i get the below error in audio log.

2020-05-11 21:30:30.784 | ERROR | 61668 | mycroft.tts.tts:create:519 | The selected TTS backend couldn’t be loaded. Falling back to Mimic

What am i missing?

Thanks!

Can you share the “tts” section of your mycroft.conf (don’t forget to remove you credentials/api-key before sharing?)

Below is my tts config. Thanks for your help…

$ mycroft-config get tts
{
“pulse_duck”: false,
“module”: “polly”,
“mimic”: {
“voice”: “ap”
},
“mimic2”: {
“lang”: “en-us”,
“url”: “https://mimic-api.mycroft.ai/synthesize?text=”,
“preloaded_cache”: “/opt/mycroft/preloaded_cache/Mimic2”,
“voice”: “kusal”
},
“espeak”: {
“lang”: “english-us”,
“voice”: “m1”
},
“polly”: {
“voice”: “Matthew”,
“region”: “us-east-1”,
“access_key_id”: “”,
“secret_access_key”: “”
},
“bing”: {
“api_key”: “”,
“format”: “riff-16khz-16bit-mono-pcm”,
“gender”: “ZiraRUS”,
“lang”: “en-US”
}
}

Hey there, just wanted to make sure you have an access_key_id and secret_access_key?

I’m sure you don’t want to post them publicly but if they’re not in your config that will definitely be why it’s not working.

Also did you install the required boto3 package?

More details on both at:
https://mycroft-ai.gitbook.io/docs/using-mycroft-ai/customizations/tts-engine#amazon-polly

Getting the same error. And yes, I have my AWS credentials and boto3 intstalled. Here’s my mycroft.conf from /etc/mycroft:

{
“play_wav_cmdline”: “aplay %1”,
“play_mp3_cmdline”: “mpg123 %1”,
“enclosure”: {
“platform”: “picroft”
},

“tts”: {
“module”: “polly”,
“polly”: {
“voice”: “Matthew”,
“region”: “eu-central-1”,
“access_key_id”: “XXXXXXXXXXXXXXXXXXXXXX”,
“secret_access_key”: “XXXXXXXXXXXXXXXXXX”
}
},
“ipc_path”: “/ramdisk/mycroft/ipc/”
}

Hey, I’m still kind of new to contributing to open source projects, but @gez-mycroft it looks like the polly_tts.py file that JarbasAI wrote was never actually merged to the dev or master branches and the JarbasAI/polly_TTS branch was deleted. Here’s the pull request where support was planned to be added (and sorry if I’m using the wrong terminology, I’m still new to git): https://github.com/MycroftAI/mycroft-core/pull/1262

@misterbristles - you are right. I looked at the current dev branch (mycroft/tts/tts.py). There is no actual code to handle polly.

You were absolutely correct, we had a mix up, thought the PR got merged but it hadn’t. It’s now in the dev branch

Thanks @gez-mycroft… Pulled the latest code and its working without any problems. Cheers.

1 Like

Attempting to setup mycroft using the docker image and ran into this same problem with my mycroft.conf.

The docker image hasn’t been updated since before this thread was opened.

Is there a schedule for when this will likely be merged into stable? I’m not aware of a way to easily specify running the dev branch within the docker image.

And some additional requests:

Support use of “Standard” or “Neural” for the “engine” key. This will support use of more natural sounding voices. Nueral voices are only available for a sub-selection of US and UK voices, and only when connecting to specific regions.

https://docs.aws.amazon.com/polly/latest/dg/NTTS-main.html#ntts-engine

And support use of the <amazon:domain name=“conversational”> SSML tag. This would be a bit trickier as it’s not a key value, but an additional tag that has to be inserted inside the tag but encompassing the body of the TTS content.
I think the key in the settings file would have to be parsed as a true/false and if true the tag is inserted.
“Conversational” speaking style takes TTS to an even more natural sounding level than even Neural.