我正在寻找一个可用于处理音频文件的库。基本上我想做的是:
加载MP3 / WAV文件
获取文件的15秒剪辑
在其上覆盖另一个MP3 / WAV文件
渲染为新的MP3 / WAV文件
答案 0 :(得分:3)
由于专利原因,它不支持MP3,但libsndfile是一个非常好的开源(LGPL)库,用于加载和保存各种其他音频格式的音频,包括WAV。
对于叠加部分,一旦将样本加载到内存中,这很容易...您只需将文件A中的每个样本与文件B中的相应样本相加(并可能将得到的样本值缩小一点通过乘以常数,如果你担心裁剪)。
答案 1 :(得分:1)
来自sox的库libsox(而不是http://libsox.sourceforge.net/这是完全不同的)似乎有一个可以使用的简单API。文档提供了以下立体声到单声道混音的示例:
将样本表示为整数即可 处理时会导致问题 音频。例如,如果有效果 混合左右声道进入 一个单声道通道是使用的 线
*obuf++ = (*ibuf++ + *ibuf++)/2;
从那以后可能会发生失真 中间添加可以溢出32 位。这条线
*obuf++ = *ibuf++/2 + *ibuf++/2;
会解决溢出问题 (以牺牲最少为代价 重要的一点)。
答案 2 :(得分:0)
您可以使用任何常见的MP3编解码器API对流进行解码,使用它并再次保存。例如,您可以对此部分使用libLAME。
至于混音,你可以自己做(例如天真地,加两个样本并除以两个 - 听起来可能听起来不太好),或找到合适的库。
上的相关Stack Overflow问题感兴趣答案 3 :(得分:0)
您可以尝试一下这个 http://terminatorx.org/ 我正在考虑做类似的事情。
答案 4 :(得分:0)