一、对纯净音频进行频谱分析

1、打开要进行分析的wav文件:

wf = wave.open("F:\\pycharm\\audio.wav", "rb")

2、创建PyAudio对象

p = pyaudio.PyAudio()
stream = p.open(format=p.get_format_from_width(wf.getsampwidth()),channels=wf.getnumchannels(),rate=wf.getframerate(),output=True)
numframes = wf.getnumframes()
framerate = wf.getframerate()

3、读取完整的帧数据

str_data = wf.readframes(numframes)
wf.close()

4、修改采样点数和起始位置从而进行不同位置和长度的音频波形分析

N = 44100
start = 0
df = framerate / (N - 1)
freq = [df * n for n in range(0, N)]
wave_data2 = wave_data[0][start:start + N]
c = numpy.fft.fft(wave_data2) * 2 / N

5、将频率在4000以下的频谱显示出来

while freq[d] > 4000:d -= 10
pylab.plot(freq[:d - 1], abs(c[:d - 1]), 'r')
pylab.show()

结果如下所示:

二、对混入噪声后的音频进行频谱分析

与前面的方法一样,但是出现了错误,具体如下:


出错原因:是wav格式的问题;Wav格式有很多种,但是wave.open()中支持的是pcm的格式,因此需要进行格式的转变。

三、解决方法

1、在window系统下下载sox;用它做格式转换。
sox的安装教程
按照如上教程安装成功并配置环境变量后,cmd 输入sox 查看是否成功安装。
如下说明sox已成功安装:

2、在python中安装sox包
Python包sox,提取码:3ii4。
在cmd下按如下方式安装:

3、在对音频进行转换时,需要在音频文件所在路径下进行,有如下两种方式
(1)利用cd到音频文件所在路径

(2)直接在音频文件所在路径打开cmd命令窗口

输入sox noiseaudio.wav -b 16 -e signed-integer 00.wav进行转换

成功后再用上述方法绘制频谱,结果如下:

对加噪音前后的音频信号进行频谱分析相关推荐

  1. 基于matleb对音频信号的频谱分析(幅频)和滤波分析

    基于matlab对音频信号的频谱分析(幅频)和滤波分析 频谱分析 函数Spectrum.m 功能是生成单边频谱图和双边频谱图. 记得使用函数前要加 figure;% 建立窗口放频谱 以下是函数代码: ...

  2. matlab给曲线加噪音,请问如何在MATLAB里在一个信号曲线上加上1到3个高斯白噪声?...

    MATLAB中产生高斯白噪声的两个函数 MATLAB中产生高斯白噪声非常方便,可以直接应用两个函数,一个是WGN,另一个是AWGN.WGN用于产生高斯白噪声,AWGN则用于在某一信号中加入高斯白噪声. ...

  3. 基于matlab的音频信号低通滤波实验

    基于matlab的音频信号低通滤波实验 一.实验任务 录制语音信号,查看其时域频谱图. 加入高频噪声信号,并查看其时域频谱图. 设计低通滤波器,将带有高频噪声的语音信号经过低通滤波器,将噪声滤除,查看 ...

  4. 数字信号处理实验二:数字语音信号与频谱分析

    文章目录 一.实验目的 二.实验过程与结果 1.数字音频信号的频谱分析 2. 数字音频信号的频谱分析 3. 数字和弦音频信号的生成 三.结果分析与实验结论 1.读数字音频信号的频谱分析 2.数字和弦音 ...

  5. 神经网络调参训练集噪音比例对网络性能的影响

    这次用于实验训练集噪音比例对网络性能的影响,网络结构81*60*2,训练集用的是mnist的训练集的0和1,测试集用的mnist的测试集的0和1,学习率固定位0.1,batchsize=20,试验了训 ...

  6. 语音识别数据预处理(添加噪音)和特征提取

    0 前言    在做ASR和KWS实验时,必不可少的需要对语音数据预处理,提取特征(业内常见是提取为MFCC),最后再喂入模型中.数据预处理可分为离线处理和在线处理: 离线处理: 训练之前先对语音数据 ...

  7. 实验 9 音频信号采集及处理

    实验 9 音频信号采集及处理 代码剖析 声音回放 显示音频时域波形 显示音频频域波形 声音主要频率1 声音主要频率2 合成声音播放 播放加噪信号 加噪之后的时域和频谱图 显示低通滤波器特性 播放滤波后 ...

  8. 【Matlab】音频信号谱分析及椭圆滤波处理

    前言 一个使用matlab对音频信号进行频谱分析及滤波处理的学习笔记,本文使用的是椭圆滤波器. 音频下载 demo.mp3 频谱分析 读取音频信号进行傅里叶变换 [x,fs]=audioread('D ...

  9. matlab 加频偏,关于BPSK用dmod调制后加频偏的问题

    这是我做的关于伪码捕获的仿真其中用了dmod 函数进行调制和解调  现在要在信道中加频偏  请问怎么加  不要信道衰减  不要延时  只要频偏 %%%%%%%%%%%%%%%%%%%%%%%%%%%% ...

最新文章

  1. NVIDIA GPU卷积网络的自动调谐
  2. Hippo如何进入WebAssembly?一文教会你
  3. Netkiller Architect 手札之前言
  4. 配置 influxDB 鉴权及 HTTP API 写数据的方法
  5. 都快下班了,才来写日记
  6. jqprint控件使用
  7. JAVA多线程及线程状态转换
  8. 揭秘“清华园”的“N”种打开方式!
  9. Freezer - 备份云硬盘实现
  10. cmd 日志刷新卡屏
  11. 计算机网络—UDP协议
  12. 接口测试——并行上传文件
  13. simplelink_cc13x0_sdk中GPIO的使用
  14. 计算机相关知识——阻塞和非阻塞,同步和异步等相关概念
  15. 2020-12-22 ACM集训一(二维数组与结构体)
  16. 【转贴】如何读好Phd博士
  17. 在Google 上搜书的方法
  18. TeamViewer试用到期修改MAC地址(解决找不到“网络地址”选项的问题)
  19. libyuv的编译与使用
  20. 《飞轮效应》 - 系统动力学 - 增强回路 - 推荐序 /刘润

热门文章

  1. b站视频-尚硅谷jQuery教程张晓飞老师-笔记
  2. 对于阿里云手机 OS 大家都怎么看?
  3. 2013年全国硕士研究生入学统一考试英语(一)和(二)考试大纲新增的60个词汇详解
  4. Matlab系列之变量
  5. 一次性读懂云计算中的6大热门词汇
  6. 【ACWing】167. 木棒
  7. 基于J2EE的科研项目管理系统设计与实现
  8. 【181125】VC++ 绘制立方体的生成与控制旋转程序源代码
  9. 跟我一起做微信开发(一)——开通微信公共号(开发模式)
  10. 音视频开发(十四):OpenGL 与 OpenGL ES2区别