pydub入门(基于Pyhton3)

[复制链接]
发表于 2025-10-16 08:38:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
AudioSegment类

pydub 是一个简单易用的 Python 音频处理处罚库,专注于提供高条理的音频利用接口,而 AudioSegment 是它的核心类,用于表现音频片断(如 MP3、WAV、OGG 等格式)。通过 AudioSegment,你可以轻松实现音频文件的加载、切割、归并、格式转换、音量调解等利用。
核心功能



  • 多格式支持
    支持常见音频格式(如 MP3、WAV、AAC、OGG、FLAC 等),依靠 FFmpeg 或 libav 举行底层编解码。
  • 简便的API
    提供雷同列表和字典的利用方式(如切片、拼接、覆盖)。
  • 跨平台
    兼容 Windows、macOS、Linux。
安装与依靠


根本用法

加载音频文件

  1. from pydub import AudioSegment
  2. # 加载音频文件(自动检测格式)
  3. audio = AudioSegment.from_file("input.mp3")
  4. # 指定格式加载
  5. audio = AudioSegment.from_wav("input.wav")
  6. audio = AudioSegment.from_mp3("input.mp3")
复制代码
导出音频文件

  1. audio.export("output.wav", format="wav")
  2. audio.export("output.mp3", format="mp3", bitrate="192k")
复制代码
音频根本利用

  1. # 获取音频属性
  2. duration = len(audio)          # 时长(毫秒)
  3. channels = audio.channels      # 声道数
  4. sample_width = audio.sample_width  # 采样位深(字节)
  5. frame_rate = audio.frame_rate  # 采样率(Hz)
  6. # 切割音频(从第10秒到第20秒)
  7. segment = audio[10_000:20_000]
  8. # 调整音量(增加6分贝)
  9. louder = audio + 6
  10. # 拼接音频
  11. combined = audio1 + audio2
  12. # 重复播放
  13. looped = audio * 3
  14. # 淡入淡出
  15. faded = audio.fade_in(2000).fade_out(3000)  # 2秒淡入,3秒淡出
复制代码
对帧处理处罚

  1. # 获取原始PCM数据(16位小端)
  2. raw_data = audio.raw_data
  3. opus_datas = []
  4. # 按帧处理所有音频数据(包括最后一帧可能补零)
  5. for i in range(0, len(raw_data), frame_size * 2):  # 16bit=2bytes/sample
  6.     # 获取当前帧的二进制数据
  7.     chunk = raw_data[i:i + frame_size * 2]
  8.     # 如果最后一帧不足,补零
  9.     if len(chunk) < frame_size * 2:
  10.         chunk += b'\x00' * (frame_size * 2 - len(chunk))
  11.     # 转换为numpy数组处理
  12.     np_frame = np.frombuffer(chunk, dtype=np.int16)
  13.     # 编码Opus数据
  14.     opus_data = encoder.encode(np_frame.tobytes(), frame_size)
  15.     opus_datas.append(opus_data)
复制代码
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表