Pregunta

Hola, me preguntaba si usando la clase de generador de tonos de Android sería posible crear un tono en un dispositivo y escuchar este mismo tono en otro dispositivo.Si esto es posible, tengo algunas otras preguntas.

Teniendo en cuenta el ruido de fondo, ¿es posible escuchar solo este tono específico?

¿Este proceso consumiría muchos recursos?

¿Puedo usar un tono que sea inaudible para el oído humano o cercano a él?

Por último, ¿podría usar un tono que solo se pueda escuchar a un par de pies del dispositivo de envío?

Muchas gracias por su tiempo, chicos y chicas :)

Editar> Gracias por agregar la etiqueta de procesamiento de audio sabastian.Descripción mucho mejor.

¿Fue útil?

Solución

Sería un uso intensivo de la CPU, sí. El camino es bastante simple: necesita una grabadora permanente que ponga los datos recibidos en una FFT (transformada rápida de Fourier). FFT básicamente hace una cosa: divide el audio en una escala de frecuencia / potencia. Con este resultado de "limpieza de ruido de fondo", puede verificar cosas como "¿hubo un tono con 1000Hz reproduciéndose durante al menos 2 segundos?" Y actuar en consecuencia. Hay una implementación de FFT de velocidad razonable aquí: http://www.badlogicgames.com/wordpress/? p= 449 FFT también se puede usar (en realidad, IS se usa) para la detección de marcación de doble tono (DTMF): 2 frecuencias al mismo tiempo es mucho mejor que usar solo una (ya que la tasa de error disminuye significativamente y puede reducir la duración del envío de tono / detectando).

"Inaudible" no será posible, ya que (a) el altavoz no puede producir tales sonidos (b) usted está limitado en la frecuencia de muestreo, por lo que también está limitado tanto en la producción como en la grabación de frecuencias tan altas.

Naturalmente, se impondrán "un par de pies" (altavoz no muy alto, micrófono no muy bueno).

Otros consejos

Eche un vistazo a esta otra pregunta: "Android: necesita grabar la entrada del micrófono".Creo que puede modificar eso para su tarea, luego con bytes de sonido puede tener filtrado o FFT.

Espero que te ayude

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top