文章目录

动机

最近,在使用opensmile提取音频的一些特征,需要使用到wav文件,而自身文件是mp3格式的,因此需要对大量的音频文件做处理。

Java处理

首先,使用maven下载相关的依赖jar包:

<dependency>
			<groupId>ws.schild</groupId>
			<artifactId>jave-core</artifactId>
			<version>2.4.6</version>
		</dependency>
		<dependency>
			<groupId>ws.schild</groupId>
			<artifactId>jave-native-win64</artifactId>
			<version>2.4.6</version>
		</dependency>

对应的java程序如下:

package com.qian.processing;

import java.io.File;
import java.io.IOException;
import ws.schild.jave.AudioAttributes;
import ws.schild.jave.Encoder;
import ws.schild.jave.EncoderException;
import ws.schild.jave.EncodingAttributes;
import ws.schild.jave.InputFormatException;
import ws.schild.jave.MultimediaObject;

public class Test {

	public static void main(String[] args) throws IOException, IllegalArgumentException, InputFormatException, EncoderException {
		File source = new File("data/test.mp3");
		File target = new File("data/b.wav");
		trans(source,target);
	}
	  public static void trans(File source, File target) throws IllegalArgumentException, InputFormatException, EncoderException  {
		  AudioAttributes audio = new AudioAttributes();

			audio.setCodec("libmp3lame"); 
			audio.setBitRate(new Integer(16000));
			audio.setChannels(new Integer(2));
			audio.setSamplingRate(new Integer(0));

			EncodingAttributes attrs = new EncodingAttributes();
			attrs.setFormat("wav");
			attrs.setAudioAttributes(audio);
			Encoder encoder = new Encoder();
			MultimediaObject sourceObj = new MultimediaObject(source);
			encoder.encode(sourceObj, target, attrs);
	  }
}

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐