如何在matlab中重新采样长度不变的mp3音频

时间:2016-10-31 02:00:53

标签: matlab

我有成千上万的mp3音频需要处理。首先,这些文件应归一化为44.1kHz,并以.wav单声道格式编码为16位。

我尝试了mp3read()wavwrite()来处理(wavwrite()可以设置采样率),我也尝试了resample()功能。但是,如果音频的采样率小于44.1kHz,则在此处理之后,音频的长度将缩短,反之亦然。例如,一个44kHz 4分钟的音频重采样到22kHz,它将变为8分钟。如何修复音频长度并重新采样?

英语不是我的母语,请原谅我的语法错误和不准确的条款。感谢。

1 个答案:

答案 0 :(得分:0)

我的猜测是,即使您将其重新采样到新的F,您还是将它保存在旧的F中。

以下是4行代码: - 加载wav文件。 - 获取其采样频率(FsOld) - 将其重新采样到所需的采样频率(FsNew) - 以新的采样频率将其保存为新的wav文件。

[yOld, FsOld] = audioread('audio.wav');
FsNew = 44100;
yNew = resample(yOld,FsNew, FsOld);
audiowrite('audioNew.wav', yNew, FsNew);

All the Best ..