Reconocimiento de Voz en Seeed Studio XIAO nRF52840 Sense
Este wiki demostrará cómo puedes usar TensorFlow Lite en Seeed Studio XIAO nRF52840 Sense y realizar reconocimiento de voz usando el micrófono integrado.
Cuando se trata de aplicaciones de IA embebida, recomendamos encarecidamente usar la "Seeed nrf52 mbed-enabled Boards Library".
Configuración del software
Asegúrate de seguir primero el wiki "Getting Started with Seeed Studio XIAO nRF52840 (Sense)" para la configuración inicial de hardware y software.
Ahora continuemos con el resto de la configuración del software.
- Paso 1. Descarga la biblioteca tflite-micro-arduino-examples como un archivo zip
- Paso 2. Abre Arduino IDE, navega a
Sketch > Include Library > Add .ZIP Library...
y abre el archivo zip descargado
Entrenar datos y generar modelo TensorFlow Lite
Ahora usaremos un notebook de Google Colab para realizar el entrenamiento de datos y generar un modelo TensorFlow Lite.
- Paso 1. Abre este notebook de Python
Por defecto, cargará este conjunto de datos que puede reconocer las palabras: "yes", "no", "up", "down", "left", "right", "on", "off", "stop", "go", "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "bed", "bird", "cat", "dog", "happy", "house", "marvin", "sheila", "tree", "wow"
- Paso 2. Bajo la columna Configure Defaults, cambia el parámetro WANTED_WORDS según las palabras que quieras que el modelo reconozca. Puedes elegir entre: "yes", "no", "up", "down", "left", "right", "on", "off", "stop", "go", "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "bed", "bird", "cat", "dog", "happy", "house", "marvin", "sheila", "tree", "wow"
Nota: En este ejemplo, se eligen las palabras yes,no,up,down
- Paso 3. Navega a
Runtime > Run all
para ejecutar todas las celdas de código
- Paso 4. Haz clic en Run anyway para el mensaje de error que aparece
Nota: Este proceso tomará aproximadamente 2 horas en completarse
- Paso 5. Una vez que todas las celdas de código se ejecuten, navega a la pestaña files en la esquina izquierda y encontrarás un nuevo archivo model.cc generado bajo la carpeta models
Nota: Si no puedes ver el archivo model.cc anterior, actualiza la página.
- Paso 6. Haz clic derecho en el archivo y haz clic en Download para descargar el archivo a tu PC
Inferencia
Ahora usaremos el archivo de modelo TensorFlow Lite descargado (model.cc) para reconocer diferentes palabras usando el micrófono en el Seeed Studio XIAO nRF52840 Sense.
- Paso 1. Navega a la ruta de la biblioteca tflite-micro-arduino-examples (normalmente bajo Documents > Arduino > libraries > tflite-micro-arduino-examples), visita examples > micro_speech y abre micro_features_model.cpp
- Paso 2. Reemplaza los valores bajo
const unsigned char g_model[] DATA_ALIGN_ATTRIBUTE = {
con los nuevos valores del archivo model.cc
- Paso 3. Cambia g_model_len según el valor de model.cc. Aquí obtuvimos 26720
const int g_model_len = 26720;
- Paso 4. Abre micro_features_micro_model_settings.cpp dentro de la carpeta micro_speech y añade todas las palabras que definimos en el proceso de entrenamiento. Aquí usamos yes,no,up,down
#include "micro_features_micro_model_settings.h"
const char* kCategoryLabels[kCategoryCount] = {
"silence",
"unknown",
"yes",
"no",
"up",
"down",
};
- Paso 5. Abre micro_features_micro_model_settings.h dentro de la carpeta micro_speech y cambia constexpr int kCategoryCount según el número de categorías definidas. Aquí tenemos 6 categorías
constexpr int kCategoryCount = 6;
-
Paso 6. Abre micro_speech.ino dentro de la carpeta micro_speech y sube los códigos al Seeed Studio XIAO nRF52840 Sense
-
Paso 7. Abre la ventana del monitor serie y di en voz alta las palabras que definimos antes. Verás que el monitor serie muestra las palabras correctas habladas después del reconocimiento.
Soporte Técnico y Discusión de Productos
¡Gracias por elegir nuestros productos! Estamos aquí para brindarte diferentes tipos de soporte para asegurar que tu experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para satisfacer diferentes preferencias y necesidades.