Python wav绘图,图形未绘图

Python wav绘图,图形未绘图,python,audio,matplotlib,plot,Python,Audio,Matplotlib,Plot,我正在制作简单的python音频播放器,但是我在绘制wav文件时遇到了问题 我使用matplotlib和wave 代码段: spf = wave.open('music.wav','r') signal = spf.readframes(-1) signal = np.fromstring(signal, dtype=int, sep=' ') fs = spf.getframerate() Time=np.linspace(0, len(signal)/fs, num=len(signal

我正在制作简单的python音频播放器,但是我在绘制wav文件时遇到了问题

我使用matplotlib和wave

代码段:

spf = wave.open('music.wav','r')

signal = spf.readframes(-1)
signal = np.fromstring(signal, dtype=int, sep=' ')
fs = spf.getframerate()

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

plt.figure(1)
plt.title('Signal Wave...')
plt.plot(Time,signal)
plt.show()
程序工作,但图形没有绘制,我想问题可能在np.fromstring中,但我不太了解舒尔

这是我的输出: 试试这个:

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

spf = wave.open('music.wav','r')

signal = spf.readframes(-1)
signal = np.fromstring(signal, 'Int8')

plt.figure(1)
plt.title('Signal Wave...')
plt.plot(signal)
plt.show()
时间轴:

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

spf = wave.open('music.wav','r')

signal = spf.readframes(-1)
signal = np.fromstring(signal, 'Int8')
fs = spf.getframerate()

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


plt.figure(1)
plt.title('Signal Wave...')
plt.plot(Time,signal)
plt.show()

它不工作,现在我得到值错误。signal=np.fromstring(signal,'Int16')ValueError:字符串大小必须是元素sizeOk的倍数,可能您的文件已损坏或其大小是8的倍数而不是16的倍数,您可以做的最好的事情是上载一个示例文件,以便我们可以一起查看。我使用来自wavsource的简单wav文件,这里是Ok大小是8的倍数,通过将Int16更改为Int8可以得到一个绘图,我不知道这是否是您所看到的,但这是一个开始。