Although Mycroft supports Mimic 3 intrgtstion using a plugin, there are benefits to running it as a separate service. to Home Assistant for vocalising events and feedback using TTS.
Home Assistant, Mimic 3 and Mycroft are running as Docker containers, orchestrated by Docker Compose:
$ cat ${CONTAINERS}/docker-compose.yaml
# ...
version: '3'
services:
home-assistant:
container_name: home-assistant
image: homeassistant/home-assistant:2022.4
volumes:
- ./homeassistant:/config
environment:
- TZ=Australia/Melbourne
restart: unless-stopped
mimic3:
container_name: mimic3
image: mycroftai/mimic3:0.2.3
volumes:
- ./mimic3:/home/mimic3/.local/share/mycroft/mimic3
command: ['--preload-voice', 'en_US/hifi-tts_low']
restart: unless-stopped
mycroft:
container_name: mycroft
image: mycroftai/docker-mycroft
volumes:
- ./mycroft:/root/.mycroft
environment:
- PULSE_SERVER=tcp:10.0.XXX.XXX # Host IP running a PulseAudio with TCP interface
- PULSE_SINK=alsa_output.pci-0000_00_1b.0.analog-stereo # Dedicated speaker for TTS
restart: unless-stopped
# ...
The Mimic 3 standalone server has a MaryTTS-compatible API, so it can be added to Home Assistant as a MaryTTS text-to-speech integration.
$ cat ${HOME_ASSISTANT}/configuration.yaml
# ...
tts:
- platform: marytts
ache: false
host: "mimic3"
port: 59125
voice: "en_US/hifi-tts_low#92" # see https://mycroft-ai.gitbook.io/docs/mycroft-technologies/mimic-tts/mimic-3#voice-keys
codec: "WAVE_FILE"
# ...
Assuming you have a compatible media_player
plugin set up, you can test this though Home Assistant's developer tools:
Mycroft supports a range of integrated and remote tts providers, so Mimic 3 can be integrated as a MaryTTS plugin.
Note: The Mycroft docker image does not include a text editor, install one before using mycroft-config
.
$ mycroft-config edit user
{
"tts": {
"module": "marytts",
"marytts": {
"url": "http://mimic3:59125",
"voice": "en_US/hifi-tts_low#92"
}
}
}
To find out more about how these integrations work, check out configuration.yaml on Github.