Reconocimiento de Voz
Hoy empezamos una serie de tutoriales sobre audio y reconocimiento de
voz con Arduino.
Realmente impresionante pero muy sencillo gracias a Arduino y los dos módulos que veremos.
Hoy os enseñaré como gracias al primero, el SOMO 14D podéis fácilmente añadir audio a vuestros proyectos.
Y así poder crear robots parlanchines, proyectos musicales, avisos acústicos e infinidad de posibilidades.
Hablemos primero del módulo con el que jugaremos hoy. Se trata de un
circuito de la marca 4D Systems (famosa por sus pantallas) que nos
permitirá reproducir archivos de audio con solo conectar un pequeño
altavoz de 8 Ohmios. De hecho, es capaz de funcionar sin nada más. Lo
alimentamos con un par de pilas de 1.5V y colocándole tres pulsadores y
ya tenemos control total sobre la reproducción del audio. Incluso posee
una salida de línea de audio que podemos utilizar en un amplificador
externo u otro equipo.

También podemos controlarlo con 4 pines digitales desde nuestro Arduino, aunque si andamos escasos de pines podemos seguir controlándolo con solo dos pines.
Posee un zócalo para tarjetas MicroSD que es donde introduciremos nuestros archivos de audio para poder reproducirlos.
Veamos los pasos para poder controlar el modulo desde Arduino:

El módulo trabaja con alimentación de 3V por lo que es muy importante tener cuidado al montarlo ya que si lo alimentamos con los 5 voltios, lo dañaremos. Además como las entradas y salidas del SOMO14D son de 3V debemos colocar resistencias de 470 Ohmnios para adaptar los niveles a las salidas del Arduino que son como sabéis de 5v.
Podemos colocar lo cuatro pines que conectamos al Arduino en cualquiera de los pines digitales, siempre que cambiemos en el código la definición de los mismos.
El led nos permitira saber visualmente cuando si encuentra reproduciendo o no, estado que podemos consultar desde Arduino por el pin BUSY, que para eso está.
Primero prepararemos nuestros archivos de audio, renombrándolos ya que deben estar con el formato "0.mp3", "1.mp3"... "511.mp3" etc para que el sean reconocidos. Podremos utilizar un maximo de 512 archivos.
Una vez los tengamos listos utilizaremos el programa conversor (enlaces), con el que podemos convertir archivos wav o mp3.

Para realizar la conversion, abrimos nuestra carpeta y seleccionamos el tipo de archivo de audio del que partimos. Seleccionamos la frecuencia de muestreo (la más alta soportada es 32000), y finalmente presionamos "Encode".
Nos creará los archivos para nuestro dispositivo, que tendrán extension ".ad4".

Programamos nuestro Arduino con el código de ejemplo.
Una vez programado ya tendremos nuestro Arduino reproduciendo la primera (la "0.ad4") pista de audio.
El código contiene el protocolo para comunicarse con el SOMO14D en múltiples funciones. Este código que unicamente reproduce una pista de audio utiliza solo una linea para darle la orden de reproducción: PlaySong(0);
Realmente impresionante pero muy sencillo gracias a Arduino y los dos módulos que veremos.
Hoy os enseñaré como gracias al primero, el SOMO 14D podéis fácilmente añadir audio a vuestros proyectos.
Y así poder crear robots parlanchines, proyectos musicales, avisos acústicos e infinidad de posibilidades.

También podemos controlarlo con 4 pines digitales desde nuestro Arduino, aunque si andamos escasos de pines podemos seguir controlándolo con solo dos pines.
Posee un zócalo para tarjetas MicroSD que es donde introduciremos nuestros archivos de audio para poder reproducirlos.
Veamos los pasos para poder controlar el modulo desde Arduino:
Montaje
Primero conectaremos el módulo a nuestro Arduino.
El módulo trabaja con alimentación de 3V por lo que es muy importante tener cuidado al montarlo ya que si lo alimentamos con los 5 voltios, lo dañaremos. Además como las entradas y salidas del SOMO14D son de 3V debemos colocar resistencias de 470 Ohmnios para adaptar los niveles a las salidas del Arduino que son como sabéis de 5v.
Podemos colocar lo cuatro pines que conectamos al Arduino en cualquiera de los pines digitales, siempre que cambiemos en el código la definición de los mismos.
El led nos permitira saber visualmente cuando si encuentra reproduciendo o no, estado que podemos consultar desde Arduino por el pin BUSY, que para eso está.
Conversion de archivos
Ahora convertiremos los archivos que queremos reproducir. Podéis saltaros este paso si vais a utilizar los sonidos de ejemplo que encontraréis en la sección de enlaces.Primero prepararemos nuestros archivos de audio, renombrándolos ya que deben estar con el formato "0.mp3", "1.mp3"... "511.mp3" etc para que el sean reconocidos. Podremos utilizar un maximo de 512 archivos.
Una vez los tengamos listos utilizaremos el programa conversor (enlaces), con el que podemos convertir archivos wav o mp3.

Para realizar la conversion, abrimos nuestra carpeta y seleccionamos el tipo de archivo de audio del que partimos. Seleccionamos la frecuencia de muestreo (la más alta soportada es 32000), y finalmente presionamos "Encode".
Nos creará los archivos para nuestro dispositivo, que tendrán extension ".ad4".
Preparacion de la MicroSD
Preparamos nuestra tarjeta formateándola en FAT16. La MicroSD no debe tener una capacidad superior a 2GB (no sería una MicroSD sino una MicroSDHC) ya que corremos el riesgo de que el módulo no la detecte. Una vez formateada copiamos nuestros archivos ".ad4" a la trajeta sin meterlos en ninguna carpeta, directamente en la raiz de la MicroSD. Por último introducimos la tarjeta en el módulo.Código Arduino

Programamos nuestro Arduino con el código de ejemplo.
Una vez programado ya tendremos nuestro Arduino reproduciendo la primera (la "0.ad4") pista de audio.
El código contiene el protocolo para comunicarse con el SOMO14D en múltiples funciones. Este código que unicamente reproduce una pista de audio utiliza solo una linea para darle la orden de reproducción: PlaySong(0);
El SOMO-14D
es un pequeño módulo de audio que permite reproducir sonidos guardados
de forma fácil desde practicamente cualquier dispositivo embedido.
Soporta formatos de 4-bit ADPCM de 6Khz hasta 32 Khz. Utilizando un
software gratuito disponible en descargas, se puede convertir cualquier
archivo WAV o MP3 en el formato ADPCM (.ad4) para guardarlo en una
tarjeta de memoria micro-SD para luego reproducirlos en el módulo.
Ofrece la posibilidad de operar con comandos série (SERIAL-MODE) o en
KEY-MODE.
Después de tener el Arduino accesible a
través de internet, se me ocurrió que podía llevar el ejemplo un poco
más allá y crear una pequeña aplicación Android de prueba con la que
poder actuar sobre el Arduino. Por otro lado, además de “replicar” en
Android el control a través de internet se me ocurrió añadirle control
por voz a la aplicación al más puro estilo IT crowd (Hello Computer!!).
En el código de la aplicación es
bastante sencillo. Sin complicaciones, al ser una aplicación de prueba
todo esta directamente incluido en la actividad principal de la
aplicación. No voy a pegar el código aquí porque es un poco extenso,
pero lo voy a alojar en aquí por si quieres tenerlo de referencia para
iniciar tus proyectos o por simple curiosidad (Descarga Proyecto). A continuación puedes ver una captura de pantalla de la aplicación:


