Вопрос или проблема
У меня на Raspberry Pi установлена USB звуковая карта C-Media: Bus 001 Device 004: ID 0d8c:0008 C-Media Electronics, Inc.
. Это USB кабель с XLR разъемом на другом конце, к которому я подключил XLR микрофон (если кого-то это интересует, то это Sennheiser MD 427):
Подключая её к Mac, я могу увеличить громкость записи (там указано “настройки для выбранного устройства” и “громкость ввода” на немецком)
и получать довольно нормальную запись (это стерео запись, но это показывает уровень громкости):
Теперь, под Linux это выглядит совершенно иначе. Устройство распознаётся нормально, snd_usb_audio
загружается и alsamixer
показывает новое записывающее устройство и позволяет увеличить “громкость записи” до максимума:
Тем не менее, громкость того, что я могу записать с помощью # AUDIODEV=hw:1 rec tmp.wav
, в лучшем случае ничтожная:
Теперь, есть ли способ изменить настройки модуля ядра, чтобы “поднять громкость записи” больше, чем предлагается? Или, возможно, какие-то другие настройки, о которых я забыл?
Я могу “повысить” запись, используя # AUDIODEV=hw:1 rec tmp.wav gain 20
, но это также увеличивает шум, и результат всё ещё ниже, чем у Mac.
Перед тем как вы спросите:
# arecord -L
null
Отбросить все образцы (воспроизведение) или сгенерировать нулевые образцы (захват)
default:CARD=Device
C-Media USB Audio Device, USB Audio
Устройство аудиоввода по умолчанию
sysdefault:CARD=Device
C-Media USB Audio Device, USB Audio
Устройство аудиоввода по умолчанию
front:CARD=Device,DEV=0
C-Media USB Audio Device, USB Audio
Передние динамики
surround21:CARD=Device,DEV=0
C-Media USB Audio Device, USB Audio
2.1 воспроизведение: Передние и сабвуферные динамики
surround40:CARD=Device,DEV=0
C-Media USB Audio Device, USB Audio
4.0 воспроизведение: Передние и задние динамики
surround41:CARD=Device,DEV=0
C-Media USB Audio Device, USB Audio
4.1 воспроизведение: Передние, задние и сабвуферные динамики
surround50:CARD=Device,DEV=0
C-Media USB Audio Device, USB Audio
5.0 воспроизведение: Передние, центральные и задние динамики
surround51:CARD=Device,DEV=0
C-Media USB Audio Device, USB Audio
5.1 воспроизведение: Передние, центральные, задние и сабвуферные динамики
surround71:CARD=Device,DEV=0
C-Media USB Audio Device, USB Audio
7.1 воспроизведение: Передние, центральные, боковые, задние и сабвуферные динамики
iec958:CARD=Device,DEV=0
C-Media USB Audio Device, USB Audio
IEC958 (S/PDIF) цифровой аудиовыход
dmix:CARD=Device,DEV=0
C-Media USB Audio Device, USB Audio
Устройство прямого смешивания образцов
dsnoop:CARD=Device,DEV=0
C-Media USB Audio Device, USB Audio
Устройство прямого осмотра образцов
hw:CARD=Device,DEV=0
C-Media USB Audio Device, USB Audio
Прямое аппаратное устройство без преобразований
plughw:CARD=Device,DEV=0
C-Media USB Audio Device, USB Audio
Аппаратное устройство со всеми программными преобразованиями
#
# lsusb
Bus 001 Device 005: ID 0d8c:0008 C-Media Electronics, Inc.
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
#
# arecord -l
**** Список устройств ЗАХВАТА ****
карта 1: Device [C-Media USB Audio Device], устройство 0: USB Audio [USB Audio]
Подустройства: 1/1
Подустройство #0: подустройство #0
#
# amixer -c 1 scontrols
Простое управление микшером 'PCM',0
Простое управление микшером 'Mic',0
Простое управление микшером 'Auto Gain Control',0
#
# uname -ra
Linux xxx 4.4.16+ #899 Thu Jul 28 12:36:19 BST 2016 armv6l GNU/Linux
#
# aplay -l -L
null
Отбросить все образцы (воспроизведение) или сгенерировать нулевые образцы (захват)
default:CARD=ALSA
bcm2835 ALSA, bcm2835 ALSA
Устройство аудиоввода по умолчанию
sysdefault:CARD=ALSA
bcm2835 ALSA, bcm2835 ALSA
Устройство аудиоввода по умолчанию
dmix:CARD=ALSA,DEV=0
bcm2835 ALSA, bcm2835 ALSA
Устройство прямого смешивания образцов
dmix:CARD=ALSA,DEV=1
bcm2835 ALSA, bcm2835 IEC958/HDMI
Устройство прямого смешивания образцов
dsnoop:CARD=ALSA,DEV=0
bcm2835 ALSA, bcm2835 ALSA
Устройство прямого осмотра образцов
dsnoop:CARD=ALSA,DEV=1
bcm2835 ALSA, bcm2835 IEC958/HDMI
Устройство прямого осмотра образцов
hw:CARD=ALSA,DEV=0
bcm2835 ALSA, bcm2835 ALSA
Прямое аппаратное устройство без преобразований
hw:CARD=ALSA,DEV=1
bcm2835 ALSA, bcm2835 IEC958/HDMI
Прямое аппаратное устройство без преобразований
plughw:CARD=ALSA,DEV=0
bcm2835 ALSA, bcm2835 ALSA
Аппаратное устройство со всеми программными преобразованиями
plughw:CARD=ALSA,DEV=1
bcm2835 ALSA, bcm2835 IEC958/HDMI
Аппаратное устройство со всеми программными преобразованиями
default:CARD=Device
C-Media USB Audio Device, USB Audio
Устройство аудиоввода по умолчанию
sysdefault:CARD=Device
C-Media USB Audio Device, USB Audio
Устройство аудиоввода по умолчанию
front:CARD=Device,DEV=0
C-Media USB Audio Device, USB Audio
Передние динамики
surround21:CARD=Device,DEV=0
C-Media USB Audio Device, USB Audio
2.1 воспроизведение: Передние и сабвуферные динамики
surround40:CARD=Device,DEV=0
C-Media USB Audio Device, USB Audio
4.0 воспроизведение: Передние и задние динамики
surround41:CARD=Device,DEV=0
C-Media USB Audio Device, USB Audio
4.1 воспроизведение: Передние, задние и сабвуферные динамики
surround50:CARD=Device,DEV=0
C-Media USB Audio Device, USB Audio
5.0 воспроизведение: Передние, центральные и задние динамики
surround51:CARD=Device,DEV=0
C-Media USB Audio Device, USB Audio
5.1 воспроизведение: Передние, центральные, задние и сабвуферные динамики
surround71:CARD=Device,DEV=0
C-Media USB Audio Device, USB Audio
7.1 воспроизведение: Передние, центральные, боковые, задние и сабвуферные динамики
iec958:CARD=Device,DEV=0
C-Media USB Audio Device, USB Audio
IEC958 (S/PDIF) цифровой аудиовыход
dmix:CARD=Device,DEV=0
C-Media USB Audio Device, USB Audio
Устройство прямого смешивания образцов
dsnoop:CARD=Device,DEV=0
C-Media USB Audio Device, USB Audio
Устройство прямого осмотра образцов
hw:CARD=Device,DEV=0
C-Media USB Audio Device, USB Audio
Прямое аппаратное устройство без преобразований
plughw:CARD=Device,DEV=0
C-Media USB Audio Device, USB Audio
Аппаратное устройство со всеми программными преобразованиями
**** Список устройств ВОСПРОИЗВЕДЕНИЯ ****
карта 0: ALSA [bcm2835 ALSA], устройство 0: bcm2835 ALSA [bcm2835 ALSA]
Подустройства: 8/8
Подустройство #0: подустройство #0
Подустройство #1: подустройство #1
Подустройство #2: подустройство #2
Подустройство #3: подустройство #3
Подустройство #4: подустройство #4
Подустройство #5: подустройство #5
Подустройство #6: подустройство #6
Подустройство #7: подустройство #7
карта 0: ALSA [bcm2835 ALSA], устройство 1: bcm2835 ALSA [bcm2835 IEC958/HDMI]
Подустройства: 1/1
Подустройство #0: подустройство #0
карта 1: Device [C-Media USB Audio Device], устройство 0: USB Audio [USB Audio]
Подустройства: 1/1
Подустройство #0: подустройство #0
#
# lsusb -v -d 0d8c:0008
Bus 001 Device 004: ID 0d8c:0008 C-Media Electronics, Inc.
Дескриптор устройства:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 0 (Определено на уровне интерфейса)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x0d8c C-Media Electronics, Inc.
idProduct 0x0008
bcdDevice 1.00
iManufacturer 0
iProduct 1 C-Media USB Audio Device
iSerial 0
bNumConfigurations 1
Дескриптор конфигурации:
bLength 9
bDescriptorType 2
wTotalLength 224
bNumInterfaces 4
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
(Шина с питанием)
Удаленное пробуждение
MaxPower 100mA
Дескриптор интерфейса:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Аудио
bInterfaceSubClass 1 Устройство управления
bInterfaceProtocol 0
iInterface 0
Дескриптор интерфейса управления аудио:
bLength 10
bDescriptorType 36
bDescriptorSubtype 1 (HEADER)
bcdADC 1.00
wTotalLength 71
bInCollection 2
baInterfaceNr( 0) 1
baInterfaceNr( 1) 2
Дескриптор интерфейса управления аудио:
bLength 12
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 1
wTerminalType 0x0101 USB Streaming
bAssocTerminal 0
bNrChannels 2
wChannelConfig 0x0003
Левый передний (L)
Правый передний (R)
iChannelNames 0
iTerminal 0
Дескриптор интерфейса управления аудио:
bLength 12
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 2
wид магнит "{\"тер _ Порт\": \"Microphone
*** Превышена длина текста ***œur
Ответ или решение
Когда пользователь сталкивается с проблемой низкой громкости микрофона на USB-звуковой карте с использованием драйвера snd_usb_audio
на Raspberry Pi, необходимо учесть несколько ключевых моментов, чтобы улучшить качество записи. Давайте подробно рассмотрим потенциальные решения этой проблемы.
Диагностика ситуации
У вас установлена USB-звуковая карта C-Media, к которой подключен микрофон Sennheiser через кабель с XLR-разъёмом. На MacOS запись работает корректно, но на Linux уровень громкости оказывается существенно ниже. Причины этого могут быть разноплановыми: от различных драйверов и настроек системы до особенностей работы оборудования на разных платформах.
Возможные решения
-
Анализ и регулировка микшера ALSA:
- Используйте
alsamixer
для регулировки уровня записи. Обратите внимание на два отдельных контроллера "Mic", которые могут быть скрыты. Обязательно выбирайте нужную звуковую карту, используя клавишиF5
иF6
. - Проверьте, не отключена ли функция "Auto Gain Control" (Автоматическая регулировка усиления), и активируйте её с помощью команды:
amixer -c 1 set 'Auto Gain Control' unmute
- Используйте
-
Настройки через
amixer
:- Команда:
amixer set "Mic" 100 capture mute
может помочь в увеличении уровня входного сигнала. Попробуйте поэкспериментировать с различными уровнями усиления.
- Команда:
-
Настройка Pulseaudio:
- Если используется Pulseaudio, проверьте его настройки. Вы можете использовать утилиту
pavucontrol
для детальной настройки источников звука, где можно повысить уровень громкости для источника микрофона.
- Если используется Pulseaudio, проверьте его настройки. Вы можете использовать утилиту
-
Обновление системы и драйверов:
- Убедитесь, что ваша система и ядро Linux обновлены до последних версий. Возможно, проблема была решена в более новых обновлениях драйвера или ядра.
-
Правки конфигурационных файлов:
- Параметры, такие как
asound.state
или конфигурационные файлы ALSA, могут требовать изменений. После изменения настроек вalsamixer
, сохраните состояние с помощью:sudo alsactl store
- Параметры, такие как
Потенциальная польза
Применение этих методов позволит вам настроить систему так, чтобы достичь наилучшего качества записи микрофона через USB-звуковую карту на платформе Raspberry Pi. Следуя этим рекомендациям, вы сможете избежать лишнего усиления шума и улучшить уровень сигнала, приблизившись к качеству записи на Mac.
Заключение
Эти шаги помогут вам обнаружить и исправить проблему низкой громкости микрофона, использующего драйвер snd_usb_audio
на Linux. В условиях постояния проблем необходимо комплексное тестирование и настройка доступных параметров, чтобы добиться наилучших результатов записи.