为什么pygame.sndarray.make_sound似乎使声音持续时间增加了四倍



以下代码:

import pygame, numpy
pygame.mixer.pre_init(frequency=96000,size=-16,channels=1)
pygame.init()
a = numpy.random.randn(96000)
sound = pygame.sndarray.make_sound(a)
print sound.get_length()

产生 4.0 的打印输出,表明在 96000kHz 采样率下 96000 个样本的指定持续时间在某个地方翻了两番。知道我在这里错过了什么吗?

进入

make_sound的数据不是 16 位整数(正如您的 pre_init(( 建议的那样(。 在调用 make_sound(( 之前,请尝试...

a = a.astype(numpy.int16)

您可能还希望确保使用生成随机数的方法,使它们落入 16 位整数范围内。数组中的值应介于 -32768 到 32767 之间(这些边界表示最大交易量(。

最新更新