Tabla de contenido:
- Paso 1: ¿Cómo configurar el entorno?
- Paso 2: ¿Por qué está aumentando la demanda de Arduino?
- Paso 3: ¡¡¡¡¡Empecemos !!!!
- Paso 4: componentes necesarios
- Paso 5: ¿Cómo funciona realmente?
- Paso 6: cableado de los componentes
- Paso 7: proporcionar código a la placa Arduino
- Paso 8: Programa / Bosquejo
- Paso 9: ¿Qué pasa con los códigos escritos?
- Paso 10: función de bucle
- Paso 11: ¿Cómo importar objetos de solución de servidor BitVoicer?
- Paso 12: Conclusión
Video: Reconocedor de voz: 12 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:44
Hola a todos………
Este es mi segundo instructivo que estoy publicando
Bienvenidos todos …
En este Instructable, voy a enseñarle cómo construir un reconocedor de voz usando una placa arduino.
Creo que ya has tenido una experiencia con placas arduino antes, si no, no es un gran problema aquí, pero te recomiendo que te acostumbres ya que es muy interesante jugar con él y crear algunos proyectos geniales. de acuerdo con su creatividad y conocimiento sobre él.
Entonces, para las personas que no tienen experiencia previa en el uso de arduino:
Arduino es un hardware de computadora de código abierto que es fabricado por una empresa que tiene una gran comunidad de diseñadores y fabricantes. Se puede considerar como una pequeña computadora que se puede usar para controlar otros circuitos electrónicos
Arduino está programado en un entorno desarrollado por ellos mismos que se puede descargar fácilmente desde su sitio web
Paso 1: ¿Cómo configurar el entorno?
Solo busca en google "descargar arduino"
Haga clic en "Arduino - Software"
Podrá ver "Descargar el IDE de Arduino"
Elija dependiendo de su sistema operativo
Descárgalo e instálalo
Así que ha instalado con éxito el software y puede escribir su código para arduino y con la ayuda de un cable puede conectar la placa arduino a la computadora y puede insertar el código.
Paso 2: ¿Por qué está aumentando la demanda de Arduino?
Barato
Las placas Arduino son económicas en comparación con otras plataformas de microcontroladores. Costará alrededor de $ 50.
Multiplataforma
El software para Arduino funciona en los sistemas operativos Windows, Macintosh OS y Linux. Si pensamos en otros sistemas de microcontroladores, funcionará solo en Windows o, en otras palabras, se limitará solo a Windows.
Software extensible y de código abierto
El software es de código abierto, por lo que la gente comenzó a estudiarlo en profundidad e incluir bibliotecas (que incluye un conjunto de funciones para su funcionamiento) de otros lenguajes de programación.
Entorno de programación sencillo y sencillo
Es fácil usar el IDE de Arduino (software del que ya hemos hablado …) para personas, incluidos los principiantes, ya que Arduino proporciona una gran cantidad de recursos, que está disponible en Internet de forma gratuita. sobre eso.
Hardware extensible y de código abierto
Los planos de las placas Arduino se publican bajo una licencia Creative Commons, por lo que las personas que tienen experiencia en el diseño de circuitos pueden hacer su propia versión del módulo, también tienen derecho a extender la tecnología y pueden mejorar agregándole características.
Paso 3: ¡¡¡¡¡Empecemos !!!!
Por eso ya les he dicho que este proyecto está enfocado principalmente en el reconocimiento de voz usando el Arduino y que le permita realizar algunas tareas.
Hablando con más claridad ……
Recoge las señales de sonido proporcionadas por el usuario, que se pueden detectar al parpadear el LED y luego se convierte en voz sintetizada.
Paso 4: componentes necesarios
Los principales componentes necesarios para este proyecto son:
Arduino Due x 1
Spark Fun Electret Micrófono Breakout x 1
Salida de amplificador de audio mono Spark Fun x 1
Altavoz: 0,25 W, 8 ohmios x 1
Placa de pruebas x 1
LED de 5 mm: rojo x 3
Resistencia de 330 ohmios x 3
Cables de puente x 1
Soldador x 1
Servidor BitVoicer
Es un servidor de síntesis y reconocimiento de voz para la automatización de voz.
Paso 5: ¿Cómo funciona realmente?
1. Se descubren ondas de audio, luego captura estas ondas y son amplificadas por la placa Sparkfun Electret Breakout.
2. La señal amplificada obtenida del proceso anterior será digitalizada y almacenada en búfer / almacenada en la placa Arduino usando su convertidor de analógico a digital (ADC) presente en ella.
3. Las muestras de audio se proporcionarán al servidor BitVoicer utilizando el puerto serie Arduino presente.
4. BitVoicer Server procesará el flujo de audio y luego reconocerá el discurso que contiene.
5. La voz reconocida se asignará a los comandos que ya ha sido definido por sí mismo antes, luego se enviará de vuelta al Arduino. Si uno de los comandos consiste en sintetizar voz, BitVoicer Server preparará el flujo de audio y lo enviará al Arduino.
6. El Arduino identificará los comandos proporcionados y realizará la acción apropiada. Si se recibe una transmisión de audio, se pondrá en cola en la clase de altavoz BVS y se reproducirá utilizando DUE DAC y DMA.
7. El amplificador de audio mono SparkFun amplificará la señal DAC para que pueda manejar un altavoz de 8 ohmios y pueda escucharse a través de él.
Paso 6: cableado de los componentes
El primer paso es conectar diferentes componentes en la placa de pruebas y también con la placa arduino como se muestra en la imagen
Recuerde que la placa arduino utilizada aquí es DUE, hay otros modelos diferentes que han sido fabricados por Arduino, cada uno funciona en diferentes niveles de voltaje
La mayoría de las placas Arduino funcionan a 5 V, pero el DUE funciona a 3,3 V
El DUE ya usa una referencia analógica de 3.3 V, por lo que no necesita un puente al pin AREF
Oh, lo siento, olvidé decir que un pin AREF es un "PIN DE REFERENCIA ANALÓGICO" que está presente en una placa arduino como se muestra en la siguiente figura (es un arduino UNO pero similar en un sitio similar en el caso de DUE)
El pin AREF en el DUE está conectado al microcontrolador a través de un puente de resistencia
Para usar el pin AREF, la resistencia R1 debe desoldarse de la PCB [placa de circuito impreso]
Paso 7: proporcionar código a la placa Arduino
Entonces, tenemos que cargar el código en la placa Arduino, para que pueda funcionar según las instrucciones proporcionadas en el código.
Es muy fácil hacer esto, te explicaré en detalle cada uno de ellos, sobre qué hacen y cómo funcionan.
¿Cómo instalar una biblioteca?
Entonces, antes de eso, tenemos que saber cómo instalar las bibliotecas de BitVoicer Server en el IDE de Arduino, eso en el software arduino.
Entonces, para eso, abra el IDE de Arduino
En el panel superior, haga clic en "Sketch"
Luego haga clic en "Incluir biblioteca"
En eso, haga clic en "Administrar biblioteca"
Luego se abrirá el administrador de bibliotecas y podremos ver una lista de las bibliotecas que están listas para su instalación o las que ya han sido instaladas
Busque la biblioteca para instalar y luego seleccione el número de versión
Aquí estamos instalando las bibliotecas de BitVoicer Server, que son necesarias para este proyecto
¿Cómo importar una biblioteca.zip?
Las bibliotecas también se pueden distribuir como archivos o carpetas ZIP
El nombre de la carpeta es el nombre de la biblioteca
Dentro de la carpeta habrá un archivo.cpp, un archivo.h y, a menudo, un archivo keywords.txt, una carpeta de ejemplos y otros archivos requeridos por la biblioteca
Desde la versión 1.0.5 de Arduino IDE, puede instalar bibliotecas de terceros en su interior
No descomprima la biblioteca descargada, déjela como está
Para eso, vaya a boceto> Incluir biblioteca> Agregar biblioteca.zip
Seleccione la ubicación del archivo.zip y ábralo.
Regrese al menú Sketch> Import Library.
Si se importa correctamente, esa biblioteca se verá en la parte inferior del menú desplegable cuando navegue.
Paso 8: Programa / Bosquejo
Este es el programa que debe cargarse en Arduino.
Se puede hacer simplemente conectando la placa Arduino a la computadora y cargándola en la placa.
Paso 9: ¿Qué pasa con los códigos escritos?
Ahora veamos qué hace realmente cada una de las funciones escritas en el código ………..
Referencias de biblioteca y declaración de variables
Antes de hablar de esto, debemos conocer y comprender algunas terminologías básicas, que incluyen:
-
BVSP
Es una biblioteca que nos brinda casi todos los recursos necesarios para intercambiar información con BitVoicer Server
Hay un protocolo presente conocido como BitVoicer Server Protocol que se implementa a través de la clase de BVSP. Esto es necesario para interactuar con el servidor
-
BVSMic
Es una biblioteca que implementa todas las cosas que se requieren para grabar el audio usando el convertidor analógico a digital (ADC) de Arduino
Este audio se almacena en el búfer interno de la clase y se puede recuperar y luego se puede enviar a los motores de reconocimiento de voz que están disponibles en BitVoicer Server
-
BVSSpeaker
Es una biblioteca que contiene todos los recursos esenciales que se requieren para reproducir transmisiones de audio enviadas desde BitVoicer Server
Para eso, la placa Arduino debe tener un convertidor digital a analógico (DAC) incorporado
Arduino DUE es la única placa Arduino que tiene un DAC integrado
Bibliotecas BVSP, BVSMic, BVSSpeaker y DAC, la referencia a estas están escritas en las primeras cuatro líneas que componen el inicio del programa
Cuando instala BitVoicer Server, puede encontrar BitSophia, que proporciona estas cuatro bibliotecas
Cuando el usuario agrega una referencia a la biblioteca BVSSpeaker, la biblioteca DAC que se mencionó anteriormente se invocará automáticamente
La clase BVSP se utiliza para comunicarse con BitVoicer Server
La clase BVSMic se utiliza para capturar y almacenar audio
La clase BVSSpeaker se usa para reproducir audio usando Arduino DUE DAC
2. función de configuración
La función de configuración se utiliza para realizar determinadas acciones como:
Para configurar los modos de pin y sus estados iniciales
Para inicializar la comunicación en serie
Para inicializar la clase BVSP
Para inicializar la clase BVSMic
Para inicializar la clase BVSSpeaker
También establece "controladores de eventos" (punteros de función) para los eventos frameReceived, modeChanged y streamReceived de la clase BVSP
Paso 10: función de bucle
Realiza cinco grandes operaciones:
1. función keepAlive ()
Esta función es para solicitar al servidor sobre la información de estado.
2. función de recepción ()
Esta función es para verificar si el servidor ha enviado algún dato o no, si el servidor envió algún dato lo procesará.
3. Funciones isSREAvailable (), startRecording (), stopRecording () y sendStream ()
Estas funciones se utilizan para controlar las distintas configuraciones en la grabación del audio y luego de que alcance el audio, enviará este audio al servidor BitVoicer.
4. función play ()
Esta función se utiliza para reproducir el audio que está en cola en la clase BVSSpeaker.
5. playNextLEDNote ()
Esta función se utiliza para controlar cómo debe parpadear el LED.
6. Función BVSP_frameReceived
Esta función se llama cada vez que la función recibir () comienza a identificar que se ha recibido una trama completa, aquí estamos ejecutando los comandos obtenidos desde BitVoicer Server. Los comandos que controlan el parpadeo de los LED son de 2 Bytes. En ese primer byte indica el pin y el segundo byte indica el valor del pin. Aquí estamos usando la función analogWrite () para configurar el valor apropiado al pin. En ese momento también tenemos que comprobar si se ha recibido el comando playLEDNotes, que es de tipo Byte. Si se ha recibido, configuro playLEDNotes en verdadero y controlará y marcará la hora actual. Este tiempo lo utilizará la función playNextLEDNote para sincronizar los LED con la canción.
7. Función BVSP_modeChanged
Esta función se llama cada vez que la función recibir () identifica un cambio de modo en la dirección de salida (servidor Arduino). BitVoicer Server puede enviar datos enmarcados o audio al Arduino. Antes de que la comunicación pase de un modo a otro, BitVoicer Server envía una señal. La clase BVSP identifica esta señal y genera o marca el evento modeChanged. En la función BVSP_modeChanged, si el usuario detecta que la comunicación está pasando del modo de flujo al modo enmarcado, sabrá que el audio ha finalizado para que el usuario pueda decirle a la clase BVSSpeaker que deje de reproducir audio.
8. Función BVSP_streamReceived
Esta función se llama cada vez que la función recibir () identifica que se han recibido muestras de audio. Simplemente recupera el audio y lo pone en cola en la clase BVSSpeaker para que la función play () pueda reproducirlos.
9. función playNextLEDNote
Esta función solo se ejecuta si la función BVSP_frameReceived identifica el comando playLEDNotes. Controla y sincroniza los LED con el audio enviado desde BitVoicer Server. Para sincronizar los LED con el audio y conocer la sincronización correcta, se puede utilizar un software gratuito Sonic Visualizer. Nos permite ver las ondas de audio para que la persona pueda saber cuándo se presionó una tecla de piano.
Paso 11: ¿Cómo importar objetos de solución de servidor BitVoicer?
Ahora hemos configurado BitVoicer Server para que funcione con Arduino.
Hay cuatro objetos de solución principales para un servidor BitVoicer: ubicaciones, dispositivos, datos binarios y esquemas de voz.
Miremos estos en detalle:
Ubicaciones
Representa la ubicación física en la que se instala el dispositivo.
Podemos crear una ubicación llamada Inicio.
Dispositivos
Se consideran clientes de BitVoicer Server.
Al igual que al crear una ubicación, podemos crear un dispositivo mixto, para mayor facilidad, déjenos nombrarlo como ArduinoDUE.
A veces, pueden ocurrir algunos desbordamientos de búfer, por lo que para eliminarlos tuve que limitar la velocidad de datos en la configuración de comunicación a 8000 muestras por segundo.
BinaryData es un tipo de comando que BitVoicer Server puede enviar a los dispositivos cliente. En realidad, son matrices de bytes que puede vincular a comandos.
Cuando BitVoicer Server reconoce la voz relacionada con ese comando, envía la matriz de bytes al dispositivo de destino.
Entonces, por esa razón, he creado un objeto BinaryData para cada valor de pin y los llamé ArduinoDUEGreenLedOn, ArduinoDUEGreenLedOff, etc.
Así que tuve que crear 18 objetos BinaryData, por lo que le sugiero que descargue e importe los objetos del archivo VoiceSchema.sof que se proporciona a continuación.
Entonces, ¿qué es un esquema de voz?
Los esquemas de voz son donde todo se junta. el papel principal de ellos es definir cómo deben reconocerse las oraciones y qué comandos deben ejecutarse.
Para cada oración, puede definir tantos comandos como necesite y el orden en que se ejecutarán.
También puede definir retrasos entre cada uno de los comandos proporcionados.
BitVoicer Server solo admite audio PCM mono de 8 bits (8000 muestras por segundo), por lo que será necesario convertir el archivo de audio a este formato, hay tantos peajes de conversión en línea presentes en la actualidad y recomiendo https://audio.online -convert.com/convert-to-wav.
Puede importar (Importar objetos de solución) todos los objetos de solución que utilicé en este proyecto desde los archivos a continuación.
Uno de ellos contiene el dispositivo DUE y el otro contiene el esquema de voz y sus comandos.
Paso 12: Conclusión
¡¡¡¡¡Ahí tienes !!!
Has hecho un proyecto increíble y puedes hablar con él
Así que empieza a hablar ………………
Puede hacer parpadear los LED y al mismo tiempo puede decir que canta una canción si es necesario, su código ya ha sido proporcionado
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
Sí……
Creo que todos lo entendieron…
Si alguien tiene alguna pregunta, no dude en preguntarme
La próxima vez se me ocurrirá un excelente Instructable …
Adiós…
Te veo pronto……………
Recomendado:
Lanzacohetes controlado por voz basado en Alexa: 9 pasos (con imágenes)
Lanzador de cohetes controlado por voz basado en Alexa: a medida que se acerca la temporada de invierno; Llega esa época del año en la que se celebra la fiesta de las luces. Sí, estamos hablando de Diwali, que es un verdadero festival indio que se celebra en todo el mundo. Este año, Diwali ya terminó, y ver gente
MASCARILLA FACIAL ACTIVADA POR VOZ: 3 pasos
MÁSCARA FACIAL ACTIVADA POR VOZ: UNOS MESES ATRÁS, UN CHICO LLAMADO 'TYLER GLAIEL' HIZO UNA MÁSCARA FACIAL ACTIVADA POR VOZ QUE SE VIRAL … DESPUÉS DE QUE MUCHOS LO HICIERON PERO NINGUNO DE ELLOS PROPORCIONÓ TODOS LOS DETALLES NECESARIOS PARA SU COMPLETACIÓN. EL MISMO TYLER DESCUBRIÓ LA GUÍA DE BRICOLAJE Y EL GITHUB CO
Grabadora de voz Arduino Nano con micrófono MAX9814: 3 pasos
Grabadora de voz Arduino Nano con el micrófono MAX9814: obtuve un micrófono MAX9814 de la entrega AZ en Amazon y quería probar el dispositivo. Por lo tanto, creé este proyecto simple basado en Great Scott's Spy Bug (publicado bajo esta licencia creative commons). Modifiqué bastante la estructura de los proyectos
Reconocedor de dígitos con Python: 3 pasos
Digit Recognizer With Python: Un tema muy popular actualmente es el denominado “Computer Vision” que consiste en latarea de crear software capaz de reconocer patrones dentro de imágenes. Es posible imaginarse que esta habilidad es muy útil para una computadora y permite expandir
Reconocedor multilingüe con AIY: 4 pasos
Reconocedor multilingüe con AIY: En las estaciones del espacio exterior, hay muchos astronautas allí. Los astronautas provienen de muchos planetas (países). por lo tanto, ¡debería trabajar en muchos idiomas allí