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