LOADING...

Rhasspy, un asistente de voz local para la domótica

Te traemos un tutorial que te ayuda a controlar por voz toda la domótica de tu hogar de manera segura, privada y sin necesidad de internet

En HomeQube llevamos un tiempo aprendiendo a sacarle el máximo provecho a Rhasspy y hoy os queremos mostrar cómo se instala y usa. Es un asistente de voz en local que puede ser una alternativa a Amazon Alexa o Google Nest.

Para este nuevo articulo del blog, me he basado en un tema en el que he estado trabajando hace poco. Se trata de un asistente de voz en local llamado Rhasspy. Estoy seguro de que muchos de vosotros ya tenéis en vuestra instalación domótica otros asistentes de voz como Alexa o Google Nest.Y también estoy seguro de que alguna vez estuvisteis hablando delante de ellos y escuchásteis como posteriormente como os da algún tipo de publicidad.

¿Por qué sucede?. Pues se debe a que prácticamente todos los asistentes de voz funcionan gracias a un servidor en la nube y por lo tanto, necesitan internet. Nos escuchan e incluso graban. Y esa publicidad que acaba de pronunciar viene de ahí. Si os parece difícil de entender o muy intrusivo, no os preocupéis. Lo entenderéis mejor en las siguientes líneas.

Pero ¿como funcionan realmente los asistentes de voz?

Pues bien, básicamente lo que hacen es escucharnos. Y cuando decimos la “wake word”, que es básicamente esa palabra que pronunciamos para que nos hagan caso, graban un audio con eso que decimos y este se sube al servidor.

Ese servidor en la nube, transforma el audio en texto. Y regresa al altavoz que lo interpreta y ejecuta la acción correspondiente. Por tanto, al transmitirse esos datos por internet, la empresa puede hacer uso de ellos para publicidad.

¿Qué es un Asistente de voz en local?
Un altavoz en local, lo que hace, es transformar internamente el audio en texto sin utilizar internet. De esta forma nuestros datos nunca se subirán a internet. Nadie fuera de nuestra casa tiene acceso a ellos.

¿Qué es Rhasspy?
Se trata de un asistente de voz que nos garantiza la máxima privacidad y funciona sin necesidad de tener conexión a internet. Ahora que ha quedado claro como funciona un altavoz local, pasaremos a conocer un poco más a Rhasspy.

Y es que Rhasspy es uno de los mejores softwares para hacer altavoces en local. Para poder usarlo, este funciona con diferentes procesadores. Desde una Raspberry pi 3 a un Nas actuando como servidor, son algunas de las opciones que tenemos para construir el asistente de voz local para nuestra instalación domótica.

¿Qué Hardware necesitamos?

En mi caso usé una Raspberry pi 3 B+ con una tarjeta MicroSD de 8Gb, un cargador de 5v 2A, un micrófono USB bastante sencillo y unos altavoces conectados a la pi con un Jack 3,5mm. No se necesita nada más.

¿Qué programas de software usaremos?

Una vez tenemos el Hardware, pasamos a la parte del software. Lo primero de todo recomiendo instalar la última versión de Raspberry pi OS con escritorio. ¿Por qué recomiendo la versión de escritorio y no la light? Pues la razón, es que ya instala los drivers de sonido, y por tanto es un paso importante que nos ahorramos.

Ahora ya podemos pasar a instalar el software de Rhasspy. Recomiendo instalarlo con Docker ya que con una sola instrucción lo instalas todo y es mucho más cómodo.

Lo único que se necesita es tener instalado Docker en la pi, y además instalar el Docker del Portainer, que nos permite gestionar nuestros contenedores de forma sencilla y visual. Para ello hay cantidad de tutoriales que nos enseñan como hacerlo.

Una vez que tenemos listo el Portainer, instalamos el Docker de Rhasspy utilizando el Docker_compose. Os dejo aquí las instrucciones de cómo lo instalo yo, y con el perfil en español:

rhasspy:
image: "synesthesiam/rhasspy-server:latest"
restart: always
volumes:
- "$HOME/.config/rhasspy/profiles:/profiles"
ports:
- "12101:12101"
devices:
- "/dev/snd:/dev/snd"
command: --user-profiles /profiles --profile es

Una vez hemos acabado con esto, tan solo necesitamos entrar en la dirección de la pi junto con el puerto 12101 y ya estaremos dentro de Rhasspy.

A continuación necesitamos configurarlo, pues por defecto, tal y como viene no nos detecta el micro. Para ello en la configuración vamos a micrófono y lo ponemos así:

Cómo se configura el Microfono en Rhasspy

De esta forma ya estará configurado para escucharnos.

Como os habréis dado cuenta, las opciones de configuración de Rhasspy son enormes. Pero si queréis algo sencillo y que funcione bien, os voy a dar unos consejos.

Para la “wake word”, utilizad snowboy. En mi opinion, es el mejor sistema para que reconozca esa palabra gracias a la que nos hará caso. Recordar que en el asistente de voz de Amazon sería «Alexa,» y en el de Google «Ok Google».

Tenemos que acceder a la página web de snowboy y allí registrarnos. Así podéis crear vuetra propia “wake word” y añadirla a Rhasspy. Para ello podéis, o bien hacerlo desde la web, o bien abriendo el archivo profile.json en la carpeta de instalación. Para añadirlo correctamente debéis seguir la documentación de Rhasspy en su pagina web en el enlace https://rhasspy.readthedocs.io/en/latest/wake-word/.

Configurando Text to Speech

Tras este paso toca la opción de Text To Speach utilizar. Pero antes de nada ¿Qué es text to speech o TTS?. De alguna forma es esa tecnología que reproduce el habla humana de forma artificial. Es esa tecnología que a través de un texto lo reproduce con una voz artificial sintetizada. Os pongo un ejemplo: Cuando dices «Alexa ¿Qué tiempo va a hacer hoy?» este te responde. Pues su respuesta es el susodicho text to speech.

¿Cuál es mi favorito para Rhasspy? Pues pico-tts. En mi opinión, es la voz menos robótica. Por último y para finalizar, debemos conectarlo a la plataforma domótica con la que controles tu casa. Por ejemplo, HomeQube, Domoticz, HomeAssistant,… y ya lo tendremos listo para usar en nuestro hogar inteligente

Ahora que lo tenemos configurado, podemos añadirle nuevas palabras al diccionario, así como frases que deseemos que nos detecte.

Siempre hay que acordarse de entrenarlo cada vez que hacemos cambios. Y un consejo más, utilizad frases simples, ya que cuanto mas complejas sean las frases, mas posibilidades hay de que no coincidan con lo que estamos diciendo. Os pongo un ejemplo claro de esto que os menciono. Si tenemos una frase que es: “enciende la luz de la habitación” cuando hay bastantes posibilidades de que nos entienda las siguientes variantes: “enciende la luz del habitación” o “enciende la luz la habitación”. Por tanto, es mejor utilizar como frase “enciende la luz habitación”. De esta forma nos ahorramos errores. Otra variante mejor seria “enciende la habitación”, que personalmente pienso que es la opción ideal.

Otra cosa a tener en cuenta, es que Rhasspy una vez detecta la “wake word” hace un pitido. Y una vez que acabe el pitido, es cuando debemos decir nuestra frase. Si la decimos antes del pitido, seguro que se corta alguna palabra y entonces no funcionará.

Por ultimo, decir que la capacidad de procesamiento de Rhasspy es limitada. Y mas en una Raspberry pi. No es comparable a un altavoz como Alexa o Google, ya que la parte mas importante, que es la de transformar la voz en texto, se hace internamente por parte de la Raspberry. Sin embargo en Alexa o Google Nest, se hace en la nube gracias a unos mega servidores con infinitas posibilidades de procesamiento. Por tanto, Rhasspy tiene menos funcionalidades que Alexa o Google Nest, pero tiene muchas ventajas para nuestra instalación domótica. Especialmente para determinados tipos de usuarios o necesidades específicas. Rhasspy garantiza que nuestros datos sean privados ya que no necesitas conexión a internet. Y además, nos permite encender las luces de casa o cambiar la temperatura del termostato entre otras muchas cosas, solo con nuestra voz.

Espero que os haya gustado este nuevo articulo y que os pueda ayudar en caso de que os animéis a hacer un asistente de voz.

Saludos y gracias!

Contacto Damian
Foto de Damián (HomeQube)