ALSA — нижний слой звуковой подсистемы Linux. Даже если поверх работают PipeWire или PulseAudio, приложения в итоге общаются с ядром через ALSA, а утилиты aplay и arecord позволяют проверить тракт без графики. Это удобно на сервере, в ssh-сессии, при отладке микрофона и при записи с линейного входа. Ниже — команды для перечисления устройств, записи и воспроизведения, управления микшером и разбора типичных ошибок.

Какие устройства видит система

Начните с карт и их номеров. Файл /proc/asound/cards показывает соответствие индексов и названий, aplay -l перечисляет устройства воспроизведения, arecord -l — устройства записи. Обозначение plughw:1,0 означает карту 1, устройство 0; префикс plug разрешает автоматическое преобразование формата и частоты.

cat /proc/asound/cards
aplay -l
arecord -l
aplay -L

Список aplay -L показывает уже именованные PCM: default, sysdefault, hw, а при установленном PipeWire — ещё и его маршруты. Для повседневных задач достаточно default, для точной проверки железа — hw без программных преобразований.

Запись с микрофона

Команда arecord принимает формат, длительность и контейнер. Сокращение cd означает 16 бит, 44,1 кГц, два канала; dat — 16 бит, 48 кГц, два канала. Для голоса часто достаточно моно 48 кГц, для музыки лучше сразу писать без потерь.

arecord -f cd -d 15 -t wav ~/test-cd.wav
arecord -D plughw:1,0 -f dat -c 2 -d 10 ~/line-in.wav
arecord -f S24_3LE -r 96000 -c 2 -d 20 ~/hi-res.wav
arecord -vv -f cd -d 5 ~/level-test.wav

Флаг -vv рисует индикатор уровня: если полоска стоит на нуле, проверьте Capture в микшере и права на устройство. Запись с plughw спасает, когда карта не поддерживает выбранную частоту, но именно из-за преобразования можно не услышать реальное качество тракта.

Воспроизведение

aplay проигрывает WAV и RAW. Для проверки каналов удобна speaker-test: она по очереди подаёт сигнал на каждый канал и помогает понять, не перепутаны ли левый и правый. Если файл не играет, сначала проверьте, что он действительно WAV, а не MP3 с другим расширением.

aplay ~/test-cd.wav
aplay -D plughw:0,0 ~/test-cd.wav
speaker-test -D default -c 2 -t sine -l 1
aplay --dump-hw-params ~/test-cd.wav

--dump-hw-params печатает поддерживаемые форматы, частоты и число каналов для выбранного устройства. Это самый быстрый способ понять, почему карта отказывается принимать 96 кГц или многоканальный поток.

Микшер и сохранение настроек

Уровни задаются через amixer в терминале или alsamixer в псевдографике. Изменения живут до перезагрузки, если их не сохранить. Команда alsactl store записывает состояние, alsactl restore возвращает его; в большинстве дистрибутивов это делает служба alsa-restore при загрузке.

amixer -c 0 sget Master
amixer -c 0 sset Master 60%
amixer -c 0 sset Master mute
alsamixer -c 0
sudo alsactl store

Имя регулятора зависит от карты: это может быть Master, PCM, Headphone или Capture. Посмотреть полный список позволяет amixer -c 0 scontrols. Если после перезагрузки громкость сбрасывается, проверьте, включена ли служба alsa-restore.service и существует ли файл состояния.

Форматы и конвертация

ALSA умеет немного: записать и проиграть поток. Для обрезки, склейки и смены формата используют sox или ffmpeg. Это удобно, когда нужно привести запись к единому виду перед публикацией или отдать её в редактор.

sox ~/test-cd.wav -r 48000 -c 1 -b 16 ~/voice.wav
sox ~/voice.wav ~/voice.flac
ffmpeg -f alsa -i default -t 10 ~/capture.wav
ffmpeg -i ~/test-cd.wav -ar 48000 ~/out.wav

При конвертации следите за уровнем: повышение громкости после записи не уберёт клиппинг, а лишь усилит искажения. Лучше оставить запас 3–6 дБ при записи.

PipeWire и PulseAudio

В современных дистрибутивах default обычно указывает не на железо, а на звуковой сервер. Тогда aplay и arecord работают через совместимый слой, а маршрутизацией управляет PipeWire. Проверить это можно по списку устройств и статусу служб.

wpctl status
pactl list short sinks
pactl list short sources
systemctl --user status pipewire wireplumber

Если wpctl status показывает устройство, а aplay молчит, проверьте громкость и выбранный по умолчанию выход. Для записи системного звука нужен monitor-источник, а не микрофон: его видно в pactl list short sources как .monitor.

Типичные ошибки

  • Device or resource busy: устройство занято другим приложением, проверьте fuser -v /dev/snd/*.
  • No such file or directory: неверный номер карты, сверьтесь с aplay -l.
  • Щелчки и пропуски: перегрузка CPU или слишком маленький буфер, попробуйте --buffer-size.
  • Нет прав: обычно доступ выдаётся через logind, но в некоторых системах требуется группа audio; запуск от root не нужен.
  • Микрофон пишет тишину: выбран не тот вход или выключен Capture в микшере.
fuser -v /dev/snd/*
groups
cat /proc/asound/card0/pcm0p/sub0/hw_params
dmesg | grep -i snd

Файл hw_params показывает, в каком формате устройство работает прямо сейчас. Если там closed, поток уже завершён; если параметры отличаются от ожидаемых, вмешался звуковой сервер или преобразование plug.

Проверка тракта по шагам

  • Убедитесь, что карта видна в /proc/asound/cards.
  • Проверьте уровень и отсутствие mute в alsamixer.
  • Запишите пять секунд с -vv и посмотрите индикатор.
  • Проиграйте файл через aplay на том же устройстве.
  • Сравните частоту и формат с --dump-hw-params.
  • Сохраните настройки через alsactl store.

Такой порядок отсекает большинство проблем: если запись слышна, а воспроизведение нет, дело в выходе или микшере, а не в микрофоне. Если не работает и то и другое, проверьте, не занято ли устройство другим приложением, и загляните в dmesg после подключения карты. Для внешней USB-гарнитуры полезно сразу сравнить arecord -l до и после подключения: иногда система создаёт новую карту, и старый номер устройства перестаёт быть верным.

Итог

ALSA из терминала — это четыре инструмента: aplay, arecord, amixer и alsactl. Они позволяют за пять минут проверить железо, записать голос, выставить уровень и сохранить настройки. Если звук идёт через PipeWire, те же команды работают через совместимый слой, но диагностику маршрутов удобнее вести через wpctl и pactl.

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 0 / 5. Количество оценок: 0

Оценок пока нет. Поставьте оценку первым.

Поделиться: Telegram ВКонтакте