Я работаю над классификацией звука с файлами wav продолжительностью от 1 до 4 секунд. я хочу преобразовать wav в изображение 224x224x3, которое я могу заплатить в Resnet для классификации Преобразование должно быть с использованием мелспектограммы Спасибо за помощь
Как преобразовать файл wav в изображение RGB с помощью мелспектограммы?
Ответы (1)
Вы можете использовать librosa для создания спектрограммы mel следующим образом:
import librosa
import librosa.display
import numpy as np
import matplotlib.pyplot as plt
y, sr = librosa.load(librosa.util.example_audio_file()) # your file
S = librosa.feature.melspectrogram(y=y, sr=sr, n_mels=128, fmax=8000)
librosa.display.specshow(librosa.power_to_db(S, ref=np.max), fmax=8000)
plt.savefig('mel.png')
Имейте в виду, что это ложные цвета, RGB здесь не имеет смысла, как и многоканальность. Используйте архитектуру, которая работает с одним каналом.
person
Lukasz Tracewski
schedule
26.05.2019
Это включает в себя маркеры / метки осей и т. Д. Из графика в файл, что не очень хорошо в качестве входных данных для модели ML. Вместо этого следует сохранить только необработанные данные спектрограммы. Пример этого в stackoverflow.com/questions/56719138/
- person Jon Nordby; 25.07.2019
Я попробовал это и получил AttributeError: модуль «librosa» не имеет атрибута «display». Теперь вам нужно явно импортировать librosa.display.
- person Octaviotastico; 12.12.2020
Вам также нужно импортировать numpy как np, потому что вы используете его в строке 6.
- person Octaviotastico; 12.12.2020
Спасибо @Octaviotastico! Отредактировано.
- person Lukasz Tracewski; 12.12.2020