音频拼接,就是5s+5s=10s的这种拼接。

需要修改的地方都是有三处,在代码里标注好了。

一、Python实现:

Python3

#!/usr/bin/env python

# -*- coding:utf-8 -*-

# ok,音频拼接

from pydub import AudioSegment # 先导入这个模块

# 加载需要合并的两个mp3音频

parameters = None

input_music_1 = AudioSegment.from_mp3("D:/4.mp3") #需要修改的地方:音频1

input_music_2 = AudioSegment.from_mp3("D:/5.mp3")#需要修改的地方:音频2

#获取两个音频的响度(音量)

input_music_1_db = input_music_1.dBFS

input_music_2_db = input_music_2.dBFS

# 获取两个音频的时长,单位为毫秒

input_music_1_time = len(input_music_1)

input_music_2_time = len(input_music_2)

# 调整两个音频的响度一致

# 合并音频

output_music = input_music_1 + input_music_2

# 简单输入合并之后的音频

output_music.export("D:/output_music.mp3", format="mp3")# 前面是保存路径,后面是保存格式

#复杂输入合并之后的音频

# bitrate:比特率,album:专辑名称,artist:歌手,cover:封面图片

#需要修改的地方:输出音频。cover那个没用着,可以删掉。

output_music.export("D:/output_music.mp3", format="mp3", bitrate="192k", tags={"album": "专辑", "artist": "歌手"}, cover="D:/1.jpg")

print(len(output_music), output_music.channels)# 合并音频的时长,音频的声道,1是单声道,2是立体声

二、java实现

1、第一种

package com.fish;

//ok,也是拼接!!!

import java.io.*;

import java.util.*;

public class Test

{

public static void main(String[] args) throws Exception

{

String s = "D:/out.mp3"; // 输出目录 & 文件名

List list = new ArrayList();

File dir = new File("D:/aaa"); // 把两个mp3文件放在这个文件夹下面。这是要遍历的目录, 用递归拿文件,.

recursion(dir.listFiles(), list); // 递归函数

String[] ss = new String[list.size()];

for (int i = 0; i < ss.length; i++)

{

ss[i] = list.get(i);

}

System.out.println();

combine(s, ss);

}

public static void recursion(File[] fs, List list) // 递归得所有子目录的.mp3文件.

{

for (File f : fs)

{

if (f.isDirectory())

{

recursion(f.listFiles(), list);

}

else

{

if (f.getName().endsWith(".mp3"))

{

list.add(f.getAbsolutePath());

}

}

}

}

private static boolean combine(String outFile, String[] inFiles) throws Exception

{

File out = new File(outFile);

File[] files = new File[inFiles.length];

for (int i = 0; i < files.length; i++)

{

files[i] = new File(inFiles[i]);

}

FileInputStream fis = null;

FileOutputStream fos = new FileOutputStream(outFile, true); // 合并其实就是文件的续写,写成true

for (int i = 0; i < files.length; i++)

{

fis = new FileInputStream(files[i]);

int len = 0;

for (byte[] buf = new byte[1024 * 1024]; (len = fis.read(buf)) != -1;)

{

fos.write(buf, 0, len);

}

}

fis.close();

fos.close();

return true;

}

}

2、第二种

package com.fish;

//ok,又是音频拼接!

/**

* @Classname Test2

* @Description TODO

* @Data 2020/4/8 22:11

* @Created by Amy

*/

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

public class Test2 {

public static void main(String args[]) throws Exception{

File f1 = new File("D:/4.mp3");

File f2 = new File("D:/5.mp3");

File f3 = new File("D:/8.mp3");//输出音频

FileInputStream inpu1 = new FileInputStream(f1);

FileInputStream inpu2 = new FileInputStream(f2);

FileOutputStream out = new FileOutputStream(f3);

byte b[] = new byte[1024];

int len=0;

//把f1的内容流到f3中

while ((len = inpu1.read(b))!= -1)

{

for(int i = 0;i < len;i++)

{

out.write(b[i]);

}

}

inpu1.close();

//在刚才的后面流f2到f3中

while ((len = inpu2.read(b))!= -1)

{

for(int i = 0;i

out.write (b[i]);

}

}

System.out.println("合并完成");

out.write(b);

inpu2.close();

out.close();

}

}

-----------------------------------------------------------------------------------

这几天因为写论文做作业什么的,写博客都不爱叨逼叨了= =

python音频合成_音频拼接的简单实现方法(python一种,java两种)相关推荐

  1. 斐波那契 java_AcWing 717. 简单斐波那契(Java 两种写法)

    递推 时空复杂度皆为O(N) import java.util.Scanner; public class Main{ static int N = 50; static int f[] = new ...

  2. python条件语句-Python中条件判断语句的简单使用方法

    最简单的条件语句: if expression: expr_true_suite 如上,if是关键字,expression是条件表达式,条件表达式支持多重条件判断,可以用布尔操作符and.or和not ...

  3. python概率论_概率论中常见分布总结以及python的scipy库使用

    概率分布有两种类型:离散(discrete)概率分布和连续(continuous)概率分布. 离散概率分布也称为概率质量函数(probability mass function).离散概率分布的例子有 ...

  4. html+轮播图下标跳转代码,最简单的JavaScript图片轮播代码(两种方法)

    通过改变每个图片的opacity属性: 素材图片: 代码一: 最简单的轮播广告 body, div, ul, li { margin: ; padding: ; } ul { list-style-t ...

  5. 掷骰子python代码_通过构建一个简单的掷骰子游戏去学习怎么用 Python 编程

    不论是经验丰富的老程序员,还是没有经验的新手,Python 都是一个非常好的编程语言. Image by : opensource.com Python 是一个非常流行的编程语言,它可以用于创建桌面应 ...

  6. 如何搭建python框架_从零开始:写一个简单的Python框架

    原标题:从零开始:写一个简单的Python框架 Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 你为什么想搭建一个Web框架?我想有下面几个原因: 有一个 ...

  7. 最简单的python语言程序设计_编程中最简单的语言Python,这样学或许更容易

    最近微信小程序上面出了一个跳一跳的小游戏 大家有没有玩呀? 编程中最简单的语言Python,这样学或许更容易 分享之前我还是要推荐下我自己建的Python开发学习群:628979297,群里都是学Py ...

  8. 看漫画学python下载_它被誉为最简单Python入门书,看漫画就学会编程,看了就会...

    他认为市面上没有一本书适合Python初学者学习,于是他开始用生动易懂的方式来系统整理Python中的基础编程知识,以此保证,能让更多的初学者快速入门Python编程. 书中近乎漫画的页面风格,让读者 ...

  9. python图片转换成文字的手机软件_手机如何将图片转换成文字?用这两种方法转换很简单...

    没有扫描仪怎么将纸质文档变成电子文档?图片上的文字太多想要提取没有好的方法吃苦受累的就是自己!今天分享给大家用手机将图片转换成文字的方法,轻松提取图片文字很简单! 方法一.迅捷文字识别--手机APP ...

最新文章

  1. 美卫星拍最详细3D地图 覆盖地球99%大陆
  2. Node.js建立服务、路径处理与响应
  3. SQL Server 索引重建或索引重組
  4. Android --- 当 item 的数量增加时,ListView 并不能根据所有 item 一共的数量来撑开布局
  5. 使用 Visual Studio 对源代码文件进行哈希处理以确保文件完整性
  6. cnn验证码识别代码_中文项目:快速识别验证码,CNN也能为爬虫保驾护航
  7. CAN总线基础知识(二)
  8. 与同步传递相关的获取-释放序列
  9. 几个IE与Firefox的兼容性问题 (一、网络转载)
  10. 高中信息技术新课程标准
  11. 《tkinter实用教程二》tkinter的子模块ttk
  12. hdu 5514 2015 icpc 沈阳现场 F Frogs
  13. 手机摄像头组成结构和工作原理
  14. 国产之光AT2401C完全取代替代RFX2401C直接兼容软件硬件
  15. LS1046A 启动流程分析
  16. CSS animation-play-state用法
  17. 将进酒翻译软件测试,乐府诗《将进酒》拼音及翻译整理
  18. Stata:如何正确检验U型关系的存在
  19. 浅谈JMS--(JMS 的简介)
  20. 号称能够理解自然语言的聊天机器人,在图灵测试下被分分钟打脸

热门文章

  1. 吴洪声十问戴跃: 域名圈巴菲特是如何炼成的?
  2. 华为IT总监离职时给大家写了一封告别信(ZT)
  3. YY游戏云的AngularJS实践(转载)
  4. Cross_entropy和softmax
  5. Error starting stream. VIDIOC_STREAMON: Protocol error Unable to use mmap. Using read instead. Unabl
  6. 快速保存网页中所有图片的方法
  7. 常用英语口语1000句
  8. 64位程序调用32位dll
  9. 什么是计算机图形学?(转自中国科学技术大学-刘利刚)
  10. Windbg串口联调