реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Выделение слабых звуков на фоне сильных
sifadin
сообщение Oct 24 2013, 13:20
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 443
Регистрация: 11-02-09
Пользователь №: 44 698



Здравствуйте!
Какие алгоритмы используют чтобы выделить слабые шумы, разговор на заднем плане от основного выступления?
Есть готовые пакеты программ для этих целей?
Go to the top of the page
 
+Quote Post
Alex11
сообщение Oct 24 2013, 23:00
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 106
Регистрация: 23-10-04
Из: С-Петербург
Пользователь №: 965



При такой общей постановке задачи - не разделить. Можно адаптивной фильтрацией убить заглушающую разговор музыку или другие шумы, можно при наличии стереозаписи попытаться отделить двух дикторов, если хорошо разнесены по углам. Но разделить два разговора в моно записи практически не реально. Что-то можно попытаться сделать, если один голос мужской, а другой женский.
Go to the top of the page
 
+Quote Post
Xenia
сообщение Oct 24 2013, 23:47
Сообщение #3


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(sifadin @ Oct 24 2013, 17:20) *
Здравствуйте!
Какие алгоритмы используют чтобы выделить слабые шумы, разговор на заднем плане от основного выступления?
Есть готовые пакеты программ для этих целей?


Если поставить один микрофон (узконаправленный?) так, чтобы он принимал преимущественно основное выступление (на сцене), а второй микрофон установить в зале, где есть посторонние шумы, то есть возможность вычесть из второй записи первую. Только не целиком, а только общую (коррелирующую) составляющую между обеими сигналами.
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Oct 25 2013, 15:07
Сообщение #4


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(sifadin @ Oct 24 2013, 17:20) *
..Какие алгоритмы используют чтобы выделить слабые шумы..


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

так например микрофон зарытый в землю на расстоянии пару десятков метров, замечательно пишет и передаёт звуковой сигнал беседующих на скамейке sm.gif
Go to the top of the page
 
+Quote Post
Alex11
сообщение Oct 25 2013, 15:29
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 106
Регистрация: 23-10-04
Из: С-Петербург
Пользователь №: 965



Микрофонная решетка очень помогает. Даже линейка (только по горизонтальному углу) из восьми микрофонов полметра в поперечнике дает очень хороший эффект. Людей на расстоянии полметра, понятное дело, не различить с 20 метров, но метра за 3 разделяет. Это не совсем то, что предлагалось в предыдущем посте, зато позволяет сначала все записать, а потом уродоваться с разделением.
Go to the top of the page
 
+Quote Post
KPiter
сообщение Oct 26 2013, 19:49
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 84
Регистрация: 22-09-06
Из: NN
Пользователь №: 20 592



Цитата(Xenia @ Oct 25 2013, 03:47) *
возможность вычесть из второй записи первую. Только не целиком, а только общую (коррелирующую) составляющую между обеими сигналами.

А как получить это "не целиком"? то что надо вычитать из второй записи
Go to the top of the page
 
+Quote Post
Xenia
сообщение Oct 26 2013, 22:39
Сообщение #7


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(KPiter @ Oct 26 2013, 23:49) *
А как получить это "не целиком"? то что надо вычитать из второй записи.


Представим себе микрофонную запись, как вектор длины N, состоящий из N точек (например, wav-файл). Тогда, установив два микрофона - первый на сцене, а второй в зале, - и оцифровывая их синхронно, получим два вектора одной и той же длины N.
Введем обозначения:
Вектор A (звук на сцене, оно же запись со сценического микрофона)
Вектор B (вектор разговоров в зале, неизвестен, подлежит вычислению)
Вектор С (запись с микрофона в зале)
Здесь A и C - данные с микрофонов, а B - чистый разговор, который мы хотим выделить.

Если микрофон А установлен так, что шум зала он не улавливает, а микрофон C улавливает разговор в зале + частично то, что идет со сцены, то вектор С может быть представлен в виде суммы:
Код
   С = k*A + B

где: k - скалярный коэффициент, указывающий долю звука со сцены в качестве примеси к разговору. Он неизвестен, но сейчас мы его вычислим из известных A и C по формуле:
Код
   k = (A'*C) / ( sqrt(A'A) * sqrt(C'C) )
где:
   (A'*C) = скалярное произведение векторов A и C
   sqrt(A'*A) = норма вектора A
   sqrt(C'*C) = норма вектора C

Поскольку векторы A и C нам известны (это записи с 1-го и 2-го микрофонов), то вычислить их скалярное произведение и нормы не составляет большого труда.
После того, как скалярный коэффициент k определен, искомый вектор разговора получается вычетом:
Код
   B = C - k*A

Оттого-то я и сказала, что из зального звука надо вычитать сценический звук не целиком (C-A), а только его корреллирующую долю (C-k*A).
Go to the top of the page
 
+Quote Post
sifadin
сообщение Oct 27 2013, 12:34
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 443
Регистрация: 11-02-09
Пользователь №: 44 698



Спасибо!
Но запись уже имеется сделана хоть и стерео диктофоном но с малой базой между микрофонам
Думаю разрешение по углу мало что даст
Может ли дать что-либо такой подход
Пусть сигнал
S сумма
от независимых истоников
Возможно ли его разбить на сумму
S = S1 + S2
так чтобы корреляция между S1 и S2 была минимальна?


Go to the top of the page
 
+Quote Post
Xenia
сообщение Oct 27 2013, 14:15
Сообщение #9


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(sifadin @ Oct 27 2013, 16:34) *
Пусть сигнал
S сумма от независимых истоников
Возможно ли его разбить на сумму
S = S1 + S2
так чтобы корреляция между S1 и S2 была минимальна?


К сожалению, существует бесконечно большое количество вариантов такого разбиения. Типа того, что вам выдали сумму 10000 руб, а требуется определить, какими бумажками она была выдана.

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

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

Однако можно попытаться вращать "крестовину" осей шагами по 5 угловых градуса, оценивая на слух разборчивость речи.
Go to the top of the page
 
+Quote Post
sifadin
сообщение Oct 27 2013, 14:30
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 443
Регистрация: 11-02-09
Пользователь №: 44 698



А как вращать крестовину на практике?
разбить всю запись на фрагменты
и для каждого подбирать такой частотный фильтр который
максимально выделяет слабый сигнал
или есть какие-то другие алгоритимы
Go to the top of the page
 
+Quote Post
Xenia
сообщение Oct 27 2013, 17:33
Сообщение #11


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(sifadin @ Oct 27 2013, 18:30) *
А как вращать крестовину на практике?
разбить всю запись на фрагменты и для каждого подбирать такой частотный фильтр который максимально выделяет слабый сигнал или есть какие-то другие алгоритимы.


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

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

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

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

"Вращать крестовину" - это лишь иная формулировка того, что искомый разговор является линейной комбинацией сигналов двух микрофонов. Т.е. вращение вокруг начала координат аналитически определяется так:
X = x * cos(a) - y * sin(a)
Y = y * cos(a) + x * sin(a)
где синусы и косинусы есть лишь иное представление коэффициентов линейной комбинации:
B = k1*A + k2*C

В практическом случае, когда постоянство громкости соблюдать не требуется, можно обойтись одним коэффициентом, как в прошлый раз:
B = С - k*A
И тут можно попытаться его подобрать "на слух" следующим образом: на стандартном проигрывателе в диалоге "Mаster Volume" есть движок "Balance", позволяющий корректировать баланс левого и правого канала. У меня Винда английская, а потому знать не знаю, как это на русскоязычной Винде переведено. Далее на 1-ый канал подается сигнал с первого микрофона, а на второй ИНВЕРТИРОВАННЫЙ (с обратной полярностью) сигнал со второго микрофона. Если это уже стереозапись, то надо цифровым образом инвертировать сигнал в одном из каналов. Потом слушают запись, в процессе прослушивания которой подбирают положение движка "Balance", стараясь задавить мешающую разборчивости речи музыку (не знаю точно, что у вас там).

Если у обоих микрофонов наблюдается разное предрасположение к одному и другому (сцене и залу), то должно существовать такое положение движка "Balance", при котором ненужное гасится вычитанием. А если этого нет, то в самом лучшем случае вы лишь несколько улучшите разборчивость речи, но от сценического звука полностью не избавитесь.
Go to the top of the page
 
+Quote Post
iiv
сообщение Oct 27 2013, 18:38
Сообщение #12


вопрошающий
*****

Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436



Цитата(sifadin @ Oct 24 2013, 19:20) *
Какие алгоритмы используют чтобы выделить слабые шумы, разговор на заднем плане от основного выступления?


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

Цитата(sifadin @ Oct 24 2013, 19:20) *
Есть готовые пакеты программ для этих целей?


есть, но дорого, гуглите на EMMDD (кажется в Россию не поставляется) или на национальную лабораторию Сандии, но последние, думаю, вам тоже не продадут. У Кубисты (шведская мульти-ди) не покупайте, я этот софт в 1998 году им написал, а они до сих пор не удосужились его улучшить, а там есть некоторая специфика, которая на звуке работать не будет.
Go to the top of the page
 
+Quote Post
sifadin
сообщение Oct 29 2013, 14:09
Сообщение #13


Местный
***

Группа: Свой
Сообщений: 443
Регистрация: 11-02-09
Пользователь №: 44 698



Цитата(iiv @ Oct 27 2013, 22:38) *
два или больше микрофона с точными положениями их в пространстве позволят выделить несколько различных источников звука в аудитории - много раз так делал прослушку - работает очень успешно - в шумном ресторане можно выделить полностью все фразы каждого сидящего, хотя микрофоны по залу были разбросаны. Научные статьи гуглятся на Sidriopolis'а.



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

Sidriopolis'а не нашел. Если не трудно подскажите еще какие-нибудь ключевые слова
А к какого рода экспертам и куда нужно обращаться с подобными задачами.
Еще интересует другая задача. Есть жилое помещение в котором периодически раздается детский плач
Т.е. ребенка в помещении нет, но впечатление что всхлипывания идут из шкафа или другого места.
В общем впечатление присутствия. Человек утверждает что его преследует ОПГ, которой он что-то должен
Вопрос к какого рода экспертам следует обращаться в этой задаче?
Go to the top of the page
 
+Quote Post
iiv
сообщение Oct 29 2013, 16:31
Сообщение #14


вопрошающий
*****

Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436



Цитата(sifadin @ Oct 29 2013, 19:09) *
Sidriopolis'а не нашел. Если не трудно подскажите еще какие-нибудь ключевые слова

http://www.ece.umn.edu/users/nikos/
ключевых слов много, так как все кому не попадя это по-разному называют, тре-вей, мултивей, парафак разложения.

Цитата(sifadin @ Oct 29 2013, 19:09) *
А к какого рода экспертам и куда нужно обращаться с подобными задачами.
...
Вопрос к какого рода экспертам следует обращаться в этой задаче?

можно и ко мне sm.gif
Go to the top of the page
 
+Quote Post
sifadin
сообщение Oct 30 2013, 13:20
Сообщение #15


Местный
***

Группа: Свой
Сообщений: 443
Регистрация: 11-02-09
Пользователь №: 44 698



Ок я напишу в личку когда буду готов
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 06:37
Рейтинг@Mail.ru


Страница сгенерированна за 0.01492 секунд с 7
ELECTRONIX ©2004-2016