Psychopy中的纯音以点击结束。如何删除这些点击?在心理上产生的音调和作为.wav导入的音调都具有相同的问题。我尝试在使用Audacity生成的.wav音中添加0.025ms的淡出。但是在用心理模型播放时,它们会以咔哒声结束。
现在我不确定如何继续这个。我需要进行一次心理声学实验,而不能像那样进行音调演示。
声音开始和结束时的点击经常发生,因为声音在中途停止,因此波突然从某个值变为零。该波形只能使用叠加在信号上的高振幅高频波进行,即点击。所以解决方案是让波在零上停止。
你使用旧版的心理学吗?如果是,则升级。较新的版本为自生音调添加汉明窗口(淡入/淡出),避免点击。
对于.wav文件,最后尝试添加(额外)静音,例如50毫秒可能是心理上的过早地停止了声音。
据我所知,噼啪声或咔嗒声通常与缓冲错误有关。许多年前,当设置了错误的比特率时,我在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
的文件说明:
要控制比特率和缓冲区大小,可以在创建第一个Sound对象之前调用psychopy.sound.init:
from psychopy import sound sound.init(rate=44100, stereo=True, buffer=128) s1 = sound.Sound('ding.wav')
所以,我建议你:
['pyo']
以仅使用Pyo,或将['pygame']
更改为仅使用PyGame。但是,如果您想要开始使用严肃的心理声学,我建议您不要使用任何一种建议的解决方案,并获得一些专业的声音硬件或带有模拟输出的数据采集板,这将通过sub提供无失真的声音毫秒精度,例如National Instruments或竞争对手生产的设备。可以通过PyLibNIDAQmx从Python控制NI板。