我正在尝试从.wav文件中从用户指定的位置X读取数据到Y。该代码编译文件,但是由于某种原因,wavread函数未从指定位置读取。它在y
vector 中返回零。如果我不喜欢[y,fs]=wavread('Kalimba.wav', [StartingTime EndingTime]);
,那么代码可以正常工作并返回非零数据。
为什么会发生这种情况,我该如何解决?
这是代码:
function PlayFromXtoY(StartingTime,EndingTime)
% converting the startingTime and EndingTime to minutes
if StartingTime == 0
disp('Zero')
StartingTime=1;
elseif StartingTime < 1
disp('Start <1')
StartingTime=StartingTime*10;
elseif StartingTime >= 1
disp('Start >=1');
StartingTime=StartingTime*60;
end
if EndingTime < 1
disp('End <1');
EndingTime=EndingTime*10;
elseif EndingTime >= 1
disp('End >=1');
EndingTime=EndingTime*60;
end
[y,fs]=wavread('Kalimba.wav', [StartingTime EndingTime]); % returning 0 in y for some reason
wavplay(y,fs);
问候
最佳答案
您的第一个问题是,在调用wavread
之前,您对启动时间和停止时间进行了非常奇怪的修改。如果在通话之前以及如果真的有意义的话,可以对disp
进行编码。
但是,最重要的是,您将这些限制视为wavread
的时间,而不是。根据他的文档,您通过的限制应该是样本数。
关于matlab - 在Matlab中从声音文件读取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14384949/