You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Pydub AudioSegment导出无声音文件的问题排查求助

问题描述

使用pydub 0.25.1版本编写如下代码,尝试导出WAV音频文件:

from pydub import AudioSegment

audio = AudioSegment.from_wav("recordings/source.wav")
audio.export("recordings/export.wav", format="wav")

其中source.wav是一个5秒的有效录音文件,但生成的export.wav为0秒空文件。后续尝试以下操作均未解决问题:

  • 添加官方文档建议的调试日志代码,无错误输出,脚本正常执行:
import logging

l = logging.getLogger("pydub.converter")
l.setLevel(logging.DEBUG)
l.addHandler(logging.StreamHandler())
  • 改用AudioSegment.from_file方法加载音频,结果依然无效。

最终目标是提取音频片段,但当前基础导出步骤已失败,需排查问题原因。

排查方向与解决办法
  • 路径验证:确认recordings/source.wav的相对路径是否与脚本运行的工作目录匹配。可先打印当前工作目录:
import os
print(os.getcwd())

也可直接使用绝对路径加载文件,规避路径解析错误。

  • 权限检查:确认脚本具备读取source.wav和写入recordings目录的权限。Linux/macOS下可通过chmod调整权限;Windows下需确保文件夹未设为只读,且脚本进程拥有写入权限。
  • FFmpeg依赖排查:pydub依赖FFmpeg处理音频,即使日志无报错,也可能是FFmpeg未正确安装或未加入系统环境变量。在终端执行ffmpeg -version,若提示命令不存在,需先安装FFmpeg并将其路径添加至系统PATH。
  • 音频编码测试:部分WAV文件可能采用非PCM编码格式,导致pydub无法正常处理。可先用FFmpeg转码:
ffmpeg -i recordings/source.wav -c:a pcm_s16le recordings/test_converted.wav

再用转码后的test_converted.wav替换原文件运行脚本,验证是否正常导出。

  • 版本升级:pydub 0.25.1可能存在边缘场景bug,尝试升级至最新稳定版:
pip install --upgrade pydub

内容的提问来源于stack exchange,提问作者Ryan Pergent

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 14:27:06