将声音文件转换为具有特定比特率的wav并剪切文件的特定部分

时间:2011-07-07 10:44:02

标签: java mp3 wav

我有一些声音文件(基本上是mp3,但它可以是任何比特率)。我需要方法将输入文件的指定部分(不超过40秒)提取到8位单声道wav输出。 我很感激选择java库的任何帮助或建议。

2 个答案:

答案 0 :(得分:2)

您可以使用JavaLayer将mp3解码为wav。从wav切割40秒的剪辑应该不是问题。

您可以在此处找到有关将立体声与单声道混合的一些提示:http://www.jsresources.org/examples/SingleChannelStereoConverter.html

将16位音频转换为8位只是删除高8位:Convert 16 bit pcm to 8 bit

编辑:有关提取40秒部分的更多信息:

解码器的输出是pcm样本。如果你输入的是16位立体声44100Hz,那么每帧是16位* 2通道= 4个字节,每秒是44100 * 4个字节。跳过所需数量的输出字节,直到所需部分开始,然后转储44100 * 4 * 40字节,持续40秒。您甚至可以混音到单声道,然后切换到8位。

答案 1 :(得分:0)

我已经看到很多链接用于转换你正在询问的相反意义,我的意思是你通常得到的是使用java将WAV转换为MP3的信息,但也许你可以尝试使用Java Media Framework API (JMF)

http://www.oracle.com/technetwork/java/javase/tech/index-jsp-140239.html.

他们宣布了对MP3的新支持

http://www.oracle.com/technetwork/java/javase/download-137625.html

,也许您可​​以找到将MP3转换为WAV的替代方案。

抱歉,我无法帮助解决具体问题

Emecas

相关问题