Anda di halaman 1dari 34

CI-2813 Procesamiento de Sonido

Tarea 5:
Estimacin de formantes y altura usando
prediccin lineal
Boanerges Martnez Cortez
A73791
En esta tarea se utilizarn los coecientes de prediccin lineal (LPC, por sus siglas en
ingls) para estimar la funcin de transferencia (respuesta a la frecuencia) del sistema
vocal, la frecuencia de los formantes, la seal de excitacin y la altura del sonido. A
manera de gua, las primeras partes de la tarea se muestran resueltas por el profesor
usando su voz, pero el estudiante debe volver a realizarlas utilizando su voz (previamente
grabada en la tarea 1).
Parte I.
Vocales habladas
En esta parte se analizar la funcin de transferencia del sistema vocal con vocales
habladas (en la segunda parte se har lo mismo pero con vocales susurradas).
1. Respuesta del sistema vocal a la frecuencia
1. Calcule la raz cuadrada de la magnitud del espectro de un segmento de 20 a 50 ms
de la vocal u y divdala entre la magnitud mxima (para obtener un mximo de
uno, por mera conveniencia al hacer comparaciones). Graque el resultado para
frecuencias en el rango de 0 a 3 kHz.
1
Figura 1: Gracacion de un segmento de la vocal u funcion |S(f)|
1/2
2. Encuentre los K coecientes de prediccin lineal para el segmento de la vocal
utilizada en el punto anterior, donde K es el nmero de coecientes correspondien-
tes a 1,5 ms de la seal (es decir, si la frecuencia de muestreo es f
m
Hz, entonces
K 1,5 f
m
/1000). Utilice estos coecientes para aproximar la funcin de transfe-
rencia del sistema vocal v(f) = 1/ a(f) para ese segmento, y luego calcule la raz
cuadrada de su magnitud y divdala por su valor mximo. Esto se puede lograr
fcilmente en Matlab mediante las siguientes instrucciones:
[V,f] = freqz( 1, a, L, fm );
V = abs(V);
RV = sqrt(V);
NRV = RV / max(RV);
donde L es el tamao de la ventana a utilizar para estimar v(f). Se recomien-
da que sea una potencia de dos para calcularla ecientemente (freqz utiliza la
transformada rpida de Fourier).
Graque el resultado y adalo al grco producido en el punto anterior.
1
Utilice
1
Para hacer esto en Matlab ejecute el comando hold on antes de hacer el segundo grco.
2
colores distintos para las dos curvas o graque v(f) utilizando una lnea disconti-
nua. Use leyendas para reconocer las curvas.
2
Figura 2: Gracacion de un segmento de la vocal u |S(f)|
1/2
y su Funcin de transfe-
rencia |V (f)|
1/2
2. Estimacin de los formantes
Debido a que el espectro de la voz decae de forma inversamente proporcional a la
frecuencia (6 dB por octava) en promedio, para estimar los formantes es conveniente
amplicar la energa de las frecuencias altas. El sistema auditivo parece saberlo, ya que
los odos externo y medio, en conjunto, responden de forma proporcional a la frecuencia
aproximadamente (por lo menos en el rango de 0,1 kHz a 3 kHz).
Utilice la funcin outmidear(n,fm) para simular el ltrado de la seal realizado por
el odo externo y medio. La funcin recibe como parmetros el nmero de coecientes
del ltro n y la frecuencia de muestreo f
m
y devuelve un vector con los coecientes del
ltro. Un ejemplo de su uso es el siguiente:
2
Para hacer esto en Matlab utilice el comando legend.
3
n = round( 0.001*fm );
3
b = outmidear( n, fm );
y = filter( b, 1, s );
4
Alternativamente, se puede aplicar el ltro directamente en el dominio de la frecuencia
calculando su transformada de Fourier B(f) y multiplicndola por v(f). Esto se logra
fcilmente en Matlab de la siguiente manera:
[V_mejorado,f] = freqz( b, a, L, fm );
1. Vuelva a gracar | v(f)|
1/2
despus de mejorarlo aplicndole el ltro que simula la
respuesta del el odo externo y medio. Utilice este grco para estimar la frecuen-
cia de sus dos primeros formantes, F1 y F2, para la vocal u, y seale los picos
correspondientes.
Figura 1: Formantes de la vocal u
3
1 ms es suciente.
4
Puede ejecutar el comando freqz(b,1) para corroborar que la respuesta a la frecuencia del ltro es
la deseada.
4
Vocal F1 F2
u 290 40 670 50
o 470 60 900 120
a 660 40 1200 90
e 450 60 2000 120
i 260 40 2300 160
(a) Voz femenina.
Vocal F1 F2
u 240 30 630 70
o 510 70 980 120
a 660 50 1200 110
e 490 40 2300 140
i 240 30 2800 240
(b) Voz masculina.
Cuadro 1: Frecuencias medias y desviaciones estndar para los formantes.
2. De acuerdo a su sexo y al cuadro 1, indique si F1 y F2 estn dentro del rango tpico
de su sexo, es decir, si estn dentro de dos desviaciones estndar alrededor de
la media.
5
Si la posicin de los picos no es clara o no corresponde con los valores
tpicos, modique el valor de K. Si obtuvo mejores resultados con otro valor de K
que el sugerido, modique los grcos de la seccin anterior y agregue una nota
indicando el tiempo correspondiente a K.
Mi primer formante estaba dentro del rango como puede verse en el grco anterior,
F1=226.6 y F2= 710.9, F2 fue mayor al rango.
3. Genere grcos como el del punto 1 para las vocales o, a, e, i, en ese orden, y seale
F1 y F2 en cada caso.
5
Tomado de http://liceu.uab.es/joaquim/phonetics/fon_anal_acus/caract_acust.html. Los datos co-
rresponden a hablantes de Espaa, por lo que los formantes pueden no coincidir con los de los ha-
blantes de Costa Rica.
5
Figura 2: Formantes de la vocal o
6
Figura 3: Formantes de la vocal a
7
Figura 4: Formantes de la vocal e
8
Figura 5: Formantes de la vocal i
4. Repita el punto 2 para las restantes vocales o, a, e, i.
Cuadro 2: Formantes
Vocal F1 F2
o 414.1(mayor al rango) 890.6(dentro del rango)
a 625(dentro del rango) 1117(dentro del rango)
e 320.3(menor al rango) 2273(dentro del rango)
i 203.1(menor al rango) 2969(dentro del rango)
En los puntos anteriores las vocales fueron ordenadas de la forma u, o, a, e, i por una
razn: F1 aumenta al ir de u a a y disminuye al ir de a a i, mientras que F2 aumenta a
lo largo de toda la secuencia. Este patrn se observa en el cuadro 1 y en la gura 6, la
cul muestra los formantes de un grupo de hablantes del ingls estadounidense. Indique
si este patrn ocurre tambin en su pronunciacin de las vocales.
Desde la vocal u 1 hasta la a 3 F1, va disminuyendo en magnitud, y desde la vocal a
3 hasta la i 5 F1 aumenta. Mientras que F2 aumenta desde u 1 hasta i 5.
9
Figura 6: F1 y F2 para las vocales del idioma ingls.
3. Estimacin de la seal de excitacin y su uso para estimar
el periodo
1. Si v(f) = 1/ a(f) corresponde a la funcin de transferencia del tracto vocal, enton-
ces es posible obtener la seal de excitacin mediante la frmula u(t) = s(t) a(t).
Utilice esta frmula para obtener la seal de excitacin u(t) para cada una de las
vocales analizadas en la seccin anterior y grafquelas.
10
Figura 1: Seal de excitacin u(t) de la vocal u
11
Figura 2: Seal de excitacin u(t) de la vocal o
12
Figura 3: Seal de excitacin u(t) de la vocal a
13
Figura 4: Seal de excitacin u(t) de la vocal e
14
Figura 5: Seal de excitacin u(t) de la vocal i
2. Indique si estas seales de excitacin corresponden a lo esperado (un tren de im-
pulsos). Si es as, diga si sus periodos corresponden a los periodos encontrados en
la tarea 1.
Segun lo dicho el profesor en clases, si corresponde a un tren de impulsos, podemos
ver en las grcas como hay algunos pulsos a lo largo de u(t) , pero al compararlos
con la tarea 1, el periodo es un poco diferente, aun buscando los pulsos mas cercanos
a los periodos de la tarea 1.
3. Calcule y graque la autocorrelacin normalizada de cada una de las seales de
excitacin utilizando la funcin autocorr de Matlab:
6
r = autocorr( u, length(u)-1 );
Indique si los picos principales se hayan en mltiplos del periodo y si el pico co-
rrespondiente al periodo tiene una altura cercana a uno (lo cual indicara que la
seal de excitacin es casi peridica). Basado en lo observado, le parece til la
seal de excitacin para estimar el periodo de la voz?
6
La autocorrelacin normalizada es la autocorrelacin dividida por su mximo, es decir, dividida por
su valor en cero.
15
Segn las grcas de autocorrelacin en las guras 6, 7, 8, 9, 10 se puede observar
picos peridicos, aunque sus magnitudes NO son cercanas a la unidad, ademas al
comparar los periodos obtenidos con los datos de la tarea 1 encontramos algunas
diferencias, aun cuando se intente buscar pulsos peridicos los mas parecidos.
le parece til la seal de excitacin para estimar el periodo de la voz? Me parece
til estimar el periodo de la vos mediante la seal de excitacin, nos permitira
tener una nocin de si una seas es peridica, como lo hemos visto en esta seccin
con seales peridicas.
Figura 6: Autocorrelacion r(t) de la vocal u
16
Figura 7: Autocorrelacion r(t) de la vocal o
Figura 8: Autocorrelacion r(t) de la vocal a
17
Figura 9: Autocorrelacion r(t) de la vocal e
Figura 10: Autocorrelacion r(t) de la vocal i
18
Parte II.
Vocales susurradas
Grabe su voz susurrando cada una de las vocales y repita la parte I con estas gra-
baciones, haciendo los ajustes necesarios. (Por ejemplo, con voz susurrada la glotis no
se abre ni se cierra peridicamente sino que se mantiene abierta, por lo que sale de ella
una turbulencia catica semejante al ruido blanco. Por lo tanto, la voz resultante no es
peridica y no tiene altura. Sin embargo, al colocar el hablante su tracto vocal de una
forma semejante a la del habla normal y debido a la naturaleza del espectro del ruido
blanco, es posible distinguir los formantes y por lo tanto palabras).
1. Calcule la raz cuadrada de la magnitud del espectro de un segmento de 20 a 50 ms
de la vocal u y divdala entre la magnitud mxima (para obtener un mximo de
uno, por mera conveniencia al hacer comparaciones). Graque el resultado para
frecuencias en el rango de 0 a 3 kHz.
Figura 11: Gracacion de un segmento de la vocal u susurrada, funcin |S(f)|
1/2
19
2. Encuentre los K coecientes de prediccin lineal para el segmento de la vocal
utilizada en el punto anterior, donde K es el nmero de coecientes correspondien-
tes a 1,5 ms de la seal (es decir, si la frecuencia de muestreo es f
m
Hz, entonces
K 1,5 f
m
/1000). Utilice estos coecientes para aproximar la funcin de transfe-
rencia del sistema vocal v(f) = 1/ a(f) para ese segmento, y luego calcule la raz
cuadrada de su magnitud y divdala por su valor mximo. Esto se puede lograr
fcilmente en Matlab mediante las siguientes instrucciones:
[V,f] = freqz( 1, a, L, fm );
V = abs(V);
RV = sqrt(V);
NRV = RV / max(RV);
donde L es el tamao de la ventana a utilizar para estimar v(f). Se recomien-
da que sea una potencia de dos para calcularla ecientemente (freqz utiliza la
transformada rpida de Fourier).
Graque el resultado y adalo al grco producido en el punto anterior.
7
Utilice
colores distintos para las dos curvas o graque v(f) utilizando una lnea disconti-
nua. Use leyendas para reconocer las curvas.
8
7
Para hacer esto en Matlab ejecute el comando hold on antes de hacer el segundo grco.
8
Para hacer esto en Matlab utilice el comando legend.
20
Figura 12: Gracacion de un segmento de la vocal u susurrada |S(f)|
1/2
y su Funcin
de transferencia |V (f)|
1/2
4. Estimacin de los formantes
Debido a que el espectro de la voz decae de forma inversamente proporcional a la
frecuencia (6 dB por octava) en promedio, para estimar los formantes es conveniente
amplicar la energa de las frecuencias altas. El sistema auditivo parece saberlo, ya que
los odos externo y medio, en conjunto, responden de forma proporcional a la frecuencia
aproximadamente (por lo menos en el rango de 0,1 kHz a 3 kHz).
Utilice la funcin outmidear(n,fm) para simular el ltrado de la seal realizado por
el odo externo y medio. La funcin recibe como parmetros el nmero de coecientes
del ltro n y la frecuencia de muestreo f
m
y devuelve un vector con los coecientes del
ltro. Un ejemplo de su uso es el siguiente:
n = round( 0.001*fm );
9
b = outmidear( n, fm );
9
1 ms es suciente.
21
y = filter( b, 1, s );
10
Alternativamente, se puede aplicar el ltro directamente en el dominio de la frecuencia
calculando su transformada de Fourier B(f) y multiplicndola por v(f). Esto se logra
fcilmente en Matlab de la siguiente manera:
[V_mejorado,f] = freqz( b, a, L, fm );
1. Vuelva a gracar | v(f)|
1/2
despus de mejorarlo aplicndole el ltro que simula la
respuesta del el odo externo y medio. Utilice este grco para estimar la frecuen-
cia de sus dos primeros formantes, F1 y F2, para la vocal u, y seale los picos
correspondientes.
Figura 1: Formantes de la vocal u susurrada
2. De acuerdo a su sexo y al cuadro 1, indique si F1 y F2 estn dentro del rango tpico
de su sexo, es decir, si estn dentro de dos desviaciones estndar alrededor de la
10
Puede ejecutar el comando freqz(b,1) para corroborar que la respuesta a la frecuencia del ltro es
la deseada.
22
media.
11
Si la posicin de los picos no es clara o no corresponde con los valores
tpicos, modique el valor de K. Si obtuvo mejores resultados con otro valor de K
que el sugerido, modique los grcos de la seccin anterior y agregue una nota
indicando el tiempo correspondiente a K.
Mi primer formante de la u susurrada estaba mas cercano al limite inferior del
rango, F1=273.4 y F2= 742.2 F2 fue mayor al rango.
3. Genere grcos como el del punto 1 para las vocales o, a, e, i, en ese orden, y seale
F1 y F2 en cada caso.
Figura 2: Formantes de la vocal o susurrada
11
Tomado de http://liceu.uab.es/joaquim/phonetics/fon_anal_acus/caract_acust.html. Los datos co-
rresponden a hablantes de Espaa, por lo que los formantes pueden no coincidir con los de los ha-
blantes de Costa Rica.
23
Figura 3: Formantes de la vocal a susurrada
24
Figura 4: Formantes de la vocal e susurrada
25
Figura 5: Formantes de la vocal i susurrada
4. Repita el punto 2 para las restantes vocales o, a, e, i.
Cuadro 3: Formantes
Vocal F1 F2
o 531.3(mayor al rango) 992.2(dentro del rango)
a 671.9(dentro del rango) 1031(menor al rango)
e 492.2(dentro del rango) 2211(dentro del rango)
i 250(dentro del rango) 2734(dentro del rango)
En los puntos anteriores las vocales fueron ordenadas de la forma u, o, a, e, i por una
razn: F1 aumenta al ir de u a a y disminuye al ir de a a i, mientras que F2 aumenta a
lo largo de toda la secuencia. Este patrn se observa en el cuadro 1 y en la gura 6, la
cul muestra los formantes de un grupo de hablantes del ingls estadounidense. Indique
si este patrn ocurre tambin en su pronunciacin de las vocales.
Desde la vocal u susurrada 1 hasta la a susurrada 3 F1, va disminuyendo en magnitud,
y desde la vocal a susurrada 3 hasta la i susurrada 5 F1 aumenta. Mientras que F2
26
aumenta desde u susurrada 1 hasta i susurrada 5, cumpliendo el patrn antes descrito
para hablantes del ingles estadounidense.
5. Estimacin de la seal de excitacin y su uso para estimar
el periodo
1. Si v(f) = 1/ a(f) corresponde a la funcin de transferencia del tracto vocal, enton-
ces es posible obtener la seal de excitacin mediante la frmula u(t) = s(t) a(t).
Utilice esta frmula para obtener la seal de excitacin u(t) para cada una de las
vocales analizadas en la seccin anterior y grafquelas.
Figura 1: Seal de excitacin u(t) de la vocal u susurrada
27
Figura 2: Seal de excitacin u(t) de la vocal o susurrada
28
Figura 3: Seal de excitacin u(t) de la vocal a susurrada
29
Figura 4: Seal de excitacin u(t) de la vocal e susurrada
30
Figura 5: Seal de excitacin u(t) de la vocal i susurrada
2. Indique si estas seales de excitacin corresponden a lo esperado (un tren de im-
pulsos). Si es as, diga si sus periodos corresponden a los periodos encontrados en
la tarea 1.
Para este caso al tratarse de vocales susurradas u(t) seria similar al ruido blanco,
por lo tanto no tendr un periodo denido tal como se observa en las guras 1, 2,
3, 4, 5.
3. Calcule y graque la autocorrelacin normalizada de cada una de las seales de
excitacin utilizando la funcin autocorr de Matlab:
12
r = autocorr( u, length(u)-1 );
Indique si los picos principales se hayan en mltiplos del periodo y si el pico co-
rrespondiente al periodo tiene una altura cercana a uno (lo cual indicara que la
seal de excitacin es casi peridica). Basado en lo observado, le parece til la
seal de excitacin para estimar el periodo de la voz?
12
La autocorrelacin normalizada es la autocorrelacin dividida por su mximo, es decir, dividida por
su valor en cero.
31
Segn las grcas de autocorrelacin en las guras 6, 7, 8, 9, 10, se puede observar
que no existen periodos denidos como es propio del ruido blanco proveniente de
la seal de excitacin al ser susurrada, y que aun el valor en |r(0)| no se acerca a
1 como si ocurra en las vocales no susurradas.
le parece til la seal de excitacin para estimar el periodo de la voz? Me parece
til estimar el periodo de la vos mediante la seal de excitacin, nos permitira
tener una nocin de si una seas es peridica o no, como lo hemos visto en es-
ta seccin con seales susurradas, no peridicas debido a su naturaleza de ruido
blanco.
Figura 6: Autocorrelacion r(t) de la vocal u susurrada
32
Figura 7: Autocorrelacion r(t) de la vocal o susurrada
Figura 8: Autocorrelacion r(t) de la vocal a susurrada
33
Figura 9: Autocorrelacion r(t) de la vocal e susurrada
Figura 10: Autocorrelacion r(t) de la vocal i susurrada
34

Anda mungkin juga menyukai