如何使用numpy改变pyaudio中的信号幅度?

时间:2014-03-04 09:57:44

标签: numpy volume pyaudio

我目前正在将python 3.3与pyaudio和numpy结合使用。我从pyaudio网站上拿了一个例子来播放一个简单的波形文件并将数据发送到默认声卡上。

现在我想改变音频的音量,但是当我将数组乘以0.5时,我会得到很多噪音和失真。

以下是代码示例:

while data != '':
decodeddata = numpy.fromstring(data, numpy.int16)
newdata = (decodeddata * 0.5).astype(numpy.int16)
stream.write(newdata.tostring())

data = wf.readframes(CHUNK)

如何在不破坏波形的情况下处理此阵列的乘法或除法?

谢谢,

1 个答案:

答案 0 :(得分:0)

源文件的比特率(24位)似乎与portaudio不兼容。导出到16位pcm文件后,乘法不会导致失真。

要为不同类型的文件修复此问题,有必要检查位深度并相应地重新调整。