繁体   English   中英

PyQT图形—图形显示巨大

[英]PyQT Graph — Graph display is huge

我这里有一个代码,可在PyQT图表中显示音频文件的波形,不幸的是,图表看起来很大。

我还不能附加图像,因此我将提供所制作图形的屏幕快照的链接。

在此处输入图片说明

这是我的代码:

 self.waveFile = wave.open(audio,'rb')
 self.format = pyaudio.paInt16
 channel = self.waveFile.getnchannels()
 self.rate = self.waveFile.getframerate()
 self.frame = self.waveFile.getnframes()
 self.stream = p.open(format=self.format, 
                         channels=channel,
                         rate=self.rate,
                         output=True)

 durationF = self.frame / float(self.rate)
 self.data_int = self.waveFile.readframes(self.frame)
 self.data_plot = np.fromstring(self.data_int, 'Int16')
 self.data_plot.shape = -1, 2
 self.data_plot = self.data_plot.T
 self.time = np.arange(0, self.frame) * (1.0 / self.rate)

 w = pg.plot()
 w.plot(self.time, self.data_plot[0])

我是否需要调整X和Y范围限制? 我应该调整Y峰吗? 如您所见,我使用的音频文件中的X(time)匹配持续了8秒。 但是Y不是(?)。 我不确定如何调整波形数据以使其适合窗口内部。 任何回应和建议都会有很大帮助!

我认为有两种选择取决于您要显示的内容。

1:调整Y极限

最简单的解决方案是缩放Y轴。

# See docs for function setYrange
# setYRange(min, max, padding=None, update=True)
w.setRange(YRange=[min,max])

您可以在此处查看文档。

就是说,尽管您真的需要就这些值而言的音频数据,但您还是要使所有音频值保持与当前相同。 通常,至少出于科学目的,音频数据显示为-1和+1之间的浮点数。

2:调整数据

如前所述,当音频数据在-1和+1之间缩放时,它最有用。 它使我们一目了然,并立即感觉到振幅是否正确(例如,如果我们正在测试增益程序)。 除了内置的wave模块外,还有许多其他Python库,它们可以像PySoundFile或其他许多库一样轻松地处理此问题(有关在Python中读取.wav文件的其他方法,请参见此其他SO文章 )。

否则,您可以使用以下方式将从wave模块接收到的数据转换为浮点数据( 倾向于查找代码):

import wave
import struct
import sys

def wav_to_floats(wave_file):
    w = wave.open(wave_file)
    astr = w.readframes(w.getnframes())
    # convert binary chunks to short 
    a = struct.unpack("%ih" % (w.getnframes()* w.getnchannels()), astr)
    a = [float(val) / pow(2, 15) for val in a]
    return a

# read the wav file specified as first command line arg
signal = wav_to_floats(sys.argv[1])
print "read "+str(len(signal))+" frames"
print  "in the range "+str(min(signal))+" to "+str(min(signal))

如果可能的话,在这种情况下使用库总是更好的选择,因为目前的wave模块不支持许多音频用例(据我所知,仅单声道16位音频)。

注意 :如果确实将其转换为-1到+1数据,可能仍然值得像第1部分中所述调整Y限制。只是为了避免在加载不同的.wav文件时出现奇怪的缩放比例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM