Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.14.141.104] |
|
Страницы: (3) 1 2 [3] все ( Перейти к последнему сообщению ) |
Сообщ.
#31
,
|
|
|
Так как у вас речь 16khz, нужно несколько другие параметры MFCC использовать
private static int compare(String file1, String file2) throws Exception { MFCC mfcc = new MFCC(16000, 512, 13, false, 130, 6800, 40); Vector<double[]> doublesOne = mfcc.process(AudioPreProcessor.getAudioPreProcessor(new File(file1), 16000)); Vector<double[]> doublesTwo = mfcc.process(AudioPreProcessor.getAudioPreProcessor(new File(file2), 16000)); System.out.println("Similarity : " + getSimilarity(doublesOne, doublesTwo, mfcc.getNumOfCoefficients()) + " files = " + file1 + " " + file2); return 0; } Тогда получается неплохо Similarity : 0.21937457647337955 files = shifttest1.wav shifttest2.wav Similarity : 0.10200843192121245 files = testone.wav shifttest2.wav Similarity : 0.1086530669386655 files = testtwo.wav shifttest2.wav Similarity : 0.06529452871269326 files = testthree.wav shifttest2.wav Similarity : 0.06316268010685921 files = testfour.wav shifttest2.wav Similarity : 0.1282928674787539 files = testtwo.wav shifttest1.wav Similarity : 0.07626979420761082 files = testthree.wav shifttest1.wav Similarity : 1.0 files = shifttest1.wav shifttest1.wav Similarity : 0.12142894402290505 files = testone.wav shifttest1.wav То есть если тот же файл - 1.0. Если больше 0.1 - одинаково, меньше - разные. Для повышения точности надо сравнивать не только MFCC но и первые и вторые производные. Всего должно быть 39 коэффициентов. |
Сообщ.
#32
,
|
|
|
Поробовал поменять коеффициенты, и сделал несколько звуковых тестов - надиктовал цифры от 1 до 3. Результат не совсем тот, что я ожидал
Similarity : 0.09901941827726735 files = 1.wav 1_template.wav Similarity : 0.08059671767010268 files = 2.wav 1_template.wav Similarity : 0.10066719250343503 files = 3.wav 1_template.wav То есть три на один больше похоже, чем один на один. Цитата Для повышения точности надо сравнивать не только MFCC но и первые и вторые производные. А можно поподробнее этот момент? |
Сообщ.
#33
,
|
|
|
Metallic, у вас там ошибка в MyDTWSimilarity. В последнем while не нужно накапливать расстояние dist. Оно уже посчитано до того. Этот цикл нужен лишь для подсчета длины пути с целью дальнейшей нормировкм результата сравнения. И еще - лучше всего из сравнения исключить паузы. Паузы уменьшают различие между сравниваемыми сигналами. Добавьте простенький VAD
|
Сообщ.
#34
,
|
|
|
KoPoBuH
Без последнего суммирования в while результат стал более близок к 1, за это спасибо. На счет VAD - не встречали где нибуть реализацию на java, либо более-менее хорошо описанный алгоритм? |
Сообщ.
#35
,
|
|
|
Простой VAD без затей
Просчитываете по всему сигналу энергию в полосе 250..900 Гц, находите максимум, от него устанавливаете порог на -25..30 дБ. Все, что выше порога - речь, иначе - пауза, но с одним условием - при переходе пауза-речь проверяете что идет дальше. Как минимум 40-50 мс следующие фреймы должны быть выше порога. Если это так, то значит вы нашли начало огласованного участка. Отступаете назад где-то на 70-100 мс и маркируете предыдущие фреймы как речь. То же самое, только вперед, делаете, когда детектируете конец огласованного участка. |
Сообщ.
#36
,
|
|
|
Здравствуйте! нужна срочно помощь! по выше объявленной теме! работа так же является дипломной! если у кого нибудь есть документация или материал отправьте пожалуйста на zeropunk88@mail.ru заранее спасибо!
|
Сообщ.
#37
,
|
|
|
Товарищи, укажите пожалуйста правильное направление! Передо мной стоит задача идентифицировать человека по голосу. Если проще, то есть два звуковых файла с речью и надо определить насколько она похожи. Я уже реализовал алгоритм MFCC. То есть теперь я для первого и для второго файла имею два массива мел-частотных кепстров (насколько я понял, их должно быть 12, так что поправьте, если я не прав). Как теперь сравнивать эти кепстры? Я читал, что есть алгоритм Евклидовой метрики и всяческая кластеризация. Есть ли какие-то более новые решения, но при этом не слишком сложные?
|
Сообщ.
#38
,
|
|
|
Всем привет! У меня практически такая же тема дипломная.. ну как в теме форума.. Правда мне нужно сравнить две музыкальные композиции и выявить схожесть... всего 3 файла.. 1й - медленный трэк в тональности ре минор, 2й - ремикс этого трека, ускоренный с измененными ударными (вся остальная аранжировка та же) тоже в тональности ре минор и 3й файл - тот же самый ремикс что и второй файл, только в тнальности ми минор.. Надо их все между собой сравнить...
Мне надо наглядно показать как в домашних условиях можно на компьютере выявить схожесть всех этих файлов.. пока я чисто визуальную схожесть показал с помощью WaveLab (по спектрограмме и осцилограмме звукового сигнала)... но хотелось бы еще что-нибудь для подкрепления эфффекта.. Что вроде того, как работает Shazam.. т.е. он снимает отпечатки двух файлов и сравнивает корреляционно их между собой вне зависимости от темпа, битрейта, тональности.. вот здесь все даже в графиках показано http://drakulavich.blogspot.com/2010/10/shazam.html Вот мне нужно то же самое, но только наглдяно показать процесс анализа.. Заранее спасибо!! |
Сообщ.
#39
,
|
|
|
Ваау... Ребята, вообще котята. Я безумно благодарен за данную тему. Можно, раз лаба сдана, я тут свою курсовую тогда попробую решить? Она звучит так "диагностика конструктивных дефектов эл. устройств посредствам акустических сигналов". Да, это тема для докторской диссертации, но препод посчитал, что именно темы такой сложности нужно давать для первых курсовых. В общем мне нужно:
1. Создать БД с дефектами с их признаками 2. Написать программу, которая будет считывать входной сигнал и анализировать его на наличие признаков дефектов Мне уже сдавать ее надо, а я нихрена не могу разобраться, как это сделать. Я тоже пишу на шарпе, так что весь рассмотренный тут материал сейчас начну изучать. Пока я записал несколько сэмплов стуков. Хочу написать прогу, которая считывая эти сэмплы проведет анализ сигнала, определить все характеристики и можно будет выявить отличительную черту для данного дефекта. Потом эту программу переделать на анализ входного сигнала. Думал применить что-то типа VST или ASIO, но описаний функций по шарп на русском языке если и есть, то очень скудное. Антон, ты можешь мне скинуть полностью свою прогу на изучение? |
Сообщ.
#40
,
|
|
|
Всем привет. У меня такая проблема. Нужно сравнить 2 файла. По идее это будет дорожка с записью стука колес ж/д вагона. Файлы могут быть либо одинаковые, либо разные. Помогите плз
|
Сообщ.
#41
,
|
|
|
Не совсем понятно что вы хотите услышать
Один из методов который тестировался для опеределения прибытия железнодорожного состава при помощи микрофона выглядел так: WAVE -> WINDOW -> FFT -> PCA -> SVD train/recognition Отчёт и описание реализации на эту тему видел в интернет Если хорошо поискать - уверен найдётся снова |
Сообщ.
#42
,
|
|
|
Надо сравнить файл с эталонным и найти различия.
|
Сообщ.
#43
,
|
|
|
а какие могут быть различия? сдвиг по фазе? амлитуда? частота? наложенный другой сигнал? что-то другое? как вы хотите отобразить различия (как вы себе это представляете)?
сейчас я вас понимаю так что вам достаточно отобразить спектр сигнала в виде картинки и сравнить их - путём вычитания например. |