#visual-c #wav
#visual-c #wav
Вопрос:
Я разработчик VC , и в настоящее время мне нужна помощь в сравнении двух аудиофайлов. Допустим, у меня есть два волновых файла, и один из них создается с использованием другого с некоторыми изменениями, такими как снижение громкости и т.д.
Теперь я должен сравнить эти файлы и посмотреть, является ли измененный файл почти копией исходного, означает ли это, что при создании измененного файла мое приложение неосознанно не исказило файл.
Процентное значение было бы лучше, чтобы показать, насколько сильно отличаются эти файлы. Я попытался использовать БПФ для обоих файлов, а затем вычислить разницу в dB (например, 10 * log10 (ft1 / ft2)) и усреднить результат. я получаю результирующее число, но я не уверен, что означает это число.
Заранее спасибо за любую помощь.
Ответ №1:
Полученное вами число на самом деле ничего не значит, кроме того, насколько похожи спектры. Существует так много способов модификации аудиофайла и так много способов их сравнения, что невозможно дать общий ответ. Если вы точно знаете, какие изменения внесены, вы можете выполнить разумную работу. Например, если вы знаете, что единственная модификация заключается в том, что громкость была изменена с постоянным коэффициентом, то если вы возьмете квадратную величину БПФ и нормализуете ее (т. Е. Измените масштаб так, чтобы пик был равен 1.0), то это будет идентично для исходного и модифицированного сигналов. Вы можете вычислить сумму разностей двух значений БПФ, но это всего лишь число, и вы не можете преобразовать его в процент каким-либо значимым образом (что это значит, если я говорю, что два звука отличаются на 30%?)
Итак, я бы отступил немного назад и решил проблему, которую вы на самом деле пытаетесь решить.
Комментарии:
1. : Спасибо за ответ, исходя из квадратичной величины, я полагаю, вы имеете в виду sqrt (sqr (re) sq (im)) выборок БПФ. В любом случае, допустим, у меня есть волновой файл и я использую его в качестве входных данных для программного обеспечения, которое уменьшает, скажем, громкость и выдает выходной волновой файл. Теперь я хочу сравнить эти файлы, чтобы убедиться, что мое программное обеспечение не сместило форму сигнала или не исказило ее слишком сильно. Я предполагаю, что форма сигнала должна быть идентичной, пострадала бы только амплитуда.