PulseAudio (Русский)

Состояние перевода:
На этой странице представлен перевод статьи
PulseAudio
. Дата последней синхронизации: 2 октября 2022. Вы можете
помочь
синхронизировать перевод, если в английской версии произошли
изменения
.
Ссылки по теме
PulseAudio/Примеры
PulseAudio/Решение проблем
PipeWire (Русский)
PulseAudio
— это многофункциональный звуковой сервер, предназначенный для работы в качестве прослойки между приложениями и аппаратными устройствами через
ALSA
или
OSS
. Он также с лёгкостью может передавать аудио по сети между локальными устройствами, используя
Avahi
, если тот доступен. Несмотря на то, что основная цель заключена в простоте настройки звука, его модульная архитектура позволяет более опытным пользователям настраивать демон в соответствии со своими нуждами.
Примечание
Между
ALSA
и PulseAudio может возникнуть путаница. В состав ALSA входят компонент ядра Linux с драйверами звуковых карт и библиотека
libasound
, работающая в пространстве пользователя.
[1]
PulseAudio работает поверх компонентов ядра, но обеспечивает совместимость с
libasound
через
pulseaudio-alsa
.
[2]
Установка
Установите пакет
pulseaudio
.
Некоторые модули PulseAudio были отделены от основного пакета и должны быть установлены самостоятельно, если требуются:
pulseaudio-alsa
для работы PulseAudio с
ALSA
, смотрите раздел
#ALSA
pulseaudio-bluetooth
: поддержка
Bluetooth
(Bluez), смотрите статью
Bluetooth наушники
pulseaudio-equalizer
: эквалайзер устройств вывода (qpaeq)
pulseaudio-jack
: определение устройств вывода, источников
JACK
и jackdbus
pulseaudio-lirc
: инфракрасный контроль громкости (
LIRC
)
pulseaudio-zeroconf
: поддержка Zeroconf (
Avahi
/DNS-SD)
Интерфейсы
Существует множество интерфейсов для управления демоном PulseAudio:
Консольные
ncpamixer
— Микшер на базе ncurses, вдохновлённый pavucontrol.
https://github.com/fulhax/ncpamixer
||
ncpamixer
AUR
pacmixer
— Микшер, похожий на Alsamixer.
https://github.com/KenjiTakahashi/pacmixer
||
pacmixer
AUR
PAmix
— Микшер на базе ncurses, похожий на to pavucontrol.
https://github.com/patroclos/PAmix
||
pamix-git
AUR
pamixer
— Интерфейс командной строки.
https://github.com/cdemoulins/pamixer
||
pamixer
pavolume
— Простой регулятор громкости командной строки с сообщениями libnotify.
https://github.com/sseemayer/pavolume
||
pavolume-git
AUR
Ponymix
— Интерфейс командной строки.
https://github.com/falconindy/ponymix
||
ponymix
AUR
pulseaudio-ctl
— Управление громкостью PulseAudio из командной оболочки или с помощью сочетаний клавиш.
https://github.com/graysky2/pulseaudio-ctl
||
pulseaudio-ctl
AUR
pulsemixer
— Микшер CLI и curses.
https://github.com/GeorgeFilipkin/pulsemixer
||
pulsemixer
Графические
KMix
—
KDE
-приложение для регулировки громкости, поддерживающее несколько платформ, в том числе PulseAudio, настраиваемый апплет в системном трее.
https://apps.kde.org/kmix/
||
kmix
MicTray
— Лёгкое приложение для системного трея, позволяющее управлять состоянием и громкостью микрофона с помощью PulseAudio.
https://github.com/Junker/MicTray
||
mictray
AUR
pa-applet
— Апплет системного трея с панелью громкости.
https://github.com/fernandotcl/pa-applet
||
pa-applet-git
AUR
pasystray
— Апплет системного трея.
https://github.com/christophgysin/pasystray
||
pasystray
plasma-pa
— Апплет
KDE
Plasma для управления громкостью звука с помощью PulseAudio
https://invent.kde.org/plasma/plasma-pa
||
plasma-pa
PulseAudio Equalizer
— Многополосный эквалайзер на основе LADSPA.
https://github.com/pulseaudio-equalizer-ladspa/equalizer
||
pulseaudio-equalizer-ladspa
PulseAudio Graph Control
— Интерфейс управления громкостью и графом, основанный на Electron.
https://github.com/futpib/pagraphcontrol#readme
||
pagraphcontrol-git
AUR
PulseAudio Manager
— Простой GTK фронтенд. Разработка прекращена.
http://0pointer.de/lennart/projects/paman/
||
paman
AUR
[
ссылка недействительна
: package not found]
PulseAudio Preferences
— Простой диалог конфигурации GTK.
https://freedesktop.org/software/pulseaudio/paprefs/
||
paprefs
PulseAudio Volume Control
— Простой GTK-инструмент управления громкостью («микшер»).
https://freedesktop.org/software/pulseaudio/pavucontrol/
||
pavucontrol
PulseAudio Volume Control (Qt)
— Микшер для PulseAudio (Qt-порт pavucontrol).
https://github.com/lxqt/pavucontrol-qt
||
pavucontrol-qt
PulseAudio Volume Control (Sandsmark)
— Лёгкий форк pavucontrol из LXQt, в котором реализованы недостающие функции pavucontrol, исправлены ошибки и удалены ненужные зависимости.
https://github.com/sandsmark/pavucontrol-qt
||
pavucontrol-qt-sandsmark-git
AUR
[
ссылка недействительна
: package not found]
PulseAudio Volume Meter
— Простой GTK-измеритель громкости для PulseAudio. Разработка прекращена.
http://0pointer.de/lennart/projects/pavumeter/
||
pavumeter
AUR
PulseEffects
— Аудиоэффекты для приложений PulseAudio.
https://github.com/wwmm/easyeffects/tree/pulseaudio-legacy
||
pulseeffects-legacy
AUR
Volctl
— Апплет для управления громкостью отдельных приложений.
https://buzz.github.io/volctl/
||
volctl
AUR
Xfce PulseAudio Panel Plugin
— Плагин PulseAudio для панели
Xfce 4
.
https://goodies.xfce.org/projects/panel-plugins/xfce4-pulseaudio-plugin
||
xfce4-pulseaudio-plugin
pa-notify
— Демон уведомления о громкости для PulseAudio или PipeWire.
https://github.com/ikrivosheev/pa-notify
||
pa-notify
AUR
Настройка
По умолчанию PulseAudio настроен на автоматическое обнаружение всех звуковых карт и управление ими. Он берёт под свой контроль все обнаруженные устройства ALSA и перенаправляет все аудиопотоки на себя, делая демон PulseAudio центральной точкой настроек. Демон, в основном, должен работать «из коробки», требуя только нескольких незначительных изменений настроек.
Хотя PulseAudio обычно прекрасно работает из коробки и требует лишь минимальной настройки, опытные пользователи могут изменить почти каждый аспект демона, либо изменив стандартный файл настроек для отключения модулей, либо написав свой собственный с нуля.
PulseAudio работает как демон сервера, который может работать как общесистемно, так и отдельно для каждого пользователя, с помощью архитектуры клиент/сервер. Без своих
модулей
демон сам по себе ничего не делает, кроме обеспечения API и размещения динамически загружаемых модулей. Вся маршрутизация аудио и обработка задач обрабатывается различными модулями, в том числе сам протокол PulseAudio (реализуется модулем
module-native-protocol-unix
). Клиенты обращаются к серверу через один из модулей протоколов, которые принимают звук из внешних источников, направляют его через PulseAudio и в конечном итоге выводят через другой модуль. Модуль вывода не обязательно должен быть фактическим звуковым выходом: он может записывать аудиопоток в файл, передавать его на сервер вещания, такой как
Icecast
, или даже просто отбрасывать его.
Вы можете найти подробный список всех доступных модулей в
Загружаемые Модули Pulseaudio (Англ.)
. Чтобы включить их, Вы можете добавить строку
load-module
имя-модуля-из-списка
в
~/.config/pulse/default.pa
.
Файлы настроек
PulseAudio будет сначала смотреть файлы настроек в домашнем каталоге
~/.config/pulse/
, а если не найдёт их там, то в общесистемном
/etc/pulse/
.
Совет
Настоятельно советуем не редактировать общесистемные файлы настроек, вместо них редактируйте пользовательские. Создайте каталог
~/.config/pulse
, затем скопируйте (
cp /etc/pulse/ ~/.config/pulse
) файлы настроек системы в него, и редактируйте согласно Вашим требованиям.
Убедитесь, что Вы держите пользовательские настройки в синхронизации с изменениями в пакетных файлах
/etc/pulse/
. Иначе, PulseAudio может отказаться запускаться из-за ошибки в настройках.
Нет необходимости добавлять Вашего пользователя к группе audio, поскольку он использует
udev
и
logind
для динамичного предоставления доступа к "в настоящее время активному" пользователю. Исключение составляют клиентские (headless) машины, в которых нет понятия текущий "активный" пользователь.
daemon.conf
Это основной файл для настройки демона. Он определяет основные настройки, такие как: частоты дискретизации по умолчанию, используемые модулями, методы повторной выборки, планирование в реальном времени, и другие различные настройки, связанные с серверным процессом. Они не могут быть изменены на лету без перезапуска демона PulseAudio. Значения по умолчанию подходят для большинства пользователей. Дополнительная информация доступна в
man-странице
pulse-daemon.conf(5)
. Boolean-опции принимают такие значения:
true
,
yes
,
on
и
1
— истина;
false
,
no
,
off
и
0
— ложь.
Примечание
PulseAudio не поддерживает использование тильды (~) в описании путей в этом файле. Используйте абсолютные пути для любых файлов.
Опция
Описание
daemonize
Управляет тем, будет ли сервер переходить в режим демона и возвращать управление. Установите значение
no
при отладке, чтобы вы могли видеть отладочную информацию в терминале.
resample-method
Какой метод частоты дискретизации (resampler) использовать, когда звук с несовместимыми частотами дискретизации должен быть передан между модулями (например, воспроизведение звука на 96 кГц на аппаратном обеспечении, поддерживающим только 48 кГц). Список доступных resampler'ов можно посмотреть с помощью команды
$ pulseaudio --dump-resample-methods
. Выберите и используйте лучший компромисс между загрузкой процессора и качеством звука.
Совет
В некоторых случаях PulseAudio будет генерировать высокую нагрузку на процессор. Это может произойти, когда несколько потоков передискретизируются (индивидуально). Если такая ситуация возникает часто, стоит подумать о создании дополнительного устройства вывода (sink) с соответствующей частотой дискретизации, аудиопоток из которого затем будет передан в основное устройство вывода (main sink), благодаря чему передискретизация будет выполняться только один раз.
avoid-resampling
Со значением
avoid-resampling = yes
PulseAudio автоматически настроит частоту дискретизации оборудования в соответствии с той, которую использует приложение, если оборудование её поддерживает (необходим
PA 11
или новее)
Важно
Включение этой функции может привести к искажению звука, поэтому по умолчанию она отключена. Подробнее в
примечаниях к выпуску
.
enable-remixing
Когда вход и выход имеют разное количество каналов (например, вывод 6-канального фильма в стереовывод), PulseAudio может либо перемикшировать все каналы (по умолчанию,
yes
), либо просто тривиально сопоставить каналы по их названию (левый идет к левому, правый к правому, все остальные игнорируются) (
no
)
system-instance
Если
yes
, то демон будет запускаться как как
общесистемный
экземпляр.
Крайне нежелательно
, поскольку это может привести к проблемам безопасности. Полезно в
системах с несколькими пользователями
и (headless) системах, не имеющих никаких настоящих локальных пользователей. Значение по умолчанию
no
.
flat-volumes
flat-volumes
масштабирует громкость устройства с громкостью "самого громкого" приложения. Например, повышение громкости вызова VoIP повысит аппаратную громкость и скорректирует звук аудиоплеера, таким образом, что понижать громкость аудиоплеера вручную нет необходимости. Значение по умолчанию
yes
, но в сборке для Arch -
no
.
Примечание
Поведение значения по умолчанию, иногда, может сбивать с толку, и некоторые приложения не зная об этой функции, могут регулировать свою громкость к 100% при запуске, потенциально создавая неожиданно громкий звук. Для восстановления классического поведения (ALSA), установите это значение в
no
.
realtime-scheduling
Если ваше
ядро
поддерживает планирование в режиме реального времени (например,
Realtime kernel
), установите значение
yes
, чтобы PulseAudio мог обеспечить воспроизведение с низкой задержкой без глюков. Ещё можно настроить
realtime-priority
, чтобы он использовал правильный приоритет, особенно когда
JACK
тоже запущен в системе.
nice-level
Поскольку PulseAudio работает в пространстве пользователя и активно использует межпроцессное взаимодействие, звук может пропадать, если демону не хватает процессорного времени для его обработки. Значение по умолчанию обычно подходит, но его можно настроить, чтобы задать PulseAudio приоритет выше (или ниже) других приложений.
exit-idle-time
Если вы хотите держать PulseAudio запущенным только при необходимости, а в остальное время использовать ALSA, можно установить задержку в секундах, после которой демон будет автоматически выключаться после отключения всех клиентов. Установите значение -1, чтобы отключить эту функцию.
log-level
При отладке можно повысить уровень логирования демона, чтобы узнать, почему конкретный модуль не загружается. При высоком уровне иногда выводится полезная информация, например, обнаруженная минимальная задержка для системы, которую можно использовать для настройки
default-fragments
и
default-fragment-size-msec
.
default-sample-format
Обычно этот параметр менять не нужно, но если родной формат вашей звуковой карты отличается, производительность и качество можно улучшить, установив здесь нужный формат.
default-sample-rate
Частота дискретизации по умолчанию, которую использует PulseAudio, если она не изменена на уровне модуля. Измените это значение, если ваша звуковая карта не поддерживает частоту 44100 Гц или если вы хотите повысить дискретизацию всего звука. Смотрите предыдущее примечание об использовании процессора.
alternate-sample-rate
Для устранения распространённого ограничения, когда фильмы с частотой 48000 Гц без необходимости преобразовывались в 44100 Гц, некоторые модули поддерживают динамическое переключение частоты дискретизации, чтобы избежать передискретизации, когда это возможно. Более подробную информацию смотрите в документации. Обычно это не нужно изменять.
default-channels
Количество каналов по умолчанию, если оно не указано. Обычно не нужно ничего менять, так как вы можете настроить больше каналов в настройках отдельных модулей.
default-fragments
Аудиосэмплы разделяются на множество фрагментов длиной по
default-fragment-size-msec
мс. Чем больше буфер, тем менее вероятен пропуск звука, когда система будет перегружена. С другой стороны это увеличит общую величину задержки. Увеличьте это значение, если у вас есть проблемы.
default-fragment-size-msec
Размер каждого фрагмента в миллисекундах. Это количество данных, которое будет обработано демоном за один раз.
default.pa
Этот файл является сценарием запуска и используется для настройки модулей. Он анализируется и читается после завершения инициализации демона. Дополнительные команды могут быть отправлены во время выполнения с помощью
pactl(1)
или
pacmd(1)
. Сценарий запуска также может быть загружен через командную строку путём запуска PulseAudio в терминале с параметром
pulseaudio -nC
. Это заставит демона загрузить модуль CLI и принимать настройки непосредственно из командной строки, выдавать получающуюся информацию или сообщения об ошибках на том же терминале. Это может быть полезно при отладке демона или тестирования различных модулей, перед постоянной установкой их на диск. Синтаксис описан в
pulse-cli-syntax(5)
.
Совет
Вместо того, чтобы копировать этот файл, в начало файла
~/.config/pulse/default.pa
можно добавить
.include /etc/pulse/default.pa
и ниже просто переопределять стандартные настройки.
Список доступных устройств вывода можно посмотреть с помощью команды
pacmd list-sinks | grep -Ei 'index:|name:'
. Устройство вывода, используемое по умолчанию, отмечено звёздочкой (*).
Отредактируйте
~/.config/pulse/default.pa
, добавив/изменив в нём команду set-default-sink так, чтобы использовалась имя устройства вместо его номера, так как нумерация устройств может меняться.
client.conf
Это файл настроек, читающийся каждым клиентским приложением PulseAudio. Он используется для настройки опций во время выполнения для отдельных клиентов. Может использоваться чтобы устанавливать и настраивать устройство вывода по умолчанию и для статического запуска, а также позволять (или запрещать) клиентам автоматический запуск сервера, если он в настоящее время не работает.
Если автозапуск включен, клиенты будут автоматически запускать PulseAudio, если он ещё не запущен, когда клиент пытается подключиться к нему. Это может быть полезно, если вы хотите сэкономить ресурсы системы и не хотите, чтобы PulseAudio был всегда запущен. В противном случае его следует запускать при входе в сеанс.
Команда настроек
Основная команда для настройки сервера во время выполнения —
pacmd
. Выполните
pacmd --help
для просмотра доступных опций; для входа в интерактивный режим выполните
pacmd
и
Ctrl+d
для выхода. Все изменения будут применены сразу.
После того, как новые настройки были проверены и удовлетворили Ваши потребности, соответственно отредактируйте
default.pa
, чтобы изменения стали постоянными. Для некоторых основных настроек, смотрите
PulseAudio/Examples (Русский)
.
Совет
Оставьте нетронутой строку
load-module module-default-device-restore
в файле
default.pa
. Это позволит вам перезапустить сервер в состояние по умолчанию, таким образом избегая любых неправильных установок.
Важно понимать, что набор источников («sources»: процессы, устройства захвата) и выводов («sinks»: звуковые карты, серверы, другие процессы), которые можно выбрать в PulseAudio, зависит от текущих выбранных профилей устройств. Эти профили являются теми «pcm», которые выводятся командой
aplay -L
или, более конкретно, командой
pacmd list-cards
: в её выводе, помимо прочего, есть строка «index:», список «profiles:» и строка «active profile: <...>». Профили соответствуют различным конфигурациям ввода/вывода звуковой карты, в частности, количеству доступных каналов ввода/вывода.
Выбрать активный профиль («active profile») можно с помощью команды
pacmd set-card-profile INDEX PROFILE
без
запятой, разделяющей INDEX и PROFILE; INDEX — это просто число из строки «index:», а PROFILE — значение из списка «profiles:» до первого двоеточия с пробелом. Пример:
pacmd set-card-profile 0 output:analog-stereo+input:analog-stereo
.
Более удобный способ выбрать профиль — через графический интерфейс, например в
pavucontrol
на вкладке «Конфигурация» или в параметрах KDE в разделе «Звуковые устройства». Каждая звуковая карта, то есть устройство из списка
aplay -l
или
pacmd list-cards
, будет иметь свой собственный выбираемый профиль. После выбора профиля доступные в нём источники (sources) и выводы (sinks) можно посмотреть с помощью команды
pacmd list-sources
и
pacmd list-sinks
. Имейте в виду, что индекс («index») доступных источников и выводов изменятся каждый раз, когда изменяется профиль карты.
Выбранный профиль может вызывать проблемы в некоторых приложениях, особенно Adobe Flash Player, обычно
/usr/lib/mozilla/plugins/libflashplayer.so
и
/usr/lib/PepperFlash/libpepflashplayer.so
. Часто, эти флэш-плееры будут работать только тогда, когда выбран один из профилей Стерео, иначе видео будет проигрываться без звука или просто откажется воспроизводиться. Когда всё остальное перестало работать, можно попробовать выбрать другой профиль.
Конечно, при настройке некоторых вариаций Surround Sound (Объёмного Звука) в PulseAudio, должен быть выбран соответствующий профиль Surround. Прежде чем объёмный звук будет работать, сделайте такие вещи, как переназначение каналов динамиков (speaker channels).
Если единственным профилем, который у вас есть, является «HiFi», это означает, что вы используете профили
ALSA Use Case Manager
вместо профилей pulseaudio. Возвращение к использованию профилей pulseaudio описано в разделе
PulseAudio/Примеры#Отключение UCM/"HiFi"
.
Подключение и аутентификация
Так как PulseAudio работает как демон, запускаемый от имени текущего пользователя, клиентам нужно знать, где найти сокет демона для подключения к нему, а также общий файл со случайным cookie, который клиенты используют для аутентификации. По умолчанию клиенты должны находить демон без проблем, используя переменные окружения, свойства корневого окна X11 и, наконец, пробуя расположение по умолчанию (
unix:/run/user/$ID/pulse/native
). Однако, если у вас есть клиенты, которым нужен доступ к PulseAudio вне вашего сеанса X11, например
mpd
, запущенный под другим пользователем, нужно будет указать ему, как подключиться к вашему экземпляру PulseAudio. Полный пример есть в разделе
PulseAudio/Примеры#Одновременное использование PulseAudio несколькими пользователями
. По умолчанию для аутентификации используется файл cookie, содержащий случайные байты, чтобы исключить утечку звука от одного пользователя к другому в многопользовательской системе. Если вы уже контролируете, кто может получить доступ к серверу, с помощью прав доступа пользователей/групп, вы можете отключить куки, передав
auth-cookie-enabled=0
в параметрах для
module-native-protocol-unix
.
Переменные окружения
Эти две переменные важны для того, чтобы клиенты libpulse могли найти PulseAudio, если вы переместили его сокет в другое место. Более подробную информацию и другие полезные переменные окружения, которые будут считывать клиенты, смотрите в
pulseaudio(1)
.
Переменная
Описание
PULSE_SERVER
Определяет, где находится сервер. Он принимает префикс протокола, например
unix:
или
tcp
, после которого идёт путь или IP сервера. Пример:
unix:/home/pulse/native-sock
.
PULSE_COOKIE
Пут к файлу, содержащему случайный файл cookie, сгенерированный PulseAudio. Этот файл будет считываться клиентами, а его содержимое отправляться на сервер, поэтому файл должен быть доступен для чтения всем клиентам. Это не обязательно должен быть один и тот же файл; главное, чтобы его содержимое совпадало с содержимым того файла, который использует демон.
Свойства X11
PulseAudio также использует свойства корневого окна X11 для поиска демона. Поскольку переменные окружения не могут быть изменены после запуска дочерних процессов, свойства X11 более гибкие, поскольку их легче изменить, так как они являются глобально общими. Пока у приложений есть доступ к переменной окружения
DISPLAY=
, они могут считывать актуальные значения свойств X11. Посмотреть их можно с помощью команды с помощью команды
xprop -root
, а команда
pax11publish -d
покажет только свойства, специфичные для PulseAudio.
pax11publish
также можно использовать для обновления свойств из переменных окружения (
pax11publish -e
, или
pax11publish -r
для их полного удаления). Если возможно, рекомендуется позволить PulseAudio сделать это самостоятельно с помощью модуля module-x11-publish или команды
start-pulseaudio-x11
. Следующая таблица приведена только для информации; вам никогда не понадобится устанавливать эти свойства вручную.
Свойство
Описание
PULSE_SERVER
Строка (
xprop -root -f PULSE_SERVER 8s -set PULSE_SERVER "unix:/tmp/pulse-sock"
), работает аналогично переменной окружения с таким же названием.
PULSE_COOKIE
Строка, содержащая шестнадцатеричное представление значения cookie для аутентификации.
Запуск
Arch предоставляет юнит
pulseaudio.socket
, который включен по умолчанию для
пользовательского экземпляра systemd
. Это значит, что по необходимости PulseAudio запустится автоматически.
Примечание
Для отключения
pulseaudio.socket
удостоверьтесь, что
$XDG_CONFIG_HOME/systemd/user
существует, и
замаскируйте
пользовательский юнит
pulseaudio.socket
.
Многие
среды рабочего стола
поддерживают
XDG Autostart
. В этом случае PulseAudio будет запущен автоматически независимо от состояния активации сокета.
Для получения дополнительной информации посмотрите
PulseAudio: Выполнение
.
Остановка
Остановите
пользовательские юниты
pulseaudio.socket
и
pulseaudio.service
.
Настройка бэкенда
ALSA
Важно
Не
пытайтесь изменить файлы настроек ALSA при использовании стандартной конфигурации PulseAudio. Она захватывает устройства, чтобы можно было менять настройки на лету через графический интерфейс. Изменения в настройках ALSA, скорее всего, будут проигнорированы PulseAudio, и приложения ALSA будут ломаться при попытке получить доступ к устройству ALSA, которое уже использует PulseAudio. При изменении файлов настроек ALSA также перенастройте PulseAudio для вывода на ваше собственное устройство ALSA.
Если у вас есть приложения, которые совсем не поддерживают PulseAudio, но используют ALSA, они будут пытаться получить доступ напрямую к звуковой карте через ALSA, минуя PulseAudio. Таким образом, звуковая карта перестанет быть доступной для PulseAudio. Вследствие чего, все приложения, использующие PulseAudio, перестанут работать, как описано
здесь
. Чтобы этого избежать, вам необходимо установить пакет
pulseaudio-alsa
. Он содержит файл
/etc/alsa/conf.d/99-pulseaudio-default.conf
настраивающий ALSA на использование PulseAudio. Также убедитесь, что файл
~/.asoundrc
отсутствует, иначе он будет переопределять настройки из файла
/etc/asound.conf
.
Также может понадобиться установить
lib32-libpulse
и
lib32-alsa-plugins
, если вы используете программы
multilib
, например
Wine
или
Steam
.
Чтобы запретить приложениям ALSA использовать эмуляцию OSS в обход PulseAudio (тем самым не давая другим приложениям воспроизводить звук), убедитесь, что модуль
snd_pcm_oss
не загружается при загрузке системы. Если он в настоящее время загружен (
lsmod | grep oss
), отключите его, выполнив:
# rmmod snd_pcm_oss
Включение DTS через ALSA
Для включения PulseAudio DTS (Digital Theater System) через ALSA установите пакет
dcaenc
AUR
и включите его:
/etc/asound.conf
<confdir:pcm/dca.conf>
Затем перезапустите PulseAudio. Если есть проблемы с громкостью, попробуйте поиграться с настройками, описанными на
странице проекта
.
Раскрытие источников, устройств вывода и микшеров PulseAudio для ALSA
Хотя
pulseaudio-alsa
содержит файл настроек, позволяющий приложениям ALSA использовать устройство по умолчанию из PulseAudio, в ALSA-плагине
pulse
есть дополнительные возможности:
~/.asoundrc (or /etc/asound.conf)
# Create an alsa input/output using specific PulseAudio sources/sinks
pcm.pulse-example1 {
    type pulse
    device "my-combined-sink" # name of a source or sink
    fallback "pulse-example2" # if combined not available
}

pcm.pulse-example2 {
    type pulse
    device "other-sound-card" # name of a source or sink
    # example: device "alsa_output.pci-0000_00_1b.0.analog-stereo"
}

# Create an alsa mixer using specific PulseAudio sources/sinks
# these can be tested with "alsamixer -D pulse-example3"
ctl.pulse-example3 {
    type pulse
    device "my-output" # name of source or sink to control

    # example: always control the laptop speakers:
    # device "alsa_output.pci-0000_00_1b.0.analog-stereo"
    fallback "pulse-example4" # supports fallback too
}

# Mixers also can control a specific source and sink, separately:
ctl.pulse-example4 {
    type pulse
    sink "my-usb-headphones"
    source "my-internal-mic"

    # example: output to HDMI, record using internal
    sink "alsa_output.pci-0000_01_00.1.hdmi-stereo-extra1"
    source "alsa_input.pci-0000_00_1b.0.analog-stereo"
}

# These can override the default mixer (example: for pnmixer integration)
ctl.!default {
    type pulse
    sink "alsa_output.pci-0000_01_00.1.hdmi-stereo-extra1"
    source "alsa_input.pci-0000_00_1b.0.analog-stereo"
}
Для знакомства со всеми доступными настройками доступен
исходный код
.
ALSA/dmix без захвата аппаратного устройства
Примечание
Этот раздел описывает альтернативную настройку, которая, как правило,
не
рекомендуется.
Вы, возможно, захотите использовать ALSA непосредственно в большинстве Ваших приложений, при этом, если есть необходимость, иметь возможность использовать приложения требующие PulseAudio. Следующие шаги позволяют Вам заставлять PulseAudio использовать dmix вместо того, чтобы "захватывать" устройство ALSA.
Удалите пакет
pulseaudio-alsa
, обеспечивающий уровень совместимости между приложениями ALSA и PulseAudio. После этого Ваши приложения ALSA будут использовать ALSA напрямую, без "зацепки" Pulse.
Создайте файл настроек в каталоге
/etc/pulse/default.pa.d/
для выгрузки модулей автоматического обнаружения и статической загрузки нужных модулей бэкенда. Добавьте параметры
device
как показано ниже:
/etc/pulse/default.pa.d/load-audio-drivers-statically.pa
unload-module module-udev-detect
unload-module module-detect
load-module module-alsa-sink
device=dmix
load-module module-alsa-source
device=dsnoop
Дополнительно
: если вы используете
kmix
, вы можете управлять громкостью ALSA вместо громкости PulseAudio, установив
переменную окружения
KMIX_PULSEAUDIO_DISABLE=1
.
Теперь, перезагрузите свой компьютер и попытайтесь запустить одновременно приложения ALSA и PulseAudio. Они оба должны воспроизводить звук одновременно.
При необходимости используйте
pavucontrol
для управления звука PulseAudio.
OSS
Есть несколько способов заставить работать OSS-программы через PulseAudio:
ossp
Установите
пакет
ossp
и
запустите
службу
osspd.service
.
Оболочка padsp
Программы, использующие OSS, могут работать с PulseAudio при запуске через padsp (входит в состав PulseAudio):
$ padsp OSSпрограмма
Несколько примеров:
$ padsp aumix
$ padsp sox foo.wav -t ossdsp /dev/dsp
Вы можете также добавить пользовательский сценарий оболочки:
/usr/local/bin/OSSProgram
#!/bin/sh
exec padsp /usr/bin/OSSprogram "$@"
Убедитесь, что
/usr/local/bin
, идёт до
/usr/bin
в Вашем
PATH
.
Примечание
Это не работает, если модуль module-udev-detect загружен с опцией
tsched=0
.
GStreamer
Установите
gst-plugins-good
или
gstreamer0.10-good-plugins
AUR
[
ссылка недействительна
: package not found]
, если нужная вам программа использует старую реализацию
GStreamer
.
OpenAL
Приложение OpenAL должно использовать PulseAudio по умолчанию, но может быть настроено так, чтобы использовать именно его:
/etc/openal/alsoft.conf
drivers=pulse,alsa
По умолчанию OpenAL не позволяет pulseaudio перемещать аудиопотоки на другое устройство. Чтобы изменить это, добавьте параметр allow-moves:
/etc/openal/alsoft.conf
[pulse]
allow-moves=true
libao
Отредактируйте файл настроек libao:
/etc/libao.conf
default_driver=pulse
Обязательно удалите опцию alsa драйвера
dev=default
или настройте его для определения конкретного имени устройства вывода Pulse (sink) или его числа.
Примечание
Можно оставить в libao стандартный вывод в
alsa
и его устройство по умолчанию, если установлен пакет
pulseaudio-alsa
, так как с ним устройством вывода по умолчанию ALSA является именно PulseAudio.
Постобработка аудио
PulseEffects
PulseEffects
— это GTK-инструмент для применения аудиоэффектов (например, шумоподавления, эквалайзера и т.д.) к входному и выходному аудиосигналу.
Примечание
Новая версия PulseEffects (
EasyEffects
) поддерживает только Pipewire. Для работы с PulseAudio нужно устанавливать старую версию (
pulseeffects-legacy
AUR
или
pulseeffects-legacy-git
AUR
).
Для работы плагинов может понадобиться установка дополнительной зависимости
lsp-plugins
. Если плагины PulseEffects отображаются серым цветом, попытка запуска демона приводит к ошибке или на вкладке
Настройки > PulseAudio
не отображаются устройства, попробуйте очистить кэш как описано в
[3]
.
Коллекцию предустановок PulseEffects можно найти в
community presets
.
Эквалайзер
Если вы хотите использовать другой эквалайзер вместо
#PulseEffects
, есть следующие варианты.
Модуль LADSPA
Установите
pulseaudio-equalizer-ladspa
— эквалайзер, основанный на LADSPA
swh-plugins
. Графический интерфейс запускается командой
pulseaudio-equalizer-gtk
.
Встроенный модуль
Важно
Модуль эквалайзера считается нестабильным и может быть удалён из PulseAudio. Больше информации об этом можно найти здесь
список рассылки (англ.)
.
В PulseAudio есть свой 10-полосный эквалайзер. Для его использования установите
pulseaudio-equalizer
и загрузите нужные модули:
$ pactl load-module module-equalizer-sink
$ pactl load-module module-dbus-protocol
Графический интерфейс можно запустить с помощью команды
qpaeq
.
Примечание
Если изменение параметров эквалайзера никак не влияет на звук, установите
pavucontrol
и измените "ALSA Playback on" на "FFT based equalizer on ..." во время работы медиаплеера.
Для автозапуска эквалайзера при старте PulseAudio создайте
.pa
файл в каталоге
/etc/pulse/default.pa.d/
или
~/.config/pulse/default.pa
со следующими строками:
### Load the integrated PulseAudio equalizer and D-Bus module
load-module module-equalizer-sink
load-module module-dbus-protocol
Примечание
Вывод эквалайзера должен быть загружен после того, как основной вывод станет доступен.
Компрессия
Выполнить сжатие динамического диапазона звука (
компрессию
) можно с помощью
#PulseEffects
, однако он может создавать много накладных расходов и задержек, поэтому, если вам не нужно ничего кроме компрессии, можно использовать
module-ladspa-sink
.
Плагин Стива Хэрриса
В наборе плагинов Steve Harris LADSPA есть модули для компрессии. Установите
swh-plugins
и измените файл настроек PulseAudio следующим образом:
~/.config/pulse/default.pa
.include /etc/pulse/default.pa

set-default-sink название_основного_вывода

load-module module-ladspa-sink sink_name=shw_sc4 sink_master=название_основного_вывода plugin=sc4_1882 label=sc4 control=,,,,,,,,
set-default-sink shw_sc4
Узнать название основного вывода можно с помощью команды
pacmd list-sinks
. Перезапустите PulseAudio для применения изменений. В приведённой выше конфигурации пустые параметры управления задают значения по умолчанию.
Чтобы настроить модуль с помощью пользовательских параметров управления, заполните их, соблюдая правильный порядок.
Параметр
Описание
RMS/peak (0/1)
Переключение между определением пиковых (peak) или среднеквадратичных (RMS) значений. RMS обычно лучше для тонкой, музыкальной компрессии, а peak — для более тяжёлой, быстрой компрессии и перкуссии.
Время атаки (мс)
Время атаки в миллисекундах.
Время спада (мс)
Время восстановления в миллисекундах.
Порог (дБ)
Уровень сигнала, при превышении которого компрессор начинает ослаблять сигнал.
Соотношение (1:n)
Коэффициент ослабления сигнала, используемый, когда уровень сигнала превышает порог. 1 означает отсутствие компрессии; более высокие значения — более сильная компрессия.
Радиус изгиба (дБ)
Расстояние от порога, на котором начинается кривая изгиба сигнала.
Makeup gain (дБ)
Регулирует усиление входного сигнала в децибелах.
Амплитуда (дБ)
Уровень входного сигнала, в децибелах.
Gain reduction (dB)
Степень снижения усиления, применяемая к входному сигналу, в децибелах.
Другие плагины описаны здесь:
Steve Harris' LADSPA Plugin Documentation
.
Плагин Calf
Есть более профессиональный компрессор от
Calf Studio Gear
[
устаревшая ссылка
2025-08-16 ⓘ]
. Установите
calf-ladspa
AUR
и измените конфигурацию следующим образом:
~/.config/pulse/default.pa
.include /etc/pulse/default.pa

set-default-sink your_card_sink_name

load-module module-ladspa-sink sink_name=calf_comp_x2 sink_master=your_card_sink_name plugin=veal label=Compressor control=,,,,,,,,,,
set-default-sink calf_comp_x2
Плагин имеет 11 параметров. Если вы хотите вставить пользовательские значения, ознакомьтесь со следующей таблицей и не забудьте указать их в правильном порядке.
Control option
Default
Min
Max
Type
Info
Bypass
0
0
1
Bool
Level in
1
0.015625
64
Float db
Threshold
0.125
0.000976563
1
Float dbFs
For example, to set -18 db, the right value is 10^(-18/20) = 0.158
Ratio
2
1
20
Float
Attack
20
0.01
2000
Float ms
Release
250
0.01
2000
Float ms
Makeup
1
1
64
Float db
Knee
2.828427125
1
8
Float db
RMS/Peak
0
0
1
Bool
0 = RMS; 1 = Peak
Stereo Link
0
0
1
Bool
0 = Average; 1 = Max
Mix
1
0
1
Float
Percentage
Описание каждого параметра доступно в
документации
[
устаревшая ссылка
2025-08-16 ⓘ]
.
Подавление эхо и шума микрофона
По умолчанию Arch не загружает модуль шумоподавления PulseAudio, поэтому нужно вручную добавить его в
/etc/pulse/default.pa.d/
. Сперва проверьте наличие модуля с помощью
pacmd
и ввода
list-modules
. Если там нет строки
name: <module-echo-cancel>
, создайте файл:
/etc/pulse/default.pa.d/noise-cancellation.pa
### Включить шумоподавление
load-module module-echo-cancel use_master_format=1 aec_method=webrtc aec_args="analog_gain_control=0\ digital_gain_control=1" source_name=echoCancel_source sink_name=echoCancel_sink
set-default-source echoCancel_source
set-default-sink echoCancel_sink
Затем перезапустите PulseAudio:
$ pulseaudio -k
$ pulseaudio --start
и через
pavucontrol
проверьте, что модуль активировался. На вкладке
Запись
должен появиться источник
Echo-Cancel Source Stream
.
Добавление
beamforming=1
в aec_args также может значительно уменьшить фоновый шум, если у вас более одного микрофона (что часто встречается на многих новых ноутбуках). Однако для beamforming необходимо указать
mic_geometry
(смотрите ниже).
Если вы хотите, чтобы существующие потоки автоматически перемещались на новые источник и вывод, необходимо предварительно загрузить
module-switch-on-connect
с параметром
ignore_virtual=no
.
Примечание
Если вы подключите USB звуковую карту или гарнитуру, или, например, у вас конфигурация колонок 5.1 и вы подключите гарнитуру к фронтальным аудиоразъёмам после загрузки
module-echo-cancel
, вам придётся вручную выгрузить и загрузить
module-echo-cancel
снова, потому что, к сожалению, нет способа сказать модулю, что он должен автоматически переключиться на новые стандартные значения 'source_master' и 'source_sink'. Смотрите
[4]
.
Возможные 'aec_args' для 'aec_method=webrtc'
Ниже представлен список возможных значений 'aec_args' для 'aec_method=webrtc' со значениями, используемыми по умолчанию
[5]
[6]
:
analog_gain_control=1
- Аналоговая АРУ - 'Автоматическая Регулировка Усиления' осуществляется путем прямого изменения громкости - скорее всего приведет к
искажениям
.
digital_gain_control=0
- Цифровая АРУ - 'Автоматическая Регулировка Усиления' осуществляется постобработкой (более высокая нагрузка на процессор).
experimental_agc=0
- Позволяет включить экспериментальный механизм АРУ webrtc.
agc_start_volume=85
- Уровень начальной громкости при использовании АРУ - Возможные значения 0-255 - Слишком низкий уровень начальной громкости может вовсе нивелировать возможность алгоритма АРУ повысить уровень громкости до достаточного значения
[7]
.
high_pass_filter=1
- ?
noise_suppression=1
- Подавитель шума.
voice_detection=1
- VAD - Обнаружение голосовой активности.
extended_filter=0
- Расширенный фильтр, более сложный и устойчивый к неверной задержке ответа от аппаратных устройств, чем обычный фильтр. Расширенный фильтр по умолчанию не активен, так как даёт худшие результаты при обычном разговоре
[8]
. Включите этот параметр, если ваш микрофон или динамик имеет большую задержку, например, если вы используете беспроводной микрофон или некоторые телевизоры HDMI в качестве динамика.
intelligibility_enhancer=0
- Некоторая настройка для webrtc усилителя разбора сигнала.
drift_compensation=0
- Компенсация отклонений позволяет избежать эффекта эха между различными устройствами (такими как колонки вашего ноутбука и микрофоном USB вебкамеры). - работает только с "mobile=0".
beamforming=0
- Это может значительно снизить фоновый шум. Смотрите
[9]
[10]
mic_geometry=x1,y1,z1,x2,y2,z2
- Работает только с "beamforming=1".
target_direction=a,e,r
- Работает только с "beamforming=1". Примечание: Если модуль не хочет загружаться с этим параметром, установите азимут (a) на желаемое значение, а высоту (e) и радиус (r) установите на 0.
mobile=0
- ?
routing_mode=speakerphone
- Возможные значения "quiet-earpiece-or-headset,earpiece,loud-earpiece,speakerphone,loud-speakerphone" - работает только с "mobile=1".
comfort_noise=1
- ? - работает только с "mobile=1".
Отключение постобработки звука в некоторых приложениях
Если вы используете
module-echo-cancel
, то, вероятно, дополнительная обработка звука, встроенная в некоторых приложениях, вам не нужна. Вот как её можно отключить:
Mumble:
Настройки -> Исходящий звук
Подавление эха -> Отключено
Подавление шума -> Выключено
Макс. усиление -> 1.0
TeamSpeak:
Tools -> Options -> Capture
Отключите: 'Typing attenuation', 'Remove background noise', 'Echo cancellation' и 'Echo reduction (Ducking)'
Firefox: смотрите
Firefox/Tweaks#Disable WebRTC audio post processing
Steam:
В окне "Список друзей" -> Настройки списка друзей (шестерёнка) -> Голосовые чаты -> Дополнительные настройки
Отключите: "Эхоподавление", "Шумоподавление", "Автоматическая регулировка звука и усиления"
Скрипт для перезагрузки module-echo-cancel
Поскольку module-echo-cancel не всегда нужен или должен быть перезагружен после изменения source_master или sink_master, было бы неплохо иметь простой способ загрузить или перезагрузить module-echo-cancel.
Создайте
следующий скрипт и сделайте его
исполняемым
:
echoCancelEnable.sh
#!/bin/sh
aecArgs="$*"
# Если в скрипт не переданы "aec_args", то используются по умолчанию эти:
[ -z "$aecArgs" ] && aecArgs="analog_gain_control=0 digital_gain_control=1"
newSourceName="echoCancelSource"
newSinkName="echoCancelSink"

# "module-switch-on-connect" с опцией "ignore_virtual=no" (PulseAudio 12 и новее) нужен
# для автоматического перемещения существующих потоков на новый (виртуальный) источник
# и выход по умолчанию.
if ! pactl list modules short | grep "module-switch-on-connect.*ignore_virtual=no" >/dev/null 2>&1; then
	echo Load module \"module-switch-on-connect\" with \"ignore_virtual=no\"
	pactl unload-module module-switch-on-connect 2>/dev/null
	pactl load-module module-switch-on-connect ignore_virtual=no
fi

# Перезагрузка "module-echo-cancel"
echo Reload \"module-echo-cancel\" with \"aec_args=$aecArgs\"
pactl unload-module module-echo-cancel 2>/dev/null
if pactl load-module module-echo-cancel use_master_format=1 aec_method=webrtc aec_args=\"$aecArgs\" source_name=$newSourceName sink_name=$newSinkName; then
	# Установка новых источника и выхода по умолчанию, если module-echo-cancel успешно загрузился.
	pacmd set-default-source $newSourceName
	pacmd set-default-sink $newSinkName
fi
Для более удобного запуска через графический интерфейс можно создать
ярлык
.
Подавление шума с помощью рекуррентной нейронной сети (RNNoise)
Пакет
noise-suppression-for-voice
предоставляет подавление шума в реальном времени на основе RNNoise: Learning Noise Suppression
[11]
. Подробнее о настройке можно почитать в репозитории на GitHub
[12]
. Можно установить графический интерфейс Cadmus (
cadmus-deb
AUR
[
ссылка недействительна
: package not found]
или
cadmus-appimage
AUR
).
Другой альтернативой является
noisetorch
AUR
, который также построен на базе RNNoise. Здесь есть шумоподавление не только входа, но и выхода.
Приложения
QEMU
Обратитесь к
QEMU#Creating an audio backend
для детального описания настройки pulseaudio в
QEMU
.
AlsaMixer.app
Сделайте
alsamixer.app
AUR
dockapp для использования pulseaudio
windowmaker
, например:
$ AlsaMixer.app --device pulse
Вот два примера, где первый - для ALSA, и другой - для pulseaudio. Вы можете запустить несколько его экземпляров. Используйте опцию выбора
-w
, кнопок управления для привязки к колесику мышки.
# AlsaMixer.app -3 Mic -1 Master -2 PCM --card 0 -w 1
# AlsaMixer.app --device pulse -1 Capture -2 Master -w 2
Примечание
Он может использовать только те устройства вывода, которые устанавлены по умолчанию..
XMMS2
Сделайте переключение на вывод pulseaudio
$ nyxmms2 server config output.plugin pulse
и на alsa
$ nyxmms2 server config output.plugin alsa
Для того, чтобы xmms2 использовал другое устройство вывода, например:
$ nyxmms2 server config pulse.sink alsa_output.pci-0000_04_01.0.analog-stereo.monitor
Смотрите также официальное руководство
[13]
[
устаревшая ссылка
2024-03-03 ⓘ]
.
Рабочая область KDE Plasma и Qt4
PulseAudio будет автоматически использоваться приложениями KDE/Qt4. Это поддерживается по умолчанию в микшере звука KDE. Для получения дополнительной информации посмотрите
страницу KDE, в wiki PulseAudio
.
Один полезный совет с этой страницы заключён в том, что следует загружать
load-module module-device-manager
. Обычно это происходит автоматически при входе в систему с помощью скрипта
/usr/bin/start-pulseaudio-x11
, но если этого не произошло, вы можете добавить его вручную в файл настроек в каталоге
/etc/pulse/default.pa.d/
. О возможных конфликтах с
module-switch-on-connect
смотрите в разделе
#Переключение при подключении
.
Если бэкэнд phonon-gstreamer используется для
Phonon
, GStreamer должен также быть настроен, как описано в разделе
#GStreamer
.
Audacious
Audacious
изначально поддерживает PulseAudio. Для его использования зайдите в Настройки… → Звук → Настройки вывода и выберите модуль «Вывод PulseAudio».
Music Player Daemon (MPD)
Настройте
MPD
на использование PulseAudio. Смотрите также раздел
Music Player Daemon/Tips and tricks#PulseAudio
.
MPlayer
MPlayer
изначально поддерживает вывод PulseAudio с опцией
-ao pulse
. Он также может быть настроен для использования вывода PulseAudio по умолчанию, в
~/.mplayer/config
для конкретного пользователя, или для всей системы
/etc/mplayer/mplayer.conf
:
/etc/mplayer/mplayer.conf
ao=pulse
mpv
mpv
поддерживает PulseAudio аналогично
#MPlayer
. Пользовательский файл настроек находится в
~/.config/mpv/mpv.conf
, общесистемный — в
/etc/mpv/mpv.conf
.
guvcview
guvcview
при использовании входа PulseAudio от
Веб-камеры
, может перевести аудиовход в "приостановленный" режим, в результате чего звук не будет записываться. Вы можете проверить это путем выполнения:
$ pactl list sources
Если источник аудиосигналов "suspended" (приостановлен), создайте следующий файл
.pa
:
/etc/pulse/default.pa.d/no-module-suspend-on-idle.pa
unload-module module-suspend-on-idle
И затем перезапустите PulseAudio или компьютер, и источник будет просто оставаться неактивным, а не переходить в «приостановленный» режим. Теперь guvcview будет писать звук правильно.
Сетевой звук
Одна из уникальных особенностей PulseAudio — способность надёжно передавать аудиопоток от клиентов на сервер, на котором запущен демон PulseAudio, по протоколу TCP в пределах локальной сети. Важно, чтобы время на сервере и клиенте совпадало (например, можно использовать NTP для синхронизации), иначе аудиопоток может быть прерывистым или вообще не работать. Подробности доступны в
официальной документации PulseAudio
.
Включите модуль TCP на сервере (компьютере, который выполняет фактический вывод звука) путём создания следующего файла
.pa
:
/etc/pulse/default.pa.d/tcp.pa
load-module module-native-protocol-tcp
Или можно использовать графическое приложение
paprefs
(root не требуется). Перейдите в раздел
Network Server
и поставьте галочку
Enable network access to local sound devices
.
Чтобы убедиться, что module-native-protocol-tcp на сервере загружен, можно использовать команду:
$ pacmd list-modules | grep module-native-protocol-tcp
Чтобы сервер разрешил клиенту подключаться к себе, они должны использовать одинаковый cookie. Скопируйте файл
~/.config/pulse/cookie
с одного компьютера на другой. Неважно, чей именно файл cookie вы используете (сервера или клиента); главное, чтобы у сервера и клиента этот файл был одинаковый.
Если копирование файла cookie не подходит, можно разрешить доступ к серверу анонимным клиентам, добавив опцию
auth-anonymous
в
module-native-protocol-tcp
на сервере (опять же в
/etc/pulse/default.pa.d/
):
load-module module-native-protocol-tcp auth-anonymous=1
Также можно выполнять аутентификацию по IP-адресу:
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.0.0/24
Измените подсеть на ту, с которой подключаются клиенты, которым нужно предоставить доступ.
Запуск общесистемного экземпляра при загрузке системы
Демон PulseAudio обычно запускается как пользовательская служба, когда пользователь входит в систему и пытается воспроизвести какой-либо звук. Для запуска выделенного сервера PulseAudio, принимающего клиентские соединения по TCP, демон должен запускаться при загрузке как системная служба. Обратите внимание, что
в большинстве случаев использования настольных компьютеров системный режим, скорее всего, не является правильным выбором
.
Чтобы запустить PulseAudio как системную службу, сначала нужно настроить пользователей и группы, необходимые для общесистемного экземпляра сервера PulseAudio
[14]
:
Добавьте пользователя pulse. Демон PulseAudio будет переключаться на него после запуска.
# useradd -d /var/run/pulse -s /usr/bin/nologin -G audio pulse
Опционально добавьте пользователя pulse в группу bluetooth, если он у вас есть (bluez) и вы хотите позволить PulseAudio использовать bluetooth.
# usermod -aG bluetooth pulse
Добавьте группу pulse-access, которая будет использоваться для контроля доступа к серверу PulseAudio.
# groupadd pulse-access
Добавьте в группу pulse-access пользователей, которым вы хотите предоставить доступ к общесистемному экземпляру PulseAudio.
# usermod -aG pulse-access root
В каталоге
/etc/systemd/system
создайте юнит
pulseaudio.service
:
/etc/systemd/system/pulseaudio.service
[Unit]
Description=Sound Service

[Service]
# Имейте в виду, что notify будет работать только с опцией --daemonize=no
Type=notify
ExecStart=/usr/bin/pulseaudio --daemonize=no --exit-idle-time=-1 --disallow-exit=true --system --disallow-module-loading
Restart=always

[Install]
WantedBy=default.target
Затем
включите
общесистемную службу
pulseaudio.service
. Также нужно отключить пользователькую службу PulseAudio:
# systemctl --global mask pulseaudio.socket
Это необходимо, даже если вы получаете доступ к системе по SSH, чтобы служба PulseAudio на уровне пользователя никогда не запускалась.
Выбор сервера
Для однократного использования в оболочке или для отдельной команды можно прописать имя хоста или IP-адрес нужного сервера PulseAudio в переменной окружения
$PULSE_SERVER
.
$ env PULSE_SERVER=
домен-или-ip-сервера
mplayer test.mp3
Постоянную настройку можно записать в файл
~/.pulse/client.conf
или
/etc/pulse/client.conf
.
default-server =
домен-или-ip-сервера
Также можно указать несколько серверов через пробел, к которым клиент PulseAudio будет пытаться подключаться по очереди
[15]
:
default-server =
сервер1
запасной-сервер
Советы и рекомендации
Регулировка звука клавиатурой
Привяжите следующие команды к своим кнопкам регулировки громкости:
XF86AudioRaiseVolume
,
XF86AudioLowerVolume
,
XF86AudioMute
. Подробнее это рассмотрено здесь:
Горячие клавиши#Xorg
.
Во-первых, найдите устройство вывода, которое является источником звука, которым вы хотите управлять.
Для отображения списка доступных выводов используйте команду:
$ pactl list sinks short
Предположим, что используется источник 0, тогда для увеличения громкости:
$ sh -c "pactl set-sink-mute 0 false ; pactl set-sink-volume 0 +5%"
Для понижения громкости:
$ sh -c "pactl set-sink-mute 0 false ; pactl set-sink-volume 0 -5%"
Отключить/включить звук:
$ pactl set-sink-mute 0 toggle
Отключить/включить микрофон:
$ pactl set-source-mute 1 toggle
Совет
Чтобы клавиатурные сокращения всегда работали с устройством вывода по умолчанию, установите
@DEFAULT_SINK@
как номер устройства вывода, например,
pactl set-sink-mute @DEFAULT_SINK@ toggle
.
Для более продвинутого управления, например, для ограничения максимальной громкости, используйте один из
консольных интерфейсов
.
Проигрывание звука через неинтерактивную оболочку (служба systemd, cron)
Установите
XDG_RUNTIME_DIR
перед командой (замените
user_id
на ID пользователя, запускающего PulseAudio):
$ XDG_RUNTIME_DIR=/run/user/
user_id
paplay /usr/share/sounds/freedesktop/stereo/complete.oga
Или используйте
machinectl
:
# machinectl shell .host --uid=
user_id
/usr/bin/paplay /usr/share/sounds/freedesktop/stereo/complete.oga
Сигналы событий X11
Для передачи pulseaudio управления сигналами событий X11, выполните следующие команды после запуска сеанса X11:
$ pactl upload-sample /usr/share/sounds/freedesktop/stereo/bell.oga bell-window-system
$ pactl load-module module-x11-bell display=$DISPLAY
Или пропишите настройки в
/etc/pulse/default.pa.d/
или
~/.config/pulse/default.pa
:
~/.config/pulse/default.pa
.include /etc/pulse/default.pa

# audible bell
load-sample-lazy bell-window-system /usr/share/sounds/freedesktop/stereo/bell.oga
load-module module-x11-bell
Для настройки уровня громкости сигналов X11 запустите команду:
$ xset b 100
100 - это уровень в процентах. Для корректной работы потребуется пакет
xorg-xset
. Чтобы узнать как запускать данные команды автоматически при загрузке сессии X11, ознакомьтесь с разделом
Autostarting (Русский)
.
Переключение при подключении
Модуль
switch-on-connect
переключает вывод звука на новые устройства при их подключении. Например, если вы подключите USB-гарнитуру, то звук будет переведён на неё. Если вы её отключите, то звук вернётся на последнее используемое устройство.
По умолчанию этот модуль отключен, так как его поведение слишком агрессивное, но его можно включить добавлением строки
load-module module-switch-on-connect
в файл
~/.config/pulse/default.pa
.
Примечание
С некоторыми устройствам он может не работать; смотрите
PulseAudio/Решение проблем#Каналы ALSA отключены, когда наушники подсоединены/отсоединены неправильно
.
Скрипт для переключения аналоговых выходов
Некоторые звуковые карты обладают несколькими аналоговыми выходами, которые можно переключать через профили Pulseaudio. Но переключение вручную может быть неудобным, и вы можете использовать для этого следующую команду:
$ pactl set-sink-port 'number of the card' 'port'
Таким образом, выбранный вами порт станет выходом по умолчанию.
Пример:
$ pactl set-sink-port 0 "analog-output;output-speaker"
Список портов можно получить, используя:
$ pactl list
Текущий выход можно отобразить командой:
$ pactl list sinks | grep "active profile"| cut -d ' ' -f 3-
Эти операции можно автоматизировать простым скриптом. Затем пользователь может назначить его на ярлык:
~/pa.sh (или любое другое название)
#!/bin/sh
# Этот скрипт использует уведомления kdialog для предупреждения пользователя о том, что текущий профиль изменён. Пользователь может доработать его для своих нужд или совсем изменить.

CURRENT_PROFILE=$(pactl list sinks | grep "active profile"| cut -d ' ' -f 3-)

if [ "$CURRENT_PROFILE" = "analog-output;output-speaker" ] ; then
        pactl set-sink-port 0 "analog-output;output-headphones-1"
        kdialog --title "Pulseaudio" --passivepopup "Headphone" 2 & 
else 
        pactl set-sink-port 0 "analog-output;output-speaker"      
        kdialog --title "Pulseaudio" --passivepopup  "Speaker" 2 &
fi
Этот скрипт предназначен для переключения между двумя профилями. Сначала он проверяет текущий профиль, а затем заменяет его. Пользователям необходимо изменить поле 'active profile' в соответствии с языком, который предоставил pactl. Пользователям, возможно, понадобится изменить номер карты и выхода для настройки под свою конкретную систему.
Отключение заглушения медиа при голосовом вызове (module-role-cork)
При голосовом вызове (например, в Microsoft Teams и, возможно, других подобных программах) любые мультимедийные приложения могут быть заглушены. Чтобы отключить это поведение, можно отключить этот модуль в конфигурации PulseAudio:
/etc/pulse/default.pa.d/no-cork.pa
unload-module module-role-cork
Продвинутая настройка и сценарии использования
Смотрите
PulseAudio/Примеры
.
Решение проблем
Смотрите
PulseAudio/Решение проблем
.
Смотрите также
Официальный сайт PulseAudio
с документацией
Pulseaudio under the hood