La reproducción de audio breve está silenciada, requiere calentamiento o audio secundario en segundo plano

La reproducción de audio breve está silenciada, requiere calentamiento o audio secundario en segundo plano

He notado que esto sucede tanto en mi PC ArchLinux como en mi MacBook ArchLinux. Necesito recibir notificaciones de aplicaciones a través de tonos de audio cortos y descubrí que no es un problema debido a las aplicaciones de notificación sino al sistema en sí, y sucede en ambos sistemas, que son muy diferentes.

Cuando reproduzco un archivo de audio corto, paplay /usr/share/sounds/freedesktop/stereo/message.ogano lo escucho la primera vez que lo reproduzco.

Si lo vuelvo a reproducir en secuencia lo escucho y se reproduce correctamente, en todo momento lo repito en secuencia.

Si espero unos 10 segundos para volver a reproducirlo, se silencia (como al principio): suena sólo cuando se calienta.

Lo mismo ocurre con aplay /usr/share/sounds/alsa/Front_Left.wav, pero como es un tono más largo, el problema ocurre justo al inicio del archivo. Al principio solo escucho "t left", falta "fron". Después lo escucho completo y claro: "delantero izquierdo". Si espero 10 segundos, "no se fue" otra vez.

El problema no ocurre si estoy reproduciendo un archivo de música en segundo plano en un reproductor multimedia. Ocurre sólo cuando la computadora no reproduce ningún sonido.

¿Cómo arreglar esto? (excepto para mantener la PC reproduciendo un sonido inaudible en el demonio en segundo plano para mantenerla siempre caliente)

Sesión de prueba relevante donde el problema persiste utilizando únicamente alsa:

~ ❯❯❯ sudo mv /usr/bin/pulseaudio /usr/bin/pulseaudio.bak
~ ❯❯❯ pulseaudio.bak --kill
W: [pulseaudio.bak] main.c: Couldn't canonicalize binary path, cannot self execute.
~ ❯❯❯ paplay /usr/share/sounds/freedesktop/stereo/message.oga
Connection failure: Connection refused
pa_context_connect() failed: Connection refused
~ ❯❯❯ ps axu | grep -i pulse
francis+ 31563  0.0  0.0  10796  2144 pts/2    S+   14:35   0:00 grep --color=auto -i pulse

~ ❯❯❯ aplay -D plughw:0,7 /usr/share/sounds/alsa/Front_Left.wav
Playing WAVE '/usr/share/sounds/alsa/Front_Left.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Mono

~ ❯❯❯ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: Generic Analog [Generic Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 1: Generic Digital [Generic Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
~ ❯❯❯ lspci -nn | grep -i audio
00:1f.3 Audio device [0403]: Intel Corporation Device [8086:a2f0]

ACTUALIZAR

Después del kernel de Linux 4.11.2,El códec ALC1220 está en:

~ ❯❯❯ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC1220 Analog [ALC1220 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 1: ALC1220 Digital [ALC1220 Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 8: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 9: HDMI 3 [HDMI 3]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

Conecté mis auriculares y logré reproducir el problema simplemente usando aplaypero de manera diferente:

~ ❯❯❯ aplay -D plughw:0,0 /usr/share/sounds/alsa/Front_Left.wav
~ ❯❯❯ aplay -D plughw:0,0 /usr/share/sounds/purple/alert.wav
~ ❯❯❯ aplay -D plughw:0,0 /usr/share/sounds/alsa/Front_Left.wav
~ ❯❯❯ aplay -D plughw:0,0 /usr/share/sounds/purple/alert.wav
...

Tuve que reproducir diferentes archivos de audio que residen en diferentes directorios, ambas reproducciones se cortan al principio si se reproduce una y luego la otra, el intervalo entre reproducciones no importa. Si un archivo se reproduce una vez, reproducir archivos en el mismo directorio posteriormente no reproducirá el problema, ni esperará a que se "enfríe" (he esperado 1 minuto). Lo mismo sucede paplayal encender pulseaudio. Al reproducir a través de HDMI, se reproduce en ambos casos de prueba.

ACTUALIZACIÓN 2

Por perezoso que soy, todavía no informé de esto a los desarrolladores de ALSA, pero he creado unaunidad del sistema de usuario:

[Unit]
Description=Continuous silence

[Service]
ExecStart=/usr/bin/play -qn

[Install]
WantedBy=default.target

Simplemente guárdelo ~/.config/systemd/user/continuous-silence.servicey habilítelo con systemctl --user enable continuous-silence.

Respuesta1

Bajo el supuesto de que el sistema de sonido receptor necesita "despertarse" antes de emitir sonidos, y sólo lo hacedespuésrecibir el lote inicial de datos de sonido, descartar el primer lote, si esto no se puede solucionar en el sistema de sonido receptor, una solución alternativa es generar silencio continuamente, por ejemplo con playfrom sox:

play -n

Editar

Con la información adicional de que funciona en Windows y la información de que ni la tarjeta de sonido ("Dispositivo Intel Corporation") ni el Códec ("Genérico") son reconocidos por su nombre, también es posible que se trate de algún problema con el controlador. Hay un bit de "habilitación de mantenimiento" (KAE) en el códec, tal vez sea necesario configurarlo, posiblemente mediante un control de mezclador, pero no sé lo suficiente sobre esto.

Presente un error a los desarrolladores de ALSA, proporcione la lspci -nninformación y el resultado del archivo cat /proc/asound/card*/codec\#*. (También puedes poner el resultado de este último en un Pastebin y editar tu pregunta con el enlace, para que pueda echarle un vistazo).

Respuesta2

Otra solución para mí ocurrió cuando comencé a adoptar el kit de conexión de audio Jack junto con pulseaudio-jack, en lugar de pulseaudio simple.

Respuesta3

Se solucionó siguiendo la wiki sobre cómo configurar audio de baja latencia.

  • Siga la Sección 1.1 en la wikihttps://wiki.archlinux.org/title/Professional_audio
  • No instale el kernel AUR de Linux-rt
  • Reiniciar después de completar la Sección 1.1 debería eliminar la latencia
  • Si no, continúa con el resto de la wiki y configura JACK.

información relacionada