Experimento de accesibilidad con Actionscript
7 seguidores
una persona invidente accede a una web. Sin el uso de etiquetas, con un micrófono y un archivo swf, se pretende guiar a dicha persona por dicha web.
La idea sería que con la voz y con la ayuda del micrófono la maquina podría reconocer opciones básicas, como "si","no","siguiente",etc...
Alguien tiene información sobre el tema?
Por donde empezaríais a trabajar?
tpmmds
Hola:
Los enlaces que has puesto utilizan el nivel de actividad del microfono: la propiedad "activityLevel". Se pueden conseguir efectos interesantes, recuerdo uno en el que podías simular soplar a una llama; pero es eso, el nivel de actividad.
Por cierto, puedes descargarte el código fuente de los ejemplos. El de las bolas utiliza APE, un engine de físicas, que puedes descargarte de
APE ActionScript Phisics engine
Un saludo.
davidchueca
cutcopy, una aportación interesante:
* si el compañero cutcopy quisiera patentar este "producto" dónde debería dirigirse y cuánto costaría
* qué se patentaría exactamente, la pregunta no es registrar el software, sino el concepto, para que otras aplicaciones similares basadas en esta pagasen por usar la patente. Registrar que el invidente use un micro para hablar se ve un poco de locura yanqui (que seguro que patentan simplezas como estas), qué habría que enviar a las patentes, un proyecto funcionando, el algoritmo, el qué, en caso que apostemos por dicha idea.
cutcopy
buenas de nuevo, retomo el tema ya que encontré esto:
Coding a simple Microphone Graph
se podría meter mano al sonido a través del gráfico?
Por otro lado, este ejemplo muy interesante se muestra la aplicación del sonido como herramienta para ejecutar acciones en as.
Pelotas, por no decir que cojones (perdon)
tpmmds
BuenAS, Cutcopy:
Siguiendo con el offtopic, y estando casi seguro que ya dominas el tema mejor que yo :-) Unas indicaciones de por dónde salpica el server de Red5:
Una vez instalado, debes lanzarlo. En la carpeta, o en el menú inicio, tienes un acceso a "Start net", o algo así. Se te abrirá una ventana de Símbolo de Sistema que NO hay que cerrar (eso es el server);
Tus aplicaciones, los swf's las debes poner en la carpeta "webapps/root" que encontrarás en la carpeta donde has instalado Red5.
Hay que utlizar la nomenclatura de apache tomcat para lanzar las aplicaciones: http://HOST:PUERTO/. Y si no has tocado nada, tendrías que ver tus aplicaciones en la ruta:
http://localhost:5080/
Según que caso, tomcat se puede llevar mal con Apache. Si tienes un servidor Apache desactivalo mientras estés con Red5, para asegurarte que no hay ningún tipo de conflicto.
Un saludo.
tpmmds
Hola:
Ventd'Aval, festivamente, como decías en el anterior post, es rasterizar el vídeo dibujando los píxeles en un Bitmap. Es lo que utilizan también los VideoStreamMaterial de Papervision3D, por ejemplo. Pero claro, esto no es obtener el raw del vídeo; por ejemplo, tienes la dificultad de que deja de ser flv.
Cutcopy, Red5 es un mundo. Una cosa es lanzar el server y hacer tus experimentos de streaming y sharedobject, y otra meterse a "intentar" adaptarlo a tus necesidades. Si tienes alguna duda, en lo poco que sé, intentaré ayudarte. Aquí, en el curro teníamos un compañero que lo dominaba al 110% pero emigró a otras tierras.
Un saludo.
cutcopy
tpmmds
A mi este post me está resultando de lo más interesante... tpmmds necesito más info sobre el tema nos ponemos en contacto?
ventdaval
tpmmds
Bueno, me refiero mas que nada a que el video lo puedes manipular, examinar y analizar en cliente (interactuar con la webcam, FLARToolKit, etc etc etc), mientras que con el microfono esto es muy limitado... que es mas o menos de lo que iba el post :P
Pero como offtopic, supongo que en as3, y más en fp10, es posible crear encoders de video y tal... ^^
tpmmds
BuenAS:
¿Te refieres a ir capturando los frames del vídeo e ir mandándolos a un servidor con la ayuda de alguna API como AS3CoreLib y AmfPhp; o hay algo ya desarrollado para la captura de vídeo directamente?
Por cierto, me he bajado la versión 8 del servidor de Red5 y no va. La cosa es que no da ningún tipo de error, pero no hace nada, ni siquiera con un sencillo ejemplo de sharedobjects. Me he tenido que volver a la versión 7 que tenía. Las pruebas las he hecho en Windows XP64, no sé si esto tendrá algo que ver.
Un saludo.
ventdaval
un inciso... desde flash 8 que se puede "capturar" el video con bitmapdata y coger su "espectro"... no asi el micro ;)
tpmmds
BuenAS:
Si quieres, te digo lo que no es: ActionScript. Si te aventuras a conocer Red5, estarás entrando en el apasionante mundo de java, jsp, apache tomcat, puertos, barcos... :-)Ya en serio, el problema que te vas a encontrar, después de bajarte unos cuantos megas del repositorio de red5, es que vas a tener que configurar el servidor, algo que no es precisamente inmediato. Si lo consigues, -ánimo-, lo otro viene rodado, ya que hay bastantes ejemplos de casi todo: streaming, video conferencia, chat, sharedobject (que desde un Flash un usuario pueda controlar elementos de otro Flash en tiempo real), etc.
Por cierto, Zarate, también espero. Ojalá una de las novedades de FP11 sea esta. Encomendémonos a Santa Tecla y crucemos los dedos :-)
Un saludo.
juandelgado
Red5 es un servidor de streaming libre para Flash. El "espejo" Open Source de Flash Media Server para poder:
- Grabar en el servidor audio y video del cliente.
- Hacer aplicaciones multi-usuario (chats, juegos, etc).
- Servir video en streaming real que tiene sus ventajas.
- Más cosas que no me sé : D
tmmds, tienes razón con lo de AMF3 pero aun así yo creo que Adobe acabará cediendo.
Esperemos!
cutcopy
Zárate
Zárate mil perdones por mi ignorancia sobre el tema (ya me cuesta seguir el hilo) que es Red5? estoy metido en la pág y no consigo saber ni lo que es :S
tpmmds
Hola:
No, si sentido tiene, pero me da que Adobe no está por la labor. Si con Flash pudieramos acceder a los "bytes" del audio y vídeo (al raw de las entradas de audio/vídeo, ya sea cámara web, capturadora de vídeo, FireWire, micrófono...) con AMF3, la clase Socket... sería casi inmediato hacernos un servicio de streaming con 10 líneas de código y quién pasaría por caja? De hecho, las heramientas existir, existen, ahí está Red5, pero claro, no es tan inmediato hacer un servicio de streaming.
Pero esto también dependerá de lo que los futuros compradores de la herramienta Flash exijan, claro :-). Si se empieza a dar mucho la lata por que los desarroladores quieran Flash fundamentalmente para streaming, quizá fusionen los dos productos. De hecho, con Flash MX 2004 te "regalaban" FMS (se llamaba Flash Comm Server) y componentes para hacer un video chat completamente operativo, pero eran todavía Macromedia y no tenían esta "querencia por la pela" que muestra Adobe.
Un saludo.
juandelgado
Pero FMS es mucho más que eso ¿no? Para mi sí tiene sentido que te den acceso al audio y video en el cliente porque es en el cliente donde pasa, es como el teclado o el ratón. Otra cosa es que lo quieras grabar o emitir, pero tener acceso me parece algo natural. Para todo lo demás, pase usted por caja o por Red5.
¿No?
tpmmds
Hola:
Si me permitís hacer un poco de offtopic, y en relación al enlace anterior, me parece que está bastante complicado que desde Flash (la herramienta) se pueda tener acceso total al audio/vídeo, porque entonces... ¿quién iba a comprar FMS? Y más ahora que se avecina la tv por Internet. En el momento que con Flash (sólo, sin ningún tipo de herramienta adicional) se pudiese capturar audio y vídeo, se acabó el chollo del streaming.
No sé, si se acentúa la tendencia y Flash acaba dedicado mayoritariamente a servir contenidos de vídeo, quizá Adobe fusione en un sólo producto Flash y FMS; pero vamos, me parece que no es algo que se esté planteando Adobe.
Un saludo.
P.D.:Siempre queda la alternativa Open Source de Red5
ventdaval
+1 :)
tpmmds
Hola:
En "teoría" esta funcionalidad busca temas de este estilo (video vigilancia, por ejemplo, si consideramos vídeo y audio). Pero como dices, coincido que actualmente es impensable ponerlo en práctica en comparación con otras aplicaciones desarrolladas directamente, por ejemplo, en C, y para las que Flash sólo sea la interface. Eso sí lo veo más viable, sobre todo con la potencia de cálculo y estabilidad que aplicaciones en este sentido requieren.
Y vuelvo a repetir, aunque parezca algo pesado, que nunca me plantearía hacer nada de esto para la web.
Un saludo.
ventdaval
ah vale, el tema es que si ya estas enviando el sonido al server, mejor hacer todo el analisis alli, y enviarle a flash las intrucciones ya procesadas, no?
En cualquier caso, por el momento me parece impensable depender de la latencia con el server para manejar una interfaz por voz...
tpmmds
Hola:
Si estás haciendo streaming con FMS (NO Flash Media Streaming Server, la gratuíta) la Clase SoundMixer sí puede acceder al espectro de un sonido emitido en streaming)
Un saludo.
ventdaval
tpmmds
¿cómo? :S
tpmmds
Hola:
En "teoría" sí se podría acceder al espectro de un sonido en streaming y analizarlo. El problema que veo es que, partiendo de que alguien se haya dado la "pechá de trabajá" de programar toda la parte del lado del servidor, de captura de audio, filtrado, análisis de la onda, adaptación de código de reconocimiento de voz en Java o C, a AS3, etc. Se va a encontrar con un serio problema: AS3 está aún a años luz en "potencia de cálculo" con respecto a otros lenguajes que sí pueden afrontar este tipo de tareas.
Y otro tema que comenté más arriba: yo sólo me plantearía algo de este estilo si tuviese cierto control sobre el hardware y el entorno en el que se va a aplicar. Me explico, nunca lo haría para utilizarlo en una página web, NUNCA. ¿Por qué? Muy sencillo, porque te pones en manos del usuario, y con mucha suerte tendrías un 20-30% de personas que no sabrían instalar el micrófono, que tienen el cable roto, que no atinan con autorizar a Flash para que acceda al microfono (paso INELUDIBLE siempre), etc. Una pesadilla: me imagino al jefe, día sí y día también preguntando por qué fulano de tal no puede utilizar la aplicación.
Un saludo, y ánimo a los valientes ;-)
juandelgado
Jajajaja, Vent, te me has adelantado, iba a postear ahora mismo. Para que quede claro y, contrario a mi idea inicial, ahora mismo seria completamente imposible hacer reconocimento de voz, precisamente porque no hay acceso a la informacion del micro.
Lo que acaba de postear Vent es una peticion para que eso cambie.
Ea!
ventdaval
por cierto:
http://www.getmicrophone.com/
;)
kaax Staff
en Java hay unas apis que estan pensadas para ello, yo las estuve mirando hace unos años para un proyecto personal.
Flash solo podria actuar como intermediario con el lenguaje de servidor (por ahora) por lo que una alternativa
podria ser hacer la web en html e incorporar un applet...aunque es un buen curro, ya te lo aseguro. :)
http://java.sun.com/products/java-media/speech/forDevelopers/jsapi-doc/index.html
ventdaval
Que yo sepa, con flash aun es imposible obtener cualquier tipo de dato del sonido del microfono, por lo que yo diria que es imposible hacerlo sólo con flash (segun se, ni siquiera se puede obtener el spectrum del micro en flash)...
La unica manera de hacer algo asi, que yo sepa, es a traves de flashcomm, red5, etc... y luego usar alguna libreria en java o C, pero aun asi, es una carga bastante chunga para el server, sobretodo si lo que se busca es una respuesta mas o menos rapida para manejar una interfaz ;)
ga_rule
Yo de programación flash estoy bastante pez... pero cuando hemos hecho algun video en flash accesible para invidentes, hemos ido testeando con la ayuda de esta gente. Si te pones en contacto con ellos quizas puedan orientarte en algo :-)
cutcopy
buenas compañeros
Pues estoy de acuerdo con zárate y con tpmmds voy a seguir con la documentación, en principio no es algo que corra prisa,como ya os dije es inquietudes que me rondan y que lamentablemente mis conocimientos sobre el tema me impiden desarrollarlos.
Pondré aquí todo lo que consiga sobre el tema y lo compartiré con vosotros.
tpmmds al habla otro andaluz :)
tpmmds
Hola:
Parece que no estás buscando una "página accesible" para invidentes, ya que lo que se puede conseguir es que el invidente con un lector de pantalla vaya "viendo" lo que hay en pantalla (gracias a que se lo va describiendo) y con la voz active el botón que desee en cada momento, lea el texto que le interese, oiga una descripción de una imagen, etc. Esto en principio es lo que se podria hacer implementando la accesibilidad en la aplicación Flash.
Pero a tí lo que te interesa es que el usuario diga: "Siguiente vídeo", por ejemplo, y se cargue un nuevo vídeo en Flash. Esto lo veo complicado ya que como dice Zárate tendrías que desarrollar toda una library de clases de reconocimiento de voz y en castellano. Me suena haber visto algo de reconocimiento de voz con AS2 hace tiempo, lo he estado buscando pero no lo he localizado, y creo recordar que estaba muy "verde". Sería cuestión de que buscaras algo; por experiencia, y después de buscar un rato, se suele encontrar algún proyecto de CUALQUIER COSA que se te pueda ocurrir en Flash :-)
Otra opción es que utilices alguna aplicación en C, o java, de reconocimiento de voz y ésta informe a Flash de lo que el usuario va diciendo. En java sí que hay bastantes proyectos, pero los que "funcionan" suelen estar en inglés.
Me parece un proyecto muy interesante, pero un mundo, algo bastante complicado. Generalmente a estos programas hay que "educarlos" para que reconozcan al usuario y la forma de expresarse que tiene (no es lo mismo decir "atrás" que "atrah") , y te lo dice un andaluz ;-)
Un saludo.
juandelgado
Muy buenas,
Tengo una pregunta ¿estáis seguros que esa forma de navegar es buena para invidentes? Porque una cosa es lo que nosotros _creemos_ que les va a facilitar la vida y otra muy distinta la realidad. Ojo, que no digo que no sea buena idea y que no valga la pena contarlo, pero me gustaría saber si lo habéis comentado en foros de invidentes y tal.
Después de la duda inicial, las dudas técnicas. Que yo sepa no hay librerías para reconocer la voz en ActionScript. Una cosa es que puedas detectar que hay ruido a través del micrófono y otra muy distinta reconocer lo que dice. Si yo tuviera que empezar, buscaría algo Open Source hecho en C o Java y trataría de portarlo a AS3. Luego claro habría que ver tema de rendimiento, fiabilidad, idiomas (qué pasa si entra un invidente inglés, alemán, etc..).
Sobre si el proyecto sería viable o no... pues nada es imposible si tienes el presupuesto y el tiempo, pero desde luego no parece nada sencillo : )
Salud!
cutcopy
buenas de nuevo, estoy con la documentación del proyecto:
Por si a alguien le interesa voy poniendo info, mientras la gente se anime a contestar:
adobe video guide