当前位置: 代码迷 >> J2EE >> 用java可以兑现将vox格式音频文件转换成wav格式音频文件,请求指导
  详细解决方案

用java可以兑现将vox格式音频文件转换成wav格式音频文件,请求指导

热度:56   发布时间:2016-04-22 00:50:13.0
用java可以实现将vox格式音频文件转换成wav格式音频文件,请求指导
还有想知道,vox文件有文件头吗,网上查了,这方面的信息很少,如果有的话怎么用java读取
以下是自己下的demo
Java code
public class Test {    static float sampleRate = 6000.0F; // 每秒的样本数    static int sampleSizeInBits = 4; // 每个样本中的位数    static int channels = 1; // 声道数(单声道 1 个,立体声 2 个)    static boolean signed = true; // 指示数据是有符号的,还是无符号的    static boolean bigEndian = false; // 指示是否以 big-endian 字节顺序存储单个样本中的数据(false 意味着 little-endian)         public static void trans() throws Exception{        File outFile = new File("F:/123.wav");        RandomAccessFile file = new RandomAccessFile("F:/1234123.v3", "r");        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();                byte tempBuffer[] = new byte[10000];         while (true) { //读取10000个数据            int cnt = file.read(tempBuffer, 0, tempBuffer.length);             if (cnt > 0) { //保存该数据                 byteArrayOutputStream.write(tempBuffer, 0, cnt);              }else {                byteArrayOutputStream.close();                break;            }        }                AudioFormat audioFormat = new AudioFormat(sampleRate, sampleSizeInBits, channels, signed, bigEndian);        byte audioData[] = byteArrayOutputStream.toByteArray();        InputStream byteArrayInputStream = new ByteArrayInputStream(audioData);        AudioInputStream audioInputStream = new AudioInputStream(byteArrayInputStream, audioFormat, audioData.length / audioFormat.getFrameSize());                AudioSystem.write(audioInputStream, AudioFileFormat.Type.WAVE, outFile);        System.out.println("success");    }        /**     * @param args     */    public static void main(String[] args) throws Exception{        Test.trans();    }}


关于vox文件有24k和32k的,具体不是很懂,转换完成的文件杂声很大,想请了解这方面的人指导下,怎么才能成功转换,先谢过了!

------解决方案--------------------
到我的资源里面去看吧,我写了实现
  相关解决方案