Escuchar tonos DTMF y ejecutar acción. JAVA

japo.com

Bovino adolescente
#1
Hola qué tal amigos.
Me he aventurado a una búsqueda tanto en inglés como en nuestro bello español, para determinar que no he podido encontrar respuesta a mi problema.

Tengo entre manos un proyecto que básicamente consiste en crear un programa en java, que reconozca los tonos DTMF para después ejecutar una acción. Me di la libertad de crear este diagramita para ejemplificar.


Para ello me he enriquecido un poco, comprendí que necesito de una librería que me apoye para el reconocimiento de los tonos DTMF, la cual he conseguido con éxito. Aquí la liga https://dl.dropbox.com/u/32403683/TarsosDSP-latest.jar.zip

Esta la obtuve de una página muy rica en contenido, ejemplifican algunos .jar construidos partiendo de esta librería. Aquí el Link de la página https://github.com/JorenSix/TarsosDSP

Tristemente no consigo esto, me encantaría recibir ayuda de alguien que sepa de esto, pues en realidad mi especialidad no es la programación.

Aquí la ayuda se da en forma gratuita.....doctorsergio5
 

Salandrews

Bovino maduro
#2
¿Qué es lo que no consigues? ¿Qué es exactamente lo que necesitas? ¿Qué te desarrollen el programa? ¿Qué te ayuden a desarrollar el programa?

Revisando el link que colocaste, hay un programa de ejemplo que parecer hacer lo que quieres (está el ejecutable y el código):
http://tarsos.0110.be/artikels/lees..._Decoding_with_the_Goertzel_Algorithm_in_Java

El archivo de código que tiene el ejemplo es el siguiente GoertzelDTMF.java

Si tienes dudas más especificas, podrías ir actualizando el post y veremos como resolverlas.

Saludos!
 
#3
¿Qué es lo que no consigues? ¿Qué es exactamente lo que necesitas? ¿Qué te desarrollen el programa? ¿Qué te ayuden a desarrollar el programa?

Revisando el link que colocaste, hay un programa de ejemplo que parecer hacer lo que quieres (está el ejecutable y el código):
http://tarsos.0110.be/artikels/lees..._Decoding_with_the_Goertzel_Algorithm_in_Java

El archivo de código que tiene el ejemplo es el siguiente GoertzelDTMF.java

Si tienes dudas más especificas, podrías ir actualizando el post y veremos como resolverlas.

Saludos!

No, mira creo que en el diagrama lo explico muy bien amigo. Deseo hacer un programa que escuche y reconozca únicamente los tonos DTMF, al reconocer una frecuencia / tono el programa deberá mostrar una imagen en pantalla.
Quiero saber como llegar a ese resultado.

Desearía un programa que pueda editar para posteriormente agregar los tonos restantes y manipularlo para esos fines que busco, si no es mucho pedir me gustaría que reconociera también una secuencia; por ejemplo tres veces el número 5 con un intervalo de separación de 0.5 s, dando una respuesta diferente a si se escucha una vez en ese mismo intervalo.

Espero me comprendas hermano Bakuno, muchisimas gracias por ser el primero en responder.

Post Data. Por alguna razón no puedo contestar con mi cuenta de japo.com, creé una nueva con la que pienso dar un nuevo comienzo.
Gracias por la atención, generoso corral.
 
#5
Se emplea entonces un decodificador de tonos

Esto ya es en electronica

Mira esto:

Decodificador (decoder) DTMF con el MT8870-Ejemplo. Cómo programar en lenguaje C los microcontroladores PIC.

http://www.foxdelta.com/products/repeater/rpc2doc.pdf

http://www.atva.com.ar/dtmf_3dj/dtmf_3dj.htm

Sí amiga la electrónica es una opción, ya he hecho un decodificador, este me indica con un led cuando detecta una frecuencia. Está padre pero no funciona para el propósito que busco.

Esto es parte fundamental de un proyecto muy importante que compañeros y un servidor estamos desarrollando, consiste en dotar a un vehiculo de instrumentos para medición; pero dichos instrumentos necesitan comunicarse de forma remota vía señales de radio, las cuales llevaran encriptados los tonos DTMF, mismos que necesitan ser descompuestos en un programa informático.

¿Por qué? porque sería difícil capacitar a personal para que descifre cada pulsar de un led, en caso que fuera un sistema totalmente electrónico.


Propongo como ejemplo un cálculo bastante básico pero caro para ser ejecutado por electrónica como aquí se propone.
Supongamos que necesitamos medir la velocidad del vehiculo, en base a ello desarrollamos un modelo matemático que nos proporcione mediante calculos ese resultado. Por experiencia creo que sería más caro desarrollarlo de forma analógica por el costo de componentes.

Por otro lado veo más practico que un equipo lleve un par de laptop, conecte a la entrada de audifono la escucha del radio, abra el programa y empiece a desplegar los datos solicitados.
Además de que no estamos hablando sólo de medir la velocidad, esto se puede explotar de tantas formas que la imaginación es el límite.

Espero comprendan mi mensaje. Muchisimas gracias por interesarse en esto. Donde les pueda ayudar ó si se quieren involucrar en el proyecto serán bienvenidos.
 
#6
pues no vas a poder decodificar nada si no empleas decodiicadores DTMF a menos que REALICES un DRIVER o controlador para tarjeta PCI MÓDEM

Electrónica si o sí

o creas DRIVERS para poder capturar los tonos ANALOGICOS y eso requiere de Ingeniería, FIRMWARE y SOFTWARE aparte de DATASHEETS de MUCHOS controladores Módems
 

RyukInside

Bovino maduro
#7
Creo que requieres un analizador de frecuencias analógico que te lea los tonos y te regrese datos de manera digital. Como te mencionan arriba, eso ya requiere meterse más con electrónica.
 

RyukInside

Bovino maduro
#8
Disculpa, según leo ya tienes un decodificador que te muestra a través de leds los tonos. Entonces puedes enviar pulsaciones a la computadora a través de un puerto paralelo y corres un servicio que te esté escuchando éstos datos que llegan, es algo muy sencillo de hacer.

Puedes usar un ordenador con puerto paralelo o utilizar un convertidor como éste: http://www.anuncio.net/images/anunc...lo-a-usb_e9c0d665315bf3a40b33c43c4cc934fe.jpg

Yo hice algo parecido en C#, supongo que es posible también hacerlo en Java. Saludos.
 
#9
Amigos simplemente no puedo hacerlo por hardware, no debe ser así por cuestiones del proyecto.

En la página a la que entré y donde recopilé la información hay una aplicación .jar con la que se produce un tono, al dar el tono correspondiente se obtiene un puntaje y marca en rojo una barra.

Esta aplicación cumple y hace en cierta parte lo que necesito, hay una entrada del tono y se obtiene una acción. Es eso lo que necesito.
Pero no sé como modificar el archivo ya que no poseo conocimientos del java.
 
#10
Por lo que veo deseas realizar una especie de ivr para ello necesitas herramientas de terceros que te faciliten el acceso a la tarjeta que decodifica y escucha el ivr con el java.

Pronexus, syntellect, genesis son herramientas que utilizan codigo de java para recibir datos dtmf desde cualquier telefono, solo habria que realizar la accion que desees.

Opciones
Para consultas presione 1
Para pagos presione 2
Para salir del sistema presione 3

Esta informacion deberá decirtela el ivr para que luego selecciones la opcion deseada y ejecutes la accion requerida, pero para esto necesitas herramientas de terceros, java, una tarjeta dialogic, cualquier windows server preferible.

saludos,

Rolando desde Panamá
 
#11
ya entendí lo que quieres hacer, quieres modificar el archivo JAR que te genera con JAVA
Pues tendrás que buscar el código fuente y Aprender a programar con Java empleando el SDK y NETBEANS si quieres compilar ese JAR

ya revisé el código y el responsable de detectar los tonos es el archivo Goertzel.java

echa un vistazo:

https://github.com/JorenSix/TarsosDSP/blob/master/src/be/hogent/tarsos/dsp/pitch/Goertzel.java

ahí lo tienes, tendrás que aprender a usar ECLIPSE porque el código tiene esa sintaxis
 
Arriba