TTS de Google

Después de mucho tiempo de estarlo esperando, ya tenemos solución para el TTS de Google en Home Assistant. El Text-to-Speech (TTS) permite que Home Assistant hable contigo, es decir, que te mande notificaciones.

Código a copier en configuration.yaml

tts:
  - platform: google_translate

Automatización de ejemplo.

- id: '1607270421988'
  alias: tts new
  description: ''
  trigger:
  - platform: time
    at: '16:05'
  condition: []
  action:
  - service: tts.google_translate_say
    data:
      entity_id: media_player.salon
      language: es
      message: Este es otro mensaje de prueba para ver si esto funciona!!
  mode: single

Mira el vídeo!

Los siguientes parámetros opcionales se pueden utilizar con cualquier plataforma. Sin embargo, la integración TTS solo buscará configuraciones globales bajo la configuración de la primera plataforma configurada:

VARIABLES DE CONFIGURACIÓN

caché booleano ( opcional , predeterminado: verdadero )

Permita que TTS almacene en caché el archivo de voz en el almacenamiento local.cadena cache_dir ( opcional , predeterminado: tts )

Nombre de carpeta o ruta a una carpeta para almacenar archivos en caché.time_memory integer ( opcional , predeterminado: 300 )

Es hora de guardar los datos de voz en la memoria para una reproducción rápida en un reproductor multimedia. El mínimo es 60 sy el máximo 57600 s (16 horas).cadena base_url ( opcional , predeterminado: valor de la URL interna )

Una URL base para usar en lugar de la establecida en la configuración de Home Assistant . El ttscomponente lo utiliza tal cual . En particular, debe incluir el esquema de protocolo http://https://y el número de puerto correcto. No se agregarán automáticamente.service_name string ( opcional)

Defina el nombre del servicio.

El nombre de servicio predeterminado establecido en _decir. Por ejemplo, para google_translate tts, su nombre de servicio predeterminado es google_translate_say.

El ejemplo extendido de arriba se vería como el siguiente ejemplo:

tts:
  - platform: google_translate
    cache: true
    cache_dir: /tmp/tts
    time_memory: 300
    base_url: http://192.168.0.10:8123
    service_name: google_say

_urlestá personalizado para esta configuración de plataforma TTS en particular. No sugiere que utilice la URL interna que ha establecido para la configuración principal de Home Assistant. La razón por la que podría necesitar hacer esto se describe en la siguiente sección.

¿Cuándo necesitas establecer base_url aquí?

La respuesta general es «siempre que la URL interna global establecida en la configuración de Home Assistant no sea adecuada para permitir la sayejecución del servicio». El sayservicio opera generando un archivo multimedia que contiene el discurso correspondiente al texto que se pasa al servicio. Luego, el sayservicio envía un mensaje al dispositivo multimedia con una URL que apunta al archivo. El dispositivo obtiene el archivo multimedia en la URL y reproduce el contenido multimedia. Algunas combinaciones de dispositivo multimedia, configuración de red y configuración de Home Assistant pueden hacer que el dispositivo no pueda recuperar el archivo multimedia.

Las siguientes secciones describen algunos de los problemas encontrados con los dispositivos multimedia.

CERTIFICADOS AUTOFIRMADOS

Este problema ocurre cuando su instancia de Home Assistant está configurada para ser accedida a través de SSL y está utilizando un certificado autofirmado en su URL interna.

El ttsservicio enviará una https://URL al dispositivo multimedia, que comprobará el certificado y lo rechazará. Entonces no reproducirá su archivo. Si pudiera hacer que el dispositivo aceptara su certificado, reproduciría el archivo. Sin embargo, muchos dispositivos multimedia no permiten cambiar la configuración para aceptar certificados autofirmados. En última instancia, su opción puede ser entregar archivos a dispositivos locales en http://lugar de https://.

DISPOSITIVOS GOOGLE CAST

Los dispositivos Google Cast (Google Home, Chromecast, etc.) presentan los siguientes problemas:

  • Se rechazan los certificados de firma propia .
  • No funcionan con URL que contienen nombres de host establecidos por medios de denominación local. Digamos que su instancia de Home Assistant se está ejecutando en una máquina conocida localmente como ha. Todas sus máquinas en su red local pueden acceder a él como ha. Sin embargo, por más que lo intente, su dispositivo de transmisión no descargará los archivos multimedia de su hamáquina. Eso es porque su dispositivo de transmisión ignora su configuración de nombres local. En este ejemplo, el sayservicio crea una URL como http://ha/path/to/media.mp3(o https://...si está utilizando SSL). Si está no utiliza SSL, el establecimiento de una dirección URL interna que contiene la dirección IP de su servidor funciona en torno a este tema. Al usar una dirección IP, el dispositivo de transmisión no tiene que resolver el nombre de host.
  • Si está utilizando un SSL (por ejemplo, https://yourhost.example.org/...), debe utilizar el nombre de host en el certificado (por ejemplo, base_url: https://yourhost.example.org). No puede utilizar una dirección IP ya que el certificado no será válido para la dirección IP y el dispositivo de transmisión rechazará la conexión.

Servicio dice

El saysoporte de servicio languagey en algunas plataformas también optionspara el sistema, es decir, voz, movimiento, velocidad, etc . El texto para voz se establece con message. Desde la versión 0.92, el nombre del servicio se puede definir en la service_nameopción de configuración .

Diga a todas las media_player entidades del dispositivo:

# Replace google_translate_say with <platform>_say when you use a different platform.
service: tts.google_translate_say
entity_id: "all"
data:
  message: 'May the Force be with you.'

Dile a la media_player.floor entidad del dispositivo:

service: tts.google_translate_say
entity_id: media_player.floor
data:
  message: 'May the Force be with you.'

Dile a la media_player.floor entidad del dispositivo en francés:

service: tts.google_translate_say
entity_id: media_player.floor
data:
  message: 'Que la force soit avec toi.'
  language: 'fr'

Con una plantilla:

service: tts.google_translate_say
data:
  message: "Temperature is {{states('sensor.temperature')}}."
  cache: false

Cache

La integración tiene dos cachés. Ambas cachés se pueden controlar con la cacheopción en la configuración de la plataforma o la llamada de servicio say. Se ubicará una caché de mucho tiempo en el sistema de archivos. La memoria caché en memoria para respuestas rápidas a los reproductores multimedia se limpiará automáticamente después de un breve período.

API REST

POST / API / TTS_GET_URL

Devuelve una URL al archivo TTS generado. Se requieren plataforma y mensaje.

{
    "platform": "amazon_polly",
    "message": "I am speaking now"
}

El código de retorno es 200 si se genera el archivo. El cuerpo del mensaje contendrá un objeto JSON con la URL.

{
    "url": "http://127.0.0.1:8123/api/tts_proxy/265944c108cbb00b2a621be5930513e03a0bb2cd_en_-_demo.mp3"
}

Comando de muestra :

$ curl -X POST -H "x-ha-access: YOUR_PASSWORD" \
       -H "Content-Type: application/json" \
       -d '{"message": "I am speaking now", "platform": "amazon_polly"}' \
       http://localhost:8123/api/tts_get_url

Sígueme en Youtube!

Sígueme en Youtube
Sígueme en Youtube
(Visited 1.826 times, 1 visits today)

Un comentario en «TTS de Google»

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

EnglishDeutschEspañol