
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:
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?
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


0