Professional Documents
Culture Documents
Voz Humana
Tratamiento Estadı́stico de Señales
Proyecto Final
Pablo Iturralde
Rodrigo Rosa
17 de julio de 2011
Índice
1. Linear Predictive Coding (LPC ) 3
1.1. Estimación de los parámetros del proceso AR . . . . . . . . . . . . . 4
1.1.1. Autocorrelación . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.2. Covarianza . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.1.3. Autocorrelación Vs. Covarianza . . . . . . . . . . . . . . . . . 6
1.1.4. Simulaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4. Conclusiones 25
5. Trabajo a futuro 26
6. Bibliografı́a 27
1
Resumen
1
Las señales de voz se pueden modelar de forma efectiva como un proceso autorre-
gresivo variable. Los sonidos sordos son producidos al filtrar ruido blanco gaussiano
por un filtro todo-polos y los sonidos sonoros se modelan como un tren de impulsos
filtrado con un filtro todo-polos. Los formantes son los polos del filtro. Es de in-
terés entonces encontrar los polos del filtro, o equivalentemente, los coeficientes del
proceso AR. La dificultad radica en que solo se conoce la salida del filtro y no la ex-
citación. La técnica de LPC (Linear Predictive Coding) y sus variantes constituyen
formas de encontrar los parámetros del modelo. Esta técnica es ampliamente usada
en telecomunicaciones para codificación de voz a baja tasa de bits y en música para
la manipulación de la señal de voz, logrando efectos como time-stretching o pitch-
shifting.
En este trabajo se analizan dos métodos para estimar los parámetros del modelo
autorregresivo, y se implementa un seguimiento sencillo de formantes basado en un
filtro de Kalman.
Como aplicaciones se presentan:
2
1. Linear Predictive Coding (LPC )
En el análisis de series temporales es de particular interés la obtención de un
modelo paramétrico para el comportamiento de una cierta señal. Una vez estima-
dos los parámetros de dicho modelo, es posible utilizar el modelo para predicción,
control, compresión, etc.
S(z) G
H(z) = = Pp (2)
U (z) 1 + k=1 ak z −k
Dada una señal sn , el problema consiste en determinar los coeficientes del pre-
dictor lineal ak y la ganancia G. Se supone que un es completamente desconocida, y
por lo tanto la señal sn solamente se puede predecir de manera aproximada a partir
de una combinación lineal de sus p valores previos:
p
X
ŝn = − ak sn−k (3)
k=1
El error, diferencia entre el valor actual sn y la predicción ŝn , viene dado por:
p
X
en = sn − ŝn = sn + ak sn−k (4)
k=1
3
1.1. Estimación de los parámetros del proceso AR
Los coeficientes ak se obtienen de la minimización del error cuadrático total, re-
specto de cada uno de los parámetros, mediante el método de mı́nimos cuadrados.
El problema es análogo al predictor lineal de orden 1 de Wiener.
Las señales de interés en este trabajo son señales de voz, y pueden ser consider-
adas procesos localmente estacionarios. A una frecuencia de muestreo de 44,1kHz,
localmente se traduce en ventanas de no más de 2048 muestras (46,5ms).
Para cualquiera de los métodos, los resultados son los mismos tanto si se trabaja
con señales determinı́sticas como con procesos estacionarios. Por simplicidad, se
trata solamente el caso determinı́stico. Por más información, referirse a [1].
4
1.1.1. Autocorrelación
El método de autocorrelación asume que el error en la ecuación 5 se minimiza so-
bre un intervalo infinito −∞ < n < ∞. Incorporando esta condición a las ecuaciones
7 y 8 resultan:
p
X
ak R(i − k) = −R(i) 1≤i≤p (9)
k=1
p
X
Ep = R(0) + ak R(k) (10)
k=1
donde R(i) es la función de autocorrelación de la señal sn :
∞
X
R(i) = sn sn+i (11)
n=−∞
Es fácil ver que R(−i) = R(i), y por lo tanto la matriz constituida por los
coeficientes R(i − k), conocida como matriz de autocorrelación, tiene estructura
toeplitz, lo cual garantiza la estabilidad del filtro solución. Basándose en la estructura
de la matriz de autocorrelación se han desarrollado algoritmos muy eficientes para
resolver el problema de minimización planteado, tales como la recursión de Levinson-
Durbin. Por detalles referirse a [1].
En la práctica no se dispone de infinitas muestras de la señal sn , y no suele ser
de interés el análisis en un rango infinito. Un método para enfrentar este problema
consiste en multiplicar la señal sn por una ventana wn , obteniendo una señal s0n que
vale cero fuera del intervalo 0 ≤ n ≤ N − 1:
0 sn w n 0 ≤ n ≤ N − 1
sn = (12)
0 en otro caso
La solución que se obtiene trabajando con s0n es en realidad incorrecta, ya que el
enventanado distorsiona la estimación de los coeficientes (ver [2]) por suponer que
la señal es nula fuera del intervalo de interés, lo cual no es, en general, cierto.
5
1.1.2. Covarianza
En el método de la covarianza, a diferencia del método de la autocorrelación,
se minimiza el error (ecuación 5) en un intervalo finito, por ejemplo en 0 ≤ n ≤
N − 1. Esto hace que sea innecesario enventanar los datos, lo cual permite obtener
una mayor resolución en frecuencia. Agregando esta condición, las ecuaciones 7 y 8
resultan:
p
X
ak ϕki = −ϕ0i 1≤i≤p (13)
k=1
p
X
Ep = ϕ00 + ak ϕ0k (14)
k=1
Los coeficientes ϕki forman una matriz de covarianza que es simétrica, al igual
que la matriz de autocorrelación, pero no es toeplitz, por lo que ya no se puede
garantizar la estabilidad del filtro resultante (ver [2]). A medida que N crece la
solución se aproxima al método de la autocorrelación, y por lo tanto se vuelve más
estable. En la práctica, la estabilidad del filtro resultante no suele ser un problema
relevante.
6
1.1.4. Simulaciones
A continuación se compara, para una aproximación de orden 32 de un intervalo
de gardiner l.wav (muestreada a 44,1kHz), la performance del método de la auto-
correlación con ventana rectangular y de Hanning con la del método de covarianza.
7
Figura 4: Espectro y estimaciones, ventana de 4096 muestras.
8
2. Visual Vocal Tract Resonance (VVTR)
Esta sección se basa en [5]. Se implementa un algoritmo de seguimiento de los
formantes de la voz basado en un filtro de Kalman.
La idea del algoritmo es separar una señal de voz en ventanas de manera tal que
dentro de cada ventana la señal se puede considerar un proceso estacionario. A cada
uno de estos segmentos se le aplica uno de los métodos (autocorrelación, covarianza)
mencionados en la sección 1.1 para obtener los parámetros del modelo AR. Los polos
del filtro estimado representan las frecuencias de resonancia. Solamente se consideran
aquellos polos cuyo ancho de banda no es muy grande. Cuando una frecuencia de
resonancia se repite se la sigue mediante un filtro de Kalman.
2.1. Algoritmo
El algoritmo original se basa en una maquina de 4 estados. En la figura 5 se
observa diagrama de bloques de dicha maquina. La maquina de estados implemen-
tada utiliza un estado más, como se observa en la figura 7. El funcionamiento de la
maquina de estados se explica más adelante.
9
2.1.1. Etapa I: Análisis de la señal de voz.
En esta etapa se generan candidatas a frecuencias de resonancia encontrando los
polos del filtro obtenido mediante alguno de los métodos de LPC descritos en la
sección 1.1. El denominador del filtro es:
p p/2
X X
−1
A(z) = 1 − ak z = (1 − ck z −1 )(1 − ck z −1 ) (16)
k=1 k=1
Cualquier frecuencia candidata fc que surga del análisis LPC y que no caiga muy
cerca de una frecuencia de resonancia ya existente es considerada como una posible
trayectoria, asignándole el estado 1. En la siguiente ventana el estado de fc pasa a
10
Figura 7: Maquina de estados implementada.
11
una banda, o el caso opuesto, en que una frecuencia existente tiene múltiples can-
didatos para su continuación. Fue necesario entonces implementar un algoritmo de
optimización para la asignación entre el vector de candidatos y el vector de frecuen-
cias existentes. Como función de costo se utilizó una distancia de norma 1/2.
xk = Axk−1 + Gwk−1
(19)
yk = Hxk + vk
Las trayectorias de las frecuencias de resonancia de modelan como funciones
lineales en intervalos de tiempo reducidos, y las variaciones no lineales se modelan
mediante el ruido del sistema dinámico dado por la ecuación 19. El modelo a utilizar
resulta:
T2
1 T
A= G= 2 H= 1 0 (20)
0 1 T
El parámetro T es constante, corresponde al perı́odo de muestreo. El vector de
estados se define como:
F
xk = k (21)
Ḟk
donde Fk es la frecuencia de resonancia a seguir, y Ḟk es su derivada respecto
del tiempo. Por último, yk son los candidatos a frecuencias de resonancia, y wk y vk
ruidos de proceso y de medida respectivamente, los cuales se asumen Gaussianos e
independientes.
12
2.2. Simulaciones
En la figura 8 se observa el resultado de aplicar el algoritmo a una señal de voz.
Los candidatos a frecuencias de resonancia se representan con cı́rculos rellenos, y las
trayectorias que resultan del seguimiento se representan con los trazos continuos.
13
Figura 9: Algoritmo aplicado a una señal de voz humana (hongo.wav )
14
3. Aplicaciones: Reconocimiento y sı́ntesis de vo-
cales
3.1. Reconocimiento de vocales mediante sus formantes
A partir de los resultados de la parte anterior, decidimos implementar un pro-
grama sencillo que tome una muestra de audio en la que se escuche una vocal, y
proceder a extraer las frecuencias más relevantes de la misma (también conocidas
como frecuencias formantes).
Las vocales, como todos los sonidos sonoros, presentan un espectro que depende
esencialmente de dos elementos: el primero es el espectro de la señal de excitación,
dado por las cuerdas vocales del individuo que produce el sonido. El segundo es la
respuesta en frecuencia del tracto vocal, que en principio deberı́a ser caracterı́stico
del sonido emitido e independiente del individuo que produce el sonido. Son estas
últimas las que son identificadas mediante el sistema de VVTR.
15
frecuencias más relevantes? Para contestar estas preguntas generamos un banco
de muestras con varias muestras de distintos individuos pronunciando las distintas
vocales. Es de destacar que los sonidos utilizados en estas prueba son bastante ar-
tificiales, en el sentido de que son sonidos puros con duración de varios segundos.
En la gráfica 10 se observan las distintas frecuencias detectadas para cada vocal
y para cada uno de los individuos generadores. Como parámetros para el análisis,
utilizamos filtros de orden 32, ventanas de 512 muestras, y limitamos el ancho de
banda de los polos aceptables a 450Hz.
16
Figura 11: Formantes principales de las vocales de 7 locutores diferentes, en el plano
de las dos formantes principales.
se presenta en la tabla 2.
Formantes F1 F2
A 730 1300
E 440 2000
I 270 2300
O 460 800
U 280 750
Para identificar las vocales, utilizamos dichos fingerprints y una función de com-
paración que responde a una métrica adecuada. Lo destacable de esta métrica es que
no es simétrica respecto de las formantes de una vocal ya que, como se mostró ante-
riormente, algunas formantes son más informativas que otras a la hora de reconocer
una vocal. Interpretadas como coordenadas en un plano, la métrica es esencialmente
una norma 1/2 ponderada:
√ √
d = (wx x1 − x2 + wy y1 − y2 )2 (22)
La métrica no responde exactamente a una norma 1/2 ponderada por dos mo-
tivos. El primero es que la ponderación depende de la vocal contra la que se quiera
comparar, siendo los pesos inversamente proporcionales a la varianza de la formante
17
correspondiente en el grupo de entrenamiento 3 . El segundo es que la comparación
no se hace realmente componente a componente en forma ordenada, sino que se elige
la manera de ordenar las componentes que arroje una distancia mı́nima (esto cor-
responderı́a a tomar como distancia el mı́nimo de los resultados que surgen cuando
se realiza la cuenta anterior con las parejas (F1 , F2 ) y (F2 , F1 )).
18
grabaciones de personas hablando rápido. Pese a esto, ajustando el orden del filtro
fue posible obtener mejores resultados, llegando incluso a reconocer correctamente
las vocales. Reducir el orden del filtro implica perder precisión, polos que antes eran
detectados como 2 polos distintos ahora pueden ser considerados un solo polo con un
ancho de banda mayor. El orden del filtro deberı́a ser considerado por el algoritmo
de segmentación. Serı́a deseable obtener un sistema más robusto.
En las figuras 13, 14a y 14b se observan los resultados de analizar la grabación
de la palabra hola (hola.wav ) pronunciada lentamente. Se usó el método de la co-
varianza de orden 32, con una ventana de 512 muestras.
En las figuras 15, 16a y 16b se observa la versión rápida de la palabra hola (ho-
la fast.wav ). Para este caso se utilizó el método de la covarianza de orden 24, con
una ventana de 512 muestras.
19
(a) Vocal a (b) Vocal o
20
(a) Vocal a (b) Vocal o
Se puede ver de la gráfica del audio filtrado inversamente que la señal se asemeja
a un audio periódico de más alta frecuencia, tal como esperabamos (la información
de las vocales está contenida en frecuencias relativamente bajas). Sin embargo, ex-
isten algunas fluctuaciones que lo separan de la señal ideal (que deberı́a tener una
amplitud constante). Más aún, si escuchamos el audio del timbre, notaremos que
21
Figura 17: Segmento de una pronunciación de A, y el timbre obtenido mediante el
filtrado inverso.
alguna información del sonido pronunciado sigue allı́ y es perceptible. Esto puede
verse también si calculamos la FFT de dicho timbre, que se presenta en la figura
18. Particularmente, alrededor de 1300Hz existe un pico en la señal original (cor-
respondiente a la formante mayor de la vocal pronunciada) que continua existiendo
de manera pronunciada en la versión filtrada inversamente.
A pesar de que cierta información del sonido original permanece en lo que deberı́a
ser el timbre de voz, procedimos a filtrar el mismo con el filtro caracterı́stico de cada
vocal para obtener vocales artificiales 4 . Es difı́cil mostrar en esta documentación
4
Para obtener un filtro caracterı́stico de cada vocal, se promediaron los filtros obtenidos para
22
los resultados obtenidos, ya que no hay manera de describir lo que se logra escuchar
exactamente.
23
Figura 20: Espectro obtenido para las vocales sintetizadas
24
4. Conclusiones
Mediante un algoritmo sencillo, se pudo observar las caracterı́sticas de la densi-
dad espectral de potencia de las formantes de la voz humana, y lograr un seguimiento
de la evolución de las mismas.
25
5. Trabajo a futuro
El trabajo presentado deja abiertas muchas opciones en cuanto al tratamiento
de audio, a continuación se mencionan algunas posibilidades, en un orden creciente
del trabajo que creemos necesario para lograr los mismos:
26
6. Bibliografı́a
Referencias
[1] J. Makhoul. Linear prediction: A tutorial review. Proceedings of the IEEE,
VOL. 63, NO. 4, APRIL 1975.
[2] Anthony Zaknich. Principles of adaptive filters and self-learning systems. ISBN-
10:1852339845.
[3] Jan S. Erkelens and Piet M. T. Broersen. Bias Propagation in the Autocorre-
lation Method of Linear Prediction. IEEE Transactions on Speech and Audio
Processing, VOL. 5, NO. 2, MARCH 1997.
[5] I. Yocel 0zbek, Mobeccel Demirekler. Tracking of Visible Vocal Tract Reso-
nances (VVTR) Based on Kalman Filtering.
[6] W. Klein, R. Plomp, and L.C. Pols, ”Vowel spectra, vowel spaces, and vowel
identification.”The Journal of the Acoustical Society of America, vol. 48, 1970,
pp. 999-1009.
[7] A. Cohen, C.J. Ebeling, K. Fokkema, A.G.F. van Holk. Fonologie van het Ned-
erlands en het Fries. Martinus Nijhoff, s-Gravenhage, 1962. 2nd Ed.
27