matlab - 在Matlab中从声音文件读取数据

标签 matlab audio processing

我正在尝试从.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/

相关文章:

matlab - x = x( :) mean in matlab, where x is a vector?

cocoa - 简单的录音和播放应用程序!

linux - 在 Ubuntu Linux 上操作音频输入缓冲区

javascript - 创建对象网格

jquery - 关于 Canvas 调整大小的 HTML/Jquery 问题 - $(window).resize 与 $(window).load/$(document).ready

java - 如何在处理中查找缩放形状上的距离/检测鼠标悬停

matlab更新时间向量

matlab - matlab中的for循环迭代

matlab - 多维数组的逐元素最大值

audio - 如何在 Python 中将 4 声道立体声文件转换为单声道