拉斯间谍 – Home Assistant 中的安全语音控制 (西班牙语)

对于我们所有拥有 Home Assistant 并有兴趣通过语音控制它的人, 说, Alexa 或 Google Home 的替代品, 好吧,我们有 Rhasspy. 为什么选择 Rhasspy? 为什么我们的麦克风无法连接到互联网, 没有人会听我们的,它将是完全安全和可定制的, 开始!

我有一个 obsession 是到处都能看到控制现代家庭的麦克风,, 这些智能家居设备,. 麦克风在我们的家中监听,而我们不知道背后是谁,或者他们以什么目的提供免费的服务, ;-). 我在家里试过一次 Google 或 Amazon 的这款麦克风,惊讶于它24小时产生的连接和流量,, 我觉得在物联网时代,我们不应该与第三方共享任何类型的数据,, 无论是我们洗衣机运作时,, 还是吸尘器清理的平方公尺数,, 或者进行地理定位,… 以避免我们成为产品,.

所以经过长时间观察和尝试替代方案,, 最佳选择绝对是 Rhasspy,, 它简单,, 且功能非常全面。, podemos hacer muchas cositas, mandar acciones, hacer preguntas, conversacionesy luego actuar e integrarlo con Home Assistant para que ejecuten automatizaciones. Y por supuesto podremos hablarla en castellano (西班牙语) o cualquier otro idioma soportado (英语, 德语, Castellano, 法语, 意大利语, 德语, Ruso, Griego, Hindi, Mandarín, Vietnamita, Portugués, Sueco o Catalán entre otros.)

Rhasspy se puede instalar en modo digamos local, todo en una Raspberry, 这是, que tenga el micrófono en ella, que esté esperando una palabra clave para ‘despertar’, que grabe lo que le preguntamos/ordenamos y luego lo gestione para entender y llame a la automatización de Hassio correspondiente. Pero lo ideal, es que no tengamos un micrófono solo en casa, si no varios repartidos por las habitaciones, así que Rhasspy se puede instalar digamos en modo cliente con lo mínimo, 去, que este esperando la palabra clave y grabe nuestra pregunta/orden y luego se lo mande a un Rhasspy central que será la que lo procese y lo mande a Home Assistant. La idea de este cliente/servidor es para tener varios satélites con micrófonos y una configuración única central (y no cada Raspberry Pi con una configuración distinta). Y en mi caso particular el Rhasspy central, al ser importante (tiene la configuración y hace el cómputo) corre en una máquina virtual, al no necesitar micrófonoY por últimisimo, por si a alguien le interesa, se podría instalar directamente sobre Home Assistant

井, creo que con esto nos situamos y cogemos la idea, pues Rhasspy corre en un contenedor, así que tardaremos 2 minutos en tenerlo desplegado donde necesitemos. Voy a segregar el post en distintas situaciones para que cada uno escoja su escenario ideal.

Rhasspy solitario

Este escenario es el de tener 1 sola Raspberry Pi, que se encargue ella de todo el proceso; ideal quizá si vamos a hacer un robot o similar, que atienda a la palabra de activación ‘Bender’ 例如. 开始, necesitamos tener Docker instalado, 如果我们没有, 是:

curl -sSL https://get.docker.com | 嘘

Tenemos que crear un fichero de configuración para que funcione la tarjeta de sonido de la Raspberry Pi en Docker, le podemos llamar ‘/home/pi/asound.conf.txty le metemos este contenido:

pcm.!违约 {
        type hw
        card 1
}

ctl.!违约 {
        type hw
        card 1
}

什么都没有, levantamos el contenedor con la imagen de Rhasspy, indicando en el perfil el idioma con el que trabajaremos:

sudo docker run -d -p 12101:12101 \
      --restart unless-stopped \
      -v "$HOME/.config/rhasspy/profiles:/配置 文件" \
      -v "/home/pi/asound.conf.txt:/etc/asound.conf" \
      --device /dev/snd:/dev/snd \
      synesthesiam/rhasspy-server:最近的 \
      --user-profiles /profiles \
      --profile es

Una vez el contenedor de Rhasspy esté iniciado, podremos probar que el efectivamente el contenedor accede correctamente al micrófono, que es funcional y graba. Abrimos un bash y probamos:

sudo docker  exec -it ID_CONTENEDOR_RHASSPY bash
arecord -r 16000 -c 1 -f S16_LE test.wav

Podremos ya abrir la gestión de Rhasspy, mediante un navegador web nos conectamos a: HTTP 协议://DIRECCION_IP_RHASSPYl:12101

En el menú superior, podremos ver los servicios que corren en este Rhasspy y al haber dicho que es un Rhasspy solitario deberán correr todos ellos. En el caso que luego veremos, de una instalación en red con varios micrófonos, los roles serán distintos.

También desde este interfaz inicial podremos hacer pruebas de reconocimiento de voz, a ver si nos entiende bien

La primera opción de grabación de sonido o Audio Recording será básicamente la tarjeta de sonido que usaremos para grabar.

En Wake word seleccionaremos la opción que nos interese para reconocimiento de la palabra clave, o de activación; os recomiendo ir probando todos para ver cuál os reconoce mejor, o dependiendo de las palabras claves que ya existan o nos gusten, así como podremos crear una propia. En el ejemplo de la imagen sin complicación, la palabra clave sería ‘Alexa’.

En Speech to Text indicaremos el modelo de recoonocimiento, por defecto Kaldi funciona sin mayor complicación.

Intent Recognition lo usaremos para trabajar con el fichero de sentencias personalizadas que luego crearemos.

Luego en Text to Speech será donde convierta el texto a audio, NanoTTS igualmente funciona a las mil maravillas, y en Language verificaremos que tenemos el que nos interese.

En Audio Playing indicaremos cual es nuestro dispositivo de sonido para reproducir por los altavoces, en caso que tenga que tirar sonidos de que nos entiende o no, así como alguna frase

En Dialogue Management dejaremos Rhasspy.

最后, en Intent Handling será donde podremos manejar las salidas de Rhasspy, en este caso que se conecte a un Home Assistant y le mande eventos. 然后我们将会在Home Assistant中进行自动化监听,等待事件的触发以执行我们感兴趣的任务.

Rhasspy在网络中 (客户)

另一个场景是如果我们想在家中分布多个麦克风, 而不仅仅是一个. 我们的想法是在每个带麦克风的Raspberry Pi上进行相同的安装和最小配置.

井, 因为安装过程和孤立的Rhasspy是完全一样的; 只不过本地运行的服务会少一些. 我们需要指明以下服务在Rhasspy服务器/中央运行:

  • 意图识别, 指定为远程HTTP,URL为: 'http://DIRECCION_IP_RHASSPY_SERVIDOR:12101/api/text-to-intent’
  • 文本到语音, 指定为远程HTTP,URL为: 'http://192.168.1.216:12101/api/text-to-speech’

Rhasspy在网络中 (服务器)

在这种情况下, esta máquina no sería necesario que tenga tarjeta de sonido, ya que ni grabará ni reproducirá nada, así que puedes instalarlo donde quieras, otra Raspberry Pi, o si puedes en una máquina virtual, o donde quieras, 总, es un contenedor de DockerLa instalación sería más simple pues:

docker run -d -p 12101:12101 \
      --restart unless-stopped \
      -v "$HOME/.config/rhasspy/profiles:/配置 文件" \
      synesthesiam/rhasspy-server:最近的 \
      --user-profiles /profiles \
      --profile es

Y la parte de configuración del servidor pues la inversa del cliente, no tendremos Audio Recording, ni Wake Word, ni hará la conversión de Text to Speech ni el Audio Playing.

Sentencias

Una vez tengamos el sistema en funcionamiento, nos reconozca la palabra clave, las frases de prueba, pues toca alimentar un fichero de sentencias o frases en Rhasspy (en el caso de red, esto solo se haría en el lado del servidor).

Desde el segundo icono podremos crear nuestros ficheros con las frases que queremos que intercepte tras escuchar la palabra clave. El bloque entre corchetes será el Evento que generará, y podremos crear variables que mandaremos dentro de los datos del evento, como pueda ser una acción (encender o apagar) y recogerlo como state (例如), y luego el nombre del objeto o lugar y lo recogemos como ‘name’. Os pego unos ejemplos que así lo entendéis mejor, explico fatal:

EstadoLuz]
(enciende | apaga){州} 这 (lámpara de la sala){名字}
(enciende | apaga){州} 这 (luz de la cocina){名字}
...
[SubeBajaPersianas]
(伤亡 | sube){州} las (persianas de la sala){名字}
(伤亡 | sube){州} 这 (persiana del despacho){名字}
...
[TempState]
que temperatura hace en (房子){名字}
que temperatura hace en la (街){名字}
que temperatura hace en la (厨房){名字}
...
[PreguntasVarias]
hay (cartas){名字} en el buzón
mira si hay (cartas){名字}
donde esta (Héctor){名字}
...

Crear un Token en Home Assistant

Cómo seguro que os habéis fijado, en Rhasspy, para enviar las salidas a Home Assistant lo hacemos desde Intent Handling, a parte de indicar la URL de Home Assistant, también deberemos indicar un Token de acceso. Para generar este Token, podrás seguir estos pasos.

Dentro de Home Assistant, desde las opciones del usuario con privilegios de admin, podremos crear Tokens de acceso de larga duración, 点击 “Crear Token”,

Le indicamos un nombre descriptivo para en un futuro nos acordemos de qué y para qué tenemos esto,

Y copiamos y guardamos en lugar seguro este Token, que será el que le indiquemos a Rhasspy.

Integración de Rhasspy en Home Assistant

什么都没有, si queremos que Home Assistant recoja los mensajes de Rhasspy y los trate, lo haremos de manera sencilla, mediante automatizaciones.

我们将为每个我们想要执行的操作创建一个监听自动化, 唯一需要注意的是,这个自动化的触发器将是一个‘事件’, 在‘事件类型’中’ 我们将收集由于句子文件生成的事件 (带有前缀 rhasspy_ ). 作为事件的数据,我们过滤出我们特别听到的内容. 所以如果我们想要打开暖气, 我期待那个事件,带有对应于‘暖气’的属性’ 作为动作‘开启’, 然后根据喜好执行动作, 每个人都有丰富的想象力,可以与 Rhasspy 尝试许多事情.

总, 这是一篇很长的帖子, 但我希望这能为许多人提供指导,只要你们喜欢与家以及确保安全的物品进行交流. 麦克风或其他设备不要连接到互联网, 没有人可以免费监视我们… 我们能够将激活词自定义为更亲近的内容, 尤其是它拥有与我们拥有的创意一样多的可能性.

我向大家送上一个拥抱, 很高兴, 感谢所有在社交网络上传播这种内容的人.

推荐文章

作者

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, 请随时与我联系, 我会尽我所能帮助你, 分享就是生活 ;) . 享受文档!!!