Top.Mail.Ru
Ответы

Как сравнить два аудио файла на python?

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

Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
Аватар пользователя
Ученик

Можно использовать библиотеку librosa в Python для сравнения аудио файлов. Эта библиотека позволяет анализировать и сравнивать характеристики звука, такие как спектрограммы или мел-кепстральные коэффициенты. Таким образом, вы сможете сравнить аудио файлы по их содержанию, а не только по качеству звука.

Вот пример кода, который может вам помочь:

12345678910111213141516171819202122232425
 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, чтобы извлечь характеристики из аудиофайлов.
Сравните характеристики всех файлов с оригинальным и оцените их сходство, используя, например, косинусное расстояние или другую метрику.
Определите, какие файлы соответствуют оригиналу на основе полученных результатов сравнения.

Обратите внимание, что точность и эффективность сравнения будут зависеть от качества и сходства аудиофайлов.

Аватар пользователя
Ученик

Не как иди работай на завод