scipy.io.wavfile.
写#
- scipy.io.wavfile.write(filename, rate, data)[源代码][源代码]#
将一个 NumPy 数组写入 WAV 文件。
- 参数:
- 文件名字符串或打开的文件句柄
输出 wav 文件。
- 速率整数
采样率(以样本/秒为单位)。
- 数据ndarray
一个一维或二维的 NumPy 数组,数据类型可以是整数或浮点数。
注释
写入一个简单的未压缩的WAV文件。
要写入多通道,请使用形状为 (Nsamples, Nchannels) 的二维数组。
每个样本的位数和PCM/浮点数将由数据类型决定。
常见数据类型:[1]
WAV 格式
最小
最大
NumPy 数据类型
32位浮点数
-1.0
+1.0
float32
32位PCM
-2147483648
+2147483647
int32
16位PCM
-32768
+32767
int16
8位脉冲编码调制
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))