Python音频处理利器:pydub详解

Pydub 是一个用 Python 编写的音频处理库,它可以方便地处理许多音频文件,诸如分割、合并、格式转换、音量调节等。它具有以下特点:

  • 主要使用 ffmpeg 和 libav 模块来实现音频的读取、处理和输出。
  • 支持的音频格式非常广泛,包括 MP3、WAV、FLAC、MP4 等。
  • API 简单易用,可以方便地进行常用的音频处理操作。

Pydub 是一个轻量级、快速且易于使用的库。silence库是pydub的一个扩展库,可以在音频文件中根据静默部分进行分割,非常方便。

1 pydub安装

安装 Pydub 的最简单方法是使用 pip,只需在命令行下运行以下命令即可:

pip install pydub

依赖:需安装ffmpeg或者libav 

如果 ffmpeg 或 libav 未安装,则还需要在系统中安装相关依赖库。

2  pydub模块使用

读取音频文件非常简单,只需使用 AudioSegment.from_file() 函数即可。以下示例演示了如何读取名为 "soundfile.mp3" 的 MP3 文件:

2.1 打开音频文件

from pydub import AudioSegment

# 打开wav格式音频文件
sound = AudioSegment.from_wav('./soundfile.wav')

# 打开mp3音频文件,AudioSegment原生只支持wav,raw文件,安装ffmpeg可支持其所有格式
sound = AudioSegment.from_mp3('./soundfile.mp3')

# 打开音频文件,生成AudioSegment对象
sound = AudioSegment.from_file('./soundfile.mp3')	# format默认值为"mp3"
sound = AudioSegment.from_file('./soundfile.wav', format='wav')

# 打开raw文件需要额外参数,sample_width(采样位数),frame_rate(采样频率),channels(声通道)
# sample_width: 1、8bit,2、16bit,3、32bit
# frame_rate: 44100(44.1kHz CD audio), 48000(48kHz DVD audio)
# channels: 1、单声道,2、立体声
sound = AudioSegment.from_file('./soundfile.raw', format='raw', frame_rate=44100, channels=2, sample_width=2)

2.2 导出音频文件

要将 AudioSegment 对象保存为音频文件,可以使用 export() 函数。以下示例将上述读取的音频输出为名为 "outputsoundfile.mp3" 的 mp3文件:

sound = AudioSegment.from_file('./soundfile.wav', format='wav')

# 导出音频文件
sound.export('./outputsoundfile.mp3', format='mp3')

2.3 创建音频文件

# 生成一个时间长度为0秒的AudioSegment对象,一般用于多个音频合并
sound = AudioSegment.empty()

# 生成一个时间长度为5秒的无声AduioSegment对象
# 参数duration:时间长度(毫秒),frame_rate:频率,默认为11025Hz
sound = AudioSegment.silent(duration=50000)

2.4 合并音频文件

# 两个单声道音频合并为一个多声道音频
left_channel = AudioSegment.from_wav('sound_left.wav')
right_channel = AudioSegment.from_wav('sound_right.wav')
stereo_sound = AudioSegment.from_mono_auidosegments(left_channel,right_channel)
# 将多声道音频分解成两个单声道
sound = AudioSegment.from_wav('sound.wav')
sound.spli
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智慧医疗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值