Psychopy中的纯音以不必要的点击结束

时间:2015-12-06 03:50:25

标签: python psychopy

Psychopy中的纯音以点击结束。如何删除这些点击? 在心理上产生的音调和作为.wav导入的音调都具有相同的问题。我尝试在使用Audacity生成的.wav音中添加0.025ms的淡出。但是在用心理模型播放时,它们会以咔哒声结束。

现在我不确定如何继续这样做。我需要进行一次心理声学实验,而不能像那样进行音调演示。

2 个答案:

答案 0 :(得分:2)

据我所知,噼啪声或咔嗒声通常与缓冲错误有关。许多年前,当设置了错误的比特率时,我在Linux系统上遇到了类似的问题。因此,这里可能至少有两个可能的罪魁祸首:比特率和缓冲区大小。

你已经应用了起始和偏移斜坡以允许膜进/出,所以这不应该是问题。 (顺便说一句,我认为你的意思是0.025 而不是ms?否则,斜坡太短了!)

PyGame initializes声音系统具有以下设置:

initPygame(rate=22050, bits=16, stereo=True, buffer=1024)

而Pyo initializes的方式如下:

initPyo(rate=44100, stereo=True, buffer=128)

psychopy.sound州的文件:

  

为控制比特率和缓冲区大小,您可以先调用psychopy.sound.init   创建你的第一个Sound对象:

from psychopy import sound
sound.init(rate=44100, stereo=True, buffer=128)
s1 = sound.Sound('ding.wav')

所以,我建议你:

  • 尝试声音后端,Pyo和PyGame - 您可以在通用/音频库下的PsychoPy首选项中更改要使用的内容。将字段更改为['pyo']仅使用Pyo,或更改为['pygame']仅使用PyGame。
  • 使用两个后端(Pyo,PyGame)尝试不同的比特率和缓冲区大小设置。

但是,如果您想开始使用严肃的心理声学,我建议您不要使用任何一种建议的解决方案,并获得一些专业的声音硬件或带有模拟输出的数据采集板,这将提供无失真的具有亚毫秒精度的声音,例如National Instruments或竞争对手生产的设备。可以通过PyLibNIDAQmx从Python控制NI板。

答案 1 :(得分:1)

声音开始和结束时的点击经常发生,因为声音在中途停止,因此波突然从某个值变为零。该波形只能使用叠加在信号上的高振幅高频波进行,即点击。所以解决方案是让波在零上停止。

你使用旧版的心理素吗?如果是,则升级。较新的版本为自生音调添加汉明窗口(淡入/淡出),以避免点击。

对于.wav文件,最后尝试添加(额外)静音,例如: 50毫秒可能是心理上的过早地停止了声音。