Home » Software » Home Assistant – Piper – Multi Language Workaround / Setup

Home Assistant – Piper – Multi Language Workaround / Setup

Piper works well for single language when setting it up through its configurations page.

Unfortunately, it has some issues when trying to set use other languages on a per automation basis.

action: tts.speak
metadata: {}
target:
  entity_id: tts.piper
data:
  cache: true
  media_player_entity_id: media_player.smarts_smartspeakerplayer
  message: You seem to be good at this. We'll see how good, or maybe not.
  language: en_US-danny-low

This get a language not supported pop up with piper. Which could be just how it supposed to work.

With Google translate the language selector works flawlessly so it’s a bit confusing and poorly documented to say the least.

Luckily the Piper workaround is fairly easy by editing the TTS: Speak .yaml file by adding options to it.

options:
    voice: en_US-danny-low
    speaker: 0

So the whole .yaml would look like this:

action: tts.speak
metadata: {}
target:
  entity_id: tts.piper
data:
  cache: true
  media_player_entity_id: media_player.smarts_smartspeakerplayer
  message: You seem to be good at this. We'll see how good, or maybe not.
  options:
    voice: en_US-danny-low
    speaker: 0