Как сравнить два аудио файла на python?
У меня есть много аудиофайлов, представляющих одну и ту же песню. Однако некоторые из них имеют худшее качество, чем оригинал, а некоторые отредактированы так, что больше не соответствуют оригинальной песне. Что я хотел бы сделать, так это программно сравнить эти аудиофайлы с оригиналом и посмотреть, какие из них соответствуют этой песне, независимо от качества. Прямое сравнение, очевидно, не сработает, потому что качество файлов различается.
Можно использовать библиотеку librosa в Python для сравнения аудио файлов. Эта библиотека позволяет анализировать и сравнивать характеристики звука, такие как спектрограммы или мел-кепстральные коэффициенты. Таким образом, вы сможете сравнить аудио файлы по их содержанию, а не только по качеству звука.
Вот пример кода, который может вам помочь:
import librosa
# Загрузка оригинального аудио файла
original_audio, original_sample_rate = librosa.load('original_audio.wav')
# Загрузка других аудио файлов для сравнения
audio1, sample_rate1 = librosa.load('audio1.wav')
audio2, sample_rate2 = librosa.load('audio2.wav')
# Конвертация всех аудио файлов в одну и ту же длину
original_audio = librosa.util.fix_length(original_audio, len(audio1))
audio2 = librosa.util.fix_length(audio2, len(audio1))
# Вычисление спектрограммы для оригинала и других аудио файлов
original_spec = librosa.amplitude_to_db(librosa.stft(original_audio))
spec1 = librosa.amplitude_to_db(librosa.stft(audio1))
spec2 = librosa.amplitude_to_db(librosa.stft(audio2))
# Сравнение спектрограмм
similarity1 = librosa.feature.compare_ssim(original_spec, spec1)
similarity2 = librosa.feature.compare_ssim(original_spec, spec2)
# Вывод результатов сравнения
print(f'Similarity with audio1: {similarity1}')
print(f'Similarity with audio2: {similarity2}')
Обратите внимание, что это только пример и вам может потребоваться настроить параметры и методы сравнения в зависимости от ваших потребностей. Загрузите библиотеку librosa с помощью pip, если она еще не установлена: pip install librosa.
Для сравнения аудиофайлов на Python вы можете использовать модуль librosa. Этот модуль позволяет представить аудиофайлы в виде численных векторов и сравнить их с помощью различных алгоритмов.
Примерный алгоритм действий может быть следующим:
Загрузите оригинальный аудиофайл и все другие файлы, которые вы хотите сравнить, используя librosa.
Приведите все аудиофайлы к одной длине или частоте дискретизации, чтобы они могли быть корректно сравнены.
Используйте один из алгоритмов сравнения, например, MFCC или Chroma features, чтобы извлечь характеристики из аудиофайлов.
Сравните характеристики всех файлов с оригинальным и оцените их сходство, используя, например, косинусное расстояние или другую метрику.
Определите, какие файлы соответствуют оригиналу на основе полученных результатов сравнения.
Обратите внимание, что точность и эффективность сравнения будут зависеть от качества и сходства аудиофайлов.
Не как иди работай на завод