Перейти к содержанию
    

Поиск в аудио файле фрагмента по образцу

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

Бюджет по договоренности после чернового ТЗ с трудоемкостью

Изменено пользователем Livsi

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Бюджет по договоренности после чернового ТЗ с трудоемкостью

 

1k$ 1 раб неделя

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1k$ 1 раб неделя

Коротко, ясно и лаконично.

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

Изменено пользователем Livsi

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Коротко, ясно и лаконично.

Насколько ресурсо емкое получится Приложение? Есть ограничения на битрейт ? Будет ли он влиять на скорость поиска? Какова скорость поиска фрагмента в файле записи 1 суток хотя бы примерно?

 

Если ищется в .wav или .pcm то огр-й на битрэйт нет Если в mp3 тоже но приплюсовывается время декодирования

Сколько займет времени зависит от длины модели(эталона) , частоты сэмплирования(битрейта) . разрядности сэмплов 8\16\32),

мощности проца , обьема памяти тд Ну чисто навскидку должно уложиться в реальное время Т е сутки запись сутки

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

сигнальной обработке( за один например 48кгц( 20 мкс) сэмпл прокрутить сравнение с памятью эталонов и принять решение)

 

В сущности это простое действие - сравнивать скользящее окно(эталон) с тестируемым массивом

Если файлы теста и эталона(ов) чисто цифровые то решение абсолютно бинарное ( 0.1)

Если записи скажем аналоговые(с эфира) то это классический бинарный пороговый обнаружитель на фоне помех Тут кое какую

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

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Задача интересная.

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

На поставленные вопросы затрудняюсь ответить, но по моему это будет гораздо быстрее реалтайма.

По срокам - около месяца.

По деньгам - 20 т.р.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Непосредственно декодирование mp3 - пара десятков MIPS, что на ПК будет как минимум раз в 100 быстрее реалтайма.

поиск же можно сделать не медленнее чем декодер mp3, быстрее делать всё равно смысла нет особого.

 

примеры файлов выложите куда-нибудь, чтобы понятно было про какой С/Ш речь идёт.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Бюджет по договоренности после чернового ТЗ с трудоемкостью

 

Интересует задача. Пишите:

dkg11(dog)inbox.ru

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Непосредственно декодирование mp3 - пара десятков MIPS, что на ПК будет как минимум раз в 100 быстрее реалтайма.

поиск же можно сделать не медленнее чем декодер mp3, быстрее делать всё равно смысла нет особого.

 

примеры файлов выложите куда-нибудь, чтобы понятно было про какой С/Ш речь идёт.

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сам пытался как-то найти исполнителя на такую задачу. Тему можно найти в разделе "общение". Сейчас знаком с людьми, делавшими распознавание голоса. Знаком с программистом, частично решившим задачу сравнения. Моё мнение - за 1К$ и за месяц задача не решается. Вернее решается, но только для сферического звука в вакууме. В реальном мире два звука, которые человеческое ухо воспринимает одинаково, На экране осциллографа будут неузнаваемы: из-за разных АЧХ , из-за разной амплитуды, из-за того что АРУ радиоприёмника меняет усиление динамически.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Изменено пользователем stfrd

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Некорректные задачи — такая забавная вещь, что я просто охреневаю от желающих решить ее ☺

Вот же хотят люди геморроя себе на задницу! Как только появится малюсенькая нестандартная хрень, так сразу придется еще неделю тратить на модификацию своего велосипеда!

Нет уж. Нечеткий поиск — такая хитрожопая фиговина, что нужно сразу озвучивать рамки!

 

Влиты в них были миллионы долларов, сейчас оцениваются наверно под сотню. Задачу полностью решают.

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

 

Изменено пользователем Эдди

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Полностью решить эту задачу сможет лишь специально обученная "блондинка".

 

Нет. Технологии развиваются не в сторону деградации, а в сторону прогресса. Скоро всю работу блондинок сможет делать автоматика.

Если топикстартер подождёт лет 5-10 -появятся готовые библиотеки для решения его задачи.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нет. Технологии развиваются не в сторону деградации, а в сторону прогресса. Скоро всю работу блондинок сможет делать автоматика.

Если топикстартер подождёт лет 5-10 -появятся готовые библиотеки для решения его задачи.

 

По вашему прогнозу лет через 5-10 программисты окончательно деградируют до уровня блондинок, перебирая в косметичке упс, пардон, в библиотеке алгоритмы для решения задачи.

 

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

ТЗ формулирует системотехник, программист согласно ТЗ программирует, ибо, обычно, ни на что другое обычный программист не способен.

 

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

Изменено пользователем In_an_im_di

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Задача простая и понятная, и я, кажется, MiklPolikovу уже советовал как ее решать.

 

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

 

Если V1 получится несказанно большим и 4 его копии не будут влезать в память компьютера, надо разбить битрейд на блочки по-меньше.

 

Дальше - все просто, создаете циркулянтную матрицу из V1 (в уме, а не в оперативке) и с помощью трех преобразований Фурье умножаете этот цирпкулянт на V2. В пять строк вызова подпрограмм библиотек пакета FFTW можно уложиться. Результат - имеет четкий максимум, который ищется еще с помощью пары строк. Где тут неделя работы??? Где тут неустойчивость??? Да, конечно, если у вас реклама и сигнал записаны с разной скоростью, то конечно ой, но разбаланстровка в несколько десятых долей процента скорости не приведет к катастрофическим последствиям, а шумы, уровень, и куча всего остального просто ну никак не повлияют на решение задачи.

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...