在PsychoPy中连续播放wav声音文件

问题描述:

我有一个声音文件,它发出嘟嘟声,我想连续播放几秒钟的声音,以使它听起来像一个连续的声音。这里是我的代码在PsychoPy中连续播放wav声音文件

alarm = sound.Sound('alarm.wav', secs = 5) 
alarm.play() 

但它只播放1秒,这是原始声音多长时间。请帮忙!

我这里还有一些解决方案:

  1. 使用psychopy产生蜂鸣:

    alarm = sound.Sound(700, secs=5) # 700Hz beep 
    
  2. 当你想要的长度,它是原始文件的倍数,循环播放,尽管这很可能会在每次重复时产生一些点击(因为幅度突然跳跃,除非它们完全匹配):

    alarm = sound.Sound('alarm.wav', loops=5) 
    
  3. 使用音频编辑器将嘟嘟声延长到五秒钟,确保在循环中没有点击。如果你有一个固定的持续时间,这可能比(2)更好。

  4. 如果您有多个播放长度,例如在条件之间,在实验过程中的适当时间使用alarm.stop()。然后将loops设置为较高的数字,或者将音频编辑为(3)中足够长的时间,以便您知道它只停留在您的命令上。

持续时间参数(秒)不能像这样工作。如果alarm.wav长于5秒,它将只播放前5秒(即我认为它可以截断文件,尽管它的主要目的是用于定义指定为音符的声音的持续时间,而不是通过外部声音文件)。但是它不会通过重复播放持续时间较短的文件来自动填充该时段。

您应该使用一些声音编辑软件将alarm.wav的五个实例连接到另一个文件(最简单的解决方案),或者创建一个循环播放五次(这可能会很棘手,无法轻松整合到绘图循环中毛刺)。