martes, 4 de diciembre de 2012
este código lo que hace es cargar los reportes que genera el detector de movimiento en un txt y los gráfica así se puede ver como la intensidad que se produce durante la exposición puede verse en 3D o normal en también en tipo cilindro o normal este es el ultimo paso que completamos en ADE y así el programa se puede decir que esta completo al 100%
este es el detector de movimiento este hace la función principal del software pues en este formulario encontramos la opción de grabar el sonido y el vídeo que se produce durante la disertación también es aquel que lleva el tiempo que pasa durante esta misma a través de un cronometro
en la imagen se puede ver el formulario final de lo que sera el sensor de movimiento de ADE
aquí se puede ver lo que es el detector de movimiento completo lo que hace este pequeño programa es capturar las ondas que se producen cuando el usuario habla
consta con tres niveles bajo, medio y alto el cual se puede configurar por parte del usuario.
en la imagen se puede ver el programa ya completo e integrado a ADE.
domingo, 10 de junio de 2012
Grabador de sonido
Aqui mostraremos un grabador de sonido hecho en visual basic que guarda los archivos en mp3 la funcion que cumplira este grabador es de hacer un registro de la presentacion de cada integrante del grupo asi ademas de analizar si hablo abjo o alto tambien se tendra un registro.
aqui les dejo un video del codigo:
domingo, 13 de mayo de 2012
La solucion al detector de sonido
El problema que se tenia en el detector de sonido era la variacion muy rapida que tenia osea me explico cuando uno decia "gato feo" el flash variaba de "muy bajo" a "muy fuerte" cada milisegundo entonces la solucion que encontramos es en el implementar en el codigo "setInterval" lo que hace esta frase es pasar los milisegundos a segundos y asi solucionamos que no variara muy rapido aqui dejaremos insertado el flash para que lo prueben
domingo, 1 de abril de 2012
Depurción del software SoundCatch
Solucion a la rerpoduccion de sonido
El problema del soundcatcher fue que al capturar el sonido media también lo reproducia el sonido que capturaba y se producia un eco eterno entonces ese problema solamente se soluciono con integrarle un mute que al capturar sonido no lo reproducira el software solo lo escuchara atraves del microfono estara la opcion de recuperar el sonido desactivando el mute volviendo el sonido para escuchar lo grabación
sábado, 10 de diciembre de 2011
Detector de movimiento en visual basic 2008
Detector de movimiento
Por que un detector de movimiento de esta calidad??
Es necesario un detector de movimiento de este tipo ya que los anteriores no tenian esa sencillez de deteccion de movimiento ademas este software tiene 4 diferentes modos para la deteccion de movimiento y es muy util para el proyecto ya que cuando una persona presente su exposicion el software detectara si mueve sus manos o el cuerpo de un lado para el otro asi se le podra exijir mas y que saque mayor personalidad al momento de exponer y tambien observar con mayor detalle sus deficiencias.
Chicos que han visitado el blog les agradesco su interes aqui les dejares unos links sobre una persona que que realizo una webcam que detecta movimiento y mediante un boton avisa si hay o no hay movimiento
Visiten este blog
Rolando Pari Sucasaire - Sistemas
Descargar
Sensor de Movimiento WebcamEl nuevo software de sonido (SoundCatcher) en visual y agregado en flash.
Por que nos cambiamos a visual basic??
Los motivos de porque nos cambiamos a visual y no nos quedamos con java es por que no encontravamos un software mejor que el que habiamos mostrado anteriormente de sonido ademas de no encontrar un software de deteccion de movimiento en webcam mejor al cambiarnos de plataforma se nos facilito arto el trabajo ya que en opencv habian muchos software de deteccion de movimiento en webcam trabajados en c++ y bueno buscando softwares en visual encontramos este de audio el SoundCatcher que es abstante bueno y es lo que buscabamos y de webcam tambien encontramos uno bastante bueno en estos momentos no hay nada preparado para mostrar pero ya veran el software de webcam que encontramos que esta buenisimo.
SoundCatcher + software creado por Dario en flash
Que es SoundCatcher??
Es un software en visual basic que al momento de reconocer sonido en un dispositivo de entrada, inicia una grabacion de sonido y grafica espectogramas en tiempo real.
A este software le agregamos un panel de en Adobe Flash que es capaz de indicar la cantidad de saturacion en el microfono del computador, dando por resultado mensajes que indican que tan fuerte o bajo está el nivel de sonido. La mayor complicacion de este pequeño proyecto fué encontrar la manera de combinar nuestro flash con el proyecto existente dentro de Visual.
Aqui el sitio donde fue descargado el codigo de SoundCatcher: SoundCatcher(Por Jeff Morton)
Aqui un video de como funcion y ciertos errores que les puede ocurri al trtar de hacerlo funcionar
Descargar
SoundCatcher(Por Jeff Morton)Archivo descargabledomingo, 13 de noviembre de 2011
Graficador de espectros de audio en java
Aqui mostraremos lo siguiente que encontramos el graficador de sonido en java bueno no hay mucho que explicar ya que el codigo lo encontramos el blog de Rolando palermo Rodríguez Cruz y ahi se encuentra con mas detalles la informacion del codigo
sábado, 29 de octubre de 2011
Continuación de la segunda revisión
Aqui continuando con el segundo avance mostraremos informacion de softwares no terminados que detectan movimiento con un webcam y lenguaje java encontramos 2 sitios se los dejaremos marcados con la respectiva descarga del codigo fuente aqui:
sábado, 22 de octubre de 2011
Avance proyecto (Segunda revisión)
Esta es el siguiente avance que tenemos referente a nuestro proyecto que es la reproducción un tipo de formato de audio los formatos que logramos reproducir son WAV OGG y aquí se muestra el código que utilizamos para la reproducción de un sonido WAV que es un platillo de batería todo código referente al audio es sacado es de este sitio código reproducción de audio y como al principio mostramos el main que llama la clase para la reproduccion de el audio "wav2.wav".
Codigo que se utilizo para la reproducción del audio
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
new AePlayWave("wav2.wav").start();
}
}
Esta es la clase que llamad en el main para la reproduccion
import java.io.File;
import java.io.IOException;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.FloatControl;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.SourceDataLine;
import javax.sound.sampled.UnsupportedAudioFileException;
public class AePlayWave extends Thread {
private String filename;
private Position curPosition;
private final int EXTERNAL_BUFFER_SIZE = 524288; // 128Kb
enum Position {
LEFT, RIGHT, NORMAL
};
public AePlayWave(String wavfile) {
filename = wavfile;
curPosition = Position.NORMAL;
}
public AePlayWave(String wavfile, Position p) {
filename = wavfile;
curPosition = p;
}
public void run() {
File soundFile = new File(filename);
if (!soundFile.exists()) {
System.err.println("Wave file not found: " + filename);
return;
}
AudioInputStream audioInputStream = null;
try {
audioInputStream = AudioSystem.getAudioInputStream(soundFile);
} catch (UnsupportedAudioFileException e1) {
e1.printStackTrace();
return;
} catch (IOException e1) {
e1.printStackTrace();
return;
}
AudioFormat format = audioInputStream.getFormat();
SourceDataLine auline = null;
DataLine.Info info = new DataLine.Info(SourceDataLine.class, format);
try {
auline = (SourceDataLine) AudioSystem.getLine(info);
auline.open(format);
} catch (LineUnavailableException e) {
e.printStackTrace();
return;
} catch (Exception e) {
e.printStackTrace();
return;
}
if (auline.isControlSupported(FloatControl.Type.PAN)) {
FloatControl pan = (FloatControl) auline
.getControl(FloatControl.Type.PAN);
if (curPosition == Position.RIGHT)
pan.setValue(1.0f);
else if (curPosition == Position.LEFT)
pan.setValue(-1.0f);
}
auline.start();
int nBytesRead = 0;
byte[] abData = new byte[EXTERNAL_BUFFER_SIZE];
try {
while (nBytesRead != -1) {
nBytesRead = audioInputStream.read(abData, 0, abData.length);
if (nBytesRead >= 0)
auline.write(abData, 0, nBytesRead);
}
} catch (IOException e) {
e.printStackTrace();
return;
} finally {
auline.drain();
auline.close();
}
}
}
miércoles, 5 de octubre de 2011
Avance del proyecto (Primera revision)
Informacion sobre JMF
Sobre JMF la informacion fue bastante escasa ya que manuales para el uso del framework no hay ademas de ser antiguo y tener pocas actualizaciones que lo hacen incompatible con algunos codecs en lo que es reproduccion de audio pero si hay foros en la que publican el uso que le dieron al framework orientado a la utilizacion de webcam y publican los codigos la pagina que fue abstante util fue jc-mouse(Captura de video con webcam) en la que utilizamos arios codigos para nuestro proyecto.
Codigos que se utilizaron para conectar la webcam
import java.util.logging.Logger;
import javax.media.*;
import javax.media.cdm.CaptureDeviceManager;
import java.io.*;
import java.awt.*;
import javax.swing.JOptionPane;
/**
* @web http://jc-mouse.blogspot.com/
* @author Mouse
*/
public class jmfVideo {
//Controlador universal de windows
private String dispositivo = "vfw:Microsoft WDM Image Capture (Win32):0";
private Player player = null;
public Component Componente(){
Component componente_video;
try {
// Se obtiene el dispositivo
CaptureDeviceInfo device = CaptureDeviceManager.getDevice(dispositivo);
//se obtiene la fuente de datos de captura
MediaLocator localizador = device.getLocator();
//El localizador es del tipo "vfw://0" video para windows
//se crea el PLAYER y se ejecuta
player = Manager.createRealizedPlayer(localizador);
player.start();
} catch (IOException ex) {
Logger.getLogger(jmfVideo.class.getName()).log(Level.SEVERE, null, ex);
} catch (NoPlayerException ex) {
Logger.getLogger(jmfVideo.class.getName()).log(Level.SEVERE, null, ex);
} catch (CannotRealizeException ex) {
Logger.getLogger(jmfVideo.class.getName()).log(Level.SEVERE, null, ex);
}
//Si se pudo crear el PLAYER, se obtiene el componente de video
if ((componente_video = player.getVisualComponent()) != null) {
//se da un tamaño al componente
componente_video.setSize(320, 240);
return componente_video;
} else {
JOptionPane.showMessageDialog(null,"No se pudo crear el video...");
return null;
}
}
}
jmfVideo b = new jmfVideo();
/** Creates new form video */
public video() {
initComponents();
this.setTitle("WebCam - by Mouse");
//formulario al centro de la pantalla
this.setLocationRelativeTo(null);
//se da un tamaño al jFrame
this.setSize(320, 240);
//se coloca un layout tipo CAJA
getContentPane().setLayout(new javax.swing.BoxLayout(getContentPane(), javax.swing.BoxLayout.LINE_AXIS));
//se añade el componente de video
this.add( b.Componente());
}
Video de captura de video con jmf
jueves, 15 de septiembre de 2011
Herramientas finales para el desarrollo
El framewoork a utilizar
Como habíamos mencionado en las publicaciones anteriores el lenguaje que utilizaremos para el desarrollo del software es java y el framework
Que encontramos es el "java media framework" este framework utilizar por su sencillez de usar para tareas complejas y su manipular de elementos de audio y video es muy útil para el desarrollo de nuestro trabajo ya que nuestro proyecto se trata de detectar el sonido de voz y movimiento.
analisis de la plataforma de desarrollo
Si nuestro software tiene éxito en su desarrollo en java el software seria de multiplataforma.
Perifericos a utilizar en el proyecto
Webcam: Logitech Webcam c/mic C270 HD
Esta webcam fue escogida por ser reconocida entre las de mejor calidad por su buena calidad de captura de videos y fotos también por sus positivas críticas sobre el producto y ser un producto económico y de calidad ya que también tiene una alta definición d e720 pixeles con pantalla panorámica con mayor fluidez y nitidez y con una calidad de fotos de 3 megapíxeles.
El micrófono Logitech a sido escogido por el filtro de ruido es muy útil ya que en una disertación existen muchas intervenciones de ruidos como de autos, camiones, etc. y hasta los mismos alumnos así que con este filtro se hace mucho más fácil la detección de la nitidez de la voz del estudiante.
Diagramas
Diagrama cass de uso
Diagrama de secuencia
Diagrama de estaddo (software)
Diagrama de estado (Camara)
Diagrama de estado (Microfono)
Factibilidad
Motivos de estudio
Como se origino el estudio
El estudio nace de la total ausencia de en el mercado, de un software que sea capaz de cubrir la necesidad de una ayuda para las personas que tiene problemas para hablar en publico. Es sabido que gran parte de la población mundial sufre de distintos problemas para expresarse en público. Tartamudeo, olvido del tema, temblores y hasta inclusive dolores estomacales son algunos de los síntomas que se presentan en personas que sienten “nervios” o vergüenza estando frente a un grupo de personas atentas a juzgar y evaluar sus conocimientos. Se concibe la idea en base a nuestros propios problemas para expresarnos en público teniendo como base nuestra propia experiencia, y la oportunidad de solucionarlo, quizás, de manera definitiva.
Problemas basicos
Entre los primeros problemas que se pudieron identificar dentro de la concepción del proyecto estuvieron los siguientes.
- Desconocimiento de la implementación de detectores de movimiento.
- Plataforma en la cual trabajar.
- Saber si convenía mas “grabar y evaluar” o “Evaluar mientras se graba"
Procedimientos
Para la concepción del sistema se ha pensado en testear el software con los mismos programadores y diseñadores ya que, como se detallaba anteriormente, los 2 integrantes del grupo sufren este tipo de problemas, a futuro, pensamos implementarlo a un grupo de niños para comprobar “que tan amigable” puede llegar a ser con los mas pequeños, puesto que, es sistema también está pensado para ellos.
Dentro de las ventajas que incluía el enfocar el software a tutores o profesores se enumeraron las siguientes:
- El desarrollo (en términos metodológicos) es mas fácil puesto que no necesita investigación sobre métodos de enseñanza o el “como llegarle a los mas pequeños”
- Se necesita de una herramienta totalmente aprobada por la visión de cada profesor en su forma de evaluar. No pudiendo ser enfocado de manera general
- El nivel de presión de los alumnos con problemas para hablar en publico aumentaría aun mas al estar evaluado, además de por el profesor por un software informático.
Factibilidad tecnica
El mundo de la informática y la computación nos ofrecen una cantidad considerable de opciones para el desarrollo del sistema. Además de los distintos motores de programación, se cuenta con un scripts y técnicas para utilizar tanto el reconocimiento de movimiento como el de sonido. De esta manera se le puede sacar el máximo provecho a nuestros conocimientos sin derroche de tiempo.
Factibilidad economica
Se tiene pensado crear el software con herramientas 100% gratuitas, puesto que se tiene en claro el gran potencial de herramientas sin costo y la cantidad de ayuda que se puede conseguir desde la red global al trabajar con estos sistemas. Además, el software no requiere más periféricos que una cámara y un micrófono de gama media. De esta manera, se determina que los costos económicos del proyecto son mínimos y no afecta la creación del mismo.
domingo, 11 de septiembre de 2011
Tegnologias a usar
Reconocimiento de voz.
Un sistema de reconocimiento de voz es una herramienta computacional capaz de procesar la señal de voz emitida por el ser humano y reconocer la información contenida en ésta, convirtiéndola en texto o emitiendo órdenes que actúan sobre un proceso. En su desarrollo intervienen diversas disciplinas, tales como: la fisiología, la acústica, el procesamiento de señales, la inteligencia artificial y la ciencia de la computación.Utilidad.
Una herramienta de reconocimiento de voz nos ayudaría para medir varias aspectos en una exposición común y corriente:- Cuando el expositor se queda callado por mucho tiempo.
- Cuando tartamudea.
- Cuando está hablando a volúmenes incorrectos.
Programas que utilizan la tecnología.
Entre los destacables tenemos:Detección de movimiento.
Un detector de movimiento es un dispositivo electrónico equipado de sensores que responden un movimiento físico. El sistema puede estar compuesto, simplemente, por una cámara de vigilancia conectada a un ordenador, que se encarga de generar una señal de alarma o poner el sistema en estado de alerta cuando algo se mueve delante de la cámara.Programas que utilizan la tecnología.
Entre los destacables tenemos:
Diseño del personaje digital.
Utilizaremos una herramienta de modelado de gráficos en 2D o 3D para crear y animar nuestro personaje digital. Blender + Makehumans parece una apuesta interesante, debido a que nuestra habilidad como dibujantes deja bastante que desear, Makehumans, bajo ciertos parámetros crea un humano digital rápidamente. Luego, con Blender se le puede dar movimiento.Lenguaje de programación.
Nos gustaría diseñar el software bajo Java, puesto que es multiplataforma y de código libre, además que es muy poderoso. De todas formas, esta es una idea tentativa, puede que mas adelante encontremos algún lenguaje que se acomode mas aun a nuestro requerimientos.miércoles, 7 de septiembre de 2011
inicios del proyecto primeras etapas
Motivación:
La idea de este proyecto nace de la total ausencia en el mercado informático de un software capaz de satisfacer la ayuda necesaria para poder hacer una buena disertación cuando se tienen problemas para hablar en público. Cabe destacar que nosotros mismos tenemos este tipo de problemas, por lo que el software comenzaría por ayudarnos a nosotros mismos.Descripción del problema:
La habilidad para hablar en público es una de las más complejas para el ser humano. Nos exponemos delante de un grupo de personas y se ponen a prueba nuestros conocimientos y habilidades. La mayor parte de las personas sienten ansiedad a la hora de enfrentarse a un auditorio, es uno de los miedos más frecuentes, que afecta de manera clínica a un porcentaje muy amplio de la población (20 %). Y no por falta de formación o conocimientos, incluso, aunque dispongamos de las habilidades necesarias, el miedo o tensión pueden bloquearnos y disminuir la eficacia de dichas presentaciones.Potenciales Usuarios:
Los potenciales usuarios del sistema serían todas aquellas personas (Colegiales, universitarios e inclusive trabajadores) que necesitan entrenarse para mejorar su capacidad de exponer antes de la misma, o bien, si necesitan un apoyo a la hora de disertar.Viabilidad
Necesidades del negocio en el sistema propuesto:
En las áreas, laborales, universitarias y colegiales no se explota mucho el desarrollo de habilidades para hablar en público y casi no hay talleres para mejorar la confianza y autoestima de las personas para que el momento de hablar en público sea correcto y gratificante en vez de una tortura. El proyecto se sustenta en esta ausencia dentro del mercado para presentarse como un software innovador dentro del área.Estudio de los beneficios que producirá el sistema:
Los beneficios que entregaría este software son los siguientes:- Aumentar la confianza del expositor a la hora de Hablar en público.
- Mejorar la expresión corporal y verbal del expositor.
- Aumentar el autoestima del usuario.
Funcionalidad del proyecto:
Cuando el usuario comience a exponer el software, mediante las cámaras y el micrófono, monitoreará las acciones físicas y verbales, avisando de manera auditiva cuando se está incurriendo en un error para tratar de solucionarlo en el momento. Por ejemplo, estar hablando muy bajo, tartamudeando, teniendo poca expresión corporal etc. Una vez detenido el programa este entregará una evaluación respecto a como lo hizo el expositor y sugerencias para mejorar el error más repetitivo.jueves, 1 de septiembre de 2011
Ayudante de exposición, los inicios.
No podíamos encontrar un proyecto original y atractivo para crear, entonces, Adrían tuvo la idea y dijo: "Podríamos crear un sistema que fuera capaz de dar ayuda a personas que tengan problemas para disertar, yo nunca he podido encontrar uno y la verdad es que con mis propios problemas para hablar en público esto sería genial". Ahí la chispa simplemente encendío, ibamos a hacer un software que ofreciera todo la ayuda necesaría a una persona para mejorar su capacidad de hablar en público y/o pulir la esperticie ya obtenida.
Al día de hoy ya casí toda la parte de "informarse" está lista y solo necesitamos comenzar a programar.
Datos del proyecto:
En la proxima entrada les contaremos sobre los primeros pasos que hicimos para armar este proyecto.
Juan Carlos











