На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS

Дорогие друзья! Поздравляем вас с Новым 2025 годом!

Всем удачи, успеха и благополучия!

msm.ru
Модераторы: RaD, nsh
Страницы: (3) 1 2 [3]  все  ( Перейти к последнему сообщению )  
> Сравнение звуковых файлов , Сравнение двух файлов с речью
    Так как у вас речь 16khz, нужно несколько другие параметры MFCC использовать

    ExpandedWrap disabled
          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;
          }


    Тогда получается неплохо

    ExpandedWrap disabled
      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 коэффициентов.
      Поробовал поменять коеффициенты, и сделал несколько звуковых тестов - надиктовал цифры от 1 до 3. Результат не совсем тот, что я ожидал
      ExpandedWrap disabled
        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 но и первые и вторые производные.


      А можно поподробнее этот момент?
      Сообщение отредактировано: Metallic -
        Metallic, у вас там ошибка в MyDTWSimilarity. В последнем while не нужно накапливать расстояние dist. Оно уже посчитано до того. Этот цикл нужен лишь для подсчета длины пути с целью дальнейшей нормировкм результата сравнения. И еще - лучше всего из сравнения исключить паузы. Паузы уменьшают различие между сравниваемыми сигналами. Добавьте простенький VAD
        Сообщение отредактировано: KoPoBuH -
          KoPoBuH

          Без последнего суммирования в while результат стал более близок к 1, за это спасибо.

          На счет VAD - не встречали где нибуть реализацию на java, либо более-менее хорошо описанный алгоритм?
            Простой VAD без затей
            Просчитываете по всему сигналу энергию в полосе 250..900 Гц, находите максимум, от него устанавливаете порог на -25..30 дБ. Все, что выше порога - речь, иначе - пауза, но с одним условием - при переходе пауза-речь проверяете что идет дальше. Как минимум 40-50 мс следующие фреймы должны быть выше порога. Если это так, то значит вы нашли начало огласованного участка. Отступаете назад где-то на 70-100 мс и маркируете предыдущие фреймы как речь. То же самое, только вперед, делаете, когда детектируете конец огласованного участка.
              Здравствуйте! нужна срочно помощь! по выше объявленной теме! работа так же является дипломной! если у кого нибудь есть документация или материал отправьте пожалуйста на zeropunk88@mail.ru заранее спасибо!
                Товарищи, укажите пожалуйста правильное направление! Передо мной стоит задача идентифицировать человека по голосу. Если проще, то есть два звуковых файла с речью и надо определить насколько она похожи. Я уже реализовал алгоритм MFCC. То есть теперь я для первого и для второго файла имею два массива мел-частотных кепстров (насколько я понял, их должно быть 12, так что поправьте, если я не прав). Как теперь сравнивать эти кепстры? Я читал, что есть алгоритм Евклидовой метрики и всяческая кластеризация. Есть ли какие-то более новые решения, но при этом не слишком сложные?
                  Всем привет! У меня практически такая же тема дипломная.. ну как в теме форума.. Правда мне нужно сравнить две музыкальные композиции и выявить схожесть... всего 3 файла.. 1й - медленный трэк в тональности ре минор, 2й - ремикс этого трека, ускоренный с измененными ударными (вся остальная аранжировка та же) тоже в тональности ре минор и 3й файл - тот же самый ремикс что и второй файл, только в тнальности ми минор.. Надо их все между собой сравнить...

                  Мне надо наглядно показать как в домашних условиях можно на компьютере выявить схожесть всех этих файлов.. пока я чисто визуальную схожесть показал с помощью WaveLab (по спектрограмме и осцилограмме звукового сигнала)... но хотелось бы еще что-нибудь для подкрепления эфффекта.. Что вроде того, как работает Shazam.. т.е. он снимает отпечатки двух файлов и сравнивает корреляционно их между собой вне зависимости от темпа, битрейта, тональности.. вот здесь все даже в графиках показано http://drakulavich.blogspot.com/2010/10/shazam.html

                  Вот мне нужно то же самое, но только наглдяно показать процесс анализа..

                  Заранее спасибо!!
                    Ваау... Ребята, вообще котята. Я безумно благодарен за данную тему. Можно, раз лаба сдана, я тут свою курсовую тогда попробую решить? Она звучит так "диагностика конструктивных дефектов эл. устройств посредствам акустических сигналов". Да, это тема для докторской диссертации, но препод посчитал, что именно темы такой сложности нужно давать для первых курсовых. В общем мне нужно:
                    1. Создать БД с дефектами с их признаками
                    2. Написать программу, которая будет считывать входной сигнал и анализировать его на наличие признаков дефектов

                    Мне уже сдавать ее надо, а я нихрена не могу разобраться, как это сделать. Я тоже пишу на шарпе, так что весь рассмотренный тут материал сейчас начну изучать. Пока я записал несколько сэмплов стуков. Хочу написать прогу, которая считывая эти сэмплы проведет анализ сигнала, определить все характеристики и можно будет выявить отличительную черту для данного дефекта. Потом эту программу переделать на анализ входного сигнала.

                    Думал применить что-то типа VST или ASIO, но описаний функций по шарп на русском языке если и есть, то очень скудное.

                    Антон, ты можешь мне скинуть полностью свою прогу на изучение?
                      Всем привет. У меня такая проблема. Нужно сравнить 2 файла. По идее это будет дорожка с записью стука колес ж/д вагона. Файлы могут быть либо одинаковые, либо разные. Помогите плз
                        Не совсем понятно что вы хотите услышать
                        Один из методов который тестировался для опеределения прибытия железнодорожного состава при помощи микрофона выглядел так:
                        WAVE -> WINDOW -> FFT -> PCA -> SVD train/recognition
                        Отчёт и описание реализации на эту тему видел в интернет
                        Если хорошо поискать - уверен найдётся снова
                          Надо сравнить файл с эталонным и найти различия.
                            а какие могут быть различия? сдвиг по фазе? амлитуда? частота? наложенный другой сигнал? что-то другое? как вы хотите отобразить различия (как вы себе это представляете)?
                            сейчас я вас понимаю так что вам достаточно отобразить спектр сигнала в виде картинки и сравнить их - путём вычитания например.
                            1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                            0 пользователей:
                            Страницы: (3) 1 2 [3]  все


                            Рейтинг@Mail.ru
                            [ Script execution time: 0,0393 ]   [ 14 queries used ]   [ Generated: 23.01.25, 03:52 GMT ]