1

У меня были проблемы с моим аудио. Когда я записываю звук, я записываю звук воспроизведения, если не укажу правильное устройство (см. Ниже). Таким образом, вместо захвата моего USB-микрофона воспроизводится звук, воспроизводимый через мои наушники.

Я не уверен, что происходит и как это исправить. Я использую ALSA и Pulseaudio, и мой asound.conf по умолчанию генерируется Pulseaudio. Вывод cat /proc/asound/cards:

0 [PCH            ]: HDA-Intel - HDA Intel PCH
                     HDA Intel PCH at 0xf7910000 irq 29
1 [NVidia         ]: HDA-Intel - HDA NVidia
                     HDA NVidia at 0xf7080000 irq 17
2 [C01U           ]: USB-Audio - Samson C01U
                     Samson Technologies Samson C01U at usb-0000:00:14.0-9, full speed

Вывод amixer -c0 contents: https://pastebin.com/cyERFpPk

Для записи звука при тестировании моего микрофона я использовал audacity с устройством записи, установленным на Samson C01U:USB Audio (hw:2,0): Front Mic:0 и я использовал arecord с arecord -d 2 -D hw:2,0 -f cd test.wav . Оба записывают звук с моего микрофона, однако при воспроизведении звука с arecord , он воспроизводится только через мои наушники.

Я также заметил другую проблему. Сверхурочные (особенно когда я играю с моими уровнями звука), я начинаю слышать некоторую статичность при прослушивании звука. Иногда он очень слабый, а иногда очень громкий. Это никогда не случалось со мной. Я могу решить эту проблему, перезапустив pulseaudio, но это раздражает.

Мой /etc/asound.conf: https://pastebin.com/2XSEhfHb. У меня нет ~/.asoundrc .

2 ответа2

1

Хорошо, краткий обзор, как все работает.

Ваша звуковая карта Intel HDA имеет цифровое соединение с микросхемой "кодека", которая содержит ЦАП и АЦП, аналоговые микшеры, аналоговые усилители и аналоговые коммутаторы. ALSA имеет драйверы ядра для звуковых карт и назначает элементы микшера, которые вы можете видеть в amixer для управления некоторыми (но не всеми) вещами в кодеке.

Вы можете настроить ALSA с помощью "плагинов" через общесистемный /etc/asound.conf или для отдельных пользователей ~/.asoundrc .

Pulseaudio работает поверх ALSA и представляет единый механизм передачи аудио для приложений. Он заботится о преобразовании частоты дискретизации и т.д., Что делает Pulseaudio гораздо более приятным в использовании (в принципе), чем ALSA. Стандартная конфигурация состоит в том, что Pulseaudio представляет уровень совместимости с устаревшими приложениями ALSA с такими записями, как

pcm.!default pulse
ctl.!default pulse

Они устанавливают вход и выход ALSA по умолчанию таким образом, что приложения ALSA рассматриваются как приложения Pulseaudio. Поэтому, когда вы используете arecord или audacity (приложения ALSA) с входом ALSA по умолчанию, вы действительно используете Pulseaudio (вы также можете использовать parecord для прямого доступа к Pulseaudio). Но когда вы выбираете hw:XXX , вы записываете прямо из драйверов ALSA.

Pulseaudio имеет свою (очень гибкую) концепцию аудиоисточников и приемников. Вы можете видеть (и изменять), какие приложения подключены к каким источникам и приемникам, используя pavucontrol (и во многих средах рабочего стола, и на аналогичной панели рабочего стола).

Поэтому, если вы запускаете arecord и смотрите с pavucontrol , он должен отображаться и записываться из источника, принадлежащего звуковой карте Intel HDA (обычно «Встроенный аналоговый стереозвук»).

Почему он записывает звук, который воспроизводится одновременно? Можно было бы взглянуть на кодек более подробно (вы можете сделать это с помощью cat /proc/asound/card*/codec\#*), но в выводе amixer есть элемент управления микшером, называемый Loopback-микшированием, и он включен. Поэтому я думаю, что ваш кодек содержит функцию, которая позволяет записывать звук, который выводится в данный момент. Отключите его в alsamixer и посмотрите, что изменится.

Как настроить автоматическую запись с USB-микрофона Samson? Вы можете настроить значения по умолчанию в ALSA, но если вы хотите сохранить Pulseaudio, вам следует настроить Pulseaudio вместо этого. Вы можете выбрать источники звука для каждого приложения в pavucontrol когда приложение работает, и Pulseaudio запоминает настройки. Вы также можете установить источник звука по умолчанию, нажав "установить как запасной вариант" на вкладке « Вход », или использовать pacmd set-default-source my_source из командной строки. pacmd list-sources | grep name: предоставит вам список доступных источников. Отбросьте угловые скобки, когда используете имя источника в командной строке.

редактировать

Каждый Pulseaudio раковина имеет соответствующий источник .monitor Так вот, по какой-то причине Pulseaudio не может получить какой-либо вход ALSA, поэтому он не может создавать соответствующие источники, поэтому остается только источник .monitor , который выводит звук, воспроизводимый в данный момент. , Таким образом, в кодеке нет внутреннего цикла (хотя это может быть другим способом записи воспроизводимого в данный момент звука).

Это означает, что вы должны отладить, почему Pulseaudio не может создавать источники, соответствующие входам ALSA, хотя он создает приемник dmix , чего не следует, - это должен быть аппаратный приемник.

Пожалуйста, /etc/asound.conf и ~/.asoundrc качестве первого шага. Перед запуском Pulseaudio уже запущены программы, которые используют ALSA напрямую и не позволяют Pulseaudio использовать аппаратные входы / выходы?

0

Решил, что мой звук воспроизведения записывается путем удаления pulseaudio

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .