Я работал над проектом, чтобы получить амплитуду звука. Я прочитал мой WAV-файл и получил список int16. Я нашел амплитуду, найдя верх и низ волны, и вычел ее. Однако я не могу преобразовать его в фактический размер. Так как это просто целые числа, я не знаю его фактической высоты. Как я могу преобразовать его в метры.
new_audio = np.ndarray.tolist(audio[1][100000 : 101000])
gradient = []
for i in range(len(new_audio)-1) :
gradient.append(new_audio[i+1][1]-new_audio[i][1])
start, end = 0, 0
for i in range(len(gradient)-1) :
if(gradient[i] < 0) :
if(0 < gradient[i+1]) :
start = i
if(i > start) :
if(gradient[i] > 0) :
if(gradient[i+1] <0) :
end = i
break
num_per_sec = 48000
num_per_rot = end - start
T = num_per_rot / num_per_sec
f = num_per_sec / num_per_rot
amp = (new_audio[start][0] - new_audio[end][0])/2
print (T) #0.0006458333333333333
print (f) #1548.3870967741937
print(amp) #-7773