马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
AudioSegment类
pydub 是一个简单易用的 Python 音频处理处罚库,专注于提供高条理的音频利用接口,而 AudioSegment 是它的核心类,用于表现音频片断(如 MP3、WAV、OGG 等格式)。通过 AudioSegment,你可以轻松实现音频文件的加载、切割、归并、格式转换、音量调解等利用。
核心功能
- 多格式支持
支持常见音频格式(如 MP3、WAV、AAC、OGG、FLAC 等),依靠 FFmpeg 或 libav 举行底层编解码。
- 简便的API
提供雷同列表和字典的利用方式(如切片、拼接、覆盖)。
- 跨平台
兼容 Windows、macOS、Linux。
安装与依靠
根本用法
加载音频文件
- from pydub import AudioSegment
- # 加载音频文件(自动检测格式)
- audio = AudioSegment.from_file("input.mp3")
- # 指定格式加载
- audio = AudioSegment.from_wav("input.wav")
- audio = AudioSegment.from_mp3("input.mp3")
复制代码 导出音频文件
- audio.export("output.wav", format="wav")
- audio.export("output.mp3", format="mp3", bitrate="192k")
复制代码 音频根本利用
- # 获取音频属性
- duration = len(audio) # 时长(毫秒)
- channels = audio.channels # 声道数
- sample_width = audio.sample_width # 采样位深(字节)
- frame_rate = audio.frame_rate # 采样率(Hz)
- # 切割音频(从第10秒到第20秒)
- segment = audio[10_000:20_000]
- # 调整音量(增加6分贝)
- louder = audio + 6
- # 拼接音频
- combined = audio1 + audio2
- # 重复播放
- looped = audio * 3
- # 淡入淡出
- faded = audio.fade_in(2000).fade_out(3000) # 2秒淡入,3秒淡出
复制代码 对帧处理处罚
- # 获取原始PCM数据(16位小端)
- raw_data = audio.raw_data
- opus_datas = []
- # 按帧处理所有音频数据(包括最后一帧可能补零)
- for i in range(0, len(raw_data), frame_size * 2): # 16bit=2bytes/sample
- # 获取当前帧的二进制数据
- chunk = raw_data[i:i + frame_size * 2]
- # 如果最后一帧不足,补零
- if len(chunk) < frame_size * 2:
- chunk += b'\x00' * (frame_size * 2 - len(chunk))
- # 转换为numpy数组处理
- np_frame = np.frombuffer(chunk, dtype=np.int16)
- # 编码Opus数据
- opus_data = encoder.encode(np_frame.tobytes(), frame_size)
- opus_datas.append(opus_data)
复制代码 |