我试图使用下面的代码为wav 文件的所有通道绘制时间与幅度的关系。但是我看到 matplotlib在我的一个频道上绘制了一个不存在的正弦波。大胆似乎正在策划正确的事情,我错过了什么?
import wave
import numpy as np
import matplotlib.pyplot as plt
f = wave.open('captured_Mic1_22_09_20_1738.wav')
sampleRate = f.getframerate()
totalFrames = f.getnframes()
print(f.getnchannels())
data = f.readframes(-1) # -1 is read all frames, can also use totalFrames
# print(data) # Data in Hex
dataInt = np.frombuffer(data, np.int16)
print("All Samples -> {}".format(dataInt))
dataInt.shape = -1,2
print("L and R in 2 columns \n {}" .format(dataInt))
dataInt = dataInt.T
print("L and R in two separate rows \n {}" .format(dataInt))
print("total duration of file -> {}" .format(totalFrames/float(sampleRate)))
duration = 1/float(sampleRate)
print(duration)
timeSeq = np.arange(0, totalFrames/float(sampleRate), duration)
# plt.plot(timeSeq, dataInt[0])
# plt.show()
plt.plot(timeSeq, dataInt[1])
plt.show()