# Reconocimiento emocional de la voz

El Reconocimiento de emociones de la voz (REV) es un sistema de identificación de emociones a través de un locutor humano. Este proceso permite reconocer el impulso emocional causado por un estímulo temporal llamado emoción Interacción persona-computador, a diferencia del estado emocional, la emoción suele durar pocos minutos. El objetivo es generar voces humanas de distintas personas con diferentes estados anímicos como la alegría, la sorpresa o el enfado.

## Descripción

Esta aplicación está formada por tres bloques principales: el primer bloque se encarga del preprocesamiento de la señal, en el cual se realizan tareas de digitalización y filtrado, segmentación de la señal de entrada y el Reconocimiento del habla. El segundo módulo se encarga de la extracción de características de la Señal de voz, para este trabajo se hará uso de un Analizador de espectro como es el Cepstrum, utilizando específicamente los MFCC (Mel-Frequency Cepstral Coefficients). El tercer módulo es el encargado de la clasificación para lo cual se utiliza el algoritmo K-vecinos más cercanos (K-NN).

## Base de datos

La base de datos es de vital importancia para el desarrollo de cualquier proyecto alrededor de la voz, ésta consta de grabaciones de palabras o frases en las cuales se logra capturar una emoción. Este corpus puede ser tomado de grabaciones (noticieros, programas de TV, películas, etc) o ser simuladas por actores, dónde la segunda es la más común. Cada actor pronuncia las frases para seis clases de emociones (alegría, tristeza, enfado, aburrimiento, miedo, asco), más la voz neutral. Las grabaciones se realizan en un estudio profesional con un ambiente de ruido bajo y equipos de alta fidelidad, y finalmente éstas grabaciones son sometidas a prueba y se evalúa la naturalidad y la calidad de la emoción percibida.

## Sistema

El REV consta de tres partes:

### Preprocesado de la señal

La estacionariedad de una señal varia según la longitud del intervalo de observación, dónde generalmente se examina en intervalos de tiempo suficientemente cortos (entre 20 y 60 ms) donde sus características estadísticas son invariantes. Para definir el intervalo de estacionariedad, la señal de voz es segmentada en intervalos de una longitud de 30ms por medio de ventanas rectangulares de esta misma longitud.

### Extracción de las características
#### Pitch

El pitch es la frecuencia a la que vibran las Cuerdas vocales, también llamada Frecuencia fundamental o F0. Es uno de los parámetros que caracterizan la voz de un locutor. Se considera que las características del pitch son unas de las principales portadoras de la información emocional. Las características de la frecuencia fundamental incluyen contorno, media, variabilidad y distribución:
* El valor medio del pitch expresa el nivel de excitación del locutor. Una media elevada de F0 indica un mayor grado de excitación.
* El rango del pitch es la distancia entre el valor máximo y mínimo de la frecuencia fundamental. Esta distancia indica el grado de exaltación del locutor, un rango más grande que el normal implica una excitación emocional.
* En general, la curva de tono es discontinua para las emociones consideradas como negativas (miedo, enfado) y es suave para las emociones positivas (por ejemplo la alegría).
* La distribución del pitch indica un rango de valores y describe la probabilidad de que un cierto valor esté dentro de un subconjunto de dicho rango. Para distinguir entre una voz masculina y una voz femenina, una de las formas más fáciles es a través de la distribución del pitch. La voz femenina tiene una frecuencia fundamental media aproximadamente el doble a la del hombre, es decir, existe mayor diversidad de tono de voz en mujeres que en hombres.

#### Teager energy

La Teager Energy Operator (TEO) es un operador no lineal que puede proporcionar una estimación de la frecuencia instantánea y amplitud de una señal con modulación AM (Amplitud modulada) y FM (Frecuencia modulada). Es una de las aplicaciones de más éxito para el procesamiento del habla. Partiendo de la ecuación de una señal modulada en AM:
    $s_{AM}(t)=a(t)\cos {(\omega _{c}t)}$
Se le aplica la TEO y se obtiene:
    ${\begin{aligned}\Psi (s_{AM}(t))&={\dot {a}}^{2}(t)\cos ^{2}(\omega _{c}t)+a^{2}(t)\omega _{c}^{2}-a(t)\cos ^{2}(\omega _{c}t){\ddot {a}}(t)\\&=a^{2}(t)\omega _{c}^{2}+\cos ^{2}(\omega _{c}t)\Psi (a(t))\\\end{aligned}}$
El mismo procedimiento es aplicado en una señal modulada en FM:
    $s_{FM}(t)=A\cos(\phi (t))$
Y el resultado es el siguiente:
    $\Psi (s_{FM}(t))=A^{2}\left({\dot {\phi }}^{2}(t)+{\ddot {\phi }}(t){\frac {\sin(2\phi (t))}{2}}\right)$
Para obtener la TEO final de una señal modulada en AM-FM, se juntan las señales AM y FM en unna misma señal:
y el resultado final es:
    $\Psi (s_{AM-FM}(t))=[a(t)\phi (t)]^{2}+\underbrace {{\frac {1}{2}}a^{2}(t){\ddot {\phi }}(t)\sin(2\phi (t))} _{FM}+\underbrace {\cos ^{2}(\phi (t))\Psi (a(t))} _{AM}$

#### Coeficientes cepstrales en frecuencia mel

Después de obtener la frecuencia y amplitud de señales moduladas en AM y FM, se procede al cálculo de una serie de coeficientes denominados coeficientes cepstrales en frecuencia mel(Mel-frequency cepstrum o MFCC) que contienen las características más significativas del habla y que suelen aplicarse en sistemas de Reconocimiento del habla. Los parámetros espectrales que suelen emplearse en la mayor parte de los casos son los parámetros cepstrales, estos se basan en el principio de producción de voz, en el cual la voz es resultado de una convolución entre una entrada y un sistema Resonador; el análisis cepstral realiza la desconvolución de ésta. Para la realización de este trabajo se utiliza una variación al aplicar un banco de filtros, en el cual las bandas de frecuencia están situadas logarítmicamente según la Escala Mel para valores por encima de 1kHz y lineal por debajo de este valor. El número de coeficientes MFCC seleccionados para representar la señal puede variar, pero este número de coeficientes tiene que coincidir con el número de filtros pasabanda del banco. Por último se calcula la primera y segunda derivada de los coeficientes MFCC con el fin de obtener vectores de características de la señal de voz cómo media, Mediana (estadística), máximo, mínimo, Desviación estándar, asimetría y Curtosis.

#### Energía del habla

Una vez analizadas todas las características de la señal de voz definitiva, se calcula la erengia del habla. Esta energía está relacionada con la excitación de las emociones, por lo tanto es de gran utilidad para el reconocimiento de la emoción.
Cálculo de la energía del habla:
$E_{s}(m)=1/N_{w}\sum _{n=m-N_{w}-1}^{m}\|f_{s}(n;m)|^{2}$
dónde fs(n:m)=s(n)w(m-n), s(n) es la señal de voz, w(m-n) es una ventana Hamming y Nw es la duración de la energía.

### Clasificación

Este es el último módulo del sistema REV y se implementa mediante el algoritmo de vecinos cercanos K-NN (K nearest neighbors). Este algoritmo calcula el número de vectores representativos a través de la función de densidad de probabilidad. Hay que tener en cuenta que si existe un número excesivo de centroides el proceso de cuantificación es más lento, si el número de centroides es demasiado pequeño, aumenta el error de cuantificación y a la vez afecta negativamente a la tasa de reconocimiento. El siguiente paso es la Cuantificación, con el objetivo de reducir la variabilidad de los datos a tratar asignando a cada uno de los vectores obtenidos el centroide más cercano. En la fase de reconocimiento, se compara la palabra a reconocer con cada uno de los modelos obtenidos con anterioridad y se elige el de mayor probabilidad.

## Resultados

Para la evaluación del sistema, se presenta la Matriz de confusión y los respectivos porcentajes de acierto en el reconocimiento de emociones. El objetivo de esta matriz es observar como se trasmiten y como son percibidas las distintas emociones.

## Aplicaciones

La aplicación más rerpresentativa del sistema REV está orientada a los call centers, como por ejemplo la familia EmoSpeech. Estas empresas proveen información valiosa para operadores telefónicos y analistas de calidad, y tienen el objetivo de averiguar si un determinado usuario esta o no interesado sobre cualquier producto o idea mediante el reconocimiento de emociones.