我当时正在做一个项目来测量声音的振幅。我读了我的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
目前没有回答
相关问题 更多 >
编程相关推荐