Мне было предложено (если возможно) написать программу, контролирующую ввод не менее 20 микрофонов, на одном компьютере.
В настоящее время я создаю прототипы в python (2.6), в системе Ubuntu, используя Alsa. Мои попытки до сих пор создали немало вопросов...
Ubuntu - это требование, Alsa - нет, а python - идеальный.
Для аппаратного обеспечения одним предложением является несколько звуковых карт. Другая - серия USB-концентраторов и адаптеров микрофона (например, эти) (в этом случае все устройства будут одинаковыми и на одной шине USB )
Вопросы:
Как я могу одновременно записывать несколько микрофонов с одной звуковой карты? (например, используя линейный вход, а также микрофон, бонус для всех, кто знает, как я могу использовать не только два входа!)
В настройке USB, как я могу определить, какая позиция звуковой карты (USB-адаптер) подключена к USB-концентратору (или цепочке USB-концентраторов).
Если решение представляет собой необработанный доступ к микрофонам через USB, позиция устройства на шине usb зависит только от того, какой порт на концентраторе USB подключен, или не может ли он переключиться между включением и выключением компьютера?
Наконец, если вы используете raw-доступ, как лучше всего получить данные (нет текущего опыта работы с pyUSB) и какое преобразование (если есть) требуется из raw → audio?
Edit:
На мониторе меня попросили записать ввод на диск (в идеале выше установленного порога, для которого идеально подходит кодек speex), контролировать уровни громкости, предоставлять графическую обратную связь и настраивать по крайней мере один вывод, который циклически проходит через все активных микрофонов.
Python - это не долгосрочное требование, просто самый простой способ, который я нашел до сих пор, чтобы получить данные PCM со звуковой карты (только для микрофона)
Я намерен провести опрос звуковых карт и обработку данных в отдельных потоках, область, с которой у меня нет большого опыта.
Где я могу найти дополнительную информацию об использовании драйвера аудио класса USB?