chime_tts.say
Parameters
The chime_tts.say
action has standard parameters used by all TTS platforms, and additional parameters used by specific TTS platforms.
Standard Parameters
message
Basic Usage: Text
The message
parameter defines the text that will be converted into TTS audio by the TTS platform (defined by the tts_platform
parameter).
Description: | The text to be converted into TTS audio. |
---|---|
Required: | Yes |
Example: | The washing's done! |
Default: | None |
Advanced Usage: "Segment" sequences
The message
parameter can also define a YAML sequence built from 3 different "segment" types: tts
, chime
and delay
. These segments can be used together to create any combination, for example:
action: chime_tts.say
target:
entity_id: media_player.kitchen_speaker
data:
chime_path: chord
end_chime_path: tada
offset: 0
tts_platform: google_translate
language: en
message:
- tts: Greetings friend!
tts_platform: amazon_polly
- chime: bells_2
- tts: Hola amigo!
language: es
options:
tld: es
offset: 500
- delay: 1000
- tts: G'day mate!
cache: true
tts_speed: 115
options:
tld: com.au
tts
Segment Type
The tts segment type supports the parameters: (options
, tts_platform
, tts_speed
, tts_pitch
, language
, cache
), offset
, and audio_conversion
which allow you to use different TTS providers, languages, voices, rates of speech, pitch and apply specific FFmpeg audio conversions on different TTS segments within the same message.
Example usage:
action: chime_tts.say
target:
entity_id: media_player.kitchen_speaker
data:
chime_path: classical
end_chime_path: marimba
tts_platform: google_translate
cache: false
language: en
message:
- tts: May I please have your attention?
cache: true
- tts: It is officially time to move the washing to the dryer
offset: 3000
options:
tld: co.uk
- tts: Vámonos!
language: es
options:
tld: es
tts_speed: 115
- type: tts
message: Let's go!
tts_platform: amazon_polly
In the above example:
- The 1st segment overrides the cache parameter, setting it to true for the segment.
- The 2nd segment adds a 3 second delay before the TTS message and overrides the domain, setting it to the UK.
- The 3rd segment overrides the language, setting it to Spanish with the domain accent of Spain, and sets the speech rate to 115%.
- The 4th segment overrides the TTS platform, setting it to Amazon Polly.
Overriding Parameters:
When a parameter is defined in a TTS segment, it overrides the corresponding "parent" parameter in the main set of parameters, if defined.
When including the options
parameter in a TTS segment, the included parameters will overwrite any corresponding options in the main options
parameter. Any parameters not overwritten in the "parent" options
parameter will be applied as defined.
chime
Segment Type
The chime segment allows you to insert chimes anywhere in your messages, *(not just at the start (via chime_path
) or end (via end_chime_path
), and supports the offset
and audio_conversion
parameters.
The chime value can be any value supported by the chime_path
/end_chime_path
parameters (see selecting chimes).
action: chime_tts.say
target:
entity_id: media_player.kitchen_speaker
data:
chime_path: toast
end_chime_path: tada
tts_platform: google_translate
message:
- tts: And the winner is, drumroll please
- chime: drumroll
offset: 500
- tts: You!
offset: 0
- chime: /config/media/sounds/my_chimes/hooray.mp3
- tts: You get to move the washing to the dryer!
delay
Segment Type
The delay segment allows you to add additional delays into the message. This might be useful for repeating a message, or pausing for dramatic effect 🎭
action: chime_tts.say
target:
entity_id: media_player.kitchen_speaker
data:
tts_platform: google_translate
message:
- tts: Hey, do you hear that? Just listen.
- delay: 1000
- tts: Yep, sounds like clothes waiting to be moved to the dryer
repeat
All message segment types can include a repeat
parameter to specify the number of times to repeat the segment.
action: chime_tts.say
target:
entity_id: media_player.macbook_air
data:
tts_platform: google_translate
message:
- chime: https://www.zapsplat.com/wp-content/uploads/2015/sound-effects-three/household_clock_cuckoo_strike_001.mp3
repeat: 3
offset: -800
- tts: It's 3 o'clock
tts_platform
Chime TTS works with TTS Platform integrations, but you need to add them to your Home Assistant instance yourself beforehand.
Description: | TTS platform to be used to create TTS audio. |
---|---|
Required: | Yes |
Example: | amazon_polly |
Default: | None |
Possible Values:* | amazon_polly (Amazon Polly)baidu (Baidu)tts.eleven_labs_tts (ElevenLabs TTS)edge_tts (Microsoft Edge TTS)google_cloud (Google Cloud)google_translate (Google Translate)openai_tts (OpenAI TTS)watson_tts (IBM Watson TTS)marytts (MaryTTS)microsoft (Microsoft Text-To-Speech)cloud (Nabu Casa Cloud TTS)picotts (Picto TTS)tts.piper (Piper)voicerss (VoiceRSS)yandextts (Yandex TTS) |
*To use a TTS platform not included in the list, simply set the custom TTS platform's action as the tts_platform
parameter value.
chime_path
Description: | The file path for the audio to insert before the TTS audio |
---|---|
Required: | No |
Example 1: | One of the Chime TTS presets:ba_dum_tss bells bells_2 bright chirp choir chord classical crickets ding_dong drumroll dun_dun_dun error fanfare glockenspiel hail knock marimba mario_coin microphone_tap tada toast twenty_four sad_trombone soft whistle |
Example 2: | One of your own custom chimes : My Custom Chime (see Custom Chimes Folder) |
Example 2: | A local file:/media/sounds/notification.mp3 |
Example 3: | A file from a remote URL:https://www.website.com/sounds/notification.ogg |
Default: | None |
end_chime_path
Description: | The file path for the audio to insert after the TTS audio |
---|---|
Required: | No |
Example 1: | One of the Chime TTS presets:ba_dum_tss bells bells_2 bright chirp choir chord classical crickets ding_dong drumroll dun_dun_dun error fanfare glockenspiel hail knock marimba mario_coin microphone_tap tada toast twenty_four sad_trombone soft whistle |
Example 2: | One of your own custom chimes : My Custom Chime (see Custom Chimes Folder) |
Example 2: | A local file:/media/sounds/notification.mp3 |
Example 3: | A file from a remote URL:https://www.website.com/sounds/notification.ogg |
Default: | None |
offset
Description: | Adds a delay between audio segments when value > 0, or overlays audio segments when value < 0. |
---|---|
Required: | No |
Example 1: | 500 (Adds a 1 second delay between chimes & TTS audio) |
Example 2: | -500 (Moves the audio 1 second earlier, overlaying it with the previous chime/TTS audio) |
Default: | 450 |
When using a value greater than 0, a delay is added between audio components:
When using a negative value the audio components are overlaid:
crossfade
Description: | The duration of time (in milliseconds) to gradually decrease the volume of an audio segment while simultaneously increasing the volume of the next. |
---|---|
Required: | No |
Example 1: | 500 (Crossfades segments over a half second) |
Default: | 0 |
final_delay
Description: | The delay (in milliseconds) to insert after the chimes and the TTS audio |
---|---|
Required: | No |
Example: | 200 |
Default: | 0 |
tts_speed
Description: | The speed for the TTS audio, between from 1% - 500% |
---|---|
Required: | No |
Example: | 150 |
Default: | 100 |
tts_pitch
Description: | The pitch of the TTS audio, in semitones (positive values to increase the pitch and negative values to lower it) |
---|---|
Required: | No |
Example: | 2 |
Default: | 0 |
volume_level
The volume_level
parameter can be used to set the volume of the media_player/s included in the action call, and return the volume level back to the original value once completed.
Basic Usage
When the volume_level
parameter is defined as a float value, it will be applied to all media_player entities included in the action call.
Description: | The volume level (between 0.0 - 1.0) to play the audio. |
---|---|
Required: | No |
Example: | 0.75 |
Default: | 1.0 |
Advanced Usage
To set the volume level for each individual media_player, you can set the volume_level
as a dictioary value, allowing you to set a specific volume_level for each media_player entity included in the action call.
Example:
volume_level:
media_player.kitchen: 1.00
media_player.bedroom: 0.45
media_player.living_room: 0.75
media_player.study: 0.5
join_players
Description: | Play the audio simultaneously on multiple media_player entities (that support speaker groups). |
---|---|
Required: | No |
Example: | true |
Default: | false |
unjoin_players
Description: | Unjoin the speakers after playback has completed. |
---|---|
Required: | No |
Example: | true |
Default: | false |
cache
Description: | Save generated audio to the cache for reuse in future action calls. |
---|---|
Required: | No |
Example: | true |
Default: | false |
audio_conversion
Description: | Convert the generated audio via FFmpeg to work with Alexa speakers, or convert with any FFmpeg arguments. |
---|---|
Required: | No |
Example 1: | Convert the audio to play correctly on Alexa media_players:Alexa |
Example 2: | "Hard-code" the audio file's volume to be 200% of the original:Volume 200% |
Example 3: | Any FFmpeg arguments, eg:-y -ac 2 -codec:a libmp3lame -b:a 48k -ar 24000 -write_xing 0 |
Default: | None |
announce
The announce feature works natively for supported media_player platforms, and is simulated by Chime TTS for unsupported platforms (such as the Homepod).
Description: | Pauses any media currently playing on the media_player/s and resumes it after Chime TTS completes playback |
---|---|
Required: | No |
Example: | true |
Default: | false |
fade_audio
Description: | Fades out and pauses any media currently playing on the media_player/s and resumes it after Chime TTS completes playback with fade in |
---|---|
Required: | No |
Example: | true |
Default: | false |
options
Description: | YAML options field used by TTS actions |
---|---|
Required: | No |
Example: | voice: Wendy |
Default: | None |
Additional Parameters
The following parameters can be used with select TTS platforms, as outlined below:
language
Description: | The language to use for the TTS audio. This parameter is only supported by Google Translate and Nabu Casa Cloud TTS. This parameter should also be used to set IBM Watson TTS's voice value. |
---|---|
Required: | No |
Example: | en |
Default: | None |
tld
Description: | The domain region to use for a specific dialect/accent. Refer to the documentation for Google Translate |
---|---|
Required: | No |
Example: | com.au |
Default: | None |
Possible Values: | com co.uk com.au ca co.in ie co.za fr com.br pt es |
voice
Description: | Set the voice to use for TTS audio (on supported TTS platforms) |
---|---|
Required: | No |
Example: | TinaNeural |
Default: | None |