Conversion Raspberry Pi en Amazon eco


Construir un  dispositivo  compatible con Alexa( Amazon)  usando una Raspberry Pi  no es en ninguna manera más barata que comprar  un  dispositivo  Echo  ya montado,a no ser que se quiera aprender e investigar  su funcionamiento   .Para  ello,  Amazon nos facilita kits de desarrollo con diversas configuraciones para poder crear prototipos y realizar las pruebas necesarias en distintos escenarios. Estos kits son geniales para fines educativos y alimentar nuestra curiosidad, pero se van un poco de precio y se complica su disponibilidad en el mercado Español  asi que hoy vamos a crear un prototipo que nos permite realizar las pruebas del AVS en un equipo económico y fácil de obtener en España: una Raspberry Pi 3.

Esta pequeña placa , junto a algunos accesorios adicionales, nos permitirá crear nuestro propio Amazon Echo, hecho en casa y por poco dinero.

Echemos un vistazo a lo que necesitamos .

  • Raspberry Pi 3  con fuente de alimentación y tarjeta MicroSD
  • Micrófono USB. Se puede  utilizar el micrófono incluido en algunas cámaras web para las pruebas. La gran ventaja del mini micrófono es la portabilidad del prototipo pero cualquier producto similar hará el trabajo de forma satisfactoria.
  • Altavoces con entrada de audio de 3,5 mm  Aunque inclusive unos auriculares de cable son más que suficiente para realizar las pruebas, idealmente podremos contar con algún tipo de altavoz equipado con conector de 3.5mm para obtener una mejor experiencia de usuario
  • Ratón y teclado USB

 

Respecto al micrófono usb

Dado el precio y el tamaño, se necesita  un micrófono funcional que sea capaz de captar voces cercanas o grandes sonidos pero   sin gastarse una fortuna  requiriéndose  un micrófono  usb  que sea  reconocido y funcione con Raspbian en una Raspberry Pi3( por  ejemplo el modelo  RRunzfon de kinobo)

Este tipo de micrófonos no son de alta fidelidad de modo que cuando escuche las reproducciones está claro que hay mucha estática a menos que esté hablando directamente con el micrófono, pero para este proyecto  lo importante es que sea  capaz de funcionar para el reconocimiento de voz utilizando la compilación Alexa Raspberry Pi.

Es interesante instalar la activación “siempre encendida” para no tener que presionar un botón para activarla, y pero dadas  las características de este modesto micrófono  solo  funcionara   si está cerca de este

Dado el tamaño y el precio, esta es una de las maneras más fáciles de agregar un micrófono por menos de $ 10, pero si está esperando un audio de alta calidad, quizás siga buscando. Para aquellos que buscan un micrófono decente para uso diario, existen mejores opciones en cuanto a calidad de sonido. (lo que hace que este micrófono sea genial es lo pequeño y económico que es)

Para las personas que buscan hacer algunas cosas técnicas de Raspberry Pi, este micrófono no funciona con RPI v1, pero sí funciona con RPI v3 de fábrica. Cuando lo conecta al puerto USB, se detecta automáticamente y puede verlo en la salida “arecord -l“.

Bajo el sistema operativo Linux, parece que el sonido grabado es un poco bajo. Es posible que necesite normalizar (aumentar la ganancia) en el sonido usando un programa como mp3gain, ffmpeg, sox, etc. o mejor aún aumentar la ganancia en el receptor usando pulseaudio. Si eleva el volumen a un nivel alto, obtendrá una gran cantidad de estática, que es de esperar.

 

 

 

 

Configuración de la cuenta de desarrollador de Amazon

Asumiendo que  lo tiene todos los elementos  coenctados  lo primero es crear nuestra cuenta de desarrollador de Amazon y crear nuestro perfil de dispositivo

  • Ir a developer.amazon.com y o inicie la sesión con una cuenta de desarrollador o crear un inicio de sesión entonces
  • Haga clic en Consola de desarrolladores en la parte superior de la página
  • Bajo el título de Alexa seleccione Servicio de voz de Alexa.
  • Haga clic en crear producto
  • Rellene todos los campos requeridos
  • Antes de hacer clic en siguiente copie el ID del producto para su uso posterior
  • Haga clic en siguiente
  • Haga clic en Crear nuevo perfil y complete los campos requeridos
  • Rellene orígenes permitidos y permitidos volver URL como se muestra a continuación
  • Copiar su ID de cliente y el Cliente secreto
  • Marque la casilla de verificación junto a la de acuerdo
  • Haga clic en Finalizar

Configuración de la Raspberry  Pi con Alexa

Como siempre  esta nueva versión  se  descarga a partir de una nueva imagen descargada a partir del sitio  oficial Raspbian ,

En la url de descarga podrá  apreciar en la imagen de abajo ,   se mantienen tanto la imagen de la versión previa mínima (Lite) o la nueva version Stretch para escritorio:

raspbian.PNG

Lógicamente si la SD es suficiente grande , lo interesante es descargar la primera  en lugar de la versión mínima

Una vez decidida,  descargue la imagen correspondiente  en su ordenador y siga los siguientes pasos:

  • Inserte la tarjeta SD en el lector de tarjetas SD  de su ordenador comprobando cual es la letra de unidad asignada. Se puede ver fácilmente la letra de la unidad, tal como G :, mirando en la columna izquierda del Explorador de Windows.
  • Puede utilizar la ranura para tarjetas SD, si usted tiene uno, o un adaptador SD barato en un puerto USB.
  • Descargar la utilidad Win32DiskImager desde la página del proyecto en SourceForge como un archivo zip; puede ejecutar esto desde una unidad USB.
  • Extraer el ejecutable desde el archivo zip y ejecutar la utilidad Win32DiskImager; puede que tenga que ejecutar esto como administrador. Haga clic derecho en el archivo y seleccione Ejecutar como administrador.
  • Seleccione el archivo de imagen que ha extraído anteriormente de Raspbian.
  • Seleccione la letra de la unidad de la tarjeta SD en la caja del dispositivo. Tenga cuidado de seleccionar la unidad correcta; si usted consigue el incorrecto puede destruir los datos en el disco duro de su ordenador! Si está utilizando una ranura para tarjetas SD en su ordenador y no puede ver la unidad en la ventana Win32DiskImager, intente utilizar un adaptador SD externa.
  • Haga clic en Escribir y esperar a que la escritura se complete.
  • Salir del administrador de archivos  y expulsar la tarjeta SD.
  • Ya puede insertar la SD en su Raspberry Pi en el adaptador de micro-sd , conectar un monitor por el hdmi , conectar un teclado y ratón en los  conectores USB, conectar la  con un cable ethernet  al router  conectividad a Internet y finalmente conectar la alimentación  para comprobar que la Raspeberry arranca con la nueva imagen

La version previa basada  en  Raspbian Jessie ( Debian8 )  ya incluía  características y aplicaciones bastante interesantes así como algunos cambios más sutiles en el diseño del sistema, como por ejemplo,al iniciar ahora su Raspberry Pi que la pantalla inicial  cambiara  mostrando una imagen mas moderna .También  incluia  algunas aplicaciones como un navegador integrado , el  software  de RealVNC, para acceder a la Pi desde un escritorio remoto  , wallpapers nuevos para  decorar el fondo de escritorio de su Raspberry Pi,etc .

Ahora lo mas importante de  esta  nueva actualización es sin duda  la subida de version hacia Debian 9 ( recordemos que la versión anterior  era Debian 8)  trayendo  ademas un gran número de cambios y mejoras internas respecto a Debian 8 destacando quizás ademas de la subida de version el  incluir un  nuevo asistente de configuración que será mostrado en el primer inicio, lo cual  ayudará a los recién llegados a configurar el sistema Raspbian a su gusto sin tener que buscar los distintos paneles de ajustes.Por supuesto este asistente de configuración se ejecutará de forma automática en el primer inicio del sistema, permitiendo que los usuarios escojan su país, lenguaje, huso horario, configuren un perfil con contraseña, agreguen una red Wi-Fi e incluso instalen actualizaciones disponibles.

  • Desde Terminal ejecutar los siguientes comandos para asegurarse de que se actualiza Raspbian, instalar Java y clonar la aplicación AVS de Alexa de GitHub:
 

A continuación, tenemos que actualizar el script de instalación de la aplicación AVS de Alexa con las credenciales que copio  anteriormente que eran el ID producto, ID de cliente, y Cliente secreto para hacer esto siga a lo largo de los siguientes:



  • Cuando se haya completado, escriba:
     cd ~/Desktop/alexa-avs-sample-app
  • Luego introduzca
     nano automated_install.sh
  • Esto lo que hará será abrir un editor de texto. Aquí será necesario que introduzca el ProductID, ClientID(Raspberry_po), y ClientSecret que apunto en el primer paso al registrar  su cuenta de desarrollador de aLexa . Introduzca  cada campo , utilizando las flechas para moverse. Cuando haya terminado  teclee  CTRL+X para salir y guardar.

  • De nuevo en la línea de comandos, es hora de instalar y ejecutar el script. Escriba
     cd ~/Desktop/alexa-avs-sample-app
  • Escriba
     . automated_install.sh
  • En el inicio del proceso de instalación, se le pedirá una serie de preguntas responde a estas e ir a buscar una cerveza.Van a salir varias preguntas, para saltarlas deberá hacerlo con la letra “Y”. Esto configurará su Raspberry e instalará algún software extra. Este proceso puede ser algo largo, unos 30 minutos, así que se paciente.

Una vez que esto se haya terminado es hora de arrancar el servicio de Alexa.

 

Ejecutar el servicio web de Alexa

Ahora  tenemos  iniciar nuestro servicio Web, la aplicación AVS y despertar palabra motor. Esto tendrá que hacerse en tres ventanas de Terminal independiente y necesita hacerse el orden exacto que se enumeran a continuación por favor siga adelante.

1-Servicio de Web 

  • Desde el escritorio de Raspbian lanze el  Terminal y ejecute los siguientes comandos:
    • cd ~/Desktop/alexa-avs-sample-app/samples
    • cd companionService && npm start

Esto inicia los servicios de la compañía y abre un puerto para comunicarse con Amazon. Recuerda dejar esta ventana abierta.

2-La aplicación AVS

 El siguiente paso ejecutará una aplicación de Java y lanzará un navegador con el cual podremos registrar nuestro Echo Casero con el servicio web de Alexa.

Abra una segunda ventana de Terminal con (File > New Window) y  desde el escritorio de Raspbian lance una ventana de  Terminal y ejecute los siguientes comandos:

  • cd ~/Desktop/alexa-avs-sample-app/samples
  • cd javaclient && mvn exec:exec
  •  

Después de ejecutar ese comando de la segunda consigue un popup preguntando si desea registrar el dispositivo y se debe abrir su explorador predeterminado, haga clic en sí.   Como podemos imaginar esto abrirá un navegador. Una segunda ventana aparecerá en la aplicación Java y lee pedirá que haga click en OK. Es importante que NO haga click aún. Veamos pasoa a  paso:

  • Cuando  cargue la página web tendrá algunas advertencias de seguridad insegura para ocuparse
  • Inicie sesión con sus credenciales de Amazon  en ese navegador
  • Continúe  con las preguntas a autorizar el dispositivo. Que eventualmente será redirigido a https://localhost:3000/authresponse 
  • Verás una pantalla de autenticación para tu dispositivo. Haz click en OK. Entonces el navegador va a mostrar una pantalla diciendo “device tokens ready”. ( “fichas de dispositivo listos”)
  • Ahora es cuando podrá hacer click en OK en la aplicación Java.

  • La aplicación que funcionó a partir la ventana de Terminal dos tendrá ahora un botón aceptar que se necesita hacer clic

3-Encendido por voz

¿Usted quiere ser capaz de decir “Alexa” y su nuevo dispositivo responder derecho? Bien, para hacerlo necesitamos el motor de palabra empieza a ejecutarse.

Finalmente, abre una Tercera ventana de Terminal (File > New Window). Aquí será cuando iniciemos el encendido automático por comandos de voz. Gracias a esto podremos sencillamente decir “Alexa” para que nuestra Raspberry  Pi comience a escucharnos. Usaremos el software KITT.AI, pero si no funciona podéis probar sensory

Para hacer esto siga los siguientes pasos:

  • Desde el escritorio de Raspbian lanzamiento de Terminal y ejecute los siguientes comandos:
    • cd ~/Desktop/alexa-avs-sample-app/samples
    • cd wakeWordAgent/src && ./wakeWordAgent -e kitt_ai

 

Si has seguido a lo largo de este ahora hemos terminado y ahora tienes un trabajo Amazonas Alexa habilitado Frambuesa Pi!

Eso es todo, nuestro Echo casero está ejecutándose en este momento. Haga una prueba diciendo “Alexa”, deberá oír una señal indicando que está escuchando. Ahora puede hacerle preguntas eso si en ingles   como por ejemplo : “¿How is the weather?”

 

 MEJORA DEL MICRÓFONO 

Finalmente, dependiendo de la calidad de tu micrófono, notará que tiene algunos problemas a la hora de escucharlee. En lugar de gritar “Alexa” cada vez que quiera usarlo, lo que haremos será regular el micrófono mediante la línea de comandos una vez más.

  • Introduzca  en la termina ssh  el siguinte comando:
     alsaixer
  • Pulsee F6 para seleccionar un USB diferente. Use, las flechas para seleccionar tu micrófono.
  • Usa las flechas para aumentar el volumen de captura.
  • Cuando esté satisfecho con el volumen, pulse  ESC para salir.
  • Escriba el siguiente comando para hacer permanentes los cambios.
     sudo alsactl store

 

Ahora será capaz de comunicarte con su Echo casero hablando de manera normal ( en ingles  )  en lugar de gritando. Desde esta misma pantalla también se puede cambiar el volumen por defecto si lo necesitara.

 

En este video podemos ver el proceso completo:

 
 
 

 

 

 

Fuentes

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.