Есть код питона
'''import sys, codecs
save_stdout = sys.stdout
sys.stdout = codecs.open("output.txt","w+")'''
import matplotlib.pyplot as plt
import scipy.io.wavfile
import numpy as np
Fs, X = scipy.io.wavfile.read('капля1.wav')
if isinstance(X[0], np.ndarray): # стерео
X = X.mean(1)
print(Fs, X.shape)
facecolor = '#D0ECE6' # '#EDFAEA'
fig, axes = plt.subplots(figsize=(9, 4), facecolor=facecolor)
plt.xlabel('Время, c', fontsize='xx-large')
plt.ylabel('Частота, Гц', fontsize='xx-large')
# plt.title('Спектрограмма для колбы')
cmap = plt.get_cmap('magma')
try: T1, T2 = 15.03, 15.12 # (int(i) for i in input('Как обрезать?').split())
except: T1, T2 = 0, len(X)/Fs
t1, t2 = 1, 2 # (int(i) for i in input('Что выделить?').split())
plt.specgram(X[int(T1*Fs) : int(T2*Fs-len(X)) if len(X)!=T2*Fs else None], NFFT=64, pad_to=2048, mode='psd', Fs=Fs, noverlap=0,
cmap=cmap)
# plt.colorbar(label='Уровень (дБ)', use_gridspec=False)
axes.add_artist(plt.Rectangle((t1-T1, 0), t2-t1, 100000, color='k', alpha=0.2))
axes.tick_params(labelsize='large', width=1)
fig.tight_layout()
plt.savefig('спектрограмма.png', facecolor=facecolor)
plt.show()
Выдает
Все вроде хорошо, но можно лучше (это audasity так сделала:
Тут можно увидеть, что Аudasity ориентируется на горизонтальные линии, а питон - на вертикальные (сорян, что пишу языком детсада, но по другому не умею).
Подскажите, пожалуйста, как в питоне можно сделать так же хорошо