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

embedded/2025/2/5 11:40:54/

你可以使用 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/embedded/159736.html

相关文章

新到手路由器宽带上网设置八步法

第一步&#xff0c;连接线 运营商接到家里的一般有光纤&#xff0c;然后光纤会接在一个他们提供的光猫上。我们只需将路由器的&#xff37;&#xff21;&#xff2e;口通过一截网线接到光猫对应的网口即可。通电并确认指示灯常亮或闪烁 第二步&#xff0c;手机搜索&#xff3…

【Linux系统】CPU指令集 和 Linux系统权限 ring 0 / ring 3

CPU 指令集 CPU 指令集&#xff1a;是 CPU 实现软件指挥硬件执行的媒介&#xff0c;具体来说每一条汇编语句都对应了一条CPU指令&#xff0c;而非常非常多的 CPU 指令在一起&#xff0c;可以组成一个、甚至多个集合&#xff0c;指令的集合叫CPU指令集。 CPU 指令集有权限分级&…

全局异常处理器

目录 一. 异常处理 \quad 一. 异常处理 \quad

XML DOM 节点信息

nodeName、nodeValue 和 nodeType 属性包含有关节点的信息。 尝试一下 - 实例 下面的实例使用 XML 文件 books.xml。 函数 loadXMLDoc()&#xff0c;位于外部 JavaScript 中&#xff0c;用于加载 XML 文件。 获取元素节点的节点名称 本例使用 nodeName 属性来获取 "book…

设计一个特殊token以从1亿词表中动态采样8192个词来表达当前序列

为了设计一个特殊token以从1亿词表中动态采样8192个词来表达当前序列&#xff0c;可以采用以下分步方案&#xff1a; 1. 特殊token的设计与作用 定义特殊token&#xff1a;在输入序列前添加一个特殊标记&#xff0c;如[SUBVOCAB]。该token的嵌入包含触发子词表采样的元信息。…

【回溯+剪枝】优美的排列 N皇后(含剪枝优化)

文章目录 526. 优美的排列解题思路&#xff1a;回溯 剪枝51. N 皇后解题思路&#xff1a;回溯 剪枝剪枝的优化 526. 优美的排列 526. 优美的排列 假设有从 1 到 n 的 n 个整数。用这些整数构造一个数组 perm&#xff08;下标从 1 开始&#xff09;&#xff0c;只要满足下述…

Caxa 二次开发 ObjectCRX-1 踩坑:环境配置以及 Helloworld

绝了&#xff0c;坑是真 nm 的多&#xff0c;官方给的文档里到处都是坑。 用的环境 ObjectCRX&#xff0c;以下简称 objcrx。 #1 安装环境 & 参考文档的大坑 #1.1 Caxa 提供的文档和环境安装包 首先一定要跟 Caxa 对应版本的帮助里提供的 ObjectCRX 安装器 (wizard) 匹配…

CSS整体回顾

一. 邂逅CSS和常见的CSS 1.1. CSS的编写方式 1.2. 常见的CSS font-size/color/width/height/backgroundColor 二. 文本属性 2.1. text-decoration 2.2. text-indent 2.3. text-align 三. 字体属性 3.1. font-family 3.2. font-style 3.3. font-weight 3.4. font-size 3.5. …