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

Python使用pydub将wav转换为8kHz 8bit uLaw编码wav的实现方法

uLaw编码wav文件实现方法

方法1:通过pydub传递ffmpeg参数

pydub的export方法提供了parameters参数,可直接传入自定义ffmpeg命令参数,不需要额外修改其他配置,对应需求的实现代码如下:

from pydub import AudioSegment

# 读取源wav文件
audio = AudioSegment.from_wav(fromFile)

# 导出为uLaw编码wav
audio.export(
    toFile,
    format="wav",
    parameters=["-c:a", "pcm_mulaw", "-ar", "8000"]
)

说明:parameters列表中的参数会直接追加到pydub生成的ffmpeg命令中,效果和手动执行原生ffmpeg命令完全一致。pcm_mulaw编码本身默认输出8bit位深,不需要额外指定参数,最终输出的就是8kHz采样率、8bit位深的uLaw编码wav文件。

方法2:直接调用subprocess执行ffmpeg命令

如果你不需要用到pydub的其他音频处理能力,也可以直接通过subprocess调用原生ffmpeg命令,逻辑更直观:

import subprocess

subprocess.run(
    [
        "ffmpeg",
        "-i", fromFile,
        "-c:a", "pcm_mulaw",
        "-ar", "8000",
        "-y", # 存在同名输出文件时自动覆盖,不需要交互确认
        toFile
    ],
    check=True # 执行失败时抛出异常,方便排查问题
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 20:18:03