TTS service (e. g. VoiceRSS): set voice

How can I set the voice of a TTS service (like specifically VoiceRSS VoiceRSS - Home Assistant)?

According to the API doc (Voice RSS - Text-to-speech (TTS) API documentation) it is possible by adding e. g. “&v=Amy” to the HTTP GET request.

But the integration is taking care of that (encapsulates the HTTP GET request I guess) and it does not have a configuration option VoiceRSS - Home Assistant for this.

So I tried few combinations (wild guesses) for the platform-specific options when executing the service. Example:

service: tts.voicerss_say
data:
  message: Test
  entity_id: media_player.speaker
  options: v=Amy

… which fails with error Error when executing service tts.voicerss_say. expected dict for dictionary value @ data['options']. Got None.

Any ideas?

  1. Find the right option syntax to select the voice
  2. Ask the integration (GitHub feature request?) to simply provide a voice configuration variable
  3. …?

Not sure about that integration, but it can be done with Amazon Polly. However, the voice selection is at the integration level, so you can’t readily change voices from one message to another. It supports SSML, so you can whisper, emphasise, pause etc as documented here. I have not used Polly with HA for a couple of years, but assume it’s still working ok.

Still looking for a solution for VoiceRSS, not interested in Amazon Polly…