Учитывая две зарегистрированной речи в цифровом формате, там алгоритм, чтобы сравнить два и возвратить коэффициент подобия?
Я рекомендую ознакомиться с инструментарием HTK для распознавания речи http://htk.eng.cam.ac.uk/ , особенно в части по извлечению признаков.
Характеристики, которые я считаю хорошими индикаторами:
Учитывая ваше уточнение, я думаю, то, что вы ищете, подпадает под алгоритмы распознавания речи.
Даже если вы ищете только меру сходства, а не пытаетесь превратить речь в текст, концепции все равно те же, и я не удивлюсь, если большая часть алгоритмов окажется весьма полезной.
Однако вам придется определить этот коэффициент сходства более формально и точно, чтобы добиться чего-либо.
EDIT: Я считаю, что алгоритмы распознавания речи были бы полезны, потому что они абстрагируют звук и сравнивают его с некоторыми известными формами. Концептуально это может не сильно отличаться от того, чтобы взять две записи, абстрагировать их и сравнить.
Из википедийной статьи о HMM
"В распознавании речи скрытая модель Маркова выводит последовательность звуков. Марковская модель выводит последовательность n-мерных вещественно-значимых векторов (при этом n является небольшим целым числом, например 10), выводя один из них каждые 10 миллисекунд. Векторы будут состоят из кепстральных коэффициентов, которые получаются путем Фурье преобразования Фурье короткого временного окна речи и декоррелирования спектра используя косинусное преобразование, затем берут первые (наиболее значимые) Коэффициенты."
Таким образом, если вы запустите такой алгоритм на обеих записях, то в итоге получите коэффициенты, которые представляют записи, и будет гораздо проще измерить и установить сходство между ними.
Но теперь снова возникает вопрос об определении "коэффициента сходства", и введение собак и лошадей не очень-то помогло.
(Ну, немного помогает, но с точки зрения оценки алгоритмов и выбора одного над другим, вам придется сделать лучше).
Я не уверен, что это сработает для звуковых файлов, но он дает вам идея, как действовать, я надеюсь. Это основной способ найти узор (изображение) на другом изображении.
Сначала необходимо вычислить fft обоих звуковых файлов, а затем выполнить корреляцию. Формульно это будет выглядеть так (псевдокод):
fftSoundFile1 = fft(soundFile1);
fftConjSoundFile2 = conj(fft(soundFile2));
result_corr = real(ifft(soundFile1.*soundFile2));
Где fft = быстрое преобразование Фурье, ifft = обратное, конъюгированное = сопряженное комплексное. FFT выполняется на выборочных значениях звуковых файлов. Пики в векторе result_corr дадут вам позиции с высокой корреляцией. Обратите внимание, что оба звуковых файла в этом случае должны быть одинакового размера - иначе вам придется поместить более короткий в файл вектора max (soundFileLength).
С уважением
Правка:. * Означает (в стиле Matlab) компонентный мульт, вы не должны использовать векторный мульт! Следующее редактирование: Обратите внимание, что вам нужно работать с комплексными числами - но там есть несколько сложных классов, поэтому я думаю, вам не нужно об этом беспокоиться.
Существует множество различных алгоритмов - общее название этой задачи Идентификация диктора
- начните с этой страницы Википедии и работайте оттуда: http://en.wikipedia.org/wiki/Speaker_recognition