【发布时间】:2015-10-16 04:04:44
【问题描述】:
我想使用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或vec? - 有没有办法通过冒号范围索引访问矩阵,如 matlab 代码:
sample_data = sample_data(1 : sample_rate * 1.5);?
【问题讨论】:
标签: c++ matlab armadillo libsndfile