python 画wav频响
时间: 2023-09-11 11:09:58 浏览: 110
wav.rar_.wav文件读写_python 音频_python 音频_wav音频_音频
要使用Python绘制wav文件的频谱图,可以使用以下步骤:
1. 首先,需要导入所需的库和模块,包括wave、struct、numpy、scipy和pylab。
2. 打开wav文件,并获取相关参数,如声道数、采样宽度、采样率和帧数。
3. 创建一个空的numpy数组,用于存储读取的音频数据。
4. 循环读取每一帧的数据,并将左声道的值存储到numpy数组中。
5. 设置采样率Fs为音频文件的采样率。
6. 使用scipy库的specgram函数根据numpy数组绘制频谱图,设置NFFT为1024,Fs为采样率,noverlap为900。
7. 对绘制得到的频谱图数据进行处理,例如计算特定频率的平均值。
8. 可选地,使用pylab库的show函数显示频谱图。
下面是一个示例代码,你可以根据自己的需求进行修改和调整:
```python
import wave
import struct
import numpy as np
from scipy import *
from pylab import *
def Plot_fft_freq_chart(filename, plot=False):
wavefile = wave.open(filename, 'r') # 打开wav文件
nchannels = wavefile.getnchannels() # 获取声道数
sample_width = wavefile.getsampwidth() # 获取采样宽度
framerate = wavefile.getframerate() # 获取采样率
numframes = wavefile.getnframes() # 获取帧数
y = np.zeros(numframes) # 创建空的numpy数组
for i in range(numframes):
val = wavefile.readframes(1) # 读取每一帧的数据
left = val # 获取左声道的值
v = struct.unpack('h', left)[0]
y[i = v
Fs = framerate # 设置采样率
try:
data, freqs, bins, im = specgram(y, NFFT=1024, Fs=Fs, noverlap=900) # 绘制频谱图
mm = data # 获取特定频率的数据
mm = 10. * np.log10(mm + 1e-4) # 数据处理
except Exception as e:
print("error is: ", e)
return -50
freq1khz_value = np.mean(mm) # 计算特定频率的平均值
if plot:
show() # 显示频谱图
return freq1khz_value
filename = "20-20k.wav"
Plot_fft_freq_chart(filename, True)
```
请注意,以上代码中的函数`Plot_fft_freq_chart`用于绘制频谱图,并返回特定频率的平均值。你可以根据自己的需求进行调整和修改。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [使用python绘制wav 音频文件频谱图](https://blog.csdn.net/es15071848238/article/details/121827343)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [【python数字信号处理】——scipy库设计滤波器(IIR为例)、绘制滤波器频谱响应、IIR滤波器滤波、读写wav...](https://blog.csdn.net/qq_45769063/article/details/123656023)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文