在 PsychoPy 中连续播放 wav 声音文件
Play wav sound file continuously in PsychoPy
我有一个播放嘟嘟声的声音文件,我想连续播放几秒钟的声音,这样它听起来就像一个连续的声音。这是我的代码
alarm = sound.Sound('alarm.wav', secs = 5)
alarm.play()
但是只播放了1秒,也就是原声的长度。请帮忙!
持续时间参数(秒)不是这样工作的。如果 alarm.wav
超过 5 秒,它将只播放前五秒(即我认为它可以截断一个文件,尽管它的主要目的是定义指定为音符的声音持续时间,而不是通过外部声音文件)。但它不会通过重复播放持续时间较短的文件来自动填补这段时间。
您应该使用一些声音编辑软件将 alarm.wav
的五个实例连接到另一个文件中(最简单的解决方案),或者创建一个循环播放五次(这可能很难集成到您的绘制没有轻微时间故障的循环)。
这里有一些解决方案:
使用 psychopy 产生蜂鸣声:
alarm = sound.Sound(700, secs=5) # 700Hz beep
当你想要的长度是原始文件的倍数时,循环它,虽然这很可能在每次重复时产生一些点击(因为振幅突然跳跃,除非它们匹配完美):
alarm = sound.Sound('alarm.wav', loops=5)
使用音频编辑器将蜂鸣声延长至五秒,确保循环时没有咔嗒声。如果你有固定的持续时间,这可能比 (2) 更好。
如果您有多个播放长度,例如在条件之间,在实验期间的适当时间使用 alarm.stop()
。然后要么将 loops
设置为一个高数字,要么像 (3) 那样将声音编辑得足够长,这样您就知道它只会在您的命令下停止。
我有一个播放嘟嘟声的声音文件,我想连续播放几秒钟的声音,这样它听起来就像一个连续的声音。这是我的代码
alarm = sound.Sound('alarm.wav', secs = 5)
alarm.play()
但是只播放了1秒,也就是原声的长度。请帮忙!
持续时间参数(秒)不是这样工作的。如果 alarm.wav
超过 5 秒,它将只播放前五秒(即我认为它可以截断一个文件,尽管它的主要目的是定义指定为音符的声音持续时间,而不是通过外部声音文件)。但它不会通过重复播放持续时间较短的文件来自动填补这段时间。
您应该使用一些声音编辑软件将 alarm.wav
的五个实例连接到另一个文件中(最简单的解决方案),或者创建一个循环播放五次(这可能很难集成到您的绘制没有轻微时间故障的循环)。
这里有一些解决方案:
使用 psychopy 产生蜂鸣声:
alarm = sound.Sound(700, secs=5) # 700Hz beep
当你想要的长度是原始文件的倍数时,循环它,虽然这很可能在每次重复时产生一些点击(因为振幅突然跳跃,除非它们匹配完美):
alarm = sound.Sound('alarm.wav', loops=5)
使用音频编辑器将蜂鸣声延长至五秒,确保循环时没有咔嗒声。如果你有固定的持续时间,这可能比 (2) 更好。
如果您有多个播放长度,例如在条件之间,在实验期间的适当时间使用
alarm.stop()
。然后要么将loops
设置为一个高数字,要么像 (3) 那样将声音编辑得足够长,这样您就知道它只会在您的命令下停止。