将音频mp3文件添加背景音乐

news/2025/2/7 9:23:18/

你可以使用 Python 的 pydub 库来合成两个音频文件,并调整背景音乐的音量,使朗诵的声音更强。以下是实现的 Python 代码:

步骤

  1. 读取朗诵音频文件(speech.mp3)。
  2. 读取背景音乐文件(background.mp3)。
  3. 统一两者的采样率和时长(如果需要)。
  4. 降低背景音乐音量,提高朗诵音频的音量(可调整)。
  5. 合并两条音轨并导出最终的 MP3 文件。

Python 代码

from pydub import AudioSegment# 读取朗诵音频
speech = AudioSegment.from_file("speech.mp3", format="mp3")# 读取背景音乐
background_music = AudioSegment.from_file("background.mp3", format="mp3")# 调整背景音乐的音量,使其变轻(-15 dB,可调)
background_music = background_music - 15# 调整朗诵音频的音量,使其增强(+5 dB,可调)
speech = speech + 5# 确保背景音乐和朗诵音频长度一致(循环背景音乐或截断)
if len(background_music) < len(speech):background_music = background_music * (len(speech) // len(background_music) + 1)
background_music = background_music[:len(speech)]  # 截取相同长度# 合并两条音轨
final_audio = speech.overlay(background_music)# 导出最终音频文件
final_audio.export("output.mp3", format="mp3")print("音频合成完成,保存为 output.mp3")

参数说明

  • background_music - 15:降低背景音乐的音量,使其轻一点。
  • speech + 5:增加朗诵音频的音量,使其更突出。
  • overlay(background_music):将背景音乐和朗诵音频合并。
  • export("output.mp3", format="mp3"):导出最终的 MP3 文件。

依赖安装

如果你的环境没有安装 pydub,需要先安装:

pip install pydub

此外,你还需要 ffmpeg 支持 MP3 格式转换:

sudo apt install ffmpeg  # Ubuntu
brew install ffmpeg      # macOS

Windows 用户可以从 FFmpeg 官网 下载并配置环境变量。


优化

  • 如果背景音乐较长,可以 fade_in(3000).fade_out(3000) 让音乐渐入渐出:
    background_music = background_music.fade_in(3000).fade_out(3000)
    
  • 也可以调整背景音乐的 stereomono,避免干扰朗诵:
    background_music = background_music.set_channels(1)  # 转单声道
    

这样,你就可以得到一个 朗诵声音清晰、背景音乐柔和的 MP3 文件 🎵😊


http://www.ppmy.cn/news/1570037.html

相关文章

项目顺利交付,几个关键阶段

年前离放假还有10天的时候&#xff0c;来了一个应急项目&#xff0c; 需要在放假前一天完成一个演示版本的项目&#xff0c;过年期间给甲方领导看。 本想的最后几天摸摸鱼&#xff0c;这么一来&#xff0c;非但摸鱼不了&#xff0c;还得加班。 还在虽然累&#xff0c;但也是…

LiteDB 使用教程

一、引言 在软件开发中&#xff0c;数据存储和管理是至关重要的一环。对于小型项目或者对性能和便捷性有较高要求的场景&#xff0c;传统的大型数据库可能显得过于笨重。而 LiteDB 作为一款轻量级的嵌入式 NoSQL 数据库&#xff0c;为开发者提供了一个简洁、高效的解决方案。它…

深度学习|表示学习|卷积神经网络|NIN 相比普通 CNN|17

如是我闻&#xff1a; Network in Network (NIN) 是 2014 年由 Min Lin 等人 提出的一个改进 CNN 结构的模型。它的核心思想是&#xff1a;用小型的多层感知机&#xff08;MLP&#xff0c;Multi-Layer Perceptron&#xff09;替代传统 CNN 中的卷积层&#xff0c;从而提高网络的…

【AI】DeepSeek 概念/影响/使用/部署

在大年三十那天&#xff0c;不知道你是否留意到&#xff0c;“deepseek”这个词出现在了各大热搜榜单上。这引起了我的关注&#xff0c;出于学习的兴趣&#xff0c;我深入研究了一番&#xff0c;才有了这篇文章的诞生。 概念 那么&#xff0c;什么是DeepSeek&#xff1f;首先百…

el-table组件样式如何二次修改?

文章目录 前言一、去除全选框按钮样式二、表头颜色的修改 前言 ElementUI中的组件el-table表格组件提供了丰富的样式&#xff0c;有一个全选框的el-table组件&#xff0c;提供了全选框和多选。 一、去除全选框按钮样式 原本默认是有全选框的。假如有一些开发者&#xff0c;因…

Three.js实现炫酷图片粒子化效果:从聚合到扩散的动态演变

一、效果展示 本特效实现了一个基于图片像素的智能粒子系统&#xff0c;通过Three.js引擎驱动&#xff0c;呈现出以下惊艳效果&#xff1a; 图片粒子化&#xff1a;将任意图片转化为动态粒子系统智能聚合扩散&#xff1a;粒子在聚合状态与随机扩散状态间自然过渡物理运动模拟…

C# 数组和列表的基本知识及 LINQ 查询

数组和列表的基本知识及 LINQ 查询 一、基本知识二、引用命名空间声明三、数组3.1、一维数组3.2、二维数组3.3、不规则数组 Jagged Array 四、列表 List4.1、一维列表4.2、二维列表 五、数组和列表使用 LINQ的操作和运算5.1、一维 LIST 删除所有含 double.NaN 的行5.2、一维 LI…

Container 命令ctr、crictl 命令使用说明

k8s早1.24后放弃docker&#xff0c;并把containerd作为运行时组件&#xff0c;containerd 调用链更短&#xff0c;组件更少&#xff0c;更稳定&#xff0c;占用节点资源更少 ctr是containerd的一个客户端工具 crictl 是 CRI 兼容的容器运行时命令行接口&#xff0c;可以使用它…