scipy.io.wavfile.

写入#

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

将 NumPy 数组写入为 WAV 文件。

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

输出 wav 文件。

rateint

采样率(单位为 采样数/秒)。

datandarray

一个 1-D 或 2-D NumPy 数组,数据类型为整数或浮点数。

注释

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

  • 要写入多通道,请使用形状为 (Nsamples, Nchannels) 的二维数组。

  • 每个样本的位数和 PCM/浮点数将由数据类型决定。

常见数据类型:[1]

WAV 格式

最小值

最大值

NumPy dtype

32 位浮点数

-1.0

+1.0

float32

32 位 PCM

-2147483648

+2147483647

int32

16 位 PCM

-32768

+32767

int16

8 位 PCM

0

255

uint8

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

参考

[1]

IBM 公司和微软公司,“多媒体编程接口和数据规范 1.0”,章节“样本的数据格式”,1991 年 8 月 http://www.tactilemedia.com/info/MCI_Control_Info.html

示例

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

>>> from scipy.io.wavfile import write
>>> import numpy as np
>>> 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))