2011-02-02 11 views
7

Estoy buscando escribir algún software que me permita escuchar música mientras hablo con alguien por Skype. El problema es que si haces esto con parlantes, la música también se transfiere al otro usuario, que es lo que quiero evitar.Software de cancelación de sonido (interferencia destructiva) ¿herramientas en Linux?

Así que estaba pensando en escribir algo que, al escuchar la salida de mi aplicación de música, cancelará esos sonidos de la entrada de micrófono enviada a Skype.

He buscado Google un poco, pero tal vez alguien aquí puede reactivar este proyecto con algunos consejos/ideas/etc ...

EDIT: Alguien ha utilizado JACK antes?

Respuesta

7

Lo que quiere hacer es básicamente lo mismo que la cancelación de eco en telefonía.

http://www.voip-info.org/wiki/view/Asterisk+echo+cancellation es una introducción simple. También eche un vistazo a las páginas para la marca y al cancelador de eco mark2 allí y al mencionado TI application note.

También este sitio: http://www.embeddedstar.com/articles/2003/7/article20030720-1.html explica la mecánica bastante bien.

Tendrá que interceptar tanto la salida del reproductor de música como la entrada del micrófono, y luego pasar las muestras a través de algún tipo de IPC en su proceso DSP. JACK realmente hace esto, pero configurar cosas (por ejemplo, ALSA-> puente JACK, si su reproductor de música y/o Skype no son compatibles nativamente con JACK como interfaz de sonido) requiere algo de habilidad.

Supongo que podría funcionar bastante bien, pero probablemente requiera un poco de CPU. Especialmente XRUNS (buffer de audio por debajo o por encima) puede ser realmente malo para su cancelador de eco, es decir, es posible que necesite parches de Linux en tiempo real. La implementación tampoco es trivial. Además, tener el sonido estéreo de su reproductor de música reducirá el éxito de su cancelación.

HTH

+0

Gracias por esta respuesta. Ahora intentaré bucear en :-) – o1iver

0

En general, cuando se trata de cancelación de ruido, que se debe a 2 cosas en orden de prioridad:

  1. hardware - ya sea un micrófono/auriculares con función de cancelación de ruido o el MIC tarjeta de sonido interna que ya construido en esa característica.

  2. Software: un buen ejemplo es Skype, AFAIK SKype le permite ajustar la calidad de audio, pero desafortunadamente la parte de ajuste hasta ahora solo existía en la plataforma de Windows. En Linux, puede elegir la opción de "Permitir que Skype ajuste automáticamente mis niveles de mezclador" en Preferencia> Dispositivos de sonido.

Mi entendimiento es cuando se trata de cancelación de ruido, lo que tiene que hacer frente a la programación del conductor de coche de sonido, actualmente no existe par de ruidos observó en futuras versiones de software de Ubuntu que realizan dicha función, no es here mencionados .

+0

Gracias por el enlace. Sin embargo, esto no es exactamente lo que quiero hacer. Teóricamente, no debería importar si el sonido proviene de skype/msn/etc o de dónde viene la música porque quiero gestionar eso en el nivel de interfaz de sonido (debajo de skype). Skype ni siquiera debería saber que esta aplicación se está ejecutando. Quiero modificar la señal de entrada (micrófono) de Skype antes de que llegue a Skype ... – o1iver

Cuestiones relacionadas