python - 如何将 .pcm 文件转换为 .wav 文件(脚本)

标签 python linux windows audio scripting

<分区>

我想在 Python 脚本中使用 SOX 等工具将 .pcm 文件转换为 .wav 文件。该工具需要跨平台兼容(Windows 和 Linux)。有什么建议吗?

最佳答案

您实际上不需要工具。 Python 标准库附带 wave用于编写 .wav 文件的模块,当然还有原始的 .pcm 文件可以作为普通二进制文件打开,如果您需要进行任何简单的转换,这些转换对于列表理解来说并不微不足道,它们对于 audioop 是微不足道的| .

例如,这是一个将立体声 16 位小端 44.1k PCM 文件转换为 WAV 文件的完整程序:

import sys
import wave

for arg in sys.argv[1:]:
    with open(arg, 'rb') as pcmfile:
        pcmdata = pcmfile.read()
    with wave.open(arg+'.wav', 'wb') as wavfile:
        wavfile.setparams((2, 2, 44100, 0, 'NONE', 'NONE'))
        wavfile.writeframes(pcmdata)

在旧版本的 Python 中,您可能必须使用 with contextlib.closing(wave.open(…))(或显式的 openclose 而不是 with 语句)。

关于python - 如何将 .pcm 文件转换为 .wav 文件(脚本),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16111038/

相关文章:

Python模块导入错误

linux - 交换 :/swapfile: swapoff failed: Cannot allocate memory

python项目特定模块安装方法

python - Django:正确 request.POST 中的值但无法保存表单

python - 使垂直标尺在 .ipynb - VS Code 中的文件中不可见

windows - 从 MINGW 启动时运行 System32 程序而不是 SysWOW64

c++ - 进程保留在应用程序退出时

python - 在 Python 3.5.1 中使用 pylab.scatter 和 cmap

linux - 比较并添加新文件的差异

windows - 如何创建名称中带有正斜杠的注册表项