You are on page 1of 30

Estimación y Seguimiento de los Formantes de la

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

2. Visual Vocal Tract Resonance (VVTR) 9


2.1. Algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.1.1. Etapa I: Análisis de la señal de voz. . . . . . . . . . . . . . . . 10
2.1.2. Etapa II: Decisión de Iniciar/Terminar trayectorias. . . . . . . 10
2.1.3. Etapa III: Datos Consistentes. . . . . . . . . . . . . . . . . . . 11
2.1.4. Etapa IV: Seguimiento. . . . . . . . . . . . . . . . . . . . . . . 12
2.2. Simulaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3. Aplicaciones: Reconocimiento y sı́ntesis de vocales 15


3.1. Reconocimiento de vocales mediante sus formantes . . . . . . . . . . 15
3.2. Sı́ntesis de vocales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

4. Conclusiones 25

5. Trabajo a futuro 26

6. Bibliografı́a 27

1
Resumen

En este trabajo se presentan dos métodos (autocorrelación y autocovarianza)


para estimar las principales caracterı́sticas de la respuesta en frecuencia de un sonido
sonoro, modelando el mismo como un proceso AR. A partir de dicha caracterización
se extraen las frecuencias más relevantes del sonido (formantes) en distintas ven-
tanas de tiempo y se realiza un seguimiento de las mismas, reconociendo cuándo
aparecen o desaparecen dichas vocales y mediante un filtro de Kalman se estudian
como varı́an las mismas durante el tiempo que se presentan.

Como aplicaciones de los resultados del mencionado análisis se presenta un sis-


tema sencillo de reconocimiento basado en un mapa espacial de las formantes de las
distintas vocales y una métrica sugerida para dicho espacio. También se presenta
un método para la sı́ntesis de las distintas vocales partiendo de una única vocal
mediante la aplicación de filtros adecuados.
Introducción
Los sonidos producidos por la voz hablada pueden clasificarse en sonidos sonoros
y sonidos sordos. Los sonidos sonoros tienen caracterı́stica tonal, es decir, se les
puede asociar una altura tonal, y su forma de onda es cuasi-periódica. Ejemplos de
sonidos sonoros son las vocales y los sonidos nasales (’n’, ’m’). Los sonidos sordos
son producidos al expeler el aire a través de alguna restricción en el aparato fonador,
generando una turbulencia de aire. La forma de onda parece aleatoria. Ejemplos de
sonidos sordos son los fonemas correspondientes a las consonantes ’s’, ’t’, ’p’, etc.

Al realizar un análisis espectral de una señal correspondiente a un fonema, se


observan picos pronunciados en la envolvente del espectro, sobre todo en los sonidos
sordos. Esos picos se denominan formantes, y están asociados a frecuencias de reso-
nancia del aparato fonador (VTR 1 : Vocal Tract Resonance). En la figura 1 se observa
una ventana de 2048 muestras a 44,1kHz de una señal de voz humana pronunciando
la vocal casi abierta anterior no redondeada æ.

Figura 1: Señal de voz humana pronunciando æmuestreada a 44,1kHz, ventana de


2048 muestras.

En la mayorı́a de los casos, la frecuencia de los picos permite identificar al fonema.


Los parámetros de los formantes son empleados en sistemas de Reconocimiento de
voz, problema que consiste en reconocer las palabras mediante en análisis de la señal
de audio. Este problema, en su forma más general, continúa aún abierto.
1
Las frecuencias de resonancia visibles en el espectrograma se llaman VVTR:Visible Vocal Tract
Resonance

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:

Reconocimiento de vocales: Se analiza la grabación de una vocal y se estima


de que vocal se trata.

Sı́ntesis de vocales: Se muestra que existen caracterı́sticas generales de cada


vocal, y que estas son independientes de la persona que la pronuncia. A partir
de dichas caracterı́sticas se construyen filtros genéricos para cada una de las
vocales, y luego a partir de la grabación de una persona pronunciando una
única vocal se sintetizan las otras cuatro, imitando el timbre de voz de la
persona en cuestión.

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.

En este trabajo se analiza el modelo de la figura 2, conocido como autorregresivo


(AR) o todo-polos. Consiste en considerar que la serie temporal sn viene dada como
combinación lineal de sus p valores previos y de una cierta entrada un :
p
X
sn = − ak sn−k + Gun (1)
k=1

Aplicando la transformada Z a la ecuación 1 se obtiene:

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

Figura 2: (a) Modelo AR en frecuencia. (b) Modelo AR en el tiempo.

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.

Para una señal determinı́stica el error cuadrático total es:


p
!2
X X X
E= e2n = sn + ak sn−k (5)
n n k=1

Y para un proceso aleatorio:


p
!2
X
2

E = E en = E sn + ak sn−k (6)
k=1

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).

Tanto para señales determinı́sticas como para procesos estacionarios, la mini-


mización resulta en:
p
X X X
ak sn−k sn−i = − sn sn−i 1≤i≤p (7)
k=1 n n
p
X X X
Ep = s2n + ak sn sn−k (8)
n k=1 n

Por detalles sobre la deducción de las ecuaciones 7 y 8 ver [1].

El rango que abarcan las sumatorias de la ecuación 8 depende del método de


estimación utilizado. En este trabajo se analizan dos métodos:

Autocorrelación, sección 1.1.1.

Covarianza, sección 1.1.2.

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.

El problema planteado se puede resolver mediante Levinson-Durbin [4] como fue


mencionado anteriormente, pero el enventanado introduce un sesgo. Se puede pro-
bar (ver [3]) que la contribución explı́cita del enventanado al sesgo aparece como el
producto entre el coeficiente de autocorrelación normalizado del proceso sn y el co-
eficiente de autocorrelación normalizado de la ventana wn . La autocorrelación para
una ventana rectangular se caracteriza por su forma triangular: en la muestra m
vale 1 − |m|/N . Si se dispone de suficientes muestras, el efecto del enventanado es
despreciable. Sin embargo, para que la hipótesis de estacionareidad sea válida en
el contexto de señales de voz muestreadas a 44,1kHz no se pueden tomar ventanas
de más de 2048 muestras, lo que causa que el efecto del enventanado sea aprecia-
ble. Cuando se trabaja con ventanas pequeñas es posible reducir significativamente
el sesgo si se utilizan ventanas de Hanning o de Hamming en lugar de ventanas
rectangulares. Esto tiene como consecuencia un incremento de la varianza del mod-
elo estimado, debido a que el enventanado reduce la cantidad efectiva de muestras
disponibles para realizar la estimación. Por más información referirse a [3].

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

donde ϕki es la covarianza de la señal sn en el intervalo dado:


N
X −1
ϕki = sn−k sn−i (15)
n=0

Cabe destacar que es necesario conocer un total de p + N muestras de la señal


sn , mientras que en el método de la autocorrelación solo era necesario conocer N .

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.

1.1.3. Autocorrelación Vs. Covarianza


En términos computacionales, el método de la autocorrelación es menos costoso
y más rápido que el de la covarianza, ya que la minimización presentada se puede
resolver eficientemente gracias a:

La estructura toeplitz de la matriz asociada a este método.

Los algoritmos mencionados en la sección 1.1.1.

Un criterio para elegir el método a utilizar es el tamaño máximo admisible para


la ventana. Dicho máximo viene dado por la cantidad de muestras disponibles y
por el máximo intervalo en el cual la hipótesis de estacionariedad se mantiene. Si
es viable tomar una ventana razonable, entonces el método de la autocorrelación
es probablemente la mejor opción. Si no es posible tomar ventanas grandes, o si el
costo computacional no es de interés, entonces es razonable optar por el método de
la covarianza.

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.

La simulación de la figura 3 se hizo con una ventana de 1024 muestras. En dicha


figura 3 se observa que para pocos datos el método de la covarianza es más preciso
que el de la autocorrelación.

Figura 3: Espectro y estimaciones, ventana de 1024 muestras.

La simulación de la figura 4 se hizo con una ventana de 4096 muestras. En dicha


figura 4 se observa que para ventanas de muchos datos la diferencia entre el método
de la covarianza y el de la autocorrelación no es significativa. El problema está en que
son pocos los intervalos de 4096 muestras en señales de voz muestreadas a 44,1kHz
en los que la señal se puede considerar estacionaria. Si la hipótesis de estacionariedad
no es válida, el modelo tampoco lo es.

7
Figura 4: Espectro y estimaciones, ventana de 4096 muestras.

Experimentalmente se obtuvo un buen compromiso entre resultados y costo com-


putacional trabajando con las siguientes configuraciones:

1. Método de la covarianza con ventanas de 512 muestras.

2. Método de la autocorrelación con enventanado Hanning y ventanas de 1024


muestras.

La performance se reduce al usar el método de la autocorrelación, pero se re-


cupera bastante utilizando una ventana más suave que una rectangular, como por
ejemplo una ventan de Hanning, junto con un tamaño de ventana mayor (segunda
configuración). Los resultados obtenidos al variar los parámetros concuerdan con los
esperados.
En el análisis que sigue se utilizó la primera configuración.

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.

Figura 5: Algoritmo VVTR.

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.

Figura 6: Etapa II VVTR. Las lı́neas punteadas representan trayectorias que no


reciben datos consistentes.

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

Las frecuencias de resonancia se obtienen a partir de las raı́ces complejas A(z).


La k-ésima raı́z compleja es ck = |ck |ejwk . Siendo Ts el perı́odo de muestreo, las
frecuencias de resonancia y sus correspondientes anchos de banda se pueden escribir
como:
wk
fk = k-ésima frecuencia candidata. (17)
2πTs
ln|ck |
Bk = − Ancho de banda estimado. (18)
πTs
La frecuencia de muestreo se elige acorde a la banda de frecuencias de interés. En
el algoritmo implementado se descartan las frecuencias por encima de cierto umbral
(que se discutirá más adelante) por no ser de relevancia para el problema tratado.
El ancho de banda sirve como un umbral para determinar que polos realmente
son candidatos a frecuencias de resonancia. La frecuencias con ancho de banda muy
grande no serán candidatas a frecuencias de resonancia, ya que representan zonas
más planas del espectro.

2.1.2. Etapa II: Decisión de Iniciar/Terminar trayectorias.


En la versión original del algoritmo de seguimiento se presentan tres posibles
decisiones respecto a trayectorias:

1. Comenzar una nueva trayectoria.

2. Confirmar una trayectoria ya existente.

3. Terminar una trayectoria.

En nuestra implementación (figura 7) agregamos una cuarta opción, que es la


de revivir una frecuencia que ya fue terminada. Esto fue hecho en virtud de que
ciertas frecuencias desaparecı́an por unas pocas ventanas y eran terminadas, pero
luego continuaban, y resultaba más sencillo para el procesamiento lograr identificar
que se trataba de la misma frecuencia que fue terminada anteriormente y no una
distinta. Ésta nueva opción no afecta de gran manera la máquina de estados y es
sustituible por un adecuado post-tratamiento de las distintas trayectorias obtenidas
en esta etapa.

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.

ser 0 o 2. El cambio de estado se hace en función de las frecuencias candidatas de


la siguiente ventana: Si en la siguiente ventana aparece una frecuencia candidata
cercana a fc entonces fc pasa a estado 2, en caso contrario pasa a estado 0. Los
estados 0 y 2 son estados de espera, los tiempos de espera son parámetros de diseño.

En el estado 2 se inician filtros de Kalman para el seguimiento de las frecuencias


candidatas. Las trayectorias que no reciban datos nuevos (frecuencias candidatas
cercanas a ellas) pasan al estado 0, donde esperan un cierto tiempo la llegada de
nuevos datos. En caso de no recibir datos pasan a estado −1 y son eliminadas, y en
caso de recibir datos pasan nuevamente al estado 2.

Las trayectorias candidatas en estado 2 pasan estado 100 y son consideradas


trayectorias (VVTR) cuando reciben una determinada cantidad de datos consis-
tentes. El estado 100 es el estado de seguimiento, todas las trayectorias en estado
100 se siguen mediante el algoritmo de seguimiento, mientras reciban datos nuevos.
En caso de no recibir datos nuevos durante un cierto intervalo de tiempo el estado
de la misma pasa a ser −100 y la trayectoria se termina.

Nuestra versión de la máquina de estados admite que trayectorias que se en-


cuentran en el estado −100 puedan volver a recibir datos, y posteriormente admite
revivir la trayectoria en cuestión, pasándola por un proceso similar al de la detección
original.

2.1.3. Etapa III: Datos Consistentes.


En esta etapa se determinan las bandas dentro de las cuales frecuencias can-
didatas se consideran consistentes con frecuencias ya existentes. Si una frecuencia
candidata cae dentro de la banda correspondiente a una frecuencia ya existente en-
tonces se considera que la nueva frecuencia es consistente con la ya existente.

Originalmente se utilizó una banda constante para realizar el chequeo de con-


sistencia, consisitiendo el procedimiento en ver si las nuevas frecuencias candidatas
caı́an dentro de una banda de tamaño predeterminado alrededor de las frecuencias
ya existentes. Sin embargo este sencillo procedimiento resulta insuficiente para re-
solver conflictos que surgen cuando una frecuencia candidata cae dentro de más de

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.

En el trabajo referenciado en [5] se sugiere el uso también de bandas variables


cuyo ancho depende de la varianza de las medidas asociadas a una trayectoria hasta
el momento. Aunque intentamos realizar una implementación del código utilizando
dicho mecanismo, finalmente optamos por dejarlo fuera de la versión final del código
ya que no obtuvimos buenos resultados iniciales con el mismo, aunque no descarta-
mos que su utilización pueda mejorar el seguimiento de las frecuencias en los casos
más ruidosos o atenuados.

2.1.4. Etapa IV: Seguimiento.


En la etapa de seguimiento se utiliza un filtro de Kalman para seguir las trayec-
torias de las VVTR.

El modelo en variables de estado que rige el filtro es:

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.

Figura 8: Algoritmo aplicado a una señal de voz humana (gardiner l.wav )

En la figura 9 se observa el resultado de aplicar el algoritmo a una grabación de la


frase Acá veo un hongo amaracalala. Es posible diferenciar la parte del espectrograma
que corresponde a cada palabra analizando las zonas donde el espectro no es nulo.
Se observa la forma caracterı́stica que adopta el espectro en presencia de la vocal a.
En el intervalo correspondiente a veo un hongo, claramente no se observa la forma
caracterı́stica de la vocal a. Un aprendizaje basado en estas formas caracterı́sticas
permitirı́a implementar un sistema de reconocimiento de vocales.

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.

Figura 10: Formantes principales de las vocales de 6 locutores diferentes. Hasta 5


formantes por vocal y por locutor.

Para comenzar fue necesario identificar qué caracterı́sticas extraı́das mediante


VVTR eran relevantes y útiles en el contexto de la aplicación. Las principales
incógnitas que se nos presentaban eran: ¿Cuántas frecuencias son necesarias para
describir adecuadamente cada vocal? ¿En qué zona del espectro se encuentran las

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.

Ya desde el primer momento notamos que el espectro por encima de 5000Hz se


encontraba demasiado atenuado como para ser relevante a los efectos de la comuni-
cación verbal (en particular de la caracterización de vocales) por lo que la gráfica se
presenta solo en el intervalo 0 − 5000Hz. Se puede apreciar en la misma que cada
vocal tiene frecuencias caracterı́sticas y que alcanzarı́a con unas pocas por vocal
para lograr distinguir una de otra. Asimismo es notorio como la dispersión de las
formantes aumenta con la frecuencia. En el rango más alto las formantes difieren de
gran manera entre los distintos locutores, incluso no apareciendo formantes comunes
en muchos casos. Se presenta entonces la figura 11, donde figuran únicamente 2 for-
mantes hasta 2500Hz. De acuerdo a [6] y [7], alcanzarı́a con tan solo 2 frecuencias
formantes para identificar completamente cada vocal. En la tabla 1 se presentan las
frecuencias formantes de las distintas vocales de acuerdo a los autores de [6] y a los
de [7].
Cuadro 1: Formantes de las distintas vocales según [6] y [7].

Formantes Cohen et al. Meinsma et al.


F1 F2 F1 F2
A 790 1250 730 1350
E 430 2300 400 2600
I 300 2500 300 3000
O 500 820 410 700
U 320 750 300 700

Es de notar que en la tabla algunas vocales presentan frecuencias de relativo alto


valor (mayor a 2kHz). En nuestra gráfica se puede percibir que si bien estas fre-
cuencias están presentes, las mismas presentan una gran varianza entre los diferentes
individuos, e incluso no están presentes para todos los locutores. En los trabajos cita-
dos este fenómeno se presenta también, existiendo una diferencia apreciable entre
los valores registrados para dichas formantes 2 . Esto causa que las mismas no sean
muy útiles a la hora de la identificación, y por lo tanto decidimos implementar una
suerte de tratamiento especial para lidiar con estos casos.

Decidimos entonces utilizar como identificadores hasta 2 frecuencias por vocal,


en el rango de 0 − 2500Hz. El fingerprint (las formantes dominantes) de cada vocal
2
Las vocales presentadas en los trabajos citados son 12, basados en la pronunciación de las
distintas 5 vocales del alfabeto latino en diferentes contextos del holandés hablado. Elegimos de
entre las 12 las 5 cuya pronunciación se asemeja más a las vocales utilizadas en el español hablado,
como se presenta en [8].

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.

Cuadro 2: Fingerprints utilizados.

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 )).

La figura 12 presenta el plano de formantes particionado de acuerdo a la métrica


presentada anteriormente. Cabe notar al mirar dicho plano que las zonas cercanas
a los ejes no tienen ningún significado, ya que el algoritmo no permite devolver
frecuencias muy bajas. Sin embargo los ejes mismos sı́ son relevantes, ya que en el
caso de que el algoritmo encuentre una única formante, el sonido correspondiente se
representará como un punto sobre los ejes en el plano de las formantes.

Figura 12: Plano de formantes particionado de acuerdo a la métrica de comparación.

De esta manera, fue posible identificar el 100 % de las vocales de entrenamiento


en forma correcta. Adicionalmente utilizamos un conjunto de vocales de prueba para
validar el procedimiento, y fue posible identificiar correctamente hasta el 86 % de
las vocales. Cabe destacar que todas las vocales fueron generadas especialmente, su
duración es superior a lo normal.

Al aplicar el algoritmo a una grabación de la palabra hola (hola.wav ) pronuncia-


da lentamente el algoritmo fue capaz de reconocer tanto la o como la a. Al intentar
con una versión rápida de la misma palabra los resultados no fueron buenos. El
problema principal está en la segmentación del audio. El algoritmo implementado
utiliza la potencia de la señal y los polos candidatos, generados en la primera eta-
pa del reconocimiento, para segmentar el audio. No funciona correctamente para
3
De esta manera se logra restarle importancia, por ejemplo, a la segunda formante de las letras
E e I, que como mostramos presentan una gran varianza, a contrario de su primera formante.

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.

Figura 13: Análisis y segmentación de hola.wav previo al VVTR.

19
(a) Vocal a (b) Vocal o

Figura 14: Vocales detectadas por el algoritmo en hola.wav.

Figura 15: Análisis y segmentación de hola fast.wav previo al VVTR.

20
(a) Vocal a (b) Vocal o

Figura 16: Vocales detectadas por el algoritmo en hola fast.wav.

3.2. Sı́ntesis de vocales


Los resultados del Linear Predictor Coding mostraron que es posible, en cierta
medida, reconocer la envolvente en frecuencia de los sonidos sonoros. Surge natu-
ralmente entonces la pregunta de si es posible lograr el proceso inverso: conocida
la envolvente caracterı́stica de algún sonido, sintetizarlo artificialmente, modulando
adecuadamente una señal de voz.

De acuerdo al modelo que tenemos para la generación de sonidos sonoros, los


mismos son esencialmente el filtrado de una señal periódica (que podrı́amos asociar
a el timbre de voz caracterı́stico de cada persona) con un filtro adecuado, que gen-
eralmente es proporcionado por el tracto vocal. En esta aplicación nos propusimos
realizar el siguiente procedimiento:

Mediante Linear Predictive Coding, obtener el filtro que da la envolvente en


frecuencia caracterı́stica de cada vocal.

Realizar el filtrado inverso para obtener una estimación de la señal periódica


original (timbre).

Pasar la señal obtenida a través de un filtro de respuesta similar al de la vocal


que se desea sintetizar.

La salida del filtro de la última etapa será similar a la vocal deseada.

En la figura 17 se presenta la gráfica del audio de una vocal en el tiempo, y la


versión de la vocal filtrada inversamente para obtener el timbre original del locutor.

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.

Figura 18: FFT de una pronunciación de A, y el timbre obtenido mediante el filtrado


inverso.

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.

Como acercamiento a esto presentamos a continuación la respuesta en frecuencia


caracterı́stica de las vocales tales como las utilizamos nosotros y de las vocales
sintetizadas mediante el procedimiento anterior, en las figuras 19 y 20. Lo que se
aprecia en las gráficas está relacionado con lo que logra escucharse en el audio
sintético: para algunas vocales sintéticas el audio se percibe claramente como la
vocal que se deseaba sintetizar, mientras que en otros casos la misma se mezcla con
la vocal que se utilizó originalmente para generar el timbre de voz. Cuáles vocales
logran escucharse bien y cuáles se mezclan con el sonido original depende fuertemente
de la capacidad de separar la información de la vocal del timbre del locutor en el
archivo original. Idealmente el timbre obtenido deberı́a tener una caracterı́stica más
o menos plana en el intervalo de frecuencias de interés.

Figura 19: Espectro caracterı́stico obtenido para las vocales reales


los distintos locutores, obteniendo ası́ un filtro patrón para cada vocal.

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.

Extrayendo hasta dos formantes de relativamente baja frecuencia, es posible


generar identificadores que caracterizan a cada vocal. A partir de esto se pudo con-
struir un sistema que identifica vocales en grabaciones de audio donde éstas se
presentan como el único sonido.

Conocido el espectro que caracteriza a los sonidos sonoros (utilizando Linear


Predictive Coding), es posible sintetizar artificialmente muestras de audio que sue-
nan como los distintos sonidos sonoros, partiendo de uno solo de ellos. El audio
sintetizado presenta artefactos que lo hacen parecer irreal, pero de todas maneras
se logra percibir el sonido deseado.

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:

Mejorar el sistema de extracción de timbre de los locutores, para lograr de-


sacoplar completamente el mismo del sonido (vocal) pronunciado original-
mente.

Mejorar el sistema de identificación de vocales, hallando la manera óptima de


particionar el plano a partir de un conjunto de vocales de entrenamiento.

Implementar un sistema de segmentación más robusto, que utilice información


del análisis mediante el algoritmo de VVTR para lograr su cometido.

Dado un segmento de audio hablado, utilizar la segmentación para identificar


distintos sonidos y, mediante la detección de su espectro carecterı́stico, decon-
volucionar y tratar de identificar si se trata de un sonido sonoro o de un sonido
sordo.

Extender el sistema de detección a otros sonidos sonoros: sonidos nasales y


vocales no presentes en el idioma español.

Extender el sistema de sı́ntesis a otros sonidos sonoros.

Extender los sistemas de detección y sı́ntesis a sonidos sordos.

Si es posible extraer adecuadamente el timbre de voz caracterı́stico de cada


locutor, hacer reconocimiento de los distintos locutores mediante el mismo.

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.

[4] Levinson recursion, Wikipedia.

[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.

[8] IPA vowels chart with audio, Wikipedia.

27

You might also like