You are on page 1of 2

Universidad Distrital Francisco Jos de Caldas

DETECCN DE VOZ
Juan Camilo Borrero Becerra 20091005018
Camilo Antholyn Diaz Molano 20091005030
Ingeniera Electrnica



Objetivos.

Utilizar los conceptos de energa en el
espectro.
Diferencia el sonido de la voz humana
vocalizada y no vocalizada.
Diferencia el sonido de la voz humana
del silencio.
Diferencia el sonido de la voz humana
del sonido ambiente.


Desarrollo de la prctica.

Utilizando el software Matlab se analiza un
archivo de audio en el cual se aprecia una
mujer hablando vocalizadamente, no
vocalizadamente y en silencio, se procede a
discretizar la seal de audio, para poder
calcular la energa de la ventana y as poder
diferenciar los sonidos.

Con el fin de diferenciar los sonidos vocales
de otros, se tiene en cuenta el ancho de
banda que presenta las frecuencias
fundamentales de la voz humana, as, se
construye en Matlab una ventana que
albergue esas frecuencias, para as medir la
energa en ella, de esta forma cuando la
energa supere cierto lmite se puede
considerar que se presenta vocalizacin ya
que las consonantes presentan su energa
dispersa en un ancho de banda mayor.

Se diferencia la voz no vocalizada del ruido
ambiente debido a que la energa de la voz
vocalizada se encuentra en un ancho de
banda menor al de la vocalizada pero mayor
al del ruido ambiente, por lo cual la
magnitud de la energa en la ventana va a
ser media y as podemos diferenciar los 3.




Cdigo de Matlab.

x = wavread('vozfemenina.wav');
[x, fs, nb] =
wavread('vozfemenina.wav');
t=(0:length(x)-1)/fs;
sound(x,fs);
plot(t,x)
L = length(x);
WS = 400;%tamao de ventana
DW = 200;%tamao de diferencia
entre muestras
NW = floor((L-WS)/DW)+1;
E = zeros(NW,1);
Z = E;
for i=1:NW
j=(1:WS)+DW*(i-1);
y = x(j);
E(i)=y'*y;%Energia de la
ventana
Z(i)= sum(abs(sign(y(2:WS))-
sign(y(1:WS-1))))/2/WS;
end
E = 20*log10(E);
E = (E-min(E))/(max(E)-min(E));
Z = (Z-min(Z))/(max(Z)-min(Z));
te = (0:NW-1)'/(fs/DW)+WS/2/fs;
hold on
plot(te,E,'r-')
hold on
plot(te,Z,'k-')
legend('Amplitud','energia','cru
ces por cero')
%Para Energia
figure (2)
energia=zeros(NW,1);
a=0;
b=0.5;
c=1;
for m=1:NW

if E(m) <= 0.3 %bajo
energia(m)=a;
else
end
if E(m) > 0.3
if E(m) <= 0.7
energia(m)=b;




Universidad Distrital Francisco Jos de Caldas


else
end
else
end
if E(m) > 0.7
energia(m)=c;
else
end
end
plot(te,energia,'r-')

crucesporcero=zeros(NW,1);
for m=1:NW

if Z(m) <= 0.3 %bajo
crucesporcero(m)=a;
else
end
if Z(m) > 0.3
if Z(m) <= 0.7
crucesporcero(m)=b;
else
end
else
end
if Z(m) > 0.7
crucesporcero(m)=c;
else
end
end
hold on
plot(te,crucesporcero,'k-')

%comparacion

voz=zeros(NW,1);
for m=1:NW

if energia(m)==0
&&crucesporcero(m)==1
voz(m)=a;
else
end
if energia(m)==0.5
&&crucesporcero(m)==1
voz(m)=b;
else
end
if energia(m)==1
&&crucesporcero(m)==0
voz(m)=c;
else
end
end

figure(3)
plot(te,crucesporcero,'k-')
legend('bajo = S medio = M
alto=V')

Resultados


Figura 1. Grfica, Amplitud, Energa y Curses por 0.


Figura 2. Grafica discretizada.


Figura 3. Grafica Niveles de Energa.

Conclusiones

Gracias a los conceptos de energa, ancho
de banda y frecuencias fundamentales de la
voz humana se pueden lograr diferenciar
estos sonidos en una sola seal.

You might also like