tts_say

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: ""