Durante este semestre, nos hemos enfocado en explorar diversas aplicaciones de la transformada de Fourier, y entre ellas ha surgido el campo del análisis de voces y frecuencias. Nuestra investigación se ha centrado en dos aspectos fundamentales: la categorización de voces en función de sus características frecuenciales y latarea de sintetizar voz a texto.
Esta página es una bitácora detallada de todo lo que hemos investigado para comprender y aplicar estos modelos. Hemos explorado métodos de Machine Learning para la clasificación de voces, así como el uso de histogramas como herramientas complementarias para analizar los resultados obtenidos a partir de la transformada de Fourier.
Nuestro objetivo principal es proporcionar un recurso completo y accesible para aquellos interesados en el análisis de voces y frecuencias. A lo largo de esta página, podrás encontrar los conceptos clave, explorar los algoritmos de clasificación utilizados y descubrir las aplicaciones prácticas de la transformada de Fourier en este campo.
Transformada de Fourier
El semestre anterior dimos una descripción y se explicó el funcionamiento de las transformadas de Fourier continuas y discretas. A continuación explicaremos una de sus aplicaciones más usuales.
Espectrogramas (diagramas de tiempo y frecuencia)
Un espectrograma es una herramienta básica de representación que se utiliza para el análisis de una señal eléctrica, de comunicación, o audiovisual, en la que se visualiza la energía del contenido frecuencial de la señal, según va variando a lo largo del tiempo. La representación se realiza en tres dimensiones: temporal, frecuencial y amplitud, y el instrumento que genera el espectrograma es llamado espectrómetro.
El espectrograma consiste en tomar una determinada cantidad de muestras por medio de una ventana temporal, de un tamaño concreto según sea el tipo de análisis que se requiera, para luego realizar el cálculo del contenido espectral de las muestras obtenidas por medio de la FFT , representando los resultados en una gráfica de tres dimensiones. Posteriormente, la ventana temporal se desplaza a lo largo del tiempo sobre la señal a analizar y se adquiere una nueva cantidad de muestras, repitiendo el ciclo de cálculo y graficando los resultados. La suma de las representaciones de la FFT obtenidas aportan información en el dominio de la frecuencia, de la variación de la energía y la frecuencia de la señal en función del tiempo.
La FFT es un algoritmo eficiente que permite reducir el costo computacional de la transformada discreta de fourier (DFT), mediante la que se realiza el análisis en el dominio frecuencial de una señal.
aplicaciones
los espectrogramas se aplican en muchos campos, dependiendo de la señal utilizada, por ejemplo, si la señal es de audio algunas aplicaciones son: Música,estudio de materiales, lingüística,radares, procesamiento del habla, sismología, medicina y recientemente investigaciones forenses, si la señal es lumínica, conocidos como espectrogramas raman, se utilizan actualmente en la exploración de planetas adicionalmente en campos como la geológia, mineria, metalurgia, quimica, biologia,bromatologia
Métodos de clasificación simples
Los métodos de regresiones hoy en día se han convertido en una herramienta indispensable para cualquier análisis de datos relacionado con la descripción de la relación entre una variable de respuesta y una o más variables explicativas. En el caso de la regresión logística, la variable de resultado es discreta y toma dos o más valores posibles, la regresión logística nos proporciona salidas que representan probabilidades, como por ejemplo predecir el valor de verdad de un argumento.
La forma en la que se toman los valores para predecir la probabilidad de un valor aleatorio es usando la función de distribución acumulada de la distribución logística, su formulación es la siguiente:
Esta función es una curva en forma de S que puede tomar cualquier número de valor real y asignar a un valor entre 0 y 1. Para utilizar este modelo de la misma forma que el modelo de regresión lineal se utiliza la transformación logit.
La información de manera resumida la obtuvimos de: D. Cifuentes. Optimización de procesos en ecosistemas virtuales,2023.
El método utilizado para valores binarios es simplemente escoger un valor que clasifique las probabilidades, este valor va a ser un número, el cual a partir de valores mayores que él, se aproximaran a 1 y valores menores se aproximara a 0. Por ejemplo: si el valor que clasifica las probabilidades es un 70%. La gráfica que se utilizara será la siguiente:
En el caso de tener varios valores discretos mayores a dos la forma que se utiliza para predecir es clasificando por separado cada una de estás,
En este caso, se podría escoger la función naranja pero se observa que la probabilidad de ser verdadera es baja, existen varios métodos para generar una predicción adecuada dependiendo del análisis.
Máquinas de soporte vectorial
Una máquina de soporte vectorial (SVM, por sus siglas en inglés, Support Vector Machine) es un algoritmo de aprendizaje automático supervisado utilizado para problemas de clasificación y regresión, es ampliamente conocido por su aplicación en la clasificación.
en nuestro caso particular, al tener los espectogramas debemos ser capaces de clasificarlos en función de la letra o palabra que están representando, las svm son útiles para ello ya que son ideales para espacios de alta dimensión y cada uno de los pixeles que componen el espectograma puede ser considerado como una dimensión, además, existe el "kernel trick" que nos permite mapear los datos de nuestra imagen a un espacio de características de mayor dimensión dando un espacio en donde los datos pueden ser separados linealmente, lo que da cabida a la clasificación de imágenes que no pueden ser separadas linealmente en el espacio original. por último, las máquinas de soporte vectorial son útiles en el manejo de datos pequeños, lo que en este caso es imprescindible ya que si deseamos entrenar nuestro propio algoritmo de reconocimiento usualmente no vamos a contar con grandes bases de datos.
Random Forest
Como parte de nuestros esfuerzos por comprender y aplicar modelos efectivos en este campo, nos hemos beneficiado enormemente del algoritmo Random Forest.
El Random Forest, o "bosque aleatorio", es un algoritmo que se basa en la combinación de múltiples árboles de decisión para realizar tareas de clasificación y regresión. Su popularidad radica en su capacidad para manejar conjuntos de datos complejos y extraer características relevantes para la clasificación de voces y análisis de frecuencias.
Una de las aplicaciones más destacadas del Random Forest en nuestro proyecto ha sido la clasificación de voces en función de sus características frecuenciales. Al entrenar el algoritmo con un conjunto de datos etiquetados que contienen características extraídas de las voces y sus respectivas categorías, hemos logrado desarrollar un modelo capaz de discernir entre diferentes tipos de voces. Esto es especialmente útil para identificar características distintivas en las voces y clasificarlas en categorías específicas, como género, edad o emociones.
Además, el Random Forest nos ha permitido abordar el desafío de sintetizar voz a texto. Mediante el entrenamiento del algoritmo con datos de voz y transcripciones de texto asociadas, hemos podido desarrollar un modelo que puede convertir señales de voz en texto escrito de manera precisa y eficiente. Esta capacidad es de gran relevancia en aplicaciones de transcripción automática, asistentes virtuales basados en voz y muchas otras áreas donde la conversión de voz a texto es fundamental.
Otra ventaja clave del Random Forest es su capacidad para proporcionar una medida de importancia de las características utilizadas para la clasificación. Al analizar las características extraídas de las voces y su relevancia en el proceso de clasificación, hemos podido obtener información valiosa sobre qué aspectos son más relevantes para distinguir entre diferentes tipos de voces. Esta información nos ha ayudado a refinar aún más nuestros modelos y mejorar la precisión de nuestras clasificaciones.
En resumen, el algoritmo Random Forest ha sido una herramienta fundamental en nuestra investigación sobre el análisis de voces y frecuencias. Su capacidad para manejar conjuntos de datos complejos, clasificar voces en función de características frecuenciales y sintetizar voz a texto ha sido invaluable. Además, su capacidad para evaluar la importancia de las características ha brindado una mayor comprensión de los patrones y detalles dentro de las señales de voz.
Continuaremos explorando y refinando nuestras técnicas utilizando el algoritmo Random Forest, así como otros enfoques de aprendizaje automático, para seguir avanzando en el análisis de voces y frecuencias. Nuestro objetivo es proporcionar recursos completos y accesibles para aquellos interesados en este campo en constante evolución.
KNN
EL algoritmo de los K vecinos más cercanos (k-Nearest Neighbor [K-NN] en inglés) es un algoritmo de aprendizaje supervisado no paramétrico que es usado para clasificación o regresión.
En ambos casos, la entrada consiste en los k ejemplos de entrenamiento más cercanos de un conjunto de datos. La salida depende de si k-NN se utiliza para clasificación o regresión:
En la clasificación k-NN, el resultado es la pertenencia a una clase. Un objeto se clasifica mediante un voto plural de sus vecinos, asignando el objeto a la clase más común entre sus k vecinos más cercanos (k es un número entero positivo, normalmente pequeño). Si k = 1, el objeto se asigna simplemente a la clase de ese único vecino más cercano.
En la regresión k-NN, el resultado es el valor de la propiedad del objeto. Este valor es la media de los valores de los k vecinos más cercanos. Si k = 1, el resultado se asigna simplemente al valor de ese único vecino más cercano.
Seleccionar el valor "K" en el algoritmo
No hay manera particular para determinar el valor "K" optimo, este valor debe ser escogido basado en los datos de entrada.
Si la entrada tiene más valores atípicos o ruido, un mayor valor de "K" se considera mejor, pero hay un punto en donde los errores aumentan; por lo tanto, la experimentación es necesaria. Los métodos de validación cruzada pueden ayudar a seleccionar un valor de "K".
Determinar la clasificación de un punto
Para determinar los grupos más cercanos o los puntos más cercanos al punto de interés se necesita una métrica.
métrica Minkowski
La Metrica de Minkowski es una métrica generalizada en un espacio vectorial Normado Sean X, Y 2 puntos de dimension N, y sea p un número real mayor a 1; entonces la distancia es dada por:
Donde i es la componente del vector correspondiente donde i esta entre 1 y N.
Si p =1, se tiene la métrica de Manhattan y si p=2 se tiene la métrica euclidiana.
métrica Euclidiana
Es una de las métricas más usadas para calcular la distancia entre 2 puntos. Sean X, Y 2 puntos de dimension N entonces la distancia es dada por:
Donde i es la componente del vector correspondiente donde i esta entre 1 y N.
métrica de Manhattan
Tambien conocida como métrica del taxi. Sean X, Y 2 puntos de dimension n entonces la distancia es dada por:
Donde i es la componente del vector correspondiente donde i esta entre 1 y N.
métrica de Chebyshev
Tambien conocida como métrica del tablero de ajedrez, mide la distancia entre los puntos de datos como la maxima diferencia entre las coordinadas de los puntos de datos.
Sean X, Y 2 puntos de dimension n entonces la distancia es dada por:
Donde i es la componente del vector correspondiente donde i esta entre 1 y N.
Otros ejemplos de métricas son:
métrica del coseno: La métrica del coseno mide el ángulo entre 2 vectores. es usada generalmente cuando la orientación del vector es lo importante y no su magnitud.
Distancia de Jaccard: Esta distancia es usada para medir la similaridad entre 2 conjuntos de muestras de datos.
Distancia de Hamming: esta es usada para calcular la distancia entre puntos de datos cuando todas sus características tienen valores binarios, es decir, compara las cadenas binarias que representan las características de cada uno de los puntos de datos.
Ventajas y Desventajas de K-NN
Ventajas
Es un algoritmo simple de entender e Interpretar.
Es un algoritmo muy util para datos no lineales porque no hay suposiciones sobre los datos en el algoritmo.
Tiene una alta precision pero hay modelos mejores que el KNN.
Tiene pocos hiperparametros.
Es un algoritmo fácil de adaptar.
Desventajas
Es un algoritmo computacionalmente caro porque almacena toda la información de entrenamiento y necesita mucho poder de computación.
El algoritmo sufre de la "Maldición de la dimensionalidad" lo que implica que el algoritmo tiene dificultades en clasificar datos cuando la dimensionalidad es muy alta.
ES muy sensible a la escala de los datos y a ruido en los datos, así que puede sobre ajustarse a los datos de entrenamiento.
Algoritmos K-NN y el reconocimiento de voz
Los algoritmos K-NN han sido ampliamente usados para la clasificación de imágenes y otros objetos así que los investigadores han empleado K-NN, con el propósito del reconocimiento de voz.
En este artículo publicado por IEEE Xplore se hace un proceso de reconocimiento de voz y se intenta mejorar la exactitud del proceso.
En los siguientes artículos, el algoritmo K-NN es usado para la identificación de genero basado en la voz.
Tambien no solo es aplicable a humanos, esta técnica ha sido usada para la clasificación de especies de aves y otros animales.