Спектрограмма Librosa с пустой областью

#python #audio #librosa #audio-processing #spectrogram

Вопрос:

Я использую следующий код для построения спектрограммы аудиофайла с помощью librosa .

 y, sr = librosa.load(filename)

plt.figure(figsize=(3, 3), dpi=100, frameon=False)

D = librosa.stft(y)  # STFT of y
S_db = librosa.amplitude_to_db(np.abs(D), ref=np.max)
librosa.display.specshow(S_db)

plt.subplots_adjust(top = 1, bottom = 0, right = 1, left = 0, hspace = 0, wspace = 0)

plt.margins(0,0)
plt.gca().xaxis.set_major_locator(plt.NullLocator())
plt.gca().yaxis.set_major_locator(plt.NullLocator())

plt.axis('off')

plt.savefig(output_file, dpi=100, pad_inches=0)
 

На следующих рисунках показаны выходные данные двух аудиофайлов, извлеченных из двух разных наборов данных. Как вы можете видеть, фиолетовые линии занимают примерно 1/3 всего изображения, в то время как во втором они покрывают почти всю картинку.

Я подумал, что это связано с разной частотой дискретизации, поэтому я проверил это. Первый набор данных отбирается с частотой 22 кГц, а второй-с частотой 44,1 кГц. Однако, если я уменьшу количество аудиофайлов из второго набора данных, используя fibrosa.load(filename, sr=22000) полученное изображение, это не изменится.

Есть какие-нибудь предложения?

234234

Изображение спектрограммы из первого набора данных.

asd

Изображение спектрограммы из второго набора данных.

Комментарии:

1. Вы уверены, что на более высоком конце спектра есть энергия? Кроме того, если вы построите первый отдельно, будет ли он обладать той же особенностью? matplotlib иногда имеет противоречивое интуитивное поведение, поддерживая состояние менее чем очевидным образом.

2. @LukaszTracewski честно говоря, я понятия не имею. Это первый раз, когда я имею дело с аудиофайлом. Что я должен проверить? Не могли бы вы дать мне совет? Заранее спасибо.

3. Если в верхнем конце спектра нет энергии из-за характеристики этого звука или, что более вероятно, применяемого фильтра нижних частот, это то, что вы увидите. Откройте аудио, например, в Audacity, и проверьте спектр. Вы также можете связать оба аудио здесь, и я посмотрю.

4. @LukaszTracewski большое вам спасибо за вашу помощь! Я загрузил сюда два файла ( drive.google.com/drive/folders/… ): файл1.wav берется из первого набора данных, в то время как файл2.wav берется из второго.

5. Спасибо, но мне нужен доступ.