inteligencia artificial

Un espacio para compartir y discutir sobre: IA, software libre y redes sociales que implementan TIC

Wednesday, November 29, 2006

ejemplo reconocimiento sonoro //Scilab "voz.sci"

function s = voz()
s = wavread(tk_getfile());

function x = xfft(s,M,d)
L = size(s,'c')
H = (.54-.46*cos(2*%pi*(0:M-1)/(M-1)))/1.82
//H = ((1:M)-(M+1)/2)/M*5; H = exp(-H.^2)
x = zeros(M,floor((L-M)/d)+1)
for i=1:size(x,'c')
//x(:,i) = log(abs(fft(s((1:M)+i*d-d).*H,-1)))'
x(:,i) = (abs(fft(s((1:M)+i*d-d).*H,-1)).^2)'
end

function mplt(m,v)
[lhs,rhs] = argn(0)
if rhs < 2 then v = [0 1]; end
[f,c] = size(m)
m = m - min(m)
m = floor(m/max(m)*31.9999)
m = m + 33
oldmap = xget("colormap")
if size(oldmap,'r')==32
cmap = graycolormap(32); cmap = cmap($:-1:1,:)
//cmap = hotcolormap(32)
xset("colormap",[oldmap;cmap])
end
//if c+1==600 then d1=3; d2=11; else d1=9; d2=ceil((c+1)/600)+1; end
//plot2d(0,0,rect=[0 0 c+1 1],nax=[d1 d2 0 1])
plot2d(0,0,rect=[0 v(1) c v(2)],axesflag=2)
Matplot1(m($:-1:1,:),[0.5 v(1) c+.5 v(2)])

function pruebaVoz()
s = voz()
x = xfft(s,512,225)
x = x(1:255,:)
mplt(log(x))
[s,x] = return(s,x)


//Prueba interfaz
-->getf voz.sci
-->pruebaVoz
-->xfft(s,1000,500);
-->mplt(log(x))
-->getf RedNeuronal.sci
-->sum(x,"r")
-->plot(sum(x,'r'))
-->e=sum(x,'r')
-->find(sum(x,'r')>2)
--> y=x(:,find(sum(x,'r')>2));
-->mplt(y)
-->mplt(log(y))
-->plot(log(y(:,5)))
-->plot(log(y(:,16)))
-->subplot(2,1,1);mplt(log(y))
-->subplot(2,1,1);plot(log(y(:,16)))
-->c=[];for v=log(y);c=[c,real(fft(v',-1))'];end
//comentarios: genera cepstrum, primer componente la energia, desde 2 es el timbre, los altos es el tono. (para graficar mostrar del 2 en adelante, esto es://
-->mplt(c(2:250,:))
//para la energia
-->plot(c(1,:))

Friday, November 24, 2006

Humanoid Robots













El desarrollo de robots humanoides se inspira inicialmente en el trabajo de los filósofos George Lakoff y Mark Johnson. Ellos postulan que todo el entendimiento del mundo que poseemos está basado en las experiencias corporalizadas que adquirimos desde nuestra temprana infancia. De esta manera, el concepto de ‘afecto’ se asocia al ‘calor’ como una metáfora de la exposición al calor del cuerpo de nuestros padres cuando nos muestran afecto. De aquí, expresiones como “un caluroso saludo” o “una calurosa bienvenida”. Igualmente, se utiliza la ‘grandeza’ como metáfora de la ‘importancia’, lo que se reflejaría en expresiones como “mañana será un gran día” o “un gran escándalo de corrupción”, dado que nuestros padres son grandes, importantes, y dominan nuestra experiencia visual cuando somos niños. De manera más indirecta, pero respondiendo a la misma idea de corporalización, en relación al concepto de ‘tiempo’ se tiene “moverse/caminar/correr hacia adelante” cuando se hace referencia al futuro. El pasado queda “atrás”, y el presente se encuentra en el lugar en que nos encontramos, es decir “en el aquí”. En fin, ¡ojo con las metáforas!

La implementación real de esta ‘cognición corporalizada’ se puede apreciar en el diseño de máquinas inteligentes que, emulando mecanismos de locomoción y navegación propios de nivel de insectos, han logrado navegar, mapear, planear y operar en el mundo real. Este tipo de inteligencia se conoce como ‘inteligencia cambriana’ (en oposición a la ‘neolítica’ de orden superior y, hasta el momento, lograda solamente por el humano).

En el caso de las últimas versiones de los robots Cog y Kismet (ver vínculo al final), se ha logrado emular procesos visuales humanos tan complejos como el movimiento ocular sacádico, el denominado ‘smooth persuit’ (seguimiento fluido) y el reflejo vestibular-ocular .

Lo notable de estos proyectos es que exhiben una impresionante coherencia en sus comportamientos humanoides, a pesar de prescindir de un sistema de procesamiento central. ¿Cómo lo hacen? Nada menos que a través de un mecanismo atención visual. Este proceso determina lo que el robot está mirando, y lo que el robot está mirando determina lo que verán todos los demás procesos de percepción de nivel inferior. Así funciona la 'arquitectura de subsunción', reacción alternativa a la 'arquitectura simbólica serial clásica' que busca emular procesos típicos de la cognición neolítica, en base a la conjetura empírica de que los cerebro humanos almacenan un inventario detallado de representaciones del mundo externo, posibles de ser manipuladas algorítmicamente.

Kismet, en particular, también puede detectar una prosodia básica en la voz de las personas y clasificar el habla como "prohibiendo", "solicitando atención", o "alagando", entre otras opciones. La deteción de estas claves cambia el estado emocional de Kimset, permitiéndole esto manipular a las personas en ambientes sociales, del mismo modo que las perosnas lo hacen entre sí. Si alguien se acerca demasiado, por ejemplo, el robot lo interpreta como una amenaza, adoptando una postura más encogida. Sujetos humanos de prueba reaccionana del mismo modo frente a esta conducta del Kimset.

Según Rodney Brooks, éste es el verdadero desafío de la robótica humanoide: emular procesos cognitivos de nivel cambriano, que es donde –se asegura desafiantemente- descansa la cognición superior, tan propia, pero nunca exclusiva, de los primates que piensan que piensan.



Clic aquí para artículo principal

Weblog original de este comentario

Para imágenes y videos, hacer clic en el siguiente link:
Human-Robot Dynamic Social Interaction.