我想为我的神经科学研究产生一系列特定频率和持续时间的音频线索。在谷歌搜索之后,我发现一个名为Pygame的Python模块似乎能够完成这项工作。你知道吗
sound = pygame.sndarray.make_sound(sample_array) #sample_array is a one-second sine wave I created
sound.play(maxtime = 100) #play the sample_array for 100ms
pygame.time.delay(1000) #pause for 1000ms
我在循环中多次运行这些代码。然而,在声音的长度上有一个很小但很明显的差别。我用手机录下了声音,并用Matlab分析了信号。有些脉冲持续时间长达180ms,有些短脉冲仅持续80ms,而理论上它们都应该持续100ms。你知道吗
这种变化对我的申请来说太大了。我能做些什么来改进它吗?或者,如果有人能确认这种精度超出了Pygame的能力,并建议使用另一个库,那就太好了。你知道吗
这个问题似乎没有引起太多的注意:(
我把我的解决办法贴在这里,以防有人想知道。如果我使用
sound.play(maxtime = 100)
,或者sound.play(-1)
,那么time.delay(100)
,声音的实际持续时间永远不会精确到100ms。我的解决方法是预先生成一个具有我所需长度的wav文件,然后播放这个wav文件。你知道吗这不是最好的解决办法,但这对我很有效。你知道吗
相关问题 更多 >
编程相关推荐