xvr 12 7 августа, 2021 Опубликовано 7 августа, 2021 · Жалоба Господа, есть такая задача: На расстоянии 10 см друг от друга установлены динамик и микрофон (диаграммы направленности обоих перпендикулярны линии, их соединяющей и направленны в одну сторону) Требуется в сигнале с микрофона подавить сигнал динамика (по сути это устройство громкой связи). Сигнал на динамике известен. Пытался что нибудь по этому поводу найти в Интернете, но не могу сформулировать запрос - это не local feedback cancellation, ни noice cancellation. Не подскажете, как это хоть называется? А если сразу в алгоритм ткнёте, совсем хорошо будет. Возможно Адаптивный фильтр поможет? Ещё момент - всё это крутится будет на на DSP, а на ESP32, так что алгоритм желательно попроще. И ещё момент - можно поставить ещё один микрофон (между динамиком и исходным микрофоном), если это кардинально поможет выделить полезный сигнал. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
варп 22 7 августа, 2021 Опубликовано 7 августа, 2021 · Жалоба 1 час назад, xvr сказал: но не могу сформулировать запрос Может вести поиск в направлении дуплексной связи? В громкоговорящей связи эти проблемы решают уже лет сто... https://www.multicom.ru/ats-likbez/tipy-svyazi/ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_4afc_ 26 7 августа, 2021 Опубликовано 7 августа, 2021 · Жалоба 1 hour ago, xvr said: На расстоянии 10 см друг от друга установлены динамик и микрофон (диаграммы направленности обоих перпендикулярны линии, их соединяющей и направленны в одну сторону) Требуется в сигнале с микрофона подавить сигнал динамика (по сути это устройство громкой связи). Сигнал на динамике известен. Ещё момент - всё это крутится будет на на DSP, а на ESP32, так что алгоритм желательно попроще. И ещё момент - можно поставить ещё один микрофон (между динамиком и исходным микрофоном), если это кардинально поможет выделить полезный сигнал. Поставить 2 микрофона у рта говорящего. Один ближе на 1см ко рту, другой дальше от рта. Передавать разницу между этими микрофонами, вычитать можно аналогово. Количество динамиков вокруг и их сигнал - без разницы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 60 7 августа, 2021 Опубликовано 7 августа, 2021 · Жалоба echo cancellation Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
варп 22 7 августа, 2021 Опубликовано 7 августа, 2021 · Жалоба 1 час назад, _4afc_ сказал: Поставить 2 микрофона у рта говорящего Увы, мне кажется - всё не так просто... Чем акустический сигнал изо рта отличается от акустического сигнала из динамика? Фактически - ничем... Как микрофоны должны эти сигналы различать? ------------ Моя фантазия на тему - если в сигнал приходящий от абонента (сигнал динамика) подмешать какие-нибудь метки (пример - непрерывную несущую с частотой выше звукового диапазона слышимого человеком), то у системы управления и обработки сигналов появится возможность физически отличать исходящий и приходящий сигналы. Пока скажем так - ну, может быть появится... :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_4afc_ 26 7 августа, 2021 Опубликовано 7 августа, 2021 · Жалоба 23 minutes ago, варп said: Увы, мне кажется - всё не так просто... Чем акустический сигнал изо рта отличается от акустического сигнала из динамика? Фактически - ничем... Как микрофоны должны эти сигналы различать? Уровень акустического сигнала в ближней зоне затухает квадратично от расстояния, в дальней линейно. Зона определяется длиной волны. Для двух микрофонов расположенных рядом звук от рта будет приходить с разной громкостью, а от динамика с одинаковой. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xvr 12 7 августа, 2021 Опубликовано 7 августа, 2021 · Жалоба 2 hours ago, варп said: В громкоговорящей связи эти проблемы решают уже лет сто... https://www.multicom.ru/ats-likbez/tipy-svyazi/ Это да. Увы на сайте одна реклама :( (Не считая ликбеза по видам связи, что мало чем поможет). Но поищу ... 2 hours ago, _4afc_ said: Один ближе на 1см ко рту, другой дальше от рта. Такая геометрия увы невозможна - прибор (с динамиком и микрофоном) плоский и расположен параллельно говорящему, вынести микрофон некуда 1 hour ago, x893 said: echo cancellation Тоже не совсем то, тут эха нет. Тут независимые каналы. Но за наводку спасибо, поищу что нибудь в этом направлении тоже 31 minutes ago, варп said: если в сигнал приходящий от абонента (сигнал динамика) подмешать какие-нибудь метки Метки выделить можно, а вот с чем вместе они шли - вряд ли, этот сигнал ничем не будет отличаться от остальных. Можно попробовать сделать компенсацию. Сигнал для динамика задержать, пропустить через фильтр (который будет обратным к АЧХ динамика + микрофона) и вычесть из микрофонного. Для настройки фильтра и задержки сделать специальный режим калибровки (это можно): Откалибровать задержку - динамик воспроизводит пачки импульсов, микрофон принимает. Вычисляем задержку. Настраиваем фильтр - динамик воспроизводит белый шум, крутим настройки фильтра, минимизируя энергию принятого сигнала (после фильтра) Увы, это всё похоже довольно затратно по вычислениям и я не уверен, что будет работать NB. В процессе работы можно динамически подстраивать задержку по изменению внешней температуры, что бы не проводить калибровку постоянно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
варп 22 7 августа, 2021 Опубликовано 7 августа, 2021 · Жалоба 1 час назад, xvr сказал: Увы, это всё похоже довольно затратно по вычислениям и я не уверен, что будет работать Тоже думаю, что у этой задачи нет простого решения. Но она очень актуальна, и её уже решали так или иначе... Решать её с нуля очень затратно и вряд ли целесообразно... - надо искать готовые решения... ------------- Из личного опыта - очень давно - один большой начальник, разговаривая по громкой связи, сам говорил очень тихо, и постоянно жаловался, что его никто не слышит... Весь мозг нам вынес... :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
blackfin 28 7 августа, 2021 Опубликовано 7 августа, 2021 · Жалоба 5 hours ago, xvr said: Возможно Адаптивный фильтр поможет? Не совсем то, но возможно, пригодится: Adaptively Cancelling Server Fan Noise Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rkit 4 7 августа, 2021 Опубликовано 7 августа, 2021 · Жалоба 6 hours ago, xvr said: Требуется в сигнале с микрофона подавить сигнал динамика (по сути это устройство громкой связи). Сигнал на динамике известен. Пытался что нибудь по этому поводу найти в Интернете, но не могу сформулировать запрос - это не local feedback cancellation, ни noice cancellation. Не подскажете, как это хоть называется? А если сразу в алгоритм ткнёте, совсем хорошо будет. Эээм, вычитание? Ничего больше тут не надо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
enclis_ 0 7 августа, 2021 Опубликовано 7 августа, 2021 · Жалоба 5 hours ago, xvr said: Тоже не совсем то, тут эха нет. Если эха нет, то тогда просто вычитание. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xvr 12 8 августа, 2021 Опубликовано 8 августа, 2021 · Жалоба Я нашёл как это называется: AEC - Acoustic Echo Cancellation (или AES - Acoustic Echo Suppression) Делается на основе Адаптивного фильтра. Ещё к AEC в обязательном порядке прилагается DTD - Double Talk Detection (что бы система на пошла в разнос когда одновременно говорят с 2х сторон). Нашёл несколько статей (в том числе с полным листингом алгоритмов в Матлабе). Есть реализации для DSP. В частности для AD SigmaDSP (но они хотят денег за лицензию, причём не просто денег, а отчислений за каждое устройство, где они используются) - https://wiki.analog.com/resources/tools-software/sigmastudio/toolbox/adialgorithms/aec Кстати, здесь была приведена глубина FIR фильтра - 640 (в другой статье - около 1000). Боюсь, что ESP32 на одном таком фильтре загнётся :( Есть готовый чип для звуковой обработки (от XMOS) - XVF3100 (VocalFusion серия), но он один стоит денег (около 1000р на али). И корпус у него не очень подходящий для ручной пайки :((( https://www.xmos.ai/vocalfusion-voice-interfaces/#3510 Есть нечто у китайцев на основе WS9623 (с разными суффиксам). Готовая BT гарнитура с AEC и прочим. Готовая плата с ним + усилитель + 2 микрофона на Али стоит около 400р, что очень привлекательно, но интерфейс только BT :( Есть готовая плата AEC (на том же ali) за 1500р, но у неё аналоговый микрофон (хотел применить I2S) и непонятная м/сх (наименование стёрто, в сопроводительном тесте названа digitalDSPEcho процессором) - https://www.aliexpress.com/item/4000749444769.html?spm=a2g0s.8937460.0.0.18b02e0eKdke2X Документация отсутствует (в лучших традициях) Копаю дальше Acoustic Echo Cancellation.pdf Acoustic Echo Cancellation and Doubletalk Detection Using Estimated Loudspeaker Impulse Responses.pdf Acoustic Feedback Cancellation For Public Address Systems.pdf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
petrov 7 8 августа, 2021 Опубликовано 8 августа, 2021 · Жалоба xvr Кстати, здесь была приведена глубина FIR фильтра - 640 (в другой статье - около 1000). Боюсь, что ESP32 на одном таком фильтре загнётся :( Длинные адаптивные фильтры не делают в лоб в виде обычного FIR фильтра. Например в частотной области настраивают, банк полосовых фильтров реализуется с помощью быстрых алгоритмов полифазной фильтрации и БПФ, экономия в вычисления достигается за счёт децимации(блочной обработки с перекрытием), плюс сам адаптивный фильтр настраивается быстрее за счёт ортогональности полосовых фильтров. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xvr 12 9 августа, 2021 Опубликовано 9 августа, 2021 · Жалоба On 8/8/2021 at 2:33 PM, petrov said: Длинные адаптивные фильтры не делают в лоб в виде обычного FIR фильтра. Очень надеюсь. Нашёл в ESP32 реализацию AEC и прочей обработки (сорцов нет, одни *.a). Попробую, что получится Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
2expres 0 23 августа, 2021 Опубликовано 23 августа, 2021 · Жалоба On 8/7/2021 at 9:24 AM, xvr said: Требуется в сигнале с микрофона подавить сигнал динамика (по сути это устройство громкой связи). Много лет назад произведено миллионы телефонных аппаратов с громкой связью на MC34118 (ЭКР1436ХА2). В корпусе ТА стоит динамик и микрофон практически рядом. Эта микросхема работает не с сигналами, а с уровнями сигналов, что значительно упростит цифровую обработку. Можно быстро спаять макет с этой микросхемой, проверить подходит ли такой алгоритм по качеству, а затем реализовать на процессоре то, что выполняет данная микросхема. Проверять необходимо с разными микрофонами и динамиками. Микрофоны как правило имеют разброс по чувствительности до двух раз в одной партии и неравномерную частотную характеристику. В динамиках разброс меньше, но тоже есть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться