合并多个文件,需要包含1、文件读取和写入功能,2、数组合并

package com.audioprocessingbox.myfunc;

import java.io.File;
import java.io.IOException; import javax.sound.sampled.UnsupportedAudioFileException; import com.audioprocessingbox.utils.WavFile;
import com.audioprocessingbox.utils.WavFileException; public class AppCombFiles {
private static final long sampleRate = 16000; public static void main(String[] arg) throws UnsupportedAudioFileException {
try {
int[] postbuffer = new int[0], newbuffer = new int[0], buffer;
WavFile wavFile;
for(int i = 103; i < 111; i++) {
wavFile = WavFile.openWavFile(new File("/Users/karl/Work/database/speaker/certainSpeaker/" + i + ".wav"));
if(sampleRate != wavFile.getSampleRate()) {
throw new IllegalArgumentException("The sample rate for this file is different than Recognito's " +
"defined sample rate : [" + wavFile.getSampleRate() + "]");
}
//Read wav data into int array
int nframes = (int) wavFile.getNumFrames();
buffer = new int[nframes];
wavFile.readFrames(buffer, nframes);
wavFile.close();
//Combine two int array
newbuffer = new int[postbuffer.length + buffer.length];
System.arraycopy(postbuffer, 0, newbuffer, 0, postbuffer.length);
System.arraycopy(buffer, 0, newbuffer, postbuffer.length, buffer.length);
postbuffer = new int[postbuffer.length + buffer.length];
postbuffer = newbuffer;
}
WavFile saveFile = WavFile.newWavFile(new File("/Users/karl/Work/javawork/combine.wav"), 1, postbuffer.length, 16, sampleRate);
saveFile.writeFrames(postbuffer, postbuffer.length);
saveFile.close();
System.out.println(postbuffer.length / sampleRate);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (WavFileException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

[Audio processing] wav音频文件合并的更多相关文章

  1. [Audio processing] wav音频文件读取int和double数组的关系

    直接读取wav文件是int数组,但是有一些实现返回的是double数组,还有些输入是double数组:那我们要互相调用的时候还是要看看两者到底有什么关系,其实很简单. 以单身道,16bit为例 /** ...

  2. 多个wav音频文件合并(连接)成一个文件

    场景:一段声音从浏览器麦克风缓冲上一段一段发给服务器,按照时间戳生成很多文件. 目的:把他们按时间顺序连到一个时间轴上. 命令如下: ffmpeg -f concat -i list.txt out. ...

  3. Windows Phone 8初学者开发—第20部分:录制Wav音频文件

    原文 Windows Phone 8初学者开发—第20部分:录制Wav音频文件 原文地址:http://channel9.msdn.com/Series/Windows-Phone-8-Develop ...

  4. C语言解析WAV音频文件

    C语言解析WAV音频文件 代码地址: Github : https://github.com/CasterWx/c-wave-master 目录 前言 了解WAV音频文件 什么是二进制文件 WAV的二 ...

  5. 用 Qt 的 QAudioOutput 类播放 WAV 音频文件

    用 Qt 的 QAudioOutput 类播放 WAV 音频文件 最近有一个项目,需要同时控制 4 个声卡播放不同的声音,声音文件很简单就是没有任何压缩的 wav 文件. 如果只是播放 wav 文件, ...

  6. 解析WAV音频文件----》生成WAV音频文件头

    前言:请各大网友尊重本人原创知识分享,谨记本人博客:南国以南i WAV音频文件介绍: WAV文件是在PC机平台上很常见的.最经典的多媒体音频文件,最早于1991年8月出现在Windows3.1操作系统 ...

  7. Windows Phone 8初学者开发—第21部分:永久保存Wav音频文件

    原文 Windows Phone 8初学者开发—第21部分:永久保存Wav音频文件 第21部分:永久保存Wav音频文件 原文地址:http://channel9.msdn.com/Series/Win ...

  8. S3C2416裸机开发系列19_Fatfs播放录像wav音频文件

    S3C2416裸机开发系列19 Fatfs播放录像wav音频文件 国际象棋男孩    1048272975 多媒体资源,一般都是以文件的形式存储在固化存储器中.Fatfs所支持的fat32为windo ...

  9. C# 使用NAudio合并mp3、wav音频文件

    1.什么是wav格式    WAV为微软公司(Microsoft)开发的一种声音文件格式,它符合RIFF(Resource Interchange File Format)文件规范,用于保存Windo ...

随机推荐

  1. Android Studio下添加引用jar文件和so文件

    博客: 安卓之家 微博: 追风917 CSDN: 蒋朋的家 简书: 追风917 博客园: 追风917 安卓开发中我们常会遇到jar文件和so文件的引用,下面介绍下在as下如何添加使用,这里以百度地图s ...

  2. google的西联汇款可以使用工行代收

  3. maven发布的资源文件到tomcat项目下

    问题:项目中有hibernate的资源文件,src/main/java和src/main/resources都有这些文件,当启动项目时发现出错.但是src/main/java已经修改好了, 经查tom ...

  4. App上线基本流程

    还可参考的:http://www.cocoachina.com/bbs/read.php?tid=330302 iOS项目上传前期准备材料: 1.已有开发者账号 2.已有发布证书 3.一张1024*1 ...

  5. VisualStudio2015内置LocalDB

    简直坑爹,我将之前的VS2013的工程迁移到新电脑的VS2015,然后用的本地数据库居然连接报错了,然后我试连了一下本地数据库, 就是Tools-->Connect to Databases-- ...

  6. MySQL增删改查的常用操作指令总结

    总结: 1.数据库操作: 创建库: create database db_name; 查询库: show databases; //显示所有的数据库 show create databases db_ ...

  7. ktv

    自制KTV点歌系统经验 Windows Media Player控件播放       Windows Media Player控件的简单使用 1.播放一首歌曲的方法 Windows Media Pla ...

  8. 关于CenttOS的防火墙问题

    Fix “Unit iptables.service failed to load: No such file or directory” Error In CentOS7 最近在升级CentOS7遇 ...

  9. 自动化工具word文档批量转html

    企业有很多的科室,科室的每个人或多或少都会写一些文档,有些文档领导需要浏览,解决的办法是将编辑的文档打印出来,供领导浏览,或是为了节约企业成本,文档就在人与人这间或部门之间copy过来,copy过去. ...

  10. C++ 类的前向声明

    前向声明 在计算机程序设计中, 前向声明是指声明标识符(表示编程的实体,如数据类型.变量.函数)时还没有给出完整的定义.即可以声明一个类而不定义它,只声明类但不知道类的成员变量.函数等具体细节. 如: ...