alias: tts_say
fields:
entity_id:
selector:
entity:
domain: media_player
required: false
description: TTS를 출력할 media_player entity_id
example: media_player.computer
default: media_player.computer
message:
selector:
text:
multiline: false
required: true
description: TTS로 출력할 메시지
example: 안녕하세요!
default: ""
cache:
selector:
boolean: {}
required: false
description: TTS 캐시 사용 여부
example: true
default: true
variables:
entity_map:
media_player.gugeulhommini_seojae: media_player.computer
media_player.gugeulhommini_geosil: media_player.livingroom
media_player.gugeulhommini_anbang: media_player.mainroom
media_player.bigseubi_seojae: media_player.computer_bixby
target_entity: >-
{{ entity_map.get(entity_id, entity_id) if entity_id is defined and
entity_id != '' else 'media_player.computer' }}
use_cache: "{{ cache if cache is defined else true }}"
sequence:
- action: tts.speak
target:
entity_id: tts.google_ai_tts
data:
media_player_entity_id: "{{ target_entity }}"
message: "{{ message }}"
cache: "{{ use_cache }}"
language: ko-KR
options:
voice: Leda
continue_on_error: true
- wait_for_trigger:
- id: error
trigger: event
event_type: system_log_event
event_data:
name: homeassistant.components.tts
level: ERROR
timeout: "00:00:03"
continue_on_timeout: true
- if:
- condition: template
value_template: "{{ wait.trigger is not none }}"
then:
- action: tts.speak
target:
entity_id: tts.edge_tts
data:
media_player_entity_id: "{{ target_entity }}"
message: "{{ message }}"
cache: "{{ use_cache }}"
options:
voice: ko-KR-SunHiNeural
rate: +0%
volume: +0%
mode: queued
max: 10
description: ""