在psychtoolbox matlab中创建报警声音

在psychtoolbox matlab中创建报警声音,matlab,audio,psychtoolbox,Matlab,Audio,Psychtoolbox,我正在尝试在psychtoolbox上做一个实验,其中一部分涉及当参与者没有反应时发出警报 我试着使用提供的哔哔声,但它根本不像闹钟。有没有什么方法可以在不下载外部声音的情况下实现这一点 我不知道声音或声波,所以请帮助 对我来说,你可以通过在循环中多次播放来做你想做的事情,如下所示: % Adjust the no. of loop iterations depending on how long you want to play the alarm for k=1:100 beep;

我正在尝试在psychtoolbox上做一个实验,其中一部分涉及当参与者没有反应时发出警报

我试着使用提供的哔哔声,但它根本不像闹钟。有没有什么方法可以在不下载外部声音的情况下实现这一点

我不知道声音或声波,所以请帮助

对我来说,你可以通过在循环中多次播放来做你想做的事情,如下所示:

% Adjust the no. of loop iterations depending on how long you want to play the alarm
for k=1:100
    beep;  pause(1);
end
load('gong');   % This sound seems suitable to me for alarm. Try others from the list
for k=1:100 
    sound(y,Fs);  pause(1);
end
除此之外,您还可以使用如下内置声音:

% Adjust the no. of loop iterations depending on how long you want to play the alarm
for k=1:100
    beep;  pause(1);
end
load('gong');   % This sound seems suitable to me for alarm. Try others from the list
for k=1:100 
    sound(y,Fs);  pause(1);
end
以下是您可能想要尝试的内置声音列表:

chirp
gong 
handel
laughter
splat
train

下面的代码将加载一个.wav文件,并通过Psychtoolbox音频系统播放。这允许您拥有声音开始的时间戳,并允许比使用声音或蜂鸣声进行更大的控制。您也可以使用MATLAB本身生成一个音调。生成特定频率的正弦波并使用它代替.wav数据很容易

%% this block only needs to be performed once, at the start of the experiment

% initialize the Psychtoolbox audio system in low latency mode
InitializePsychSound(1);

% load in a waveform for the warning
[waveform,Fs] = audioread('alarm.wav');
numChannels = size(waveform, 2);

% open the first audio device in low-latency, stereo mode
% if you have more than one device attached, you will need to specify the
% appropriate deviceid
pahandle = PsychPortAudio('Open', 2, [], 1, Fs, numChannels);


%% during the experiment, when you want to play the alarm
PsychPortAudio('FillBuffer', pahandle, waveform' );
startTime = PsychPortAudio('Start', pahandle, 1);

%% at the conclusion of the experiment
PsychPortAudio('Close');
如果您想生成自己的声音,请查看Psychtoolbox函数“MakeBeep”,并将其替换为波形,例如,以44.1k采样率持续250ms的1000 Hz音调:

% generate a beep
beepWaveform = MakeBeep(1000,.250,44100);

% make stereo
beepWaveform = repmat(beepWaveform, 2, 1);

% fill buffer, play
PsychPortAudio('FillBuffer', pahandle, beepWaveform );
startTime = PsychPortAudio('Start', pahandle, 1);

最简单的方法是下载外部声音。只需找到一个听起来像你想要的警报的.mp3文件。确保不要在代码中使用y和Fs作为变量名称,因为这些变量将被load'gong'或其他变量覆盖。使用beep的问题是1它是操作系统特定的,因此在操作系统中的实验将不一样2你的数据较少与Psychtoolbox内置功能相关的定时控制您可以使用答案中提到的内置声音。否?Psychtoolbox专为低延迟、受控刺激呈现而设计,因此使用Psychtoolbox功能比使用“嘟嘟”或“声音”更好。例如,您无法从嘟嘟声或声音中估计声音开始延迟。您可以通过PsychPortAudio显示内置波形,但我仍然认为最好避免这些波形,因为它们可能会在MATLAB版本之间或在MATLAB上运行实验与倍频程之间发生变化。@DMR OP没有表达任何此类担忧!!他唯一的问题是,嘟嘟声对他来说不像是闹钟!!非常感谢你的帮助!