Я работаю над решением признать аудио слова путем сравнения сигнала и спектра.
Для декодирования аудио, я использую кодек и libavformat и я использую 1 ссылочный слово и сравнить с другими.
1003* Пример:
# Must return true
./vrecog --file_ref chocolat.wav --file_cmp chocolat_2.wav
# Must return false
./vrecog --file_ref chocolat.wav --file_cmp banana.wav
Мой шаг:
- Я помещаю сигнал в std :: vector
- Iпреобразовать сигнал в спектр с помощью Быстрое преобразование Фурье
- Я вычисляю [min, max, среднее, std_deviation, дисперсия] моего спектра
- Я использую значения в шаге3 для расчета коэффициента корреляции
Правильно ли рассуждение?Коэффициент всегда равен 1, и я не знаю, что я могу использовать для эффективного сравнения данных, чтобы сказать, являются ли слова одинаковыми или нет.
Это мои графики:
Сигналы (шоколад, шоколад_2 и банан):
Спектр (шоколад, шоколад_2 и банан):
Мы можемлегко увидеть, что сигнал и спектр кажутся близкими для обоих слов "шоколад", но я не могу получить процент сходства.