Matlab - Reconocedor de palabras en matlab

 
Vista:
Imágen de perfil de Lali

Reconocedor de palabras en matlab

Publicado por Lali (1 intervención) el 16/03/2016 14:52:15
hola
Estoy queriendo hacer un programa con matlab que reconozca palabras aisladas, a partir de un archivo .wav obtengo señales de voz y necesito comparar con otras señales que tengo como bases de datos tambien .wav, empiezo por normalizar estas señales y luego quiero eliminar el ruido con esta funcion que encontre buscando en internet:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function y = silencio(s)
len = length(s);% length del vector
d=max(abs(s));
s=s/d;
avg_e = sum(s.*s)/len; %promedio señal entera
THRES = 0.02;
y = [0];
        for i = 1:400:len-400 % cada 10ms
        seg = s(i:i+399);% segmentos
        e = sum(seg.*seg)/400; % promedio de cada segmento
                if( e> THRES*avg_e) % si el promedio energético es mayor que la señal
                        %completa por el valor umbral
                        y=[y;seg(1:end)];% almacena en y sino es eliminado como espacio en blanco
                end;
        end;
end

luego de pasar por esta funcion mis señales (tanto las que deseo comparar como las que tengo como base de datos)tienen dimensiones distintas, por lo que no las puedo comparar con algun tipo de algoritmo (como distancias euclidianas, determinando el error entre las señales, etc) en las que necesito que estas señales tengan la misma dimension.
Mi duda es, ¿como puedo hacer que estas señales tengan las mismas dimensiones al pasar por la funcion de arriba sin alterar mis señales?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder