我想使用Armadillo将 wav 文件读入 mat 。它看起来像matlab 中的wavread函数:
[sample_data,sample_rate] = wavread('test.wav');
sample_data = sample_data(1 : sample_rate * 1.5);
似乎犰狳不支持这个,所以我尝试使用libsndfile lib:
SNDFILE *infile = NULL ;
SF_INFO sfinfo ;
infile = sf_open(filename, SFM_READ, &sfinfo);
int N = 1024;
double samples[N];
double sample_rate = sfinfo.samplerate;
sf_read_double(infile, samples, N);
我的问题:
- 这种方式正确吗?看来我只能阅读固定数量的样本。
- 如何将示例数据转换为
mat
orvec
? - 有没有办法像这个matlab代码一样通过冒号范围索引访问矩阵:
sample_data = sample_data(1 : sample_rate * 1.5);
?