GNU/Linux >> Tutoriales Linux >  >> Ubuntu

¿Latencia de bucle invertido de Pulseaudio?

Estoy usando loopback de pulseaudio para vincular los sonidos de mi sistema y mi micrófono. El problema es que los sonidos de mi sistema tienen un retraso de un segundo o incluso más a veces. He cambiado marcado simultáneo en paprefs pero eso no lo ha solucionado. Estoy usando este script para hacerlo.

STREAM_MODULE=$(pactl load-module module-null-sink sink_name=StreamAudio sink_properties=device.description="StreamAudio")

pactl load-module module-loopback source=alsa_output.pci-0000_00_1b.0.analog-stereo.monitor sink=StreamAudio latency_msec=1 >> /dev/null  
pactl load-module module-loopback source=alsa_input.usb-AKM_AK5370-00-AK5370.analog-mono sink=StreamAudio latency_msec=1 >> /dev/null

pactl load-module module-device-manager >> /dev/null  

read -p "Loaded! Press enter to unload!"

pactl unload-module $STREAM_MODULE
pactl unload-module module-device-manager
pactl unload-module module-null-sink
pactl unload-module module-loopback

He pasado por páginas de google, pero nada parece solucionarlo. ¿Hay algo obvio que me estoy perdiendo?

alsa_output.pci-0000_00_1b.0.analog-stereo.monitor son todos los sonidos de mi sistema.

alsa_input.usb-AKM_AK5370-00-AK5370.analog-mono es mi micrófono

Aquí hay un ejemplo en el que el retraso se convierte en 3,4 segundos:http://screencloud.net/v/tNAQ mientras que el otro loopback tiene mucho menos http://screencloud.net/v/suIF

Por lo que puedo decir, por alguna razón el búfer se llena. ¿Hay alguna manera de que pueda descargarlo o algo así?

Respuesta aceptada:

He encontrado una salida temporal, pero esto todavía me confunde. Creé un módulo combinado, y luego vinculo cada fuente de sonido que quiero al combinado, que luego se enruta a los sonidos de mi sistema y al sumidero de Streaming.

STREAM_MODULE=$(pactl load-module module-null-sink sink_name=StreamAudio sink_properties=device.description="StreamAudio")
COMBINE_MODULE=$(pactl load-module module-combine-sink sink_name=Combined sink_properties=device.description="Combined" slaves=StreamAudio,alsa_output.pci-0000_00_1b.0.analog-stereo)

pactl load-module module-loopback rate=44000 adjust_time=0 source=alsa_input.usb-AKM_AK5370-00-AK5370.analog-mono sink=StreamAudio latency_msec=1 >> /dev/null

pactl load-module module-device-manager >> /dev/null  

read -p "Loaded! Press enter to unload!"

pactl unload-module $COMBINE_MODULE
pactl unload-module $STREAM_MODULE
pactl unload-module module-device-manager
pactl unload-module module-loopback

Probablemente haya una forma en que pueda grep los resultados de pacmd list-clients y luego limpie solo las fuentes válidas, cambie su salida al sumidero combinado, pero eso llevaría demasiado tiempo y sería demasiado complejo.

Aunque ahora surge un nuevo problema, e incluso lo probé ejecutando el comando a través de la terminal. Por alguna razón, no puedo cambiar el sumidero de salida de Java. Esto es lo que probé y lo que devolvió:

[email protected]:~$ pacmd move-sink-input 6421 124
Welcome to PulseAudio! Use "help" for usage information.
>>> Moved failed.

Probé con otros también y todos funcionaron. 6421 es el índice de Java y 124 es el índice receptor.

Relacionado:Cómo:¿Cambiar un ícono en 16.04?
Ubuntu
  1. ¿Cómo crear una salida virtual en Pulseaudio?

  2. Jack vs Pulseaudio:¿cómo es más rápido?

  3. Pulseaudio Loopback ¿Descargar dispositivos de salida de audio?

  4. La tecla de silencio silencia Alsa y Pulseaudio, ¿pero activa solo Alsa?

  5. ¿Alguna forma de guardar la configuración de Alsamixer que no sea la tienda Alsactl?

Cómo habilitar el servicio de audio PipeWire para reemplazar PulseAudio en Ubuntu 21.04

Error de dependencia de Libpulse:no se puede reinstalar Pulseaudio en Ubuntu

Comunicación serie de baja latencia en Linux

Cambiar el dispositivo de audio predeterminado en Pulseaudio

Tubería/Mezcla de entrada de línea a salida en PulseAudio

¿Cómo funciona la interfaz de bucle invertido?