当前位置: 首页 > news >正文

使用python将多个mp3或者wma合并成一个mp3

环境:win10,python.3.8.10

任务:将一个文件夹内的多个mp3或者wma合并成一个mp3。

来源:最近想听评书,从网上下载了些,但是是001.mp3,002.mp3,003.mp3。我买了一个收音机,放tf卡的,需要把这些mp3拷贝到卡上,然后放到收音机收听。

问题是,播放的时候,它不按001,002,003这样的顺序,于是,我想到先在电脑上,把分别的mp3,按照顺序先合并成一个mp3,然后拷贝到卡上。

下载的评书中,还有不少是wma格式的,同样是上面问题。因为收音机只能播放mp3,所以需要多一步转化成mp3的步骤。

准备工作:

(1)电脑中需要有ffmpeg,并设置好环境变量。

(2)需要安装pydub库,pip38 install pydub

直接上代码(感谢gpt):

一、多个mp3合并成一个mp3

from pydub import AudioSegment#pip38 install pydub
#同时,你还需要确保 ffmpeg 已安装。可以通过以下命令安装 ffmpeg(适用于 CentOS),sudo yum install ffmpeg
#windows系统安装ffmpeg,安装完毕后,在cmd中直接输入ffmpeg查看是否成功
import os

def merge_mp3_files(input_folder, output_file):
    # 获取文件夹中所有 mp3 文件
    mp3_files = [f for f in os.listdir(input_folder) if f.endswith('.mp3')]
    mp3_files.sort()  # 按名称排序,以确保按顺序合并

    # 初始化一个空的音频段
    combined = AudioSegment.empty()

    # 依次加载和合并 mp3 文件
    for mp3_file in mp3_files:
        mp3_path = os.path.join(input_folder, mp3_file)
        audio = AudioSegment.from_mp3(mp3_path)
        combined += audio

    # 导出合并后的音频文件
    combined.export(output_file, format='mp3')

# 输入文件夹路径
input_folder = "D:/xx/千秋是非话寇准"

# 输出文件路径
output_file = "D:/xx/千秋是非话寇准/merged.mp3"

# 合并 mp3 文件
merge_mp3_files(input_folder, output_file)

二、多个wma合并成mp3

from pydub import AudioSegment
import os
import subprocess

def convert_wma_to_mp3(input_folder, output_folder):
    # 获取文件夹中所有 wma 文件
    wma_files = [f for f in os.listdir(input_folder) if f.endswith('.wma')]

    # 遍历每个 wma 文件,并转换为 mp3 格式
    for wma_file in wma_files:
        wma_path = os.path.join(input_folder, wma_file)
        mp3_file = os.path.splitext(wma_file)[0] + '.mp3'  # 使用相同的文件名,但更改扩展名为 mp3
        mp3_path = os.path.join(output_folder, mp3_file)
        subprocess.run(['ffmpeg', '-i', wma_path, mp3_path])

def merge_mp3_files(input_folder, output_file):
    # 获取文件夹中所有 mp3 文件
    mp3_files = [f for f in os.listdir(input_folder) if f.endswith('.mp3')]
    mp3_files.sort()  # 按名称排序,以确保按顺序合并

    # 初始化一个空的音频段
    combined = AudioSegment.empty()

    # 依次加载和合并 mp3 文件
    for mp3_file in mp3_files:
        mp3_path = os.path.join(input_folder, mp3_file)
        audio = AudioSegment.from_mp3(mp3_path)
        combined += audio

    # 导出合并后的音频文件
    combined.export(output_file, format='mp3')

# 输入文件夹路径(包含 WMA 格式的音频文件)
input_folder = "D:/xx/田连元评书水浒传wma"

# 输出文件夹路径(用于存储转换后的 MP3 格式音频文件)
output_folder = "D:/xx/田连元评书水浒传mp3"

# 转换 WMA 文件为 MP3 格式
convert_wma_to_mp3(input_folder, output_folder)

# 输入 MP3 文件夹路径(包含转换后的 MP3 格式音频文件)
mp3_input_folder = output_folder

# 输出合并后的 MP3 文件路径
output_file = "D:/xx/田连元评书水浒传/merged.mp3"

# 合并 MP3 文件
merge_mp3_files(mp3_input_folder, output_file)

友情提示:

虽然上述代码可以将多个mp3或者wma合并,但是最好也不要一次合并太多,我一般20个合并成一个,贪多容易出错。 

 

相关文章:

  • Windows系统使用Docker部署Focalboard团队协作工具详细流程
  • can设备调试 - linux driver
  • Jmeter元件及基本作用域
  • 第三方软件测试机构进行代码审计需要哪些专业的知识?
  • 【Vue】input框自动聚焦且输入验证码后跳至下一位
  • 国内信创数据库生态
  • 数据结构(一)
  • ubuntu安装桌面
  • 电脑频繁弹出广告?掌握这4个方法,一键快速屏蔽
  • win11安装MySQL
  • 快速搭建uni-app项目,vue2、Vue3与图鸟UI组件封装
  • 【第八章】多线程——Thread类
  • (1)无线电失控保护(二)
  • Compose Multiplatform 1.6.10 发布,解释一些小问题, Jake 大佬的 Hack
  • 【计算机毕业设计】基于SSM+Vue的线上旅行信息管理系统【源码+lw+部署文档】
  • 正则工具类
  • 如何利用Ubuntu服务器运行深度学习项目?
  • WPF中CommandParameter用法
  • 不用从头训练,通过知识融合创建强大的统一模型
  • 【Spring Boot】在项目中使用Spring AI
  • 一周人物|卡鲁等入围英国特纳奖,李学明新展中国美术馆
  • 《中国奇谭》首部动画电影《浪浪山小妖怪》定档8月2日
  • 十四届全国人大常委会第十五次会议继续审议民营经济促进法草案
  • 马上评丨学生举报食堂饭菜有蛆,教育局应该护谁的犊子
  • 加总理:目前没有针对加拿大人的“活跃威胁”
  • 从世界工厂走向全球创新中心,上海车展为何成为全球汽车行业风向标?