Microphone array что это на ноутбуке

Обновлено: 03.07.2024

In Windows Vista and later, support is provided for microphone arrays. In most situations, a single microphone embedded in a laptop or monitor does not capture sound very well. An array of microphones performs better to isolate a sound source and reject ambient noise and reverberation. The KSPROPERTY_AUDIO_MIC_ARRAY_GEOMETRY property specifies the geometry of a microphone array. The property value, KSAUDIO_MIC_ARRAY_GEOMETRY, describes the array type (linear, planar, and so on), the number of microphones in the array and other features.

This topic describes how external USB microphone arrays can use the microphone array support provided with Windows Vista. An external USB microphone array must provide the parameters required to describe the geometry and other features of its array in response to a GET_MEM request.

The USB microphone array uses a standard format to provide the geometry information. The Windows Vista USB audio class driver must use the same format when it reads the geometry information. For more information about the standard format, see Microphone Array Geometry Descriptor Format.

An application can call IPart::GetSubType to retrieve information about a jack to determine if the device plugged into the jack is a microphone array. IPart::GetSubType returns a pin-category GUID that represents the input jack type. If the device that is plugged in is a microphone array, the returned GUID is equal to KSNODETYPE_MICROPHONE_ARRAY. The application can also help you determine whether you plugged your microphone array into the wrong jack. In the latter scenario, the returned pin-category GUID is either for a different device or it indicates that there is no device plugged into the microphone jack. For more information about the pin category GUIDs, see Pin Category Property.

After an application discovers a microphone array that is plugged into the correct input jack, the next step is to determine the geometry of the array. There are three basic geometries: linear, planar, and three dimensional (3-D). The geometry information also provides details such as the frequency range and x-y-z coordinates of each microphone.

The following code example shows a KSAUDIO_MIC_ARRAY_GEOMETRY structure that an audio driver uses to describe an external USB microphone array:

In the preceding code example, the ar_mic_Coordinates variable is an array of the KSAUDIO_MICROPHONE_COORDINATES structure and it contains the coordinates for the microphones in the microphone array.

The following code example shows how the ar_mic_Coordinates array is used to describe the geometric locations of the microphones in the microphone array as described in the preceding code example:

In the preceding code example, the x-y-z coordinates are given for each microphone in the microphone array, together with the vertical and horizontal angles that describe their effective work areas.

To modify the Micarray MSVAD sample driver to provide array geometry information for a virtual microphone array, you must perform the following tasks.

First, navigate to Src\Audio\Msvad\Micarray and locate the Mintopo.cpp file. Edit the property handler section in Mintopo.cpp so that the KSAUDIO_MIC_ARRAY_GEOMETRY structure contains information about the microphone array. The specific section of code that you must modify is shown in the following code example:

The preceding code example shows information that was provided for a linear microphone array that has two microphone elements, each of which is a cardioid type and located 100 mm from the center of the array.

For the second modification, edit the Msvad.inf file as shown in Modified INF for MSVAD Micarray.

After you complete the file modifications, complete the following procedure to build and install the sample driver for the microphone array.

Start the WDK build environment in which you want to work. For example, the x86 Free Build Environment.

Navigate to the Src\Audio\Msvad folder.

Type the build command, and then press Enter.

Copy the modified Msvad.inf file to the following folder that was created by the build process:

Verify that the folder in Step 4 contains a file called Vadarray.sys.

Open the Control Panel and use Add Hardware to manually install the sample driver.

Open the Sound applet in Control Panel and click the Recording tab to verify that you can see the virtual microphone array you just installed.

For information about how to develop an application to discover microphone arrays, see Appendix C of How to Build and Use Microphone Arrays for Windows Vista.

В этой статье я хочу рассказать о своем давнем увлечении — изучении и работе с far fields mic (mic array) — массивами микрофонов.

Статья будет интересна увлекающимся построением своих голосовых помощников, она ответит на некоторые вопросы людям, воспринимающим инженерное дело как искусство, а также желающим попробовать себя в роли Q (Это из Бондианы). Мой скромный рассказ, надеюсь возможно, поможет вам понять, почему умная колонка- помощник, сделанный строго по туториалу работает хорошо только при условии полного отсутствия шумов. И так плохо там, где они есть, например на кухне.

Много лет тому назад я увлекся программированием, писать код я начал просто потому, что мудрые учителя разрешали играть только в игры, написанные самостоятельно. Это было в году так 87 и это была Yamaha MSX. На эту тему тогда же был первый стартап. Все строго по мудрости: «Выбери себе работу по душе, и тебе не придётся работать ни одного дня в своей жизни» (Конфуций).

И вот прошли годы, и я по прежнему пишу код. Даже хобби с кодом — ну кроме катания на роликах, для разминки мозгов и "не забуду матан" это работа с Far Fields mic (Mic array). Зря что ли преподаватели время со мною тратили.

Что это такое и где применяется

В голосовом помощнике, который слушает вас, обычно присутствует массив микрофонов. Их мы находим и в системах видео-конференц-связи. При коллективном общении, львиная доля внимания уделяется речи, мы естественно, не постоянно при общении смотрим на говорящего, а говорить точно в микрофон или гарнитуру, это сковывает и неудобно.

Практически каждый, уважающий клиента, производитель мобильников использует в своих творениях от 2 и более микрофонов, (да, да за этими дырочками сверху, снизу, сзади сидят микрофоны). К примеру в iPhone 3G/3GS он был единственный, в четвертом поколении айфонов их было два, а в пятом насчитывалось уже три микрофона. В общем то, это тоже массив микрофонов. И все это для лучшей слышимости звука.

Но вернемся к нашим голосовым помощникам

Как же увеличить дальность слышания?

"нужны большие уши"

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





На самом деле -это не часть фурри-сьюта, а серьезный девайс для охотников и разведчиков.




То же, только на резонаторных трубках




В среде обитания.




Диаметр зеркала от 200мм до 1,5м

«Нужно больше микрофонов»

Или может, если поставить много дешевых микрофонов, то количество перейдет в качество и все получится? Зерг- раш только микрофонами.

Странно, но это работает и в реальной жизни. Правда с большим количеством матана, но работает. И расскажем мы про это в следующем разделе.

А как научиться слышать дальше без красивых рупоров?

Одна из проблем рупорных систем — это то что хорошо слышно то, что в фокусе. А вот если нужно услышать что то с другого направления, то нужно сделать "финт ушами" и физически перенацелить систему в другом направлении.

И про соотношение сигнал\шум у систем с микрофонными матрицами как то лучше по сравнению с обычным микрофоном.

В массивах микрофонов, как и в их ближайших родственниках — ФАР (фазированных антенных решетках) ничего поворачивать не нужно. Подробнее в разделе про Beamforming. Легко видеть:


Несфокусированный микрофон (левая картинка) записывает все звуки со всех направлений, а не только тот, что нужно.

Откуда же большая дальность? На правой картинке, микрофон внимательно слушает только один источник. Как бы сфокусировавшись, получает сигнал только избранного источника, а не кашу из возможных источников шумов, а чистый сигнал просто усилить (сделать громче), не применяя сложных техник шумоподавления. Примерно как рупор, но на матановой тяге.

Что же не так с шумоподавлением?

У применения сложного шумоподавление уйма недостатков — значит, уйдет часть сигнала, вместе с частью сигнала изменится звук, и на слух это выглядит как характерное окрашивание звука шумодавом и как результат неразборчивость. Эта неразборчивость видна русскоговорящим, которые хотят услышать от собеседника вот эти шипящие. Ну и как дополнительно — в результате шумоподавления слушающий не слышит вообще никаких опознавательных сигналов, связывающих его с собеседником (дыхания, сопения и других шумов, сопровождающих живую речь). Это создаёт некоторые проблемы, ведь в разговорной речи вот это все слышно, и как раз помогает оценивать состояние и отношение к вам собеседника. Отсутствие их (шумов) пока мы слышим голос вызывает неприятные ощущения и снижает уровень восприятия, понимания ну и идентификации. Ну а если вас слушает голосовой помощник — шумоподавление затрудняет распознавание как ключевой фразы, так и речи после. Правда есть лайфхак — распознавалку нужно обучать на выборке, записанной с учетом искажений от именно используемого шумопонижения.

Те, кому знакомы слова cocktail party problem могут пока сходить на кофе или коктейль, и провести натурный эксперимент, те у кого настроение почитать, продолжают дальше.

Кратко о матане, на котором оно работает:

DOA Estimation (определение направления на источник звука) и формирование луча (beamforming)

DOA (определение направления, а по возможности и локализация на источник):
Буду краток, ибо тема очень обширна, делается это с помощью белой, серой или темной магии (зависит от предпочитаемой темы в IDE) и матана. основной частый способ поиграть в DOA — это анализ корреляций и другого разного между парами микрофонов (обычно противолежащими по диаметру).
Лайфхак: для исследований лучше выбрать массив с круговым размещением микрофонов. Польза — легко набрать статистику от пар с разными расстояниями между микрофонами — максимум по диаметру, и до минимального между микрофонами — если брать пары по хордам, и с разными азимутами (направлениями) на источник.

Формирование луча- Наиболее простой и легкий для понимания способ -delay & sum (DAS and FDAS) — лучеформирование на базе задержки и суммирования.


Лайфхак: Не забываем про разную длину волн и для каждой частоты рассчитываем свою разницу фаз tn

Примерная диаграмма направленности будет выглядеть как то так


Не забывшие как раскуривать матан могут причаститься к JIO-RLS (Joint Iterative Subspace Adaptive reduced-rank least squares). Очень напоминает по вкусу градиентный спуск, знаете ли.

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

Голосовой помощник — как это выглядит изнутри

Итак как выглядит схема обработки звука у матерого голосового помощника:


Сигнал с массива микрофонов поступает на устройство, в котором мы формируем луч на источник звука (beamforming), тем самым убирая помехи. Потом звук этого луча начинаем распознавать, обычно для качественного распознавания ресурсов устройства недостаточно, и чаще всего сигнал уходит для распознавания в облако (На выбор Microsoft, Google, Amazon).

Внимательный читатель заметит: А на картинке с описанием есть какой то квадратик Нот word, а почему не сразу распознавание, как обещали?


Зачем на схеме нарисован этот наверное лишний квадратик?

А потому что постоянно транслировать сигнал изо всех источников шумов в интернет для прослушивания распознавания никаких ресурсов не хватит. Поэтому распознавать начинаем, только когда поняли, что от нас этого таки точно хотят — и для этого сказали специальное заклинание — ок гугл, сири или алекса, ну или кортану позвали. А классификатор Нот word — чаще всего нейронка и работает прямо на устройстве. В построении классификатора есть тоже много интересного, но сегодня не об этом.

И на самом деле схема выглядит вот так:

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

Дальнейший этап- распознавание в облаке, многократно освещен в интернете, по нему множество туториалов.

Как вы можете приобщится к этому празднику матана

Проще всего купить dev board. Обзор существующих девбордов: один из наиболее полных — по ссылке.

Наиболее дружелюбные для начинающих:

основан на XMOS XVF-3000.

Сделана так как мне нравится — FPGA с открытым интерфейсом управляет микрофонами матрицы, общение с ней по SDA.

Мои подвиги по скрещиванию Android Things и Mic Array:

К этой плате (Voice) конечно есть немало примеров, но вот мне как раз удобно использовать ее под Things.

Доводы за Things:

Можно построить гибкий и мощный инструмент:

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

Например я использую:

  • анализ звуковых файлов,
  • HRTF,
  • Тренировка\построение классификаторов.

Да и потом если придется портировать/переписывать код в какой нибудь эмбед, то как то проще это делать с Java кода.

К сожалению, пример от авторов платы для Things был немного неработоспособен, поэтому я сделал свой демо-проект (естественно — я же ж могу).

Вкратце о чем там — всю черную магию по быстрому опросу микрофонов, FFT делаем на C++, а визуализацию, анализ, сетевое взаимодействие — на Java.

Планы на будущее развитие

Источник планов ну и заодно вдохновения: ODAS.


Вот хочу сделать то же, только на Things и без глюков.

  • Потому что ODAS немного неудобен при использовании.
  • Мне нужен нормальный инструмент для работы
  • Потому что могу и мне нравится эта тема
  • Использованные аппаратно программные средства отвечают сложности задачи.

"Если вам есть что дополнить или критиковать, не стесняйтесь писать об этом в комментариях, ибо одна голова хуже двух, две хуже чем три, а n-1 хуже чем n" nikitasius

Всем доброго времени.

99,9% современных ноутбуков идут со встроенным микрофоном (кстати, многие пользователи, не зная это, покупают отдельный внешний микрофон).

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

ускорение ПК

Включение микрофона: на что обратить внимание

Проверьте состояние микрофона в настройках Windows

Это первое, с чего бы я порекомендовал начать. Дело в том, что у большинства все в порядке с самим микрофоном (т.е. физически он исправен) , установлены все драйвера и в порядке ПО — но микрофон не работает из-за того, что он выключен в настройках ОС !

Либо просто по умолчанию в качестве микрофона выбрано другое устройство (которое не передает звук ✌) .

Как это проверить:

Оборудование и звук - звук

Оборудование и звук - звук

Включаем микрофон

Включаем микрофон / Запись / Windows 10

Проверка микрофона

Где обычно располагается микрофон на ноутбуке

Где обычно располагается микрофон на ноутбуке

Кнопка для вкл./откл. микрофона на корпусе устройства

На ряде ноутбуков есть спец. вынесенные кнопки для включения/отключения динамиков и микрофона, регулировки их громкости. Пример на фото ниже — одна из моделек Lenovo.

Разумеется, проверьте, не задан ли "тихий" режим вашего устройства благодаря этим "штукам".

Ноутбук Lenovo — откл. динамики и микрофон

Ноутбук Lenovo — откл. динамики и микрофон

Кстати, быстрая клавиша для активации микрофона может быть вынесена и на одну из функциональных клавиш F1-F12. Примечание : нажимают их одновременно с клавишей Fn!

Откл. микрофон / функциональная клавиша ноутбука

Откл. микрофон / функциональная клавиша ноутбука

Не заклеен ли микрофон

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

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

Обратите внимание также на отверстие под микрофон: не забилось ли оно пылью, нет ли там какого-нибудь мусора и пр.

Установлены ли драйвера на микрофон

Даже если вы купили ноутбук в магазине и не переустанавливали на нем ОС — может так быть, что часть драйверов на нем не установлена.

Вообще, конечно, современная Windows 10 распознает и устанавливает драйвера для большинства оборудования, в т.ч. и микрофонов (но все-таки, вдруг этого не произошло. ).

Диспетчер устройств

Обратите внимание, что напротив них не должны "гореть" восклицательные желтые знаки.

Чтобы попробовать обновить драйвер: выберите устройство, и затем в меню нажмите по значку с зеленой стрелкой (см. скрин ниже).

Диспетчер устройств - обновление драйвера

Диспетчер устройств - обновление драйвера

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

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

Диспетчер звука

Оборудование и звук

Оборудование и звук / Кликабельно

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

Smart Audio - настройка работы драйвера (эффекты, тонкая настройка звука, микрофона, записи)

Realtek — микрофон

Если вы хотите использовать внешний микрофон

При подключении внешнего микрофона (а многие останавливаются на наушниках с микрофоном) обратите внимание на аудио-выходы на ноутбуке. Сейчас можно встретить 2 разных варианта:

Классические (слева) и гарнитурный (справа) разъем(ы)

Суть в том, что, если вы подключите микрофон с классическим разъемом к гарнитурному разъему (или наоборот) — есть вероятность, что он у вас не заработает корректно (хотя часто бывают исключения) .

Обратите внимание, что у них даже штекеры с разным количеством контактов (у гарнитурного их 4).

Гарнитурный (слева) штекер и классический (справа)

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

Переходник для подключения классических наушников с микрофоном к гарнитурному разъему

Что делать, если собеседник вас слышит плохо или вообще не слышит? Проверить и настроить микрофон.

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

Конечно, на качество звука влияют и плохое интернет-соединение, и подвисание программ. Но чаще виноват микрофон — либо само устройство, либо его неправильная настройка.

Проверьте, тот ли микрофон активен

Бывает, что к компьютеру подключено несколько микрофонов. Например, один работает по умолчанию, в веб-камере, а другой — в гарнитуре. Если камера стоит далеко, то ваш голос для собеседника может звучать тихо или с посторонними шумами.


Делаем так. Нажимаем кнопку «Пуск», затем следуем по пути: Параметры → Система → Звук. В пункте «Ввод» кликаем на название микрофона и смотрим, открывается ли список. Если микрофонов подключено несколько, в списке будут отображаться все доступные варианты — попробуйте выбрать альтернативный. Если нужного микрофона в списке нет, идем дальше.

Попробуйте использовать другой разъем

Актуально, если ваш микрофон или гарнитура подключены через USB. Разъемы сгорают, а их контакты окисляются.

Порты на передней панели корпуса ПК подключаются к материнской плате проводами: проблемы начинаются, когда теряется контакт на одном из штырьков. Разъемы USB, которые находятся на задней панели, надежнее: они распаяны на материнской плате. Попробуйте включить наушники или гарнитуру к ним. Возможно, всё заработает.

Еще один способ понять, что проблема с разъемами — подключить другую гарнитуру. Если ваше устройство подключено через гнездо для микрофона, это единственный вариант. Главное, не забывайте о программной настройке — только так удастся убедиться, что проблема в порте подключения.

А что если сбиты настройки?

Бывает, что система видит микрофон, но вас всё равно не слышно. Тогда следует проверить настройки сигнала. Для этого снова заходим в Пуск → Параметры → Система → Звук. Под списком подключенных микрофонов есть шкала (Проверьте микрофон) — она закрашивается синим, если микрофон ловит звук.


Говорите громко, а потом тихо, и наблюдайте за шкалой. Если при громком разговоре закраска не доходит даже до половины, кликните на Свойства устройства и попробуйте увеличить громкость. Да, в Windows 10 чувствительность названа общей громкостью.

Есть ли доступ к конкретному приложению?

Возможна такая ситуация: в настройках микрофона все установлено верно, он работает исправно, но в конкретном приложении, том же Skype, собеседник вас не слышит.

У приложения может просто не быть доступа к микрофону. Чтобы проверить это, нажмите Пуск → Параметры → Конфиденциальность → Микрофон. Найдите тумблер «Разрешить приложениям» доступ к микрофону — он должен быть включен.


Затем прокрутите окно вниз — там вы найдете список приложений и переключатели справа. Если напротив Skype стоит Откл., проблема найдена — откройте ему доступ к микрофону.


Не забудьте проверить настройки микрофона и в самом приложении. В Skype зайдите в Настройки → Звук и Видео. На шкале «Микрофон» должны быть видны синие точки. Если она пустая, кликните на Устройство связи по умолчанию и выберите нужный микрофон.

Вряд ли (но возможно): вышла из строя звуковая карта

Специально поставили этот пункт последним. Если вы используете подключение через 3,5 мм и никакие рекомендации не помогли, попробуйте устройства с USB-подключением.

Дело в том, что через 3,5 мм подается аналоговый сигнал, который звуковая карта преобразует в цифровой. А в наушниках с USB-подключением звук передается сразу в цифровом виде.

Если остались вопросы, посмотрите видео, где мы еще более наглядно разобрали эту проблему:

Читайте также: