Вопрос или проблема
Недавно я переключился на Ubuntu 24.04, и слышу треск звуков все чаще. С чем это связано и как я могу это исправить?
Скорее всего, причиной треска звуков в Ubuntu 24.04 является то, что дистрибутив переходит на pipewire, который запускает сервис конвертации из pulse audio, а именно pipewire-pulse.
Проблема в том, что многие приложения напрямую не взаимодействуют с pipewire, а делают это через JACK и/или особенно через сам pulse, поэтому звуковые данные необходимо перемещать через дополнительные прыжки.
По умолчанию время буферов для pipewire-pulse составляет 2.7 мс, что означает, что приложению необходимо уметь заполнять звуковой контент каждые 2.7 мс, иначе pipewire отправит на аудиоустройство то, что было заполнено ранее, и, возможно, какие-то случайные данные, что и приводит к треску.
2.7 мс – это довольно строгий временной интервал, особенно для приложений, которые не имеют выделенных потоков для аудио (вероятно, Proton/wine/игры) и/или когда они работают на старых процессорах – поэтому один из способов ограничить треск – это указать pipewire-pulse установить больший временной буфер, хотя это добавит задержку в отправку звука на аудиоустройство.
Для этого необходимо открыть файл:
/usr/share/pipewire/pipewire-pulse.conf
И затем найти, раскомментировать и изменить конфигурацию для элемента:
pulse.min.quantum = 128/48000 # 2.7ms
с значения 128
на что-то большее – стоит попробовать 256
или даже 512
в качестве отправной точки, и если треска не будет, нужно оставить как есть (обратите внимание, что после сохранения файла необходимо перезапустить pipewire, pipewire-pulse через systemctl --user restart wireplumber pipewire pipewire-pulse
).
Ключевым моментом является нахождение наименьшего числа, чтобы раздражающий треск не появлялся (или был на приемлемом минимуме), потому что если более крупные числа (например, 1024
) вызывают очень небольшое количество треска, они добавляют задержку (1024 / 48000 -> 21.333 ms
).
Для более медленных процессоров потребуется число, равное 512
или выше, или, когда используются несколько программ, загружающих процессор, вероятно, такое число, как 1024
или даже 2048
, может быть полезным.
Обратите внимание, что треск по умолчанию (128/48000
) заметен на 5950x (32 ядра/16 потоков) с 64 ГиБ ОЗУ, поэтому он, вероятно, гораздо более заметен на менее мощных процессорах.
В качестве примечания, не понимаю, почему/как Canonical/Ubuntu решили предложить такую строгую конфигурацию, учитывая, сколько тем с жалобами на треск распространены на этом и других форумах.
В Ubuntu 24.04 (по крайней мере) теперь есть утилита “Настройка звука Ubuntu Studio”. Для меня 48000 512 с внешним USB 2.0 аудиоинтерфейсом сработало. Вы также можете попробовать установить ядро с низкой задержкой, чтобы получить меньшую задержку.
Проблема вызвана ядром 6.8. Понижение до предыдущей версии решает эту проблему.
Я был на Ubuntu 22.10 до 23.10 с ядром до 6.11 без проблем с треском. Проблема началась после обновления до Ubuntu 24.04. Утилита помогает один раз, но если приостановить видео на Youtube и запустить его снова или сделать скриншот (звук камеры), треск снова возвращается. PW может работать для встроенных CODEC, но внешние USB аудиоустройства, похоже, не очень хорошо поддерживаются. За последние 10 лет до PW я мог работать с 5 до 8 мс с 3 буферами в Jack2. Теперь нужно как минимум 512 байт. Я использую профиль Pro audio.
Также, когда я включаю свой USB интерфейс, пока Ubuntu работает, он не видит устройство. На Ubuntu 24.04 звук – это кошмар.
Я обновил с 22.04 до 24.04 на 4 машинах. На 3 из них у меня нет проблем со звуком. На 4-й, самой старой, которая на AMD A4, качество звука очень плохое, с задержками и треском. Иногда слышно, как динамики просыпаются и издают звуки, или слышен потрескивающий звук, как на аналоговом радио (!). На 22.04 проблем не было вовсе. Я знаю, что pulse audio имел проблемы в первые годы, но в последние у меня с ним не было проблем. Похоже, нам снова придется пройти через это с pipewire теперь.
Некоторая информация о железе:
графическая карта:
ATI SuperSumo [Radeon HD 6410D]
звук:
ATI BeaverCreek HDMI Audio [Radeon HD 6500D и 6400G-6600G серии]
AMD FCH Azalia Controller
Ответ или решение
Проблема трескающего звука в Ubuntu 24.04 может быть связана с переходом дистрибутива на систему PipeWire, которая теперь используется вместо PulseAudio. В этом контексте система PipeWire работает через компонент pipewire-pulse, который осуществляет обратную совместимость с PulseAudio. Однако, некоторые приложения все еще работают через PulseAudio или JACK, что приводит к дополнительной нагрузке на систему, и это может вызывать треск и искажения звука.
По умолчанию, временные буферы для pipewire-pulse установлены на 2.7 мс. Это довольно строгий тайминг, и если приложение не успевает заполнить звуковой поток вовремя, PipeWire может отправить на аудиоустройство некорректные данные, что и приводит к треску. Это особенно актуально для приложений, работающих через Proton/Wine (например, игры), или на старых процессорах, где производительность может быть снижена.
Чтобы решить проблему треска, вы можете увеличить размер временного буфера для pipewire-pulse. Для этого выполните следующие шаги:
-
Откройте файл конфигурации pipewire-pulse:
sudo nano /usr/share/pipewire/pipewire-pulse.conf
-
Найдите строку с параметром
pulse.min.quantum
и измените значение с128
на большее, например,256
или512
. Это увеличит буфер, позволяя системе обрабатывать звуковые данные более эффективно и минимизируя треск:pulse.min.quantum = 256/48000 # или 512/48000
-
Сохраните изменения и закройте редактор.
-
Перезапустите службы PipeWire и pipewire-pulse, чтобы изменения вступили в силу:
systemctl --user restart wireplumber pipewire pipewire-pulse
Также стоит отметить, что для улучшения производительности вы можете попробовать установить ядро с низкой задержкой, что может помочь в управлении звуковыми потоками.
Кроме того, если у вас есть внешние USB-аудиоустройства, убедитесь, что они правильно поддерживаются системой. Некоторые пользователи сообщают о проблемах с обнаружением USB-устройств после включения, что может язывать дополнительные трудности.
Если же описанные решения не дают эффекта, в некоторых случаях понижение версии ядра до 6.11 или использование предыдущего стабильного ядра может помочь устранить проблемы с качеством звука.
Также, учитывайте, что на некоторых системах проблемы с качеством звука могут зависеть от аппаратного обеспечения, поэтому, если проблема сохраняется, рекомендуется проводить дополнительные тесты на других устройствах и конфигурациях.