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