Понадобилось дать оценку о похожести записанного с микрофона сигнала с эталонным, сигналы и эталоны могут быть любые (периодические, не преодические), практически любой длинны от 1 до 15 секунд. Нашёл в сети алгоритм быстрой кореляции. Кто его использовал? Теперь нужно разобраться с входными и выходными данными, насколько я понимаю это double значения от 0..1.
Не совсем пока что понимаю что я получу на выходе этого алгоритма.
Какие ещё методы сравнения похожести двух сигналов мне нужно посмотреть?
К сожалению времени на эту работу выделено не так много.
Здравствуйте, nen777w, Вы писали:
N>Понадобилось дать оценку о похожести записанного с микрофона сигнала с эталонным, сигналы и эталоны могут быть любые (периодические, не преодические), практически любой длинны от 1 до 15 секунд. Нашёл в сети алгоритм быстрой кореляции. Кто его использовал? Теперь нужно разобраться с входными и выходными данными, насколько я понимаю это double значения от 0..1. N>Не совсем пока что понимаю что я получу на выходе этого алгоритма.
Если на пальцах — максимальные значения в массиве корреляции говорят о том, при каких временных сдвигах наблюдается близкая к линейной зависимость одного сигнала от другого ("похожесть").
Например, если сигналы — два синуса с одинаковой фазой и произвольной амплитудой, то максимум будут в точке 0 (и в точках, соответствующих целому числу периодов), а минимум — на полупериоде.
Если сигналы похожи, но один сигнал сдвинут относительно другого на время T, соответствующее M дискретам, то максимум будет в M-ом отсчете корреляции.
MBo>Если на пальцах — максимальные значения в массиве корреляции говорят о том, при каких временных сдвигах наблюдается близкая к линейной зависимость одного сигнала от другого ("похожесть"). MBo>Например, если сигналы — два синуса с одинаковой фазой и произвольной амплитудой, то максимум будут в точке 0 (и в точках, соответствующих целому числу периодов), а минимум — на полупериоде. MBo>Если сигналы похожи, но один сигнал сдвинут относительно другого на время T, соответствующее M дискретам, то максимум будет в M-ом отсчете корреляции.
Здравствуйте, nen777w, Вы писали:
N>А если сигналы не будут похожи?
То значения будут невелики, однако это относительные величины.
Например, если мы возьмем несколько наборов данных и сравним их с образцом, рассчитва корреляцию, то наибольшие значения будут для того набора, который связан с образцом линейной зависимостью (возможно, со сдвигом), поменьше — для набора, похожего на образец (например, несколько зашумленного, или в котором присутствуют не все особенности), и еще меньше — для набора, не имеющего взаимной корреляции с образцом (например, белый шум)
N>>А если сигналы не будут похожи? MBo>То значения будут невелики, однако это относительные величины. MBo>Например, если мы возьмем несколько наборов данных и сравним их с образцом, рассчитва корреляцию, то наибольшие значения будут для того набора, который связан с образцом линейной зависимостью (возможно, со сдвигом), поменьше — для набора, похожего на образец (например, несколько зашумленного, или в котором присутствуют не все особенности), и еще меньше — для набора, не имеющего взаимной корреляции с образцом (например, белый шум)
Спасибо немного стало ясно. Единственное что я пока не пойму это как по полученным величинам дать оценку похожести сигнала. Допустим на некоторой последовательности данных и эталонном сигнале посчитали корреляцию, получили некоторый максимум в исходной последовательности, как теперь посчитать коэффициент похожести двух сигналов? Допустим от 0 до 1
Здравствуйте, nen777w, Вы писали:
N>Спасибо немного стало ясно. Единственное что я пока не пойму это как по полученным величинам дать оценку похожести сигнала. Допустим на некоторой последовательности данных и эталонном сигнале посчитали корреляцию, получили некоторый максимум в исходной последовательности, как теперь посчитать коэффициент похожести двух сигналов? Допустим от 0 до 1
Вот с этого можно начать: http://alglib.sources.ru/statistics/correlation.php
А вообще, если задача серьезная, то нужно по литературе по статобработке данных разбираться, но какие источники лучше — не знаю.
N>Понадобилось дать оценку о похожести записанного с микрофона сигнала с эталонным, N> сигналы и эталоны могут быть любые (периодические, не преодические), практически любой длинны от 1 до 15 секунд.
N> Нашёл в сети алгоритм быстрой кореляции. Кто его использовал? Теперь нужно разобраться с входными и выходными данными, насколько я понимаю это double значения от 0..1. N>Не совсем пока что понимаю что я получу на выходе этого алгоритма.
Сигнал записанный с микрофона — это очень много шума плюс реальный сигнал всернутый с передаточной функцией микрофона. Что-то у меня подозрение, что простой корреляцией тут может дело не ограничиться. Хотя попробовать стоит — вдруг повезет, не зная задачи нельзя утверждатьт что-либо наверняка.
В общем случае — пропустить сигнал с микрофона через шумодавилку, потом сделать Фурье или что-то подобное и сравнить спектры. Как сравнивать спектры — зависит от характера сигналов. В простейшем случае — сравнить положения пиков, в сложнейшем — выучить страшные слова типа mel-frequency cepstral coefficients и gaussian mixture model и надеяться что это поможет
Sergey Chadov пишет: > > положения пиков, в сложнейшем — выучить страшные слова типа > mel-frequency cepstral coefficients и gaussian mixture model и надеяться > что это поможет
Все хорошо вы написали, но на кой ляд здесь MFCC?
А шумодавилку использовать — это большой вопрос в данном случае,
проверять надо в конкретной ситуации.
Но основная сложность данной темы, что мы ничего не знаем о том, что это
за сигналы, кроме того, что они периодические или не периодические, в
частности в задаче может оказаться, что искомый сигнал может быть
окрашенный шум, а может просто DTMF, а может что-то типа речевого сигнала.
Пока автор не скажет, что именно за сигналы наши советы сродни гаданию
на кофейной гуще.
Здравствуйте, nen777w, Вы писали:
N>Спасибо немного стало ясно. Единственное что я пока не пойму это как по полученным величинам дать оценку похожести сигнала. Допустим на некоторой последовательности данных и эталонном сигнале посчитали корреляцию, получили некоторый максимум в исходной последовательности, как теперь посчитать коэффициент похожести двух сигналов? Допустим от 0 до 1
Поделить на квадратный корень из произведения дисперсий обоих сигналов. Собственно корреляционная функция обычно и нормируется таким образом (делится на корень из произведения дисперсий) так что это безразмерная величина от -1 до 1.
---
The optimist proclaims that we live in the best of all possible worlds; and the pessimist fears this is true
Здравствуйте, Vzhyk, Вы писали:
V>Sergey Chadov пишет: >> >> положения пиков, в сложнейшем — выучить страшные слова типа >> mel-frequency cepstral coefficients и gaussian mixture model и надеяться >> что это поможет V>Все хорошо вы написали, но на кой ляд здесь MFCC?
Скорее всего ни на кой Я поэтому и написал "типа MFCC". Конкретно MFCC пригодились бы если бы был человечий голос
То есть имелось ввиду некоторое преобразование входного спектра в набор коэффициентов по подобию MFCC.
Какое конкретно преобразование — не зная задачи сказать естественно нельзя.
V>А шумодавилку использовать — это большой вопрос в данном случае, V>проверять надо в конкретной ситуации. V>Но основная сложность данной темы, что мы ничего не знаем о том, что это V>за сигналы, кроме того, что они периодические или не периодические, в V>частности в задаче может оказаться, что искомый сигнал может быть V>окрашенный шум, а может просто DTMF, а может что-то типа речевого сигнала. V>Пока автор не скажет, что именно за сигналы наши советы сродни гаданию V>на кофейной гуще.
nen777w пишет: > > > V>Пока автор не скажет, что именно за сигналы наши советы сродни гаданию > V>на кофейной гуще. > > Абсолютно любые, может быть синусоида а может быть и музыкальный фрагмент.
Ну так вот в первом случае, думаю, герцель вам поможет хорошо, а во
втором... от кросскорреляции (думаю мало поможет), до HMM. (но вот на
каких параметрах делать не скажу, не знаю).
Sergey Chadov пишет: > > V>Все хорошо вы написали, но на кой ляд здесь MFCC? > Скорее всего ни на кой Я поэтому и написал "типа MFCC". Конкретно MFCC > пригодились бы если бы был человечий голос
Просто шкала mel основано на особенностях нашего слуха.
>> Абсолютно любые, может быть синусоида а может быть и музыкальный фрагмент. V>Ну так вот в первом случае, думаю, герцель вам поможет хорошо, а во V>втором... от кросскорреляции (думаю мало поможет), до HMM. (но вот на
Что такое HMM ? Hidden Markov model ?
Есть ли приложения которые могут сравнить похожесть двух wave файлов и дать оценку ?
Хоть что то есть?
Сдеал сравнение кореляцией если патерн брался из оригинального сигнала и немного модифицировался (например добавили эхо) это работает. Но если патерн и сигнал записывались отдельно и ничего кроме как общей информационной оставляющей не имеют то кореляция уже не канает.
nen777w пишет: > > > Что такое HMM ? Hidden Markov model ?
Они родимые. Но тут можно извращаться и далее, например TDNN . > Есть ли приложения которые могут сравнить похожесть двух wave файлов и > дать оценку ?
comp, например. > Хоть что то есть?
Что-то точно есть. > > Сдеал сравнение кореляцией если патерн брался из оригинального сигнала и > немного модифицировался (например добавили эхо) это работает. Но если > патерн и сигнал записывались отдельно и ничего кроме как общей > информационной оставляющей не имеют то кореляция уже не канает.
Что значит общая информационная составляющая?
Сейчас ты уперся в то, что тебе говорили с самого начала, для каждого
типа сигнала свой подход.
Например, при распознавании речи корреляция не проканает и не только ее.
>> Что такое HMM ? Hidden Markov model ? V>Они родимые. Но тут можно извращаться и далее, например TDNN .
Ясно. А не встречались ли вам хорошые алгоритмические выкладки с примерами, по HMM / TDNN ?
>> Есть ли приложения которые могут сравнить похожесть двух wave файлов и >> дать оценку ? V>comp, например.
Поиск в google по типа "comp audio compare utility" ничего не дал.
V>Что значит общая информационная составляющая? V>Сейчас ты уперся в то, что тебе говорили с самого начала, для каждого V>типа сигнала свой подход. V>Например, при распознавании речи корреляция не проканает и не только ее.
На всякий случай отчитаюсь о своих эксперементах.
Да Я немного поспешил. Первый раз пробовал записать через микрофон свой голос котрый в сигнале и в патерне называл одну и ту же цифру, действительно ничего не вышло. Корреляция была ниже 0.2 да и не совсем с того в что в исходном сигнале.
Второй раз попробовал записать через микрофон с другого источника музыкальный фрагмент: для сигнала — длинный музыкальный фрагмент, а для патерна какой то кусочек его, и не смотря на то что сигналы были записаны независимо друг от друга корреляция получилась близкой к 1-це.
Хотя если попробовать в качестве патерна взять кусочек из оригинальногго файла и выполнить корреляцию с записаным через микрофон сигналом, коэфициент кореляции получается уже плохой. Насколько я понял меня может выручить тут свёртка патерна с откликом системы микрофон->звуковая карточка. Только нужно каким то образом записать этот отклик.
nen777w пишет: > > Ясно. А не встречались ли вам хорошые алгоритмические выкладки с > примерами, по HMM / TDNN ?
Ты издеваешься. Вводишь в гугле распознавание речи и пользуешь этот
подход для твоих сигналов, смотри, чтоб не получилось из пушки по
воробьям. Ну и как как промежуточный шаг — DTW.
> V>comp, например. > > Поиск в google по типа "comp audio compare utility" ничего не дал.
help comp в командной строке. (Стёб был с comp)
> Да Я немного поспешил. Первый раз пробовал записать через микрофон свой > голос котрый в сигнале и в патерне называл одну и ту же цифру, > действительно ничего не вышло. Корреляция была ниже 0.2 да и не совсем с > того в что в исходном сигнале.
Не обижайся, но ты "псих" . Неужто сам не знаешь, что тут
распознавание речи в чистом виде. MFCC + DTW|HMM.
> Второй раз попробовал записать через микрофон с другого источника > музыкальный фрагмент: для сигнала — длинный музыкальный фрагмент, а для > патерна какой то кусочек его, и не смотря на то что сигналы были > записаны независимо друг от друга корреляция получилась близкой к 1-це.
Правильно. Но только на фрагменте. есть все шансы, что такой же или
очень похожий фрагмент встретится в другой музыке.
> > Хотя если попробовать в качестве патерна взять кусочек из оригинальногго > файла и выполнить корреляцию с записаным через микрофон сигналом, > коэфициент кореляции получается уже плохой.
Это значит, что у тебя приличные мультипликативные и аддивные помехи.
Вот тут-то и начинается развлечение с принятием решений и вероятностями,
а также различнейшими трюками с шумоочисткой. А это немерянное поле для
экспериментов на многие лета вперед.
Posted via RSDN NNTP Server 2.1 beta
Re[9]: Сравнить похожесть двух сигналов
От:
Аноним
Дата:
07.04.09 11:07
Оценка:
Здравствуйте, Vzhyk, Вы писали:
V>nen777w пишет: >> >> Ясно. А не встречались ли вам хорошые алгоритмические выкладки с >> примерами, по HMM / TDNN ? V>Ты издеваешься. Вводишь в гугле распознавание речи и пользуешь этот V>подход для твоих сигналов, смотри, чтоб не получилось из пушки по V>воробьям. Ну и как как промежуточный шаг — DTW.
>> V>comp, например. >> >> Поиск в google по типа "comp audio compare utility" ничего не дал. V>help comp в командной строке. (Стёб был с comp)
>> Да Я немного поспешил. Первый раз пробовал записать через микрофон свой >> голос котрый в сигнале и в патерне называл одну и ту же цифру, >> действительно ничего не вышло. Корреляция была ниже 0.2 да и не совсем с >> того в что в исходном сигнале. V>Не обижайся, но ты "псих" . Неужто сам не знаешь, что тут V>распознавание речи в чистом виде. MFCC + DTW|HMM.
>> Второй раз попробовал записать через микрофон с другого источника >> музыкальный фрагмент: для сигнала — длинный музыкальный фрагмент, а для >> патерна какой то кусочек его, и не смотря на то что сигналы были >> записаны независимо друг от друга корреляция получилась близкой к 1-це. V>Правильно. Но только на фрагменте. есть все шансы, что такой же или V>очень похожий фрагмент встретится в другой музыке.
>> >> Хотя если попробовать в качестве патерна взять кусочек из оригинальногго >> файла и выполнить корреляцию с записаным через микрофон сигналом, >> коэфициент кореляции получается уже плохой. V>Это значит, что у тебя приличные мультипликативные и аддивные помехи. V>Вот тут-то и начинается развлечение с принятием решений и вероятностями, V>а также различнейшими трюками с шумоочисткой. А это немерянное поле для V>экспериментов на многие лета вперед.