PDS Reconocimientovocales
Materia: Señales y Sistemas.
“Reconocimiento de voz“
Hernández Martínez Iván Samuel
2451877
Fecha: 27/03/2015
El siguiente código realiza lacorrelación entre las vocales guardadas y una vocal de entrada, si la vocal se correlaciona manda un dato por el puerto serial, el cual estará conectado con el micro controlador KL25z de Freescalepara togglear un led
%%%%%%%%%¨Programa de mtlab%%%%%%%%%%%%%%%%
clear all;
clc;
close all;
[voz1,Frecc]=audioread('C:\Users\Samuelhdz\Documents\vocal_o.wav');
plot(voz1);
a1=voz1(237:295);figure(1)
plot(a1);
l=length(a1);
ts=1/8000;
t=ts:ts:(l-1)*ts;
fs=8000;
X_mags = abs(fft(a1));
bin_vals = [0 : l-1];
fax_Hz = bin_vals*fs/l;
N_2 = ceil(l/2);
% figure(2);
% plot(X_mags(1:N_2));%Normalizar x mags
X_mags=X_mags';
CicloNorm=length(X_mags);
%%%5 Encontrar el valor maximo en y para normalizar
YmayorPre =0;
while(CicloNorm>0)
ComparadorPre = X_mags(1,CicloNorm);if(ComparadorPre >= YmayorPre);
YmayorPre=ComparadorPre;
End
CicloNorm=CicloNorm-1;
End
%%% Divido todo entre el valor maximo en Y
NormalizarPre=length(X_mags);
while (NormalizarPre>0)X_mags(1,NormalizarPre)=(X_mags(1,NormalizarPre)/YmayorPre);
NormalizarPre=NormalizarPre-1;
end
% contador=length(X_mags);
% Yma=0;
% while(contador>0)
% Comp= X_mags(1,contador);
% % if(Comp >= Yma);
%Yma=Comp;
% end
% contador=contador-1;
% end
figure(2);
plot(fax_Hz(1:N_2), X_mags(1:N_2))
xlabel('Frequency (Hz)')
ylabel('Magnitude');
title('Single-sided Magnitude spectrum (Hertz)');
axis tightsuma=(X_mags.^2);
x=length(suma) acumula=0;
for N=1:1:x; acumula=suma(1,N)+acumula;
%suma=suma+d
End
%%%%%%%%CORRELACION%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%ESPECTRO SEÑALGRABACION%%%%%%%%%%%%%%%%%%%
reg=audiorecorder;
disp('empieza');
recordblocking(reg,2);
disp('termina');
voz=getaudiodata(reg);
grafica=voz(200:700)
figure(7);
plot(grafica);
vocal=voz(300:400)
figure(3);...
Regístrate para leer el documento completo.