原文链接:http://blog.sina.com.cn/s/blog_40793e970102w3m2.html

本篇尝试使用Python对音频文件进行频谱分析。在语音识别领域对音频文件进行频谱分析是一项基本的数据处理过程,同时也为后续的特征分析准备数据。

直接上Python代码:

import wave
import pyaudio
import numpy
import pylab#打开WAV文档,文件路径根据需要做修改
wf = wave.open("D:\\Python\\wavs\\Do-piano-2.20s.wav", "rb")
#创建PyAudio对象
p = pyaudio.PyAudio()
stream = p.open(format=p.get_format_from_width(wf.getsampwidth()),
channels=wf.getnchannels(),
rate=wf.getframerate(),
output=True)
nframes = wf.getnframes()
framerate = wf.getframerate()
#读取完整的帧数据到str_data中,这是一个string类型的数据
str_data = wf.readframes(nframes)
wf.close()
#将波形数据转换为数组
# A new 1-D array initialized from raw binary or text data in a string.
wave_data = numpy.fromstring(str_data, dtype=numpy.short)
#将wave_data数组改为2列,行数自动匹配。在修改shape的属性时,需使得数组的总长度不变。
wave_data.shape = -1,2
#将数组转置
wave_data = wave_data.T
#time 也是一个数组,与wave_data[0]或wave_data[1]配对形成系列点坐标
#time = numpy.arange(0,nframes)*(1.0/framerate)
#绘制波形图
#pylab.plot(time, wave_data[0])
#pylab.subplot(212)
#pylab.plot(time, wave_data[1], c="g")
#pylab.xlabel("time (seconds)")
#pylab.show()
#
# 采样点数,修改采样点数和起始位置进行不同位置和长度的音频波形分析
N=44100
start=0 #开始采样位置
df = framerate/(N-1) # 分辨率
freq = [df*n for n in range(0,N)] #N个元素
wave_data2=wave_data[0][start:start+N]
c=numpy.fft.fft(wave_data2)*2/N
#常规显示采样频率一半的频谱
d=int(len(c)/2)
#仅显示频率在4000以下的频谱
while freq[d]>4000:
d-=10
pylab.plot(freq[:d-1],abs(c[:d-1]),'r')
pylab.show()
实验结果

图1:本文博主发“啊”音的频谱分析图:
图2:博主女儿(4岁半)发“啊”音的频谱分析图:
图3:IPhone上音乐软件发“Do”音(C4)的频谱分析图:
图4:博主发“Do”音的频谱分析图:

使用Python对音频进行频谱分析相关推荐

  1. python音频频谱_小白音频测试之Python对音频进行频谱分析

    初衷 语音识别领域对音频文件进行频谱分析是一项基本的数据处理过程,同时也为后续的特征分析准备数据. 前驱知识 Python需要使用的相关库wave https://docs.python.org/3/ ...

  2. 转:使用Python对音频进行频谱分析

    #转自 http://blog.sina.com.cn/s/blog_40793e970102w3m2.html import wave import pyaudio import numpy imp ...

  3. python音频实时频谱分析_基于python的音频设计及频谱分析

    74 Internet Technology 互联网 + 技术 一.引言 WAV 是 Microsoft 开发的一种声音文件格式,虽然它支持多种压缩格式,但是它通常被用来保存未压缩的声音数据(PCM ...

  4. python播放音频及playsound模块解除占用的3种方法

    python播放音频文件及playsound模块解除占用的3种方法 pip install playsound 播放mp3文件 from playsound import playsound impo ...

  5. ffmpeg m4a 转pcm_FFmpeg提取视频音频python将音频转文字

    ffmpeg提取视频中的音频-pcm ffmpeg -y -i input.mp4 -vn -codec copy out.m4a ffmpeg -i out.m4a -f segment -segm ...

  6. python学习音频-详解python播放音频的三种方法

    第一种 使用pygame模块 pygame.mixer.init() pygame.mixer.music.load(self.wav_file) pygame.mixer.music.set_vol ...

  7. python学习音频-机器学习利用Python进行音频数据增强

    2019-09-24 机器学习利用Python进行音频数据增强 数据增强通常用于机器学习和深度学习,以便在训练产生大量数据后获得良好的性能. 在这篇文章中,我将展示如何用一些音频增强技术使用输入音频文 ...

  8. python怎么实现音乐快进,python将音频进行变速的操作方法

    有的时候需要手里的音频文件变速听,或可能变慢或可能变快 这里使用的python进行操作,我的目标是将文件转成2倍速 首先需要安装插件 pip install ffmpeg 然后再执行: from ff ...

  9. python可以播放音乐吗_详解python播放音频的三种方法

    第一种 使用pygame模块 pygame.mixer.init() pygame.mixer.music.load(self.wav_file) pygame.mixer.music.set_vol ...

最新文章

  1. Vivado IP的两种综合方式:Global 和 Out-Of-Context
  2. RNN的优秀变种: LSTM GRU
  3. JS中setTimeout()的使用方法具体解释
  4. Redis在SSM项目中的简单使用
  5. 实现简单的网页间的跳转
  6. php 5.3 require,PHP5.3提示PHP Wrequire(./xx.php)arning: [function.require]: failed to open stream
  7. java的获取声音振幅_录音获取声音振幅波形显示
  8. yml 后面的配置覆盖前面的
  9. Erlang --- gen_server
  10. matlab仿真建模,matlab系统建模仿真.ppt
  11. 排水管网计算机模拟,基于SWMM的城市合流制排水管网计算机模拟方法.ppt
  12. 分辨率、像素、像素尺寸、GSD、图片文件大小
  13. C++中STL用法超详细总结
  14. 到底有多少种病毒?科学家们分析了100多种SARS-CoV-2变种的功能
  15. 一则两年前的可怕预言:2013年中国经济危机将爆发!
  16. 启动错误Passenger::SecurityException “Line too long”
  17. 兔聊图片二维码logo个性制作
  18. java:熊怪吃核桃
  19. Servlet 原理
  20. Android之单元测试

热门文章

  1. 一个关于SDWAN单臂部署方案验证的实验
  2. configure配置文件
  3. Mac忘记登录密码解决方案
  4. 解决:Short read of DER length
  5. sap 服务器 拷贝文件,本文示例如何使用SAP FTP Function将文件从应用服务器传输到另外一个FTP服务器上。...
  6. 搜狗开启AI之路:招股书90次提到AI,王小川持股超10亿
  7. 于飞seo:seo高级优化技巧 提升网站排名攻略
  8. Python - 文本处理模块
  9. GSMA RCS标准的演变
  10. 解决python通过pip离线安装flask,numpy报错解决(centos)