Python 如何在wav文件中查找和绘制最大样本

Python 如何在wav文件中查找和绘制最大样本,python,wav,Python,Wav,我写了这段代码,其中我读取了一个wav文件,然后它确定了较大样本的位置,但这只给出了最大样本的位置,而不是它的值,那么我该怎么做才能知道哪个是它的值呢?当我画它的时候,为什么它不符合y比例。例如,它说值是6920,但当我绘图时,它只达到5535。 谢谢大家! import matplotlib.pyplot as plt import numpy as np import wave import sys spf1 = wave.open('C:/Users/Martinez/Document

我写了这段代码,其中我读取了一个wav文件,然后它确定了较大样本的位置,但这只给出了最大样本的位置,而不是它的值,那么我该怎么做才能知道哪个是它的值呢?当我画它的时候,为什么它不符合y比例。例如,它说值是6920,但当我绘图时,它只达到5535。 谢谢大家!

import matplotlib.pyplot as plt
import numpy as np
import wave
import sys


spf1 = wave.open('C:/Users/Martinez/Documents/Diego/Facultad/Proyecto Final/Mediciones Cubo/5 sentado/Lado 1_5 sentado.wav','r')

#Extract Raw Audio from Wav File
signal1 = spf1.readframes(-1)
signal1 = np.fromstring(signal1, 'Int16')

fs1 = spf1.getframerate()


#If Stereo
if spf1.getnchannels() == 2:
    print 'Just mono files'
    sys.exit(0)
print np.arange(signal1)
m = abs(signal1).max()

print m

Time=np.linspace(0, len(signal1)/float(fs), num=len(signal1))

fig = plt.figure()
ax1 = fig.add_subplot(111)
ax1.vlines(Time[m:], [0], abs(signal1)[m:] )
ax1.grid(True)
ax1.axhline(color='black', lw=2)

plt.show()

abs(signal1.max()不会玩这个把戏吗?

等一下。你是说
argmax
max
都给出了max元素的位置,但都没有给出max元素?对不起,伙计,我错了,max实际上给了我正确的值,但是你能看到更新并告诉我为什么在绘制它时它不合适吗?我得到了一个看起来合理的绘图。你说“不适合”是什么意思?我上传了一张图像,为了更清晰,我的wav文件的最大值是6920,但正如你所看到的,图形只达到了5300左右。你知道为什么吗?6920是
m
,它是索引,不是值。我之所以知道这一点,是因为
6920/44100=0.16
,这是图形上的绘图起点。打印abs(signal1).max(),您应该会看到5355