package org.lib.speech.test;
import java.io.*;
import java.util.*;
import javax.sound.sampled.AudioFileFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
//生成的新.wav路径
File fileOut = new File("E:/java/apache-tomcat-7.0.77/webapps/JavaWeb/music/1.wav");
List<String> listArr = new ArrayList<String>();
listArr.add("E:/java/apache-tomcat-7.0.77/webapps/data/jyutping-wong-44100-v7/aak6.wav");
listArr.add("E:/java/apache-tomcat-7.0.77/webapps/data/jyutping-wong-44100-v7/1.wav");
listArr.add("E:/java/apache-tomcat-7.0.77/webapps/data/jyutping-wong-44100-v7/ang1.wav");
//如果这个语音大于 2 个
if (listArr.size() >= 2){
AudioInputStream audio1 = AudioSystem.getAudioInputStream(new File(dir+listArr.get(0)));
AudioInputStream audio2 = AudioSystem.getAudioInputStream(new File(dir+listArr.get(1)));
AudioInputStream audioBuild = new AudioInputStream(
new SequenceInputStream(audio1, audio2),
audio1.getFormat(),
audio1.getFrameLength() +
audio2.getFrameLength()
);
AudioInputStream audio3;
//大于两个时继续合并
for(int i = 2; i<listArr.size();i++){
audio3 = AudioSystem.getAudioInputStream(new File(dir+listArr.get(i)));
audioBuild = new AudioInputStream(
new SequenceInputStream(audioBuild, audio3),
audioBuild.getFormat(), audioBuild.getFrameLength() +
audio3.getFrameLength()
);
}
//生成语音
AudioSystem.write(audioBuild, AudioFileFormat.Type.WAVE, fileOut ); } else {
//TODO::否则只有一个,直接返回语音路径 }

注意 , 生成的语音要 比特率 一致,否则声音会很难听,如果要改为一直,则可以用百度音乐右上角工具来改变


Java 合并.wav 文件的更多相关文章

  1. Java 合并PDF文件

    处理PDF文档时,我们可以通过合并的方式,来任意合并几个不同的PDF文件,使我们方便的存储和管理文档.例如,在做毕业设计的时候,封面和论文正文往往是两个PDF文档,但是,上交电子档的时候,需要合二为一 ...

  2. [转载]java合并word文件

    需求背景 在互联网教育行业,做内容相关的项目经常碰到的一个问题就是如何动态生成一张word试卷.事先把题库中的每一道试题都已经保存成一个独立的word文件了,但是在选择了部分试题生成一张word试卷的 ...

  3. [原创]java合并word文件

    需求背景 在互联网教育行业,做内容相关的项目经常碰到的一个问题就是如何动态生成一张word试卷.事先把题库中的每一道试题都已经保存成一个独立的word文件了,但是在选择了部分试题生成一张word试卷的 ...

  4. java合并一个文件夹下所有txt文件,输出到另一个txt

    最近写了个单元测试,递归调用方法,把同一个文件夹里所有的txt合并输出到一个txt文件.参考了两个博客,分别是已有的方法,还有个就是检测txt文件所用编码的技术贴.如果不检测txt文件的编码,那么转换 ...

  5. java播放wav文件

    import java.io.File; import java.io.IOException; import javax.sound.sampled.AudioFormat; import java ...

  6. delphi 合并两个 Wav 文件流的函数

    合并两个 Wav 文件的函数 实例一 unit Unit1; interface usesWindows, Messages, SysUtils, Variants, Classes, Graphic ...

  7. Java 合并多个文件内容到一个文件(递归遍历某个文件夹下所有文件)

    这段代码通过Java I/O流API实现将多个文件合并到一个文件中,输出为文本文件,提供一个支持语法高亮的网站,http://www.codeinword.com/ 适合粘贴代码到word文档,小巧实 ...

  8. 用ffmpeg合并音频文件

    1 问题描述 打电话的对话,被拆分成了两个PCM文件.其中主叫的录音文件A.pcm,被叫的录音为B.pcm. 问题是怎么合成一个混音的对话文件AB.wav. 2 WAV文件的录音格式 常见的声音文件主 ...

  9. java写入excel文件poi

    java写入excel文件 java写入excel文件poi,支持xlsx与xls,没有文件自动创建 package com.utils; import java.io.File; import ja ...

随机推荐

  1. jQuery实际案例④——360导航图片效果

    如图:①首先使用弹性盒子布局display:flex; flex-wrap:wrap; ②鼠标移上去出现“百度一下,你就知道了”,这句话之前带上各个网站的logo:③logo使用的是sprite,需要 ...

  2. pwm计时器

    1 PWM timer定时器与(watchdog差不多)2 5个16位的定时器,独立的,其中,NO PIN 没有输出.16表示ffff,和ADC中10表示3FF一样.而寄存器都是32位.(以后6410 ...

  3. setInterva()调用

    setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式. setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭.由 s ...

  4. IdentityServer4在Asp.Net Core中的应用(一)

    IdentityServer4是一套身份授权以及访问控制的解决方案,专注于帮助使用.Net 技术的公司为现代应用程序建立标识和访问控制解决方案,包括单点登录.身份管理.授权和API安全. 下面我将具体 ...

  5. 修改linux系统用户最大线程数限制

    linux系统对线程数量有个最大限制,当达到系统限制的最大线程数时使用账号密码ssh到系统时是无法登陆的,会报Write failed: Broken pipe,或者是shell request fa ...

  6. 1-22-shell脚本的基础

    1.1 shell 脚本的编写规范 1.2 变量与特殊变量应用 1.3局部变量与全局变量 1.4 条件测试表达式 ------------------------------------------- ...

  7. Ubuntu14.04安装CUDA6.5

    机器配置: 双系统:win10 64bit+ ubuntu14.04 LTS 64bit 显卡: GeForce 405 cuda版本: cuda 6.5 参考: http://m.blog.csdn ...

  8. windows下使用selenium报错selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH

    问题 :执行程序代码报错: WebDriverException:Message:'geckodriver'executable needs to be in Path 或者 selenium.com ...

  9. Github上的iOS App源码 (中文)

    Github版英文App地址 中文 : TeamTalk 蘑菇街. 开源IM. 电商强烈推荐. MyOne-iOS 用OC写的<一个> iOS 客户端 zhihuDaily 高仿知乎日报 ...

  10. 关于Spinlock机制的一点思考

    存在两段代码同时在多核上执行的情况,这时候才需要一个真正的锁来宣告代码对资源的占有. 几个核可能会同时access临界区,这时的spinlock是如何实现的呢? 要用到CPU提供的一些特殊指令,对lo ...