WAV数据的读取与显示
时间: 2024-02-20 20:02:24 浏览: 31
WAV(Waveform Audio File Format)文件是一种常用的音频文件格式,可以在计算机上存储音频信号,并且可以对其进行读取和处理。下面是使用 Python 读取 WAV 数据并显示波形图的示例代码:
```python
import wave
import numpy as np
import matplotlib.pyplot as plt
# 打开 WAV 文件
with wave.open("example.wav", "rb") as wav_file:
# 获取参数
params = wav_file.getparams()
num_channels = params[0]
sample_width = params[1]
framerate = params[2]
num_frames = params[3]
# 读取数据
data = wav_file.readframes(num_frames)
# 将数据转换为 numpy 数组
if sample_width == 1:
data = np.frombuffer(data, dtype=np.uint8)
data = (data - 128) / 128.0
elif sample_width == 2:
data = np.frombuffer(data, dtype=np.int16)
data = data / 32768.0
# 生成时间轴
time = np.arange(num_frames) * 1.0 / framerate
# 绘制波形图
plt.plot(time, data)
plt.xlabel("Time (s)")
plt.ylabel("Amplitude")
plt.show()
```
其中,`example.wav` 是 WAV 文件的文件名,可以替换成自己的 WAV 文件名。代码中使用了 Python 标准库中的 `wave` 模块来读取 WAV 文件,使用了 `numpy` 来进行数据处理和存储,使用了 `matplotlib` 来绘制波形图。代码中首先获取了 WAV 文件的参数,然后将数据读取出来并转换为 numpy 数组,最后根据时间轴和音频数据绘制波形图。
需要注意的是,不同的 WAV 文件可能有不同的参数和数据格式,需要根据具体情况进行调整。