在PsychoPy中连续播放wav声音文件
问题描述:
我有一个声音文件,它发出嘟嘟声,我想连续播放几秒钟的声音,以使它听起来像一个连续的声音。这里是我的代码在PsychoPy中连续播放wav声音文件
alarm = sound.Sound('alarm.wav', secs = 5)
alarm.play()
但它只播放1秒,这是原始声音多长时间。请帮忙!
答
我这里还有一些解决方案:
-
使用psychopy产生蜂鸣:
alarm = sound.Sound(700, secs=5) # 700Hz beep
-
当你想要的长度,它是原始文件的倍数,循环播放,尽管这很可能会在每次重复时产生一些点击(因为幅度突然跳跃,除非它们完全匹配):
alarm = sound.Sound('alarm.wav', loops=5)
使用音频编辑器将嘟嘟声延长到五秒钟,确保在循环中没有点击。如果你有一个固定的持续时间,这可能比(2)更好。
如果您有多个播放长度,例如在条件之间,在实验过程中的适当时间使用
alarm.stop()
。然后将loops
设置为较高的数字,或者将音频编辑为(3)中足够长的时间,以便您知道它只停留在您的命令上。
答
持续时间参数(秒)不能像这样工作。如果alarm.wav
长于5秒,它将只播放前5秒(即我认为它可以截断文件,尽管它的主要目的是用于定义指定为音符的声音的持续时间,而不是通过外部声音文件)。但是它不会通过重复播放持续时间较短的文件来自动填充该时段。
您应该使用一些声音编辑软件将alarm.wav
的五个实例连接到另一个文件(最简单的解决方案),或者创建一个循环播放五次(这可能会很棘手,无法轻松整合到绘图循环中毛刺)。