Just discovered the mimic3 project from Mycroft AI, and am blown away.
This is a TTS server you can self-host, but unlike other ones I’ve tried - the renderings are super fast, and very high quality. Dozens of languages supported, and there are literally dozens of voices to choose from!
Installation is simple: spin up a docker image, and it is MaryTTS compatible - so a simple tweak of your configuration.yaml, and you are all done! (Presumably you are already running docker somewhere.)
The docker command example:
### Make sure your local path has write permissions for user 1000 (voice storage)
docker run -d \
--name=mimic3 \
-p 59125:59125 \
-v <YOUR_LOCAL_PATH>:/home/mimic3/.local/share/mycroft/mimic3 \
--restart always \
mycroftai/mimic3:latest
The docker image is just under 400 MB.
Once the server is running, you can connect to it and test it out by pointing your browser to your docker host at the port you specified (59125). Selecting a new voice downloads it locally. Each voice is ~70MB, but could include multiple ‘speakers’. Find one you like and make note, and set it in your configuration.yaml.
Here’s how it looks:
tts:
- platform: marytts
host: ***your docker host ip***
port: 59125
#The default voice is a very good male UK accent.
voice: "en_UK/apope_low#default"
#Female Indian accent
#voice: "en_US/cmu-arctic_low#slp"
#Female UK accent
#voice: "en_US/vctk_low#p293"
Restart home assistant, and you’re done. Never send your messages to Google again!
As you can see, the voice selection follows the keys like so:
voice: <language>/<voice>#<speaker>
Test the voices now! (Mimic 3 Voice Samples)
Documentation (Mimic 3 - Mycroft AI)