7 votos

Forma de evitar el ruido cuando 2 teléfonos están juntos

Al utilizar una aplicación, por ejemplo Wechat, para tener videochats.

Dos teléfonos Android A y B están sentados en la misma habitación. Los dos usuarios de A y B inician un videochat con los teléfonos móviles C y D en otra ciudad, cuando los dos usuarios de C y D también están sentados en la misma habitación.

Es decir, el teléfono A está llamando al teléfono C; el teléfono B está llamando al teléfono D.

Cuando empezaron los videochats, debido a que los teléfonos A y B, C y D están cerca uno del otro, empezaron a aparecer ruidos agudos.

¿Cuál es la forma de prevenir estos ruidos en los videochats?

Gracias.

ingrese aquí una descripción de la imagen

18voto

Andrew T. Puntos 2107

Este fenómeno se llama realimentación de audio, que suele ocurrir cuando el sonido de los altavoces vuelve al micrófono y luego se amplifica debido al lazo de altavoz-micrófono.

Las soluciones comunes y generales son cortar el lazo, o al menos reducir la ganancia del lazo mediante:

  1. Usar auriculares (aislar el altavoz y el micrófono, prevenir completamente el lazo de realimentación)
  2. Silenciar el micrófono cuando no se necesita hablar (prevenir la posibilidad de un lazo de realimentación)
  3. Reducir el volumen del altavoz (reducir la ganancia de volumen)
  4. Tomar distancia entre los altavoces (reducir la ganancia de volumen)

0 votos

Teniendo en cuenta que se trata de un fenómeno físico, no estoy seguro si existen soluciones específicas para Android, aunque también me interesa saber si las hay... ¡considera publicarlo como respuesta!

3 votos

El teléfono "sabe" el sonido que está emitiendo desde sus altavoces y, por lo tanto, podría restar eso de lo que está grabando en el micrófono. Esto es similar a la cancelación de eco. Esta sería una cosa que se puede hacer en software. Aparte de eso, las técnicas básicas de "higiene acústica" que enumeraste son las más efectivas. ¡No hay necesidad de algoritmos complejos de supresión de retroalimentación si no hay retroalimentación que suprimir!

6 votos

@JörgWMittag Restar no funcionaría cuando están involucrados dos teléfonos.

6voto

t.rathjen Puntos 88

Antes de que las técnicas de cancelación de retroalimentación se volvieran comunes, dicho efecto ocurría incluso con un par de teléfonos, por ejemplo, teléfono A llamando a teléfono C. Si ambos teléfonos están en altavoz, entonces la señal emitida por el teléfono A entraría al micrófono de A y se transmitiría al teléfono C, donde la misma retroalimentación entre el altavoz y el micrófono la retransmitiría de vuelta a A, etc:

SPK_A -> MIC_A -> SPK_C -> MIC_C

Este problema se evita restando la señal de salida del altavoz de la entrada del micrófono. Sin embargo, para que esta resta de software funcione, el teléfono A necesita saber qué restar: si A es el único teléfono en la habitación, puede restar su propia salida de altavoz, y la cancelación de retroalimentación funciona como se pretendía.

Con un segundo par de teléfonos, la cancelación de retroalimentación falla porque la señal emitida por el teléfono A es captada por el teléfono B en su lugar. Como el teléfono B no sabe qué señal estaba emitiendo A, no puede restarla de su entrada de micrófono, y la envía al teléfono D:

SPK_A -> MIC_B -> SPK_D -> MIC_C

Existe un segundo bucle de retroalimentación (simétrico) que es posible:

SPK_B -> MIC_A -> SPK_C -> MIC_D

Como puedes ver, los bucles están cerrados, y no hay oportunidad para que el software de cancelación de retroalimentación rompa esos bucles.

Para prevenir el ruido, tendrás que romper físicamente los bucles cruzados entre teléfonos, por ejemplo, silenciando ambos altavoces (cambiando a auriculares) en una de las habitaciones (por ejemplo, A y B), o en una de las llamadas (por ejemplo, A y C).

De hecho, silenciar los micrófonos, estar en habitaciones separadas o tener una sola llamada a la vez también ayudaría, pero supongo que esas no son opciones reales.

0 votos

Esto depende en cierta medida de la implementación de la cancelación de retroalimentación: también puede reducir automáticamente el nivel de ganancia/ajustar un filtro de muesca si se detecta un componente de alta frecuencia en aumento, que es cómo funcionan unidades como esta behringer.com/Categories/Behringer/Signal-Processors/… pero no sé si ese enfoque está implementado en los teléfonos.

0 votos

@PeteKirkham Suprimir el tono alto con un filtro solo funcionará cuando el retardo de retroalimentación esté fijo y sea muy pequeño (en milisegundos de un solo dígito), como entre un micrófono y altavoces en un escenario. Los teléfonos móviles pueden retrasar el audio durante cientos de milisegundos, lo que significa que tendrás que filtrar todo el rango de audio para eliminar la retroalimentación.

0 votos

Ha pasado mucho tiempo desde que los procesadores de señal digital eran capaces de detectar la frecuencia pico de un espectro e implementar un filtro estrecho en cualquier punto del rango de audio. Ambos eran parte del trabajo del curso cuando hice mi primera licenciatura en electrónica a finales de la década de 1980.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X