gpt4 book ai didi

python - Pygame.mixer.sound 的声音持续时间不够准确

转载 作者:行者123 更新时间:2023-12-02 22:38:22 29 4
gpt4 key购买 nike

我想为我的神经科学研究生成一系列特定频率和持续时间的音频提示。经过一番谷歌搜索,我发现一个名为 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 中分析了信号。有些脉冲持续时间长达 180 毫秒,有些短脉冲仅持续 80 毫秒,而理论上它们都应该持续 100 毫秒。

这种变化对我的应用来说太大了。我能做些什么来改善它吗?或者,如果有人可以确认这种精度超出了 Pygame 的能力,并且可能会建议使用另一个库,那也很棒。

最佳答案

看起来这个问题并没有引起太多关注:(

我在这里发布我的解决方法,以防有人想知道。如果我使用 sound.play(maxtime = 100) , 或 sound.play(-1)然后 time.delay(100) ,声音的实际持续时间永远不会精确到 100 毫秒。我的解决方法是预先生成一个完全符合我需要的长度的 wav 文件,然后播放这个 wav 文件。

sound = pygame.mixer.Sound("foo.wav")
sound.play()

这不是最好的解决方法,但这对我有用。

关于python - Pygame.mixer.sound 的声音持续时间不够准确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38275859/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com