python - Psychopy 中的纯音以不必要的咔嗒声结束

标签 python psychopy

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/

相关文章:

python - 如何在 NumPy 数组上创建 View ?

python - 在 Python 中截屏——跨平台

python - 我在哪里可以找到 Psychopy 刺激的闪烁功能?我该如何使用它?

python - 无论鼠标单击如何,psychopy 鼠标跟踪都会返回 true

python - 每次试验的 Psychopy 重置变量

javascript - Tornado 不向客户端发送 Ajax 响应

python - 将 virtualenv 与 Python 与 Visual Studio Code 一起使用

python - 澄清作者的意思(学习Python第五版)

python - PsychoPy 中具有多种颜色的文本

python - 从函数内访问变量