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

时间:2017-02-12 09:40:46

标签: audio psychopy

我有一个发出哔哔声的声音文件,我想连续播放声音几秒钟,这听起来像一个连续的声音。这是我的代码

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

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

2 个答案:

答案 0 :(得分:2)

以下是一些解决方案:

  1. 使用心理感应产生哔声:

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

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

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

答案 1 :(得分:1)

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

你应该使用一些声音编辑软件将alarm.wav的五个实例连接到另一个文件(最简单的解决方案),或者创建一个循环来播放它五次(这可能很难集成到你的绘图循环中没有轻微的计时故障)。