-
Какие технологии/алгоритмы используются для решения подобной задачи?
-
- спектральный (фурье или вейвлет) анализ и/или корреляционные методы
-
> разведчик (03.07.07 13:50)
Дай четкое определение термину "похожесть"..
-
Есть локальный аудио образец. И есть эфир.
Надо считать количество прогонов образца в эфире.
-
> Сергей М. © (03.07.07 16:04) [2]
Твой вопрос вообще вне конкурса - найти два муз.фрагмента, похожих по смысловому содержанию воспроизводимого, причем один должен быть в стиле рэп, а другой - римейк на тему "Лунная соната".
-
> разведчик (03.07.07 16:24) [3]
Если фрагмент точно из муз.произведения - можно.
-
А этот "образец" в эфире "прогоняется" без какой-либо обработки ?
Я имею ввиду, к примеру, "растяжку/сжатие" шкалы реального времени воспроизведения и/или пич-бэнд ...
-
> Jeer © (03.07.07 16:27) [4]
Не, Серег)
Я не о том.
см. [6]
-
Образец эталонный. Всегда есть.
Его гоняют в эфире без какой-либо обработки.
Нужно просто определять в аудио потоке его наличие.
Ну то есть считать.
Образец представляет собой речь, но может быть на фоне музона
-
> Сергей М. © (03.07.07 16:31) [7]
>
>
Да понятно, что наличие преднамеренных искажений шкалы времени, мультипликативных и/или аддитивных искажений значительно затруднит распознавание.
-
Если фрагмент точно из муз.произведения - можно.
Собственно и хотелось бы получить подсказку или направление для поиска
-
> разведчик (03.07.07 16:43) [10]
См. [1]
-
То есть я так понял, что если это будет только речь (а там спектр невнятный) то все будет довольно проблематично?
-
Тут уже обсуждался этот вопрос. Где то пол годика годик назад. Ищи.
Дай все исходные данные задачи, тогд аможно будет облегчить алгоритм проверки.
Например сравнить два сигнала одинаковой длины, с полным соответствием тайминга волн - не проблема вообще.
-
> разведчик (03.07.07 16:47) [12]
Не только спектр тембра - для речи можно выделять темп произнесения.
По сути это нижний спектр модуляции - полоса в районе долей - единиц герц.
-
Все исходные данные я уже описал. Что за образец будет конкретно сейчас неизвестно. Длительность примерно около минуты. Речь в нем будет стопроцентно.
-
ОТносительно простой способ, работающий, если трэк не искажен, не изменен, и уровень шума не большой.
Берешь исходный трэк. Из него берешь некоторый кусок.(Не вижу смысла проверять всесь трэк)
Делишь его на кучу небольших кусков.
В процессе прослушиваняи эфира сравниваешь все с самым первым куском(тупо сравнение волны с некоторой точностью), как только кусок прошел тест, выделяешь потом в котором проверяешь второй, и так далее пока не будет проверен весь трэк. Если на каком то куске проверка обломилась, поток деактивируется.
понятно что одновременно могут существовать несколько потоков, а при спцифической однообразности музыки современной и неудачно подобранном куске для проверки может количество потоков размножится до сотен.
Если еще проверять не один трэк, а несколько.. Супердум на 30 процов справится, :))
Все приведенное выше не проверенно на практике, чисто теоретические соображения, но я немного занимался сравнением звуковых потоков, поэтому это все же соображения основанные на некотором опыте, хоть и не большом.
-
Ну и тогда самое интересное:
А что за библиотеки для этого "сравнения волн" использовать?
-
> Если на каком то куске проверка обломилась, поток деактивируется.
Ну да - эфирный треск, например.
Простейший способ:
-прогнать трэк через soundforge и определиться с нижней частью спектра
-прогнать наиболее характерный отрывок через ФНЧ и получить эталонный сигнал
Далее, гнать входной поток через такой же ФНЧ и считать корреляцию.
-
> Ну да - эфирный треск, например.
Это уже от выбранного метода сравнения зависит и точности.
I>
> А что за библиотеки для этого "сравнения волн" использовать?
Хм. Напиши, да используй? Ктож за тебя писать будет?