Si quisiera simular pulsaciones de teclas a través de una línea telefónica, ¿podría simplemente reproducir tonos de marcación?

Estoy tratando de armar una API que se ocupe de la molestia de minutos de presionar teclas para conectarme con una persona. "Para español, presione 4. Para facturación, presione 1. Para..."

Desafortunadamente, parecería que la mayoría de los servicios telefónicos programables no emiten tonos de marcación. Pero muchos reproducirán mp3 para música de espera. Si acabo de crear un MP3 que contiene el tono de marcación deseado y lo reproduzco en la línea, ¿el otro extremo lo registraría como una pulsación de tecla? ¿Qué tan preciso tendría que ser?

¿Cómo sabrá qué opciones seleccionar?
@IanBland Procesamiento del lenguaje natural. Este es un proyecto de código para ver si, al menos la mayor parte del tiempo, algún código puede ayudarme a superar la molestia inicial y luego llamarme una vez que se conecte con una persona.
Creo que desea generar tonos DTMF, como los producidos por el teclado de un teléfono, no el "tono de marcar" que usa la compañía telefónica para indicar que puede marcar su número.

Respuestas (2)

Los tonos DTMF siguen esta tabla: -

ingrese la descripción de la imagen aquí

En otras palabras, se producen dos tonos, por lo tanto, cualquier decodificador DTMF/touchtone está buscando dos tonos simultáneos. Es poco probable que active una detección falsa si algún tono relevante producido por su tono de marcación no coincide.

Si observa la hoja de datos del decodificador de tonos MT8870, tendrá una idea de dónde puede colocar su tono de marcación: -

ingrese la descripción de la imagen aquí

Cualquier tono por debajo de 500 Hz no tendrá la posibilidad de ser detectado correctamente, incluso si se generaron dos tonos y uno de ellos fue puntual en una frecuencia detectable.

Por supuesto, no hay garantía de que se esté utilizando un MT8870, pero le da cierta confianza al elegir un solo tono por debajo de 500 Hz.

¿Qué tan cerca tienes que estar?
Bueno, un decodificador dtmf puede distinguir entre 770 Hz y 697 Hz (las dos filas superiores), así que supongo que no debería estar más cerca de la mitad de esta distancia, pero si verifica los tonos de marcación que se usan en el mundo, generalmente es inferior a 300 Hz.
La verdadera pregunta es si tal vez tiene 10 Hz de descuento, ¿simplemente rechazará la entrada y la tratará como otro audio?
Recuerde que tiene que generar ambos tonos simultáneamente para que funcione un detector de tonos táctiles, de ahí que dtmf signifique multifrecuencia de doble tono. Ver la edición de mi respuesta.

Tome una llamada a otro teléfono que tenga una capacidad de grabación de alta calidad. Grabe todos los sonidos de 0...9, * y #. Tenga cuidado con cualquier manejo molesto y sonidos ambientales. Deje también algo de espacio entre los sonidos para una huella de ruido. Lo necesitará en el editor de audio para limpiar todo el ruido de fondo estacionario (= siseo, zumbido).

El sistema DTMF está diseñado para tolerar cierta distorsión y cambio de frecuencia, por lo que su grabación debería estar bien al menos cuando el ruido se limpie (= sin silbido) y se filtre para estar libre de componentes de banda de frecuencia fuera de DTMF.

Recorte la grabación como archivos separados para cada sonido.

Acerca de la pregunta en el título : Sí, las máquinas de enrutamiento automático también deben manejar llamadas de teléfonos fijos que todavía tienen sonidos DTMF para presionar.

Offtopic : ¡Qué gran idea!

Una pista: agregue la posibilidad de escuchar fácilmente, tal vez un poco retrasado, pero desde el principio, lo que se responde si no hay una secuencia de "presione 1 para ..." o música de espera, pero un humano adecuado que quiere para servirte.

La música y las conversaciones de la máquina pulida como "todavía estás en la cola" deberían detectarse con bastante facilidad si ya tienes algún software de extracción de características serio disponible.

Las secuencias de sonido DTMF deseadas se pueden preinstalar para los objetivos más comunes y se pueden guardar nuevas sobre la marcha.

Mucho trabajo similar a la inteligencia artificial, ¡pero sigue siendo una gran idea!