📜  np 数组到 wav 文件 - Python (1)

📅  最后修改于: 2023-12-03 15:17:58.992000             🧑  作者: Mango

np数组到wav文件 - Python

在Python中,我们可以使用numpyscipy这两个库来处理音频数据,并将其转换为.wav格式的音频文件。

1. 安装依赖

要使用这两个库,需要首先安装它们。可以在终端或命令提示符中运行以下命令来安装它们:

pip install numpy scipy
2. 生成音频数据

在将音频数据转换为.wav格式之前,我们需要生成一些音频数据。下面是一个简单的示例,展示了如何生成一个表示正弦波的numpy数组:

import numpy as np

# 设置生成正弦波的参数
frequency = 440 # 频率为440Hz
duration = 3 # 持续时间为3秒
sampling_rate = 44100 # 采样率为44100

# 生成正弦波的numpy数组
time_array = np.linspace(0, duration, int(sampling_rate * duration), endpoint=False)
audio_data = 32767 * np.sin(2 * np.pi * frequency * time_array)
audio_data = audio_data.astype(np.int16)

在这个代码片段中,我们使用了numpy.linspace()来生成一个时间数组,该数组表示我们生成的音频数据的时间轴。我们还设置了正弦波的频率、持续时间和采样率,并使用numpy.sin()生成一个表示正弦波的numpy数组。最后,我们将音频数据的数据类型转换为numpy.int16,以便我们稍后将其保存为.wav文件。

3. 将音频数据保存为.wav文件

接下来,我们将使用scipy库中的wavfile模块将上述生成的音频数据保存为.wav文件。以下是示例代码:

from scipy.io import wavfile

# 保存.wav文件
wavfile.write("test.wav", sampling_rate, audio_data)

在这个代码片段中,我们使用scipy.io.wavfile.write()函数将生成的音频数据保存为.wav文件。该函数的第一个参数是要保存的文件的名称,第二个参数是采样率,第三个参数是音频数据本身。

4. 测试.wav文件

现在,我们可以使用一些声音播放器(例如Windows Media Player或VLC媒体播放器)来测试新创建的.wav文件。如果一切正常,您应该能够听到一个440Hz频率的正弦波,持续3秒钟。

以上是如何将numpy数组转换为.wav文件的基本过程。您可以根据自己的需要更改代码来生成不同的音频数据,并将其保存为.wav文件。