在wavio
(也是在PyPI:https://pypi.python.org/pypi/wavio上)中提供了另一个选项,这是我创建的一个小模块,用于解决scipy尚不支持24位WAV文件的问题。该文件wavio.py
包含函数write
,该函数将numpy数组写入WAV文件。要写入24位文件,请使用参数sampwidth=3
。的唯一依赖项wavio
是numpy;wavio
使用标准库wave
处理WAV文件格式。
例如,
In [21]: import numpy as np
In [22]: import wavio
In [23]: rate = 22050 # samples per second
In [24]: T = 3 # sample duration (seconds)
In [25]: f = 440.0 # sound frequency (Hz)
In [26]: t = np.linspace(0, T, T*rate, endpoint=False)
In [27]: sig = np.sin(2 * np.pi * f * t)
In [28]: wavio.write("sine24.wav", sig, rate, sampwidth=3)