LINUX.ORG.RU

Выделить звук из кучи других

 ,


1

1

Сап лор, вопрос об анализе звука, может кто занимался.

Допустим у меня есть стальная пластина разумной толщины, площадью примерно 1кв.м. В нее стреляют из пейнтбольного ружья, шарик ударяет в пластину и генерит звук в звукоснимателе, который прикреплен с другой стороны. Помимо этого в воздухе и на креплениях пластины есть куча других звуков и вибраций, т.к. в полуметре находится ДВС. Я хочу попробовать проанализировать звук от попадания и как-то его выделить среди других. В перспективе это будет самописная либа, которая примет звук и скажет, было ли попадание. Энергия снаряда небольшая.

Посоветуйте, с чего мне начать? Имеются скиллы программинга, монтажа, пайки, закупки оборудования. Но нет теории. Я закопался в ряды фурье, потом гугл вывел меня на какие-то сайты аудиоинженеров, так они там звуки режут фильтрами, спектры выравнивают, куча матана и т.п., что наводит на мысль, что просто вот так вот взять и распознать звук это задача нетривиальная и возможно именно этот способ (понять попал снаряд или нет) не стоит потенциально вкладываемых усилий. Тем не менее, цель в этом треде — обсудить данный способ. Какой именно звукосниматель ставить тоже вопрос открытый.

Также интересно, если может кто уже такое делал — снятие ударного звука для распознавания — по каким тегам гуглили, на какие сайты ходили, какой софт использовался?

Ответ на: комментарий от lazyklimm

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

arturpub ★★ ()

сложно

просто вот так вот взять и распознать звук

угу. Но тема интересная, дерзай.

Объемная это задача. Если этим и заниматься, то за деньги. Ну или уже быть обеспеченным. Реально времени потребуется прорва.

targitaj ★★★★★ ()
Последнее исправление: targitaj (всего исправлений: 2)

В свое время, учась в военном ВУЗе (20-25 лет назад), проходили выделение сигнала на фоне помех/шумов с использованием автокорреляционной фильтрации. Если с математикой хорошо, то, наверное, стоит копнуть в этом направлении

Belen ★★ ()
Последнее исправление: Belen (всего исправлений: 1)

снятие ударного звука для распознавания

Четыре фичи в конфиг:

1) атака (мс)
2) задержка (decay) (мс)
3) затухание (release) (мс)
4) амплитуда (дб)

Скорее всего понадобится еще пятая фича — процент погрешности. Настройки подбираются опытным путем. Сравниваем «отпечатки» уровней звука в буфере с настройками «маски» в конфиге. Принимаем решение оно или не оно.

Это первое что пришло в голову.

deep-purple ★★★★★ ()

Вам нужен адаптивный фильтр. Это именно так называется.

Deleted ()

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

Почему бы просто не воспользоваться виброснимателем прямо с пластины? Паразитные шумы, конечно, тоже будут, но амплитуда при ударе будет значительно превосходить все внешние шумы.

mashina ★★★★★ ()

Посоветуйте, с чего мне начать?

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

Тем не менее, цель в этом треде — обсудить данный способ.

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

Stanson ★★★★★ ()
Ответ на: комментарий от Stanson

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

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

mashina ★★★★★ ()
Ответ на: комментарий от mashina

А пластина звенит на ультразвуке после удара? Если звенит - то лучше всего его и ловить.

Stanson ★★★★★ ()
Ответ на: комментарий от mashina

Тесты на пластиковой канистре с датчиком давления внутри показывают, что время воздействия в районе 20ms, успеваю снять всего 2-3 семпла, а пиковое давление примерно в 10-20 раз меньше, чем если среднесильно сжимать ее рукой. В цифрах — в пределах процента от атмосферного, отсечку поставил <0,2%. Форма в основном _П_. При искусственной тряске, щелчках, прочих теребоньканьях не срабатывает, отсекается.

2all: спасибо всем отписавшимся, теперь есть куда копать.

arturpub ★★ ()
Ответ на: комментарий от Stanson

Я вот и думал, может еще звукосниматели кто посоветует конкретные. Мой бачок по крайней мере глуко дудит при попадании.

arturpub ★★ ()
Ответ на: комментарий от arturpub

Мой бачок по крайней мере глуко дудит при попадании.

So use it! Механический резонанс - отличный фильтр, и писать ничего не надо.

Stanson ★★★★★ ()
Последнее исправление: Stanson (всего исправлений: 1)
Ответ на: комментарий от Stanson

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

arturpub ★★ ()
Ответ на: комментарий от Stanson

А пластина звенит на ультразвуке после удара? Если звенит - то лучше всего его и ловить.

Навряд ли. Для ультразвука не подойдёт обычное оборудование, придётся что-то сильно особенное делать.

mashina ★★★★★ ()
Ответ на: комментарий от arturpub

Имеешь ввиду просто частотный фильтр наложить на PCM, без всяких там фурье?

Ну да, а потом тупо по уровню pass/fail.

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

Stanson ★★★★★ ()
Ответ на: комментарий от mashina

Навряд ли. Для ультразвука не подойдёт обычное оборудование, придётся что-то сильно особенное делать.

Там, во-первых, гармоники, а во-вторых, звенит оно не больше чем на мегагерце, обычно.

Stanson ★★★★★ ()
Ответ на: комментарий от arturpub

Кстати, наколенно - берёшь спектроанализатор типа jaaa, подключаешь свой звукосниматель, стреляешь в пластину и смотришь, где пики. Самый жирный фильтруешь тупейшим фильтром и считаешь уровень.

Stanson ★★★★★ ()
Ответ на: комментарий от arturpub

Тесты на пластиковой канистре с датчиком давления внутри показывают, что время воздействия в районе 20ms, успеваю снять всего 2-3 семпла...

Если взять ненужный динамик, оторвать от него лишний диффузор и прикрепить его к грузику на пружинке, то получится довольно неплохой вибродетектор. Через обычную звуковуху получится снять несколько сотен семплов или мб даже 1к. Варьированием жёсткостью пружинки и массой грузика можно подстроиться под нужную полосу частот. Вполне возможно, что достаточно будет просто динамик прикрепить к пластине.

mashina ★★★★★ ()
Ответ на: комментарий от Stanson

... и в реальной жизни никакой источник внешнего звука этого сделать не в состоянии

Это делается очень просто с помощью обычных бытовых предметов. Например, воспроизведением резонансной частоты рюмки на колонках. И от обычной речи они тоже могут прекрасно резонировать. Сабом можно заставить звучать мебель без каких-то запредельных мощностей. В общем, это всё сильно зависит от конструкции.

mashina ★★★★★ ()
Ответ на: комментарий от arturpub

время воздействия в районе 20ms, успеваю снять всего 2-3 семпла

Очень странный медленный датчик. В цифровой телефонии дискретизация звука начинается от 8 кГц, я думаю, обеспечить сигнал хотя бы такой частоты отсчётов легко можно.

Andrey_Utkin ★★ ()

Пространственное разделение источников хорошо делается записью с нескольких микрофонов и ICA преобразованием. Но возможно, что для этого случая оверкилл.

Bell ()
Ответ на: комментарий от Andrey_Utkin

BMP180 за 200р, взял потыкать. Меряет давление и температуру, чаще 6ms не может принципиально.

arturpub ★★ ()
Ответ на: комментарий от Bell

Кстати, звук должен быть всегда одной формы. Записать один раз без шума и сравнивать.

Bell ()
Ответ на: комментарий от arturpub

Ну тогда просто по превышению порога. Порог подобрать на практике (эвристически). Не думаю, что стоит изворачиваться сверх этого с таким датчиком.

Andrey_Utkin ★★ ()

Посоветуйте, с чего мне начать?

Как уже говорили выше, начинать надо с корреляционного анализа, согласованных фильтров.

Также интересно, если может кто уже такое делал — снятие ударного звука для распознавания

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

Дополнение: «Анализ алгоритмов аудиоаналитики». ©

quickquest ★★★★★ ()
Последнее исправление: quickquest (всего исправлений: 1)

Реквестирую запись звука с участками фонового шума перед самим звуком и после него.

zezic ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.