Psychopy 中的纯音以滴答声结束。如何删除这些点击? Psychopy 中生成的音调和作为 .wav 导入的音调都存在相同的问题。我尝试在使用 Audacity 生成的 .wav 音调中添加 0.025 毫秒的淡出。但在心理游戏中演奏它们时,它们仍然以咔哒声结束。
现在我不知道如何继续下去。我需要进行心理声学实验,但无法进行这样的音调呈现。
最佳答案
据我所知,爆裂声或点击声通常与缓冲错误有关。许多年前,当比特率设置不正确时,我在 Linux 系统上遇到了类似的问题。因此,这里至少有两个可能的罪魁祸首:比特率和缓冲区大小。
您已经应用了起始斜坡和偏移斜坡以允许膜摆动进/出,所以这不应该是问题。 (顺便说一句,我认为你的意思是 0.025 秒而不是毫秒?否则,斜坡会太短!)
PyGame initializes声音系统具有以下设置:
initPygame(rate=22050, bits=16, stereo=True, buffer=1024)
而 Pyo initializes其方式如下:
initPyo(rate=44100, stereo=True, buffer=128)
psychopy.sound 的文档指出:
For control of bitrate and buffer size you can call psychopy.sound.init before creating your first Sound object:
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 或竞争对手生产的设备。 NI 板可以通过 Python 通过 PyLibNIDAQmx 进行控制.
关于python - Psychopy 中的纯音以不必要的咔嗒声结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34113812/