如何使用Matlab以特定的间隔播放音频文件?
正常情况下:如何使用Matlab以特定的间隔播放音频文件?,matlab,matlab-figure,audio-player,Matlab,Matlab Figure,Audio Player,正常情况下: player=audioplayer(snd1,FS1); play(player); %let as suppose that sound duration is 10 seconds % and I wanted to play the sound from second 5 or 7... % .. depending on the input of user(and using audioplayer libraries) 您可以使用以下功能指定开始和停止: lo
player=audioplayer(snd1,FS1);
play(player);
%let as suppose that sound duration is 10 seconds
% and I wanted to play the sound from second 5 or 7...
% .. depending on the input of user(and using audioplayer libraries)
您可以使用以下功能指定
开始
和停止
:
load handel;
playerObj = audioplayer(y,Fs);
start = 1;
stop = playerObj.SampleRate * 3;
play(playerObj,[start,stop]);
或者,您可以计算总数据的子样本,并将其提供给:
audioplayer的
PLAY
方法支持名为[startSample stopSample]
的附加输入参数。因此,如果你想在5到7秒之间播放音频,你必须指定的范围是[player.SampleRate*5 player.SampleRate*7]
好吧,这是一个半身笑。就要写这个了+1.顺便说一句,为了适应多通道情况,您可能需要使用y(…,:)
,而不是y(…,1)
。您可能还希望确保beginTime
和endTime
是整数。如果OP想要清除音频,可能会出现起始秒和结束秒为浮点的情况。@rayryeng-Haha抱歉:)有时也会发生在我身上!好的提示顺便说一句,已经相应地编辑了我的答案!我不是问这个问题的人:)rayryeng!=0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF。有趣。
load handel;
% y = data
% Fs = frequency = number of datapoints per second
% so calculate begin and end time using the sampling frequency:
totalTime = size(y,1)/Fs; % all data divided by sampling frequency
beginTime = round(5*Fs); % 5 seconds
endTime = round(7*Fs); % 7 seconds
% playing full audio:
% player = audioplayer(y, Fs);
% play(player);
% playing only part of audio:
player = audioplayer(y(beginTime:endTime,:), Fs);
play(player);