Хотите массив мини-микрофонов USB. Является ли это возможным?

Я много узнал об адаптивном формировании луча и возился с различными симами в MATLAB и т. Д.

Но что может быть лучше, чтобы понять что-то — понять это по-настоящему, — чем поиграть со всей системой?

С этой целью я хотел бы найти (построить?) массив микрофонов, подключенный через USB, скажем, с 5 микрофонами или около того. Они могли бы получать сигналы из окружающей среды (то есть, где бы ни находился мой ноутбук), и затем я мог бы принимать эти сигналы и обрабатывать их в MATLAB или чем-то еще.

Я действительно предпочел бы не создавать все это целиком, поэтому я надеюсь, что кто-то уже использовал микрофонные массивы, подключенные через USB, в прошлом и может указать правильное направление?

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

Ответы (2)

Видеокамера Playstation Eye имеет 4-элементную линейную микрофонную решетку. Он обеспечивает 16-битные выборки на частоте 48 кГц с отношением сигнал-шум 90 дБ. Он прост в использовании: он считается стандартным USB-аудиоустройством с четырьмя отдельными каналами.

Пример использования этого способа см. в разделе: Тесты 4-канального звука PS3 Eye на Ubuntu Karmic .

@Mohammad Это, вероятно, было бы хорошим решением, если вы готовы ограничить себя четырьмя каналами. Четыре канала дадут вам усиление формирования луча около 12 дБ. Недостатком является то, что из-за того, что общая протяженность массива довольно мала, у вас будет довольно большое фокусное пятно формирования луча: вы не можете разделить источники звука, которые находятся слишком близко друг к другу. Таким образом, ваше основное применение для этого массива, вероятно, будет заключаться не в изоляции источников звука, а в отслеживании одного источника звука в пространстве. Т.е. знать, где человек стоит по его голосу...
@ArikRaffaelFunke Хм, я недостаточно знаю об адаптивном формировании луча, чтобы знать, что такое фокусное пятно. :-) Однако я думаю, что все же смогу разделить источники, используя немгновенную ICA. (на самом деле я сосредоточен на ICA в данный момент). Кроме того, да, 4 не так много, как я надеялся... Но, может быть, это может быть началом..c

Много работая над адаптивным формированием луча, я бы очень боялся сам что-нибудь для этого взломать, пока не наберусь опыта. (Примечание: Профессиональные решения примерно с 60 каналами стоят около 100 тыс. евро. С большим количеством каналов ваше пространственное разрешение становится намного лучше, но вы получаете только ограниченный объем информации через порт USB...)

Для надежного формирования диаграммы направленности важно, чтобы все микрофоны использовали одинаковую временную базу. Самый простой способ добиться этого — использовать внешнюю звуковую карту USB с несколькими входными каналами. Хотя они не совсем дешевые. Вы видели, что можно найти на ebay?

В качестве альтернативы можно пожертвовать общей временной базой, используя несколько звуковых карт USB, например, с двумя каналами каждая. Однако вам потребуется откалибровать систему сбора данных. На самом деле это не так сложно, как кажется:

Для калибровки вы настраиваете свой массив и издаете короткий звук (например, треск/хлопки/и т. д.) на расстоянии от вашего массива порядка размера вашего массива. Затем вы записываете этот звук и используете Matlab или аналогичный для вычисления взаимной корреляции между хлопком/треском/и т.д. на разных каналах. Это даст вам список смещений по времени, которые необходимо применить к вашим каналам, чтобы выровнять их перед подачей данных в ваш алгоритм формирования луча.

Чтобы изучить адаптивное формирование луча, это, вероятно, путь, если вы не можете заключить сделку на многоканальную звуковую карту.


Изменить 1

Это редактирование должно ответить на вопросы, поднятые в комментариях.

Основная идея задержки и формирования луча суммирования заключается в применении задержек к различным каналам сбора данных, чтобы звуки, исходящие из одной точки в пространстве, выравнивались и «усиливались» при добавлении сигналов из разных каналов. Звуки, исходящие из других областей пространства, не выравниваются и, следовательно, не «усиливаются».

Точка в пространстве, по которой звуки выравниваются с использованием определенного набора задержек, называется фокусом микрофонной решетки (или фокальным пятном). В действительности, однако, фокус — это не идеальная точка, а скорее небольшая (в зависимости от массива) область пространства, для которой звуки хорошо выравниваются. Размер этой области называется размером фокального пятна.

Геометрия (размер, форма и т. д.) зависит от точных деталей массива: количества микрофонов, расстояния между микрофонами, частотного состава интересующих сигналов. См., например, эту статью .

Для получения дополнительной информации ищите тексты по фокусировке «фазированных решеток» или «линейных решеток» в ультразвуке. Формирование луча можно использовать на приеме (для усиления сигналов из определенной точки пространства) или на излучении (для создания «громкого» места в комнате). Принципы идентичны: просто замените в своем мышлении «микрофон» на «громкоговоритель».

По поводу процедуры калибровки: вы правы. Процедура, которую я изложил, слишком упрощена. Это хорошо работает только в том случае, если вы можете создать калибровочный хлопок с гораздо большего расстояния, чем интересующая вас область пространства. (То есть, чтобы обеспечить ровную волну.)

Если это невозможно, вы должны принять во внимание положение хлопка. В этом случае простейшая процедура состоит в том, чтобы скорректировать задержки с помощью взаимной корреляции, как описано, но затем добавить кривизну волнового фронта обратно к сигналу, применив набор задержек «обратного формирования луча», рассчитанный с помощью положения начала координат. хлопать в ладоши. (То есть, если вы используете переменную глубины +t0 (или +z0) в своем «нормальном» алгоритме формирования луча, вам нужно использовать -t0 (или -z0) для обратного алгоритма формирования луча.)

В чем смысл этой калибровки: она устраняет любые ошибки из-за того, что разные звуковые карты начинают запись немного в разное время. Это обычно препятствует правильному выравниванию сигналов даже с правильными задержками и, таким образом, предотвращает эффект усиления, который вы ищете.

Спасибо Арик. Однако я не уверен, почему вы хотите компенсировать временные задержки здесь. Например, известное вам адаптивное формирование луча представляет собой задержку и сумму, поэтому она автоматически учитывает проблемы с временной задержкой. Во-вторых (я думаю, это то, о чем вы говорите), это то, что мне нужна общая синхронизация времени. (т.е. нажимаешь кнопку, все микрофоны начинают запись одновременно), но я не хочу, чтобы у них были общие временные задержки.
На самом деле я встроил в свой ноутбук массив микрофонов, я думаю , это всего два микрофона, но это может быть отправной точкой, однако я понятия не имею, как на самом деле получить доступ к их данным с минимальными усилиями по отдельности...
@Mohammad - проблема не в компенсации известных задержек, а в компенсации неизвестных задержек. По сути, для каждой отдельной звуковой карты USB будет некоторое время обработки, и оно может варьироваться от устройства к устройству (в этом случае оно может быть компенсировано) или даже не быть постоянным/изменяться в зависимости от загрузки шины USB.
@Mohammad Что сказал FakeName ... Чтобы сделать вещи еще более ясными: временная база для любого формирования луча должна быть лучше, чем полупериод самой высокочастотной составляющей, которую вы хотите принять во внимание. Я считаю, что этого невозможно добиться с независимыми звуковыми картами, просто запустив их запись в одно и то же время. Другое дело, если у вас есть одна звуковая карта с несколькими каналами.
@ArikRaffaelFunke Я понимаю, что вы имеете в виду о калибровке, я неправильно понял ваше утверждение. Однако я не вижу, как можно удалить временную задержку из необычной временной базы, не удаляя при этом непреднамеренно временную задержку из канала (которую вы хотите сохранить). Единственный способ - убедиться, что расстояние до каждого микрофона от хлопка одинаково, но это невозможно для линейного массива> 2. Может быть, если достаточно далеко (таким образом, плоские волновые фронты), это не будет иметь большого значения?
@Mohammad Из вашего комментария я вижу, что мой комментарий все еще недостаточно ясен. Я постараюсь обновить свой ответ более подробным объяснением проблемы в течение следующей недели или около того. Извините, что так долго, но это требует больше, чем несколько минут, чтобы объяснить из первых принципов.
@Mohammad Посмотрите, ответит ли мое редактирование на какие-либо вопросы, которые у вас, возможно, остались.
@ArikRaffaelFunke Спасибо за обновления. Самое простое для меня сейчас - это как-то достать уже готовый микрофонный массив. На самом деле, чтобы сказать вам, что я пытаюсь сделать, это создать демонстрацию ICA, используя реальные звуковые волны из окружающей среды. Конечно, смеси не будут мгновенными, поэтому есть несколько вариантов ICA, но это основная цель.