本例是一个简单的读取wav文件并进行绘图的程序。
在基本的Python平台之外,还需要安装PyLab库。
下载地址:http://wiki.scipy.org/PyLab
里面有 NumPy, SciPy, Matplotlib三个库的下载链接,自己下就OK啦。
# -*- coding: utf-8 -*- import wave import numpy import pylab as pl #打开wav文件 #open返回一个的是一个Wave_read类的实例,通过调用它的方法读取WAV文件的格式和数据 f = wave.open(r"D:\1.wav","rb") #读取格式信息 #一次性返回所有的WAV文件的格式信息,它返回的是一个组元(tuple):声道数, 量化位数(byte单位), 采 #样频率, 采样点数, 压缩类型, 压缩类型的描述。wave模块只支持非压缩的数据,因此可以忽略最后两个信息 params = f.getparams() nchannels, sampwidth, framerate, nframes = params[:4] #读取波形数据 #读取声音数据,传递一个参数指定需要读取的长度(以取样点为单位) str_data = f.readframes(nframes) f.close() #将波形数据转换成数组 #需要根据声道数和量化单位,将读取的二进制数据转换为一个可以计算的数组 wave_data = numpy.fromstring(str_data,dtype = numpy.short) wave_data.shape = -1,2 wave_data = wave_data.T time = numpy.arange(0,nframes)*(1.0/framerate) len_time = len(time)/2 time = time[0:len_time] ##print "time length = ",len(time) ##print "wave_data[0] length = ",len(wave_data[0]) #绘制波形 pl.subplot(211) pl.plot(time,wave_data[0]) pl.subplot(212) pl.plot(time, wave_data[1],c="r") pl.xlabel("time") pl.show()
这段代码很简单,但有一个地方特别值得注意一下:
len_time = len(time)/2 time = time[0:len_time]
之前参看网上的代码时,没有上面两行代码。程序报错:
raise ValueError("x and y must have same first dimension")
提示plot函数里的两个参数维度不同,于是打印了time 和 wave_data[0]的长度:
time length = 9000 wave_data[0] length = 4500
所以将time的长度截取一半,再run一边,图就出现啦。
相关推荐
主要介绍了Python实现读取txt文件中的数据并绘制出图形操作,涉及Python文件读取、数值运算及基于pylab库的图形绘制相关操作技巧,需要的朋友可以参考下
可直接运行 基于Python numpy pylab 创建一个分列式饼图 运行后直接出图 含PDF图像文件 程序使用说明: (1)我使用的是Python 3.7,这些常规代码基本任何python3版本都能运行; (2)可直接运行,比如用Pycharm...
用python的pylab画wave波形之sampwidth问题
Python 读取WAV文件 import wave import struct from scipy import * from pylab import * #读取wav文件,我这儿读了个自己用python写的音阶的wav filename = '1.wav' wavefile = wave.open(filename, 'r') # open ...
可直接运行 基于Python matplotlib pylab dates模块绘制时间图 运行后直接出图 含PDF图像文件 程序使用说明: (1)我使用的是Python 3.7,这些常规代码基本任何python3版本都能运行; (2)可直接运行,比如用...
本文实例讲述了Python使用pylab库实现绘制直方图功能。分享给大家供大家参考,具体如下: Python直方图 #!/usr/bin/python # -*- coding: utf-8 -*- import pylab as pl dataFile = "dataList.txt" tempList = [] ...
主要介绍了Python使用pylab库实现画线功能的方法,结合具体实例分析了Python使用pylab库的相关函数实现画线功能的操作技巧,并附带说明了相关函数与参数功能,需要的朋友可以参考下
可直接运行 基于Python pylab的箱型图、直方图绘制 运行后直接出图 含PDF图像文件 程序使用说明: (1)我使用的是Python 3.7,这些常规代码基本任何python3版本都能运行; (2)可直接运行,比如用Pycharm开发工具...
读取nii或者nii.gz文件中的信息,并且输出图像。 import matplotlib from matplotlib import pylab as plt import nibabel as nib from nibabel.viewers import OrthoSlicer3D file = '' #你的nii或者nii.gz文件...
首先创建有一个Python文件,并导入库文件: from scipy.io import wavfile from python_speech_features import mfcc, logfbank import matplotlib.pylab as plt1、首先创建有一个Python文件,并导入库文件: ...
pylab包下载,使用matplotlib之前需要下载此第三方包
晚上帮同学用Python脚本绘图,大概需求是读取一个txt文件的两列分别作为x和y的值,绘图即可,代码如下: #coding:utf-8 import numpy as np import matplotlib.pyplot as plt import pylab ## 绘制该文件中的数据 #...
PyLab Python脚本构建区域。资料库Desc: PyCORE-python的基础知识PyOOP-使用python的面向对象的编程方法TkinterLab-基于python tkinter(gui)库的应用程序。 PyGame-基于python pyGame库的应用程序。 抓取-使用...
本文实例讲述了Python使用matplotlib实现的图像读取、切割裁剪功能。分享给大家供大家参考,具体如下: # -*- coding:utf-8 -*- import sys reload(sys) sys.setdefaultencoding('utf-8') import matplotlib.pylab ...
数学使用 scipy、numpy、pylab 和 matplotlib 的基本信号处理示例。 这里的很多尝试都与 Julius O Smith III 的实验室 ( ) 中进行的研究工作有关。
python项目开发实战_房产价格数据可视化分析系统(网络爬虫+MySQL+pylab)_编程案例实例课程教程.pdf
# matplotlib背景透明示例图 # python 3.5 import numpy as np import matplotlib.pyplot as plt from pylab import mpl import scipy.stats as stats # 设置中文字体 mpl.rcParams['font.sans-serif'] = ['SimHei']...