PCM音频格式转WAV音频格式
目前只支持文件和二进制数组。java原生代码pcm转wav
·
目前只支持文件和二进制数组
上代码
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.sound.sampled.AudioFileFormat;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
public final class Pcm2WavUtils {
private Pcm2WavUtils () {}
public static byte[] parse(byte[] source) throws IOException {
float sampleRate = 16000;
int sampleSizeInBits = 16;
int channels = 1;
boolean signed = true;
boolean bigEndian = false;
AudioFormat af = new AudioFormat(sampleRate, sampleSizeInBits, channels, signed, bigEndian);
try (
AudioInputStream in = new AudioInputStream(new ByteArrayInputStream(source), af, source.length);
ByteArrayOutputStream out = new ByteArrayOutputStream();
) {
AudioSystem.write(in, AudioFileFormat.Type.WAVE, out);
byte[] bs = out.toByteArray();
return bs;
}
}
public static void parse (File source, File target) throws IOException {
float sampleRate = 16000;
int sampleSizeInBits = 16;
int channels = 1;
boolean signed = true;
boolean bigEndian = false;
AudioFormat af = new AudioFormat(sampleRate, sampleSizeInBits, channels, signed, bigEndian);
try (
AudioInputStream in = new AudioInputStream(new FileInputStream(source), af, source.length());
FileOutputStream out = new FileOutputStream(target);
) {
AudioSystem.write(in, AudioFileFormat.Type.WAVE, out);
}
}
}
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)