从csv文件播放的心理变态声音混合在一起(时间以帧为单位)
在实验中,我准备从csv文件播放声音,并以帧为单位测量计时。考虑到每个声音持续300毫秒,这相当于18帧从csv文件播放的心理变态声音混合在一起(时间以帧为单位),csv,audio,frames,psychopy,Csv,Audio,Frames,Psychopy,在实验中,我准备从csv文件播放声音,并以帧为单位测量计时。考虑到每个声音持续300毫秒,这相当于18帧 from psychopy import data from psychopy import core, visual, gui, data, event from psychopy.tools.filetools import fromFile, toFile import numpy, random, csv, time from psychopy import logging, pre
from psychopy import data
from psychopy import core, visual, gui, data, event
from psychopy.tools.filetools import fromFile, toFile
import numpy, random, csv, time
from psychopy import logging, prefs
prefs.general['audioLib'] = ['pyo'] # Set the Audio Library [pyo (highest performer, check it), sounddevice (looks promessing, check it) or pygame (not good with timing)]
prefs.general['audioDriver']=['coreaudio']
from psychopy import sound
win = visual.Window([400,300], monitor="testMonitor", units="cm", fullscr=False)
stimuli = []
datafile = open("audioStim.csv", "rb")
reader = csv.reader(datafile, delimiter=";")
for row in reader:
stimuli.append(row[0])
#print (stimuli)
datafile.close()
clock = core.Clock()
for stimulus in stimuli:
#print (stimuli)
for frameN in range(18):
#print clock.getTime()
sound_stimulus = sound.Sound(stimulus)
sound_stimulus.play()
win.callOnFlip(clock.reset)
win.flip()
## Closing Section
win.close()
core.quit()
进行实验时,声音似乎相互混合。它们听起来并不离散。
结果有点问题,这是心理变态(声音很短时质量不好?)还是代码的问题
谢谢你抽出时间!
非常欢迎对代码的任何其他改进建议。
您的代码开始在每个帧上播放声音,即每秒播放60次。这样做:
对于刺激中的刺激:
#打印(刺激)
对于范围(18)内的帧:
#打印时钟。getTime()
win.flip()
如果frameN==0:
声音刺激=声音。声音(刺激)
音效
clock.reset()#时间零点为刺激开始
我在这里做了两件事。首先,我只在翻转开始时启动声音刺激.play()
和时钟.reset()
,而不是在后续更新时启动。第二,我在win.flip之后开始播放声音,这样它就与flip同步了。如果在翻转前播放,声音可以在16.7毫秒的间隔内的任何地方开始(但可能只在第一次尝试时才开始)
顺便说一句,由于您没有真正使用变量sound\u stimulation
,因此可以进一步简化代码:
如果frameN==0:
声音。声音(刺激)。播放()
您的代码开始在每个帧上播放声音,即每秒播放60次。这样做:
对于刺激中的刺激:
#打印(刺激)
对于范围(18)内的帧:
#打印时钟。getTime()
win.flip()
如果frameN==0:
声音刺激=声音。声音(刺激)
音效
clock.reset()#时间零点为刺激开始
我在这里做了两件事。首先,我只在翻转开始时启动声音刺激.play()
和时钟.reset()
,而不是在后续更新时启动。第二,我在win.flip之后开始播放声音,这样它就与flip同步了。如果在翻转前播放,声音可以在16.7毫秒的间隔内的任何地方开始(但可能只在第一次尝试时才开始)
顺便说一句,由于您没有真正使用变量sound\u stimulation
,因此可以进一步简化代码:
如果frameN==0:
声音。声音(刺激)。播放()
@lookingforanswers。伟大的如果它解决了您的问题,请记住单击右侧的“接受答案”,以帮助将来的用户找到答案。@lookingforanswers。伟大的如果它解决了您的问题,请记住单击右侧的“接受答案”,以帮助未来用户找到答案。