scipy.io.wavfile.write

scipy.io.wavfile.write(filename, rate, data)[源代码]

将NumPy数组编写为wav文件。

参数
filename字符串或打开的文件句柄

输出wav文件。

rate集成

采样率(以样本/秒为单位)。

datandarray

整数或浮点数据类型的一维或二维NumPy数组。

注意事项

  • 写入一个简单的未压缩WAV文件。

  • 要写入多通道,请使用形状(N个采样、N个通道)的二维数组。

  • 每采样位数和PCM/浮点数将由数据类型确定。

常见数据类型: [1]

WAV格式

最小

最大值

NumPy数据类型

32位浮点

-1.0

+1.0

浮动32

32位PCM

-2147483648

+2147483647

int32

16位PCM

-32768

+32767

Int16

8位PCM

0

255

uint8

请注意,8位PCM是无符号的。

参考文献

1

IBM Corporation and Microsoft Corporation,“Multimedia Programming Interface and Data Specification 1.0”,“Data Format of the Samples”一节,1991年8月,http://www.tactilemedia.com/info/MCI_Control_Info.html

示例

创建100 Hz正弦波,采样频率为44100 Hz。写入16位PCM,单声道。

>>> from scipy.io.wavfile import write
>>> samplerate = 44100; fs = 100
>>> t = np.linspace(0., 1., samplerate)
>>> amplitude = np.iinfo(np.int16).max
>>> data = amplitude * np.sin(2. * np.pi * fs * t)
>>> write("example.wav", samplerate, data.astype(np.int16))