首页 > 编程语言 >python绘制wav音频文件波形图

python绘制wav音频文件波形图

时间:2023-03-26 21:02:02浏览次数:43  
标签:python len wave 波形图 time wav data pl

python绘制wav音频文件波形图

 

#-*- coding: utf-8 -*-
import wave
import pylab as pl
import numpy as np
print('working')
#打开wav文档
file = wave.open(r"02.wav", "rb")
#读取格式信息
#(nchannels, sampwidth,framerate, nframes, comptype, compname)
params =file.getparams()
nchannels,sampwidth,framerate,nframes = params[:4]
#读取波形数据
str_data =file.readframes(nframes)
#文件使用完毕,关闭文件
file.close()
#将波形数据装换成数组
wave_data = np.fromstring(str_data, dtype=np.short)
wave_data.shape = (-1, 2)
wave_data = wave_data.T  #矩阵转置
time = np.arange(0, nframes) * (1.0 /framerate)
print ("time:", len(time))
print ("wave_data:", len(wave_data[0][0:len(time)]))
#绘制波形
"""
subplot(mnp) / (m,n,p)是将多个图画到一个平面上的工具.
其中,m表示是图排成m行,n表示图排成n列,也就是整个figure中有n个图是排成一行的,一共m行,
如果m=2就是表示2行图.p表示图所在的位置,p=1表示从左到右从上到下的第一个位置.
"""
pl.subplot(2, 1, 1)  #这里也可以使用pl.subplot(211)
pl.plot(time[22000:24300], wave_data[0][0:len(time)][22000:24300])
pl.subplot(2, 1, 2)  #这里也可以使用pl.subplot(212)

pl.plot(time[22000:24300], wave_data[1][0:len(time)][22000:24300], c="g")
pl.xlabel("time (seconds)")
pl.show()

 

 

#################

标签:python,len,wave,波形图,time,wav,data,pl
From: https://www.cnblogs.com/herd/p/17259522.html

相关文章

  • python解析身份证获取年龄、出生日期、性别
    importreimportdatetimedefparse_id_card(id_card):#获取身份证号中的出生年月日和性别和年龄birthday_pattern=re.compile(r'\d{6}(\d{4})(......
  • 关于python编程中try...except的嵌套使用说明及注意事项
    今天笔者在写一个脚本时,情况比较复杂,在脚本中使用了try...except的嵌套,遇到了一些与预期不一样的结果于是笔者又研究了一下,try...except的嵌套使用,首先有一点是肯定的,那......
  • Python2.X和Python3.X版本有哪些主要的区别
    1.print函数在Python2中,print语句是关键字而不是函数,其语法如下:print"Hello,World!"在Python3中,print是一个函数,需要使用小括号来包裹print参数。如下:print("Hell......
  • 用Python解决Excel问题的最佳姿势
    「问题说明」这次要处理的excel有两个sheet,要根据其中一个sheet的数据来计算另外一个sheet的值。造成问题的点在于,要计算值的sheet里不仅仅有数值,还有公式。我们来看一下:如......
  • Centos7安装Python3.7
    说明:全部操作都在root用户下执行,python3.7安装在/root/python3目录下1.安装编译相关工具yum-ygroupinstall"Developmenttools"yum-yinstallzlib-develbzip2-dev......
  • python进制转换
    1. python中可以使用内置函数进行进制间的转换.bin(): 其他进制转换为二进制oct(): 其他进制转换为八进制int(): 其他进制转换为十进制he......
  • python中sorted排序
     key是自定义函数reverse=False,升序(默认)reverse=True,倒序#不区分大小写排序sorted(['bob','aBout','ZOO','Credit'],key=str.lower)#按绝对值排序sorted([36,5,-12......
  • python-concurrent
    python-concurrent概述__all__=('FIRST_COMPLETED','FIRST_EXCEPTION','ALL_COMPLETED','CancelledError','TimeoutError','BrokenExec......
  • python-threading
    python-threading目录python-threadingthreadingThread创建线程Thread方法属性守护线程线程锁Lockthreading.Lockthreading.RLock事件对象EventConditionTimerimportthr......
  • 关于python中的OSError报错问题
    Traceback(mostrecentcalllast): File"main.py",line1,in<module>   fromtrainerimportTrainer File"/home/visionx/mt/qg/paragraph_nqg_max_point_......