1

我目前正在将 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)

我应该如何在不破坏波形的情况下处理这个数组的乘法或除法?

谢谢,

4

1 回答 1

0

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

要针对不同类型的文件解决此问题,有必要检查位深度并相应地重新缩放。

于 2014-03-05T19:37:19.133 回答