LINUX.ORG.RU

Подключение нескольких микрофонов

 , ,


2

2

Доброго времени суток! У меня есть задача подключить несколько микрофонов через звуковые карту к одноплатному компьютеру на базе линукс (Debian). Решений в интернете я не нашел. Может быть кто нибудь знает как правильно это сделать?

Ответ на: комментарий от einhander

Вариант, я так и хочу, но какой программой воспользоваться для того, чтобы записывать со всех сразу.

semen170
() автор топика
Ответ на: комментарий от SergeySVold

Так я и правда не формировал запрос. Сейчас попробую.

semen170
() автор топика
Ответ на: комментарий от SergeySVold

Почитал, это немножечко другое. При таком соединение мы получаем 1 выход т.к. микрофоны спаяны параллельно (если я правильно понял), а мне нужно 8.

semen170
() автор топика
Ответ на: комментарий от einhander

Спасибо! Странно но до этого у меня выводило ошибку «arecord: pcm_read:2103: read error: Interrupted system call» сейчас все получилось записать. А можно ли записать звук со всех сразу микрофонов (то есть создаются сразу 8 файлов и в них идет запись) или это невозможно?

semen170
() автор топика
Ответ на: комментарий от semen170

почему невозможно? запускаешь 8 копий arecord с указанием каждой с какого входа писать в какой файл – что же здесь невозможного?

anonymous
()
Ответ на: комментарий от anonymous

Или, если испорльзуется альза, сконфигурить эти 8 микрофонов, как один восьмиканальный, типа 7.1, и писать звук одной копией arecord.

cvv ★★★★★
()
Ответ на: комментарий от anonymous

Я новичок в линукс поэтому спрашиваю возможно или нет. Правильно я понимаю, что я запускаю запись 8 раз, только всегда с разным именем устройства.

semen170
() автор топика
Ответ на: комментарий от semen170

сделай ещё дополнительно устройства для каждого микрофона, при записи будешь выбирать либо писать с какого-то конкретного, либо параллельно со всех сразу.

anonymous
()
Ответ на: комментарий от cvv

Начал разбираться с связыванием нескольких звуковых карт но ничего не пойму по твоей ссылки. Как определить имя устройства?

semen170
() автор топика
Ответ на: комментарий от anonymous

Подскажи пожалуйста как это сделать, а то я новичок в этом

semen170
() автор топика
Ответ на: комментарий от cvv

задача действительно не из простых

Цену набиваешь? xD

ТС, давай, рассказывай как и что у тебя там подключено, а лучше нарисуй. Сколько у тебя за микрофонов? Сколько у каждого каналов? Каким образом ты их подключаешь к компьютеру? Если знаешь какой мик к какому каналу карты у тебя подключен, то тоже это напиши. Как ты сам различаешь микрофоны? У них есть номера или, может быть, имена?

Если у тебя не установлен пакет alsa-utils, то поставь, выполни alsa-info.sh --stdout > my_alsa_config.txt и загрузи содержимое файла my_alsa_config.txt на какой-нибудь https://pastebin.com/, ссылку на загруженный файл запости сюда.

anonymous
()
Ответ на: комментарий от anonymous

Спасибо за твое желание помочь. Я хочу использовать 8 микрофонов совместно с самыми простыми USB звуковыми картами. Но в наличии имею пока что только 2 (2 микрофона, 2 звуковухи). Каналов один на микрофон один на колонки на звуковой карте (если я правильно понял). Определяю я командой aplay -l. Вот какой я получаю вывод используя одну звуковую карту.

**** List of PLAYBACK Hardware Devices **** card 0: audiocodec [audiocodec], device 0: SUNXI-CODEC sndcodec-0 [] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: sndhdmi [sndhdmi], device 0: SUNXI-HDMIAUDIO sndhdmi-0 [] Subdevices: 1/1 Subdevice #0: subdevice #0 card 2: Device [USB Audio Device], device 0: USB Audio [USB Audio] Subdevices: 1/1 Subdevice #0: subdevice #0

Пакет alsa-utils у меня установлен. Но при выполнении alsa-info.sh –stdout > my_alsa_config.txt пишет: -su: alsa-info.sh: command not found

Я залез в /usr/sbin тк думал, что там лежит скрипт alsa-info.sh, выполнил команду ls и не обнаружил там его, есть только alsa-info. Я попытался выполнить его напрямую: ./alsa-info –stdout > my_alsa_config.txt и получил cat: /proc/asound/modules: No such file or directory

semen170
() автор топика
Ответ на: комментарий от cvv

При выполнении команды aplay -L получаю вывод с именами устройств, одно из них hw:CARD=Device,DEV=0 USB Audio Device, USB Audio Хочу записать с него звук arecord -D Device output.wav но ничего не получается ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM Device arecord: main:788: audio open error: No such file or directory

semen170
() автор топика
Ответ на: комментарий от semen170

Наш сайт обладает функцией разметки текста.

Когда постишь сообщение, над кнопкой «отменить» есть инструкции: https://www.linux.org.ru/help/markdown.md и https://www.linux.org.ru/help/lorcode.md.

А над полем «Заглавие», есть выбор между этими двумя типами разметок

Воспользуйся одной из них, ибо твои два последних поста тяжело читать.

cvv ★★★★★
()
Последнее исправление: cvv (всего исправлений: 1)
Ответ на: комментарий от semen170

есть только alsa-info. Я попытался выполнить его напрямую

Файл my_alsa_config.txt появился? Если нет, попробуй alsa-info --stdout > /tmp/my_alsa_config.txt и ищи файл в папке /tmp. На сообщение cat: /proc/asound/modules: No such file or directory не обращай внимания.

Подключи обе звуковые карты к компу и выполни скрипт.

Если что, скрипт можно ещё взять тут: https://alsa-project.org/wiki/Help_To_Debug

Если микрофоны моно (1-канальные), то к одному стереоканалу можно подключить 2 микрофона. У меня, например, на звуковой два настраиваемых стереовхода, то есть я к одной своей карте могу подключить сразу 4 микрофона. Если в твоих двух звуковухах только по одному стереовходу, то, соответственно, ты можешь подключить одновременно только 4 микрофона. Но, возможно, придётся немного попаять.

anonymous
()
Ответ на: комментарий от anonymous

Я скачал скрипт и запустил его. Все получилось!

Только у меня подключена 1 звуковуха и 1 микрофон, тк пока что нет возможности подключить 2.

Вот содержимое файла my_alsa_config.txt

https://pastebin.com/8DSYRndg

semen170
() автор топика
Ответ на: комментарий от semen170

Получается, в твоей USB звуковой карте только один монофонический вход, поэтому, если тебе требуется подключить 8 микрофонов, то надо будет ещё 7 таких же карточек (на встроенной тоже есть один моно вход, который можно заюзать, но в конфиг я его не стал вписывать).

У тебя под индексом 0 стоит встроенная карта, под 1 — HDMI, а дальше пойдут все подключаемые по очереди карты. Подключенной в данный момент USB назначен индекс 2. У следующей будет 3 и так далее.

USB карточка простая, в ней только одно подустройство (subdevice) захвата с индексом 0, так что, например, для записи с неё можно использовать имя hw:2,0, где 2 — индекс устройства, 0 — индекс подустройства.

В конфиге я просто объединил все твои 8 потенциальных каналов захвата с 8 карт, начиная с карты с индексом 2, в одно восьмиканальное устройство под именем 8mics. Кроме этого, для каждой из этих карт сделал отдельные pcm с именами mic1, mic2, и т.д. Получается mic1 соответствует карточке под индексом 2, mic2 — карточке под индексом 3 и остальные по такому же принципу.

Тебе надо сохранить этот файл в ~/.asoundrc, либо в /etc/asound.conf.

После сохранения файла перезапусти программу, с помощью которой записываешь звук или обнови список оборудования, должны будут появиться новые устройства с обозначенными именами. Например, можно просто запустить arecord -L, чтобы посмотреть на список pcm-устройств. Для записи можно воспользоваться, например, ffmpeg’ом: ffmpeg -f alsa -ac 8 -i 8mics record.flac, или arecord’ом: arecord -D mic1 -c 1 -f S16_LE -r 48 record.wav.

В один момент времени можно будет записывать только одной программой. Если надо, чтобы можно было записывать сразу несколькими программами, то конфиг придётся переделать.

Пока у тебя нет достаточно карточек, можешь просто закомментировать неиспользуемые устройства в pcm.8mics_multi и исправить дефолтное количество каналов в pcm.8mics. Что касается индивидуальных устройств, то записи о них можно оставить, просто при записи пока не выбирать отсутствующие устройства. Например, как тут.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.