码迷,mamicode.com
首页 > 编程语言 > 详细

Python绘制wav文件音频图(静态)[matplotlib/wave]

时间:2019-04-12 23:13:16      阅读:480      评论:0      收藏:0      [点我收藏+]

标签:.com   from   python   close   src   odi   com   width   rate   

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
绘制波形图

plottingWaveform.py
"""

import wave
import pylab as pl
import numpy as np

print(working)

# 打开wav文档
file = wave.open(r"mic4.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, wave_data[0][0:len(time)])
pl.subplot(2, 1, 2)  # 这里也可以使用pl.subplot(212)

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

技术图片

 

Python绘制wav文件音频图(静态)[matplotlib/wave]

标签:.com   from   python   close   src   odi   com   width   rate   

原文地址:https://www.cnblogs.com/douzujun/p/10699129.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!