You are on page 1of 3

PRÁCTICA 3

TÍTULO: TÉCNICAS BÁSICAS DE ANÁLISIS LOCALIZADO EN FRECUENCIA

REQUISITOS/ CONOCIMIENTOS PREVIOS


 Transformada de Fourier de la voz. Características acústicas en el dominio de la frecuencia
de los diferentes sonidos que componen el habla.
 Transformada Localizada de Fourier. Cálculo e interpretación de espectrogramas.
 Predicción Lineal. Envolvente espectral. Estimas de posición de Formantes.

INSTRUCCIONES GENERALES
En esta práctica se continuará utilizando la función MATLAB de análisis localizado (ALOC), desarrollada en
la práctica anterior, pero ahora aplicada al análisis de Fourier de la voz. La evolución tiempo-frecuencia de
la voz se considerará haciendo uso de la función MATLAB SPECGRAM. También en esta práctica se
planteará la resolución del análisis de Predicción Lineal partiendo de la autocorrelación de un segmento de
voz. A partir de los coeficientes de Predicción Lineal utilizaremos la función FREQZ para representar la
envolvente espectral de los diferentes sonidos, y las funciones ROOTS y ANGLE para estimar la posición
de los formantes de la voz.

OBJETIVOS GENERALES
Los objetivos de esta práctica son:
 Obtener, analizar e interpretar medidas de análisis localizado en frecuencia: tanto medidas locales
de espectros de diferentes sonidos, como medidas de evolución tiempo-frecuencia (espectrogramas) de
los mismos.
 Experimentar la aplicación de la Predicción Lineal sobre señales correspondientes a diferentes
sonidos. Analizando tanto la envolvente espectral obtenida como la estima de los formantes de la voz.
 Aplicar las medidas anteriores a la problemática del cálculo de trayectorias de formantes y
reconocimiento automático de vocales y de dígitos.

ACTIVIDADES
1. Cálculo de la Transformada de Fourier de diferentes segmentos de voz.

La medida de la Transformada de Fourier de una ventana de señal de voz nos da información tanto de la
articulación del sonido (envolvente espectral) como de la vibración o no de las cuerdas vocales (estructura
armónica o fina del espectro).

Una forma simple de obtención y representación del espectro del segmento de voz "x" en MATLAB sería:
>>DFTx=fft(x);
>>plot(20*log(abs(DFTx(1:length(x)/2))));

Nota: Representamos sólo el módulo en dB. Podríamos haber utilizado SEMILOGY para evitar el cálculo de
20*log( … ). Es importante saber interpretar los valores que figuran en el eje X de la gráfica.

Una vez resueltos los problemas de interpretación básica del cálculo anterior, debemos concentrarnos en la
interpretación de la información espectral, asociándola a características articulatorias de los diferentes
sonidos de la voz. Nos fijaremos, principalmente, en los segmentos correspondientes a vocales y fricativas.

Es muy importante tener presente cómo afectará a nuestra medida los parámetros siguientes:
- Tipo de ventana de análisis.
- Tamaño de la ventana de análisis.
- Número de puntos de la FFT.

Por ejemplo:
- Un análisis realizado con una ventana pequeña no nos permitirá ver la estructura fina del
espectro de una vocal, sólo nos permitirá ver la envolvente del sonido.
- Si sobre la Transformada de Fourier medimos la frecuencia fundamental ¿qué resolución
tendremos?
2. Cálculo e interpretación de espectrogramas.

La medida de la Transformada de Fourier de una ventana de señal de voz sólo nos da información de un
sonido aislado en la cadena hablada. Sin embargo la información principal de la voz se manifiesta cuando
realizamos un análisis tiempo-frecuencia.

Como segundo grupo de actividades de esta práctica haremos uso de la función SPECGRAM que
proporciona MATLAB para calcular y representar espectrogramas de diferentes palabras o frases cortas.

Es importante, en primer lugar, analizar las posibilidades que ofrece la función SPECGRAM, ya que
seleccionando diferentes tamaños de ventana, desplazamientos y número de puntos para la FFT podremos
obtener espectrogramas de banda ancha y estrecha. También puede ser importante la selección del mapa
de colores de la representación (función COLORMAP de MATLAB).

Nota: Recordad que los espectrogramas de banda ancha (que suelen ser los preferidos en el análisis de
voz) tienen buena resolución en el tiempo y baja en frecuencia, mientras que los de banda estrecha tienen
buena resolución en frecuencia pero baja en el tiempo.

Tras tener clara la aplicación de la función SPECGRAM se deberán realizar prácticas de interpretación de
espectrogramas encaminadas a:

- Identificar formantes y su evolución.


- Identificar diferentes sonidos o familias de sonidos.
- Localizar la información correspondiente a la frecuencia fundamental.

3. Análisis de Predicción Lineal.

Como última medida relacionada con el dominio de la frecuencia, recurriremos a la técnica de Predicción
Lineal. En esta práctica nos fijaremos especialmente en las posibilidades que la Predicción Lineal tiene
como técnica de Estimación Espectral, dejando para la práctica siguiente otras consideraciones más
relacionadas con modelos de producción de voz. Por ello, por ejemplo, en esta práctica no prestaremos
atención a temas relacionados con el error de predicción.

Una forma simple de obtener en MATLAB P coeficientes de predicción lineal sobre un segmento de señal x
, mediante el método de autocorrelación, sería:

>>P= …. (orden de predicción elegido)


>>Rs=xcorr(x);
>>R=Rs(length(x):length(x)+P-1);
>>r=Rs(length(x)+1:length(x)+P);
>>RT=toeplitz(R);
>>a=inv(RT)*r;

Partiendo del vector de coeficientes "a" obtenido, podríamos representar la envolvente espectral del sonido
x utilizando la función MATLAB FREQZ tal y como sigue:

>>[h,w]=freqz(1, [1 -a'], 512);


>>plot(20*log(abs(h)))

De esta forma podremos comparar la transformada de Fourier de x con la envolvente obtenida, y ver la
correspondencia entre ambas representaciones. ¿Por qué hay un desajuste de energía entre las dos
representaciones -Transformada de Fourier y Envolvente de Predicción Lineal?. ¿Cómo se debería tener
presente la energía?

Finalmente, haciendo uso de las funciones MATLAB ROOTS y ANGLE podemos intentar obtener las raices
del denominador del filtro que representa la envolvente espectral (función ROOTS) y la fase de dichas
raices o polos (función ANGLE, que da la fase en radianes) que podrán corresponder a la posición de los
formantes.

EJERCICIO DE APLICACIÓN
Como ejercicio de aplicación de esta práctica se propone la realización de una función MATLAB que
permita realizar las funciones siguientes:
- Estima de los formantes de la señal de voz.
- Identificación y reconocimiento de vocales.
- Finalmente, como extensión al trabajo de reconocimiento realizado en la asignatura teórica
de Tratamiento Digital de Voz, intentar realizar un reconocedor de dígitos.

Se trata simplemente de un ejercicio sencillo sobre un problema de difícil solución. Por tanto sólo se espera
obtener una primera aproximación tanto a la estima de los formantes como al reconocimiento de dígitos.

Algunas consideraciones adicionales en la realización de este ejercicio serían:

- Para la identificación de vocales podría ser de utilidad el uso de medidas de energía, tasas
de cruces por cero o sonoridad de prácticas anteriores.
- Para el reconocimiento de vocales a partir de los dos primeros formantes puede intentar
recurrirse a una carta de formantes como la que se esquematiza en la figura siguiente.
- Para la realización del reconocedor de dígitos sencillo, se podría partir de los resultados del
reconocimiento de vocales, junto con alguna información más de otros sonidos en la voz a
reconocer: tramos fricativos, oclusivas, líquidas, nasales, etc..
- También para el reconocedor de dígitos, podría realizarse un alineamiento temporal (DTW)
a partir de las características o etiquetas que se asocien a cada trama de voz analizada.

Como se ha comentado ya, no es objetivo de esta práctica el uso de técnicas de análisis y clasificación más
potentes, como el uso de cepstrum y modelos ocultos de Markov, que sí podría ser planteado como
actividad para la práctica final del laboratorio.

Como referencia base para la realización de los ejercicios de esta práctica puede ser útil recordar los
apartados 4.5 (seguimiento de formantes) y 7.2 (DTW) del libro:

- F.J. Owens, Signal Processing of Speech, MacMillan New Electronics, Hong-Kong, 1993.

CARTA
DE FORMANTES
APROXIMADA

You might also like