Retransmitiendo el audio 🔊 de tus aplicaciones con Google Meet

Google Meet y el audio de tus aplicaciones

Estos días en los que el COVID_19 nos ha sacudido a todos la vida, Google Meet tira humo. Los educurrantes andamos como locos inmersos en encuentros virtuales. Tratamos de coordinarnos con nuestros compañeros en mil reuniones etéreas. Y nos afanamos en aparentar una difícil normalidad en nuestras clases, que ahora han de desarrollarse ineludiblemente a distancia. Ya se sabe, ante la imposibilidad, virtualidad. Y por esta razón vivimos ahora entre meet y meet, si se me permite la aberración lingüística.

Meet es una excelente herramienta de videoconferencia. Probablemente no la mejor en términos absolutos, pero sí lo suficientemente buena. Es robusta, sencilla y potente, especialmente cuando se ve potenciada por ciertas extensiones para Chrome que se han publicado estos días tales como GridView o Nod. Y además se integra estupendamente con otros servicios de G Suite tales como Drive o Calendar. Ah, y tiene una herramienta de auditoría y calidad que es gloria bendita. De verdad de la buena.

Pero esto no va de echarnos los trastos a la cabeza para ver quién es la campeona de las funciones, de la privacidad, del código abierto ni de nada que se le parezca. El que quiera jugar a eso a mí no me va a encontrar (ahora).

Esto va de que cuando compartes con los participantes en un meet (ves, ya se me ha quedado) una ventana o el escritorio completo de tu ordenador, el audio del sistema se queda en casa y únicamente se transmite el que capta tu micrófono. Y en determinadas circunstancias esto no es deseable, claro, por ejemplo cuando durante el desarrollo de una sesión pretendes proyectar un vídeo instruccional (¡que sea corto, por dios!) ante tus alumnos.

Meet permite seleccionar, en su panel de configuración, el dispositivo de captura de audio por el que nos comunicaremos. Pero entre ellos solo aparecerán los, digamos, convencionales. En mi caso puedes ver el mic de la webcam (qué nombre tan bonito, ¿verdad?) y la entrada de mi tarjeta de sonido, una vetusta pero muy apreciada Asus Xonar STX (tuneada con amplificadores operacionales audiófilos, aunque esa es otra historia).

Selección de dispositivos de audio en Google Meet.



Sí, ya sé que el sonido que sale de nuestros altavoces se acaba colando en el micro, así que nuestra audiencia algo escuchará ¿no es así? Pero eso sonará a radio vieja metida dentro de un retrete. O peor.

Curiosamente, si cotilleas en esa vetusta y aparentemente en vías de extinción aplicación llamada Hangouts (a secas), comprobarás con estupor lo fácil que es enchufarle audio a una reunión que se desarrolla con esta aplicación, como si de un dispositivo Chromecast se tratase, desde el menú de Chrome. Increíblemente, esta modernidad no ha llegado aún a Meet en el momento de escribir estas líneas.

Emitiendo pestañas, ventanas y archivos a un Hangout "clásico" activo.


En fin, coincidirás conmigo en que esta situación es infame (concedido, exagerando un poquito) así que vamos a ver si somos capaces de hacer algo para remediarla. Y vamos a hablar de cómo conseguirlo en:

Soy Linuxero ¿qué hago?

Si eres rarete (perdón, usas Linux) probablemente no necesitas que te expliqué qué debes hacer. Pero ya que estamos, te lo voy a contar igual.

Al menos en el caso de Ubuntu, que es lo que tengo a mano (en sus sabores Gnome y Budgie, que molan un montón), solo tienes que seguir estas instrucciones:

Paso 1

Abre el panel de control de volumen de PulseAudio (el servidor de sonido utilizado habitualmente en sistemas que corren Linux). Si no lo encuentras, siempre puedes instalarlo desde la tienda de aplicaciones de tu distro...

La aplicación pavucontrol en la tienda de Ubuntu.

...o invocar magia arcana en una consola de comandos... lo que te vaya mejor:
sudo apt-get install pavucontrol

Paso 2

Esta herramienta de control de volumen de PulseAudio sirve, entre otras cosas, para realizar un conveniente ajuste fino filipino de los flujos de audio que emiten o capturan las distintas aplicaciones del sistema. Por tanto, ábrela ahora mismo y dirígete a la pestaña Grabación. Allí, localiza el flujo perteneciente a la pestaña de Chrome en la que tienes tu Meet  (Chrome input) y activa el desplegable, a ver qué tenemos dentro de él.

Y quien dice Chrome, dice cualquier otro navegador, por supuesto.

En mi caso, aparece por defecto seleccionada la papawebcam. Debes escoger en su lugar algún otro dispositivo de audio en cuyo nombre aparezca la palabra “monitor”. En mi sistema hay varios de ellos (la tarjeta de sonido, el integrado en la placa base, el correspondiente al puerto HDMI…),  pero dado que el que uso normalmente es la mencionada tarjeta Asus Xonar STX, escogeré “Monitor of… (Xonar Essence STX)”.

Inyectando el flujo del monitor de audio del sistema en el dispositivo de captura de sonido de Google Meet.

Y ya está, es así de simple. Linux mola. Pero mucho.

En cuanto selecciones el dispositivo de tipo monitor adecuado, cualquier sonido que reproduzcas (¡aunque no compartas tu pantalla en Meet!) será emitido hacia todos los participantes en la videoconferencia del mismo modo que cuando le susurras al micro como un amante bandido (si pillas esto es que ya tienes unos años). Y, atención, no hemos tocado en ningún momento el selector de micrófono de Meet, que dejaremos como está.

Pero cuidado, debes saber que a ti no se te oirá dado que ahora Meet escuchará lo que quiera que reproduzca tu ordenador, pero permanecerá sordo a tu micrófono. Por cierto, el botón para silenciar sigue silenciando… pero el audio de las aplicaciones que ahora estás emitiendo, claro está.


Cuando desees que todo vuelva a la normalidad, simplemente deja las cosas como estaban en el panel de control de volumen de PulseAudio.

Avanzado: ¿Y si queremos retransmitir el audio del sistema *y* el del micrófono simultáneamente para una experiencia completa? Sin problemas. Abre una consola y ejecuta el comando:
pactl load-module module-loopback latency_msec=1
Eso hará que aparezca un nuevo flujo virtual en bucle (Loopback to…) en la pestaña de Grabación de la herramienta de control de volumen. Solo tienes que asociarlo al dispositivo que representa a tu micrófono. De este modo tu voz será capturada y mezclada con el flujo de audio emitido por el sistema, que hemos dirigido hacia Meet en el paso 2… y de hecho sonará por tus propios altavoces o auriculares, así en plan karaoke.

Te aconsejo que ajustes los controles de volumen de cada flujo de audio para equilibrar la mezcla completa.

Ajustando volúmenes del audio del sistema y del micrófono.

Si optas por la emisión integrada de audio de las aplicaciones + micro, mejor usa auriculares, de lo contrario tu propia voz se escuchará a través de los altavoces de tu ordenador y será realimentada en el sistema de grabación a través del micrófono, provocando un desagradable efecto de acople reiterado, tan inquietante como el efecto fantasmal que surge cuando se pone un espejo delante de otro, pero más ruidoso.

Si quieres deshacer esta marcianada, no tienes más que utilizar el siguiente comando:
pactl unload-module module-loopback
Recapitulemos mediante un sencillo esquema:

Nuestro tinglado, en su versión para Linux.

Estupendo, pero yo uso Windows

Pues no pasa nada, en la variedad está el gusto. Aquí tenemos dos escenarios.

Es posible que tu tarjeta de sonido incluya unos controladores avanzados capaces de hacer algo parecido a lo descrito hace un momento en Linuxlandia. Y es posible que no. Por ejemplo, mi portátil LG Gram (un pepinaco bastante moderno), se encuentra en el segundo grupo. En cambio, un viejo PC de sobremesa Intel Core 2 Quad Q9550 ¡del 2009! que aún tengo por casa operativo (los trato francamente bien y no quieren pasar a mejor vida), lo está en el primero. Sorpresas nos da la vida.

Vamos por tanto primero sobre seguro con la recetilla generalista y a continuación te propondré una alternativa más chachi. Pero mejor léete bien todo este apartado antes de hacer nada para conocer ambas posibilidades y no ponerte a enredar con la menos adecuada.

Escenario #1 (generalista)

Paso 1

Bájate una aplicación (gratuita, pero admite donativos) denominada Virtual Audio Cable.


Aunque su nombre poco deja a la imaginación, mencionar que tras instalarla aparecerán dos dispositivos de audio virtuales en el sistema, uno de captura y otro de reproducción, conectados entre sí por, lo has adivinado, un cable virtual. Para Windows y sus aplicaciones, no obstante, estos dispositivos fantasma serán tan reales como cualesquiera otros. Aprovechándonos de esto transcenderemos nuevamente las limitaciones de Google Meet.

Paso 2

Descomprime el archivo zip descargado y ejecuta el instalador (VBCABLE_Setup_x64.exe, en sistemas modernos) como administrador.

El instalador de Virtual Audio Cable (de 32 o 64 bits) debe ejecutarse como administrador.

Paso 3

Cuando el instalador termine de hacer sus cositas conviene que reinicies el sistema. Después de todo esto es Windows, querido amigo o amiga.

Paso 4

A continuación vamos a enrutar todo el audio que emita Windows hacia la entrada de nuestro cable virtual. Haz clic sobre el icono del altavoz en el área de notificación de Windows, abajo a la derecha, para seleccionar como dispositivo predeterminado nuestro estupendo “CABLE Input (VB-Audio Virtual Cable)”.

Todo el audio del sistema entrará en el cable virtual...

Paso 5

Seguidamente abre Meet, inicia una reunión y dirígete nuevamente al panel de configuración. Comprobarás que bajo el selector de Micrófono dispones ahora de un nuevo dispositivo denominado “CABLE Output (VB-Audio Virtual Cable)”. Este es el otro extremo de nuestro cable. Selecciónalo. De este modo estás llevando el audio del sistema, que en el paso 4 entubamos en el cable virtual, hacia la toma de sonido de Meet.

...y Meet usará el otro extremo del cable virtual como dispositivo de captura de audio.

Paso 6

Asegúrate de que en Altavoces quede seleccionado tu dispositivo de reproducción de sonido habitual. Probablemente aparecerá de manera predeterminada “CABLE Input (VB-Audio Virtual Cable)”, si no corriges esto no oirás a tus compañeros de reunión dado que sus voces entrarían en el agujero negro del cable virtual de modo recurrente. Y no queremos eso.

¡Listo! Prueba a compartir tu escritorio y reproduce un vídeo de YouTube, por ejemplo. El resto de participantes en la sala (virtual) lo verán y oirán con una calidad mucho más que razonable. Pero a ti no te escucharán, tal y como ocurría inicialmente con nuestros usuarios Linuxeros.

¿Podemos solucionarlo?

Afirmativo, aunque te advierto que vamos a tener que adentrarnos en el tormentoso océano del panel de control de Windows 10 (daré por sentado que nadie anda aún trasteando con versiones anteriores). Así, sin anestesia:
  1. Haz clic en el icono de Windows.
  2. Escribe exactamente control.exe /name Microsoft.Sound y pulsa INTRO.
  3. Aparecerá la ventana del panel de control de sonido. Haz clic en la pestaña Grabar.
  4. Haz clic en el icono del Micrófono y a continuación sobre Propiedades.
  5. Dirígete a la pestaña Escuchar.
  6. Marca la casilla ✅ Escuchar este dispositivo.
  7. Haz clic en Aplicar.
Secuencia 1 - 7 para incluir el audio del micrófono en la emisión en Windows 10.

Ahora que el audio del micro ya se integra graciosamente con el del sistema, haremos exactamente las mismas consideraciones ya vistas por lo que hace al uso de altavoces y a esos desagradables acoples. ¡Usa auriculares para evitarlos!


No te olvides de ajustar el nivel (volumen) de cada flujo de audio para que tu maravillosa voz, captada por el micro, se escuche nítidamente por encima del resto de los sonidos emitidos.


Y como una imagen vale más que mil palabras, nuevo diagrama del tinglado al canto:

Variante del tinglado para Windows.

Un importante comentario final (en esta subsección): como has conducido todo el audio de Windows hacia el cable virtual, no escucharás el sonido de tus propias aplicaciones. Solo las voces del resto de participantes, y eso gracias a que has podido establecer en Meet un dispositivo de reproducción distinto al predeterminado para el sistema (en el paso 6). Me temo que la cosa no tiene solución si usamos este Virtual Audio Cable del modo indicado. Siempre puedes tirar de un dispositivo secundario, por ejemplo móvil o tableta, conectado a la sesión de Meet o no, para monitorizar el audio de tu emisión (cuidado con esos acoples).

Pero decías algo de unos controladores avanzados ¿no? Pues sí. Y además con ellos evitaremos el problema anterior. Vamos con el...

Escenario #2 (mi controlador de audio es guay)

Efectivamente, si tu driver de sonido es más espléndido, vas a poder simplificar el procedimiento descrito anteriormente gracias a algo llamado “mezcla estéreo”. Se trata de un flujo de audio que capta todo el sonido emitido por el sistema, de un modo análogo al “monitor” que usábamos en Linux hace un rato. Vamos con la receta pertinente.

Paso 1

Para ver si tu sistema dispone de este artefacto, abre de nuevo el panel de control de sonido de Windows del modo indicado y dirígete a la pestaña Grabar. Lo acabamos de hacer, si no te acuerdas repasa la anterior secuencia 1 - 7... pero no pases del punto 3.

El dispositivo de mezcla estéreo, aunque disponible, suele estar desactivado. Comprobémoslo. Haz clic con el botón derecho del ratón dentro de la ventana y selecciona Mostrar dispositivos deshabilitados.

Buscando dispositivos de audio de ocultos.

Paso 2

Localiza el dispositivo de mezcla estéreo y, si existe, haz clic con el botón derecho del ratón sobre él y actívalo. ¡Enhorabuena! Si no existe, game over, siempre te quedará el escenario #1.

Activando el dispositivo de mezcla de audio estéreo.

Paso 3

Por último, establécelo como el dispositivo de entrada de sonido predeterminado en Google Meet y mantén tus altavoces (o mejor, auriculares) como el de salida. No te olvides tampoco de activar la casilla ✅ Escuchar este dispositivo en el panel de ajustes del micrófono, tal y como te indicaba en el escenario #1 de esta sección (secuencia 1 - 7, esta vez íntegra), si quieres que el resto de participantes escuchen tu voz además del audio de tus aplicaciones.

Ajustando Meet para el escenario #2.

Y como de costumbre, mejor con auriculares.

Ya puedes olvidarte totalmente de ese cable de audio virtual. Y ahora sin perder el sonido de tus aplicaciones. Mucho mejor, a que sí.

¿Y qué pasa con los Mac 🍏?

Bueno, sobre esto… tengo una buena y una mala noticia.

Empecemos por la mala: dejé de utilizar ordenadores de Apple hace años. Y eso que pasé en su momento por mi fase de idolatría de distintos cacharros manzaniles, por ejemplo un estiloso iMac G4, un imponente Power Mac G5 y un sencillo pero muy eficaz MacBook de policarbonato. Pero ahora mismo esas i-cosas están más que desfasadas. De hecho me deshice del Power Mac, el iMac es ahora mismo un elemento decorativo que preside mis sesiones de Meet y el MacBook ha vivido un retiro dorado gracias a Xubuntu.

Esto quiere decir que no dispongo en estos momentos de dispositivos macOS actuales para explicarte con fundamento el procedimiento para conseguir exactamente lo mismo que hemos logrado en entornos Linux y Windows.

La buena noticia es que hace algunas versiones de macOS era perfectamente posible lograr algo como lo que te contado en estas líneas, por lo que todo apunta a que lo siga siendo. Así que voy a tratar de facilitarte alguna que otra indicación para que indagues por tu cuenta.

Hace unos años utilicé una aplicación denominada Sound Flower, que funcionaba de un modo análogo a Virtual Audio Cable, en este otro contexto.

Un antiguo artículo en mi otro blog en el que se usaba Sound Flower.

El caso es que el tiempo ha pasado y desde 2015 han llovido muchos macOS. Además, Apple tiende a introducir cambios que rompen cosas de versión en versión. Innovación, lo llaman. De hecho, parece que Sound Flower, cuyo instalador en estos momentos puede descargarse aquí, solo es compatible con versiones del sistema operativo hasta Mojave (10.1.14).

¿Alternativas si estamos a la última en Catalina? Parece que sí:
  • Según explica el autor de Sound Flower en el enlace de hace un momento, da la impresión de que ahora todos estos tinglados de mezcladores y cables virtuales se pueden montar directamente desde la utilidad MIDI de macOS (Aplicaciones ⇾ Utilidades ⇾ Configuración de Audio MIDI) por medio de los denominados dispositivos agregados.
  • También tenemos Loopback, heredero espiritual de Sound Flower. Puede usarse de manera gratuita, pero tras 20 minutos la calidad de audio se degrada, aunque no puede adelantar en qué medida ni tampoco si ese estado degradado es aceptable o no en el contexto de una videoconferencia. Teniendo en cuenta que estas aplicaciones están diseñadas para trabajos de producción de audio digital, donde el nivel de exigencia es notablemente elevado y resulta habitual manipular flujos de audio de alta calidad, más allá de los típicos 44 Khz / 16 bits del Libro Rojo,  me atrevería a aventurar que tal vez Loopback, en su modalidad por el morro, sí nos podría hacer el apaño.
Interesante alternativa comercial a Sound Flower.
  • Por último, una tercera herramienta que nos puede ayudar a lograr nuestro objetivo y que tiene muy, muy buena pinta es BlackHole. Gratuita y de código abierto. ¡Ah, y al parecer con versión para Windows disponible próximamente! Gracias a Jordi Adell por hablarme de ella.
Otra opción para Mac... y en un futuro también para Windows.

Y poco más puedo aportar en este terreno, lamentablemente. Si alguien pone en la puerta de mi casa un MacBook exploraré gustoso todas las posibilidades y daré cuenta de ellas. Ah, mejor que sea Pro 😉.

Pero como no creo que eso ocurra, te agradecería enormemente que compartieras tus hallazgos con el resto de la comunidad.

¿Y si uso un ChromeBook?

Aquí la cosa pinta peor, para qué nos vamos a engañar. A ChromeOS no le gusta que nadie le ande hurgando en la nariz. El sistema es bastante menos accesible, por no decir nada accesible, a la hora de exponer y permitir la alteración de aspectos íntimos de su funcionamiento.

Sí, es posible instalar aplicaciones Linux. Y Linux es lo mejor que le podía estar pasando a ChromeOS. Pero hasta donde yo sé, estas historietas con mezcladores, cables virtuales y raretés similares quedan lejos de nuestro alcance puesto que las apps Linux corren confinadas en una jaula dorada con barrotes de contenedor Linux, de la que no pueden escapar para hacer cositas interesantes con el hardware. Al menos por ahora.

En esta situación, la única alternativa que se me ocurre pasa por abrazar el metal. Es decir, emplear un módulo de sonido externo USB que:
  • Disponga de  entrada de micrófono.
  • Sea capaz de realimentar a su sección de captura de sonido el flujo digital de audio emitido por el sistema, de modo que Meet use esta como señal de entrada.
  • Permita mezclar la señal de esta entrada digital con la captada por el micro, para conseguir de este modo emitir ambas a la vez. Y esto es el famoso bucle de audio.
Veamos nuevamente cuál podría ser el tinglado en este caso:

Diagrama genérico usando un módulo de sonido USB externo.



Realmente se trata de un montaje análogo al mostrado en su versión Linux, solo que ahora tiramos de un dispositivo mezclador hardware (real) en lugar de otro software (virtual) ya que ChromeOS no se deja meter mano como nos gustaría. Y como te puedes imaginar, esta estrategia puede ser usada de modo general. Pero tendrás que rascarte el bolsillo.

Experimentos caseros con un módulo de sonido USB.

He hecho algunas pruebas con este viejo módulo USB Edirol (Roland) UA25, un micro Behringer ECM8000 que tenía por casa y un ChromeBook. Los resultados han sido totalmente satisfactorios, aunque dado que este módulo en concreto no dispone de mezclador interno, tan solo selector de entrada mic / audio digital, no es posible fundir grácilmente (ni de ninguna otra manera) nuestra voz con el sonido de las aplicaciones del sistema en el flujo de audio emitido por Meet.

Comentarios

  1. Hola Pablo, muchas gracias. Llevabamos unos días expectantes por esta entrada :D Un comentario, para desmontar el loopback en linux "pactl unload-module module-loopback" - ¡Muchas gracias!

    ResponderEliminar
    Respuestas
    1. Opps, muchas gracias, Victor. El copia&pega me ha jugado una mala pasada... y el nuevo editor de Blogger también %-). Ya está corregido.

      Eliminar
  2. Hola Pablo.
    Tenía el problema de que mis alumnos veían los videotutoriales (de Youtube principalmente) que ponía en mi presentación, pero no lo escuchaban.
    Tengo windows 10 y he seguido tus pasos. Ahora ven y escuchan los videos.....pero ahora soy yo quien no oigo el audio. He probado todo lo que se me ocurre y no hay forma. También he probado con dos portatiles diferentes, HP y Lenovo, y nada.
    Si se te ocurre algo que pueda probar.
    Gracias de todas formas.

    ResponderEliminar
    Respuestas
    1. En el caso de usar Windows, el artículo describe 2 posibilidades. La segunda (escenario #2) es la que permite conseguir lo que planteas (emitir el audio & seguir escuchándolo localmente). Por tanto primeramente debes comprobar si tu dispositivo de sonido admite un elemento denominado "mezcla estéreo". Si es que sí, sigue las instrucciones correspondientes a ese escenario #2 hasta el final. Si es que no tendrás que conformarte con la solución del escenario #1. En ese caso siempre puedes conectarte a la videoconferencia con un segundo dispositivo, por ejemplo móvil o tableta, para escuchar el audio emitido desde él.

      Eliminar
  3. Hola, me ha servido mucho el artículo y pude compartir el audio de mi pc en Ubuntu. El problema es que ahora se me comparte siempre y no puedo deshacerlo con el comando "pactl unload-module module-loopback". Me devuelve "No se pudo descargar módulo: el módulo module-loopback no está cargado". Aún así el audio de mi pc se comparte en mis reuniones de meet. ¿Me podrás ayudar a resolverlo?

    ResponderEliminar
    Respuestas
    1. Vaya, seguramente ya lo habrás solucionado 😅, pero bueno...

      El módulo "loopback" solo sirve para mezclar tu propia voz (micrófono) con el audio del sistema. Para dejar de emitir el audio de las aplicaciones, selecciona tu micrófono / webcam como dispositivo de entrada del navegador en la pestaña "Grabación" del mezclador (pavucontrol), en lugar del flujo etiquetado como "monitor".

      Eliminar
    2. La verdad es que no estoy seguro de haberlo resuelto y en las últimas reuniones me privé de hacer cualquier otra cosa a la vez por las dudas de estar compartiendo mi audio.

      En pavucontrol si voy a grabación y luego en las aplicaciones me aparecen "Monitor of Audio interno Estéreo analógico" o "Audio interno Estéreo analógico". Calculo que será ese último el que tiene que estar seleccionado. Ahora voy a verificarlo en una reunión. ¡Muchas gracias!

      Eliminar
    3. No, no hay caso. Sigue pasando. También he intentado en la pestaña que dice dispositivos de entrada silenciar el que dice ""Monitor of Audio interno Estéreo analógico" y nada. Sigue igual.

      Eliminar
    4. Asegúrate de estar haciendo este cambio en el dispositivo de audio asignado a Chrome input (suponiendo que uses Chrome), no el general. Revisa también en los ajustes de tu aplicación de videoconferencia el dispositivo de entrada. Seguro que es un ajuste del mezclador y tiene solución.

      Eliminar
    5. Sí, lo estaba cambiando en el lugar indicado. Creo que finalmente lo solucioné desde Google Meet. Cambié en la configuración del micrófono "Audio interno Estéreo analógico" en vez de "Predeterminado". Creo que con eso se solucionó. Estaba más cerca de lo que pensaba. Mil gracias. ;-)

      Eliminar

Publicar un comentario