"""Python绘制语谱图"""
"""Python绘制时域波形""" # 导入相应的包
import numpy, wave
import matplotlib.pyplot as plt
import numpy as np
import os filepath = 'G:/实战培训/Python生成语谱图/ReNoise/Prim10/' # 添加路径
filename = os.listdir(filepath) # 得到文件夹下的所有文件名 for i in range(len(filename)):
f = wave.open(filepath + filename[i], 'rb') # 调用wave模块中的open函数,打开语音文件。
params = f.getparams() # 得到语音参数
nchannels, sampwidth, framerate, nframes = params[:4] # nchannels:音频通道数,sampwidth:每个音频样本的字节数,framerate:采样率,nframes:音频采样点数
strData = f.readframes(nframes) # 读取音频,字符串格式
wavaData = np.fromstring(strData, dtype=np.int16) # 得到的数据是字符串,将字符串转为int型
wavaData = wavaData * 1.0/max(abs(wavaData)) # wave幅值归一化
wavaData = np.reshape(wavaData, [nframes, nchannels]).T # .T 表示转置
f.close() #(1)绘制语谱图
plt.figure()
plt.specgram(wavaData[0], Fs=framerate, scale_by_freq=True, sides='default') # 绘制频谱
plt.xlabel('Time(s)')
plt.ylabel('Frequency')
plt.title("Spectrogram_{}".format(i+1))
plt.savefig('G:/实战培训/Python生成语谱图/语谱图/{}.jpg'.format(filename[i][:-4]))
plt.show() #(2)绘制时域波形
time = np.arange(0, nframes) * (1.0 / framerate)
time = np.reshape(time, [nframes, 1]).T
plt.plot(time[0, :nframes], wavaData[0, :nframes], c="b")
plt.xlabel("time(seconds)")
plt.ylabel("amplitude")
plt.title("Original wave")
plt.savefig('G:/实战培训/Python生成语谱图/语谱图/{}_.jpg'.format(filename[i][:-4])) # 保存绘制的图形
plt.show()

Python绘制语谱图+时域波形

绘制图形展示:2019-07-06 11:39:41

Python绘制语谱图+时域波形的更多相关文章

  1. python生成语谱图

    语音的时域分析和频域分析是语音分析的两种重要方法,但是都存在着局限性.时域分析对语音信号的频率特性没有直观的了解,频域特性中又没有语音信号随时间的变化关系.而语谱图综合了时域和频域的优点,明显的显示出 ...

  2. Matlab 语谱图(时频图)绘制与分析

    Matlab 语谱图(时频图)绘制与分析 语谱图:先将语音信号作傅里叶变换,然后以横轴为时间,纵轴为频率,用颜色表示幅值即可绘制出语谱图.在一幅图中表示信号的频率.幅度随时间的变化,故也称" ...

  3. 使用python绘制根轨迹图

    最近在学自动控制原理,发现根轨迹这一张全是绘图的,然而书上教的全是使用matlab进行计算机辅助绘图.但国内对于使用python进行这种绘图的资料基本没有,后来发现python-control包已经将 ...

  4. wxpython多线程通信的应用-实现边录音边绘制音谱图

    #!bin/bash/python # -*- coding=utf-8 -*- from __future__ import division import threading import wx ...

  5. 【转】使用Python matplotlib绘制股票走势图

    转载出处 一.前言 matplotlib[1]是著名的python绘图库,它提供了一整套绘图API,十分适合交互式绘图.本人在工作过程中涉及到股票数据的处理如绘制K线等,因此将matplotlib的使 ...

  6. 用Python 绘制分布(折线)图

    用Python 绘制分布(折线)图,使用的是 plot()函数. 一个简单的例子: # encoding=utf-8 import matplotlib.pyplot as plt from pyla ...

  7. Python绘制六种可视化图表详解,三维图最炫酷!你觉得呢?

    Python绘制六种可视化图表详解,三维图最炫酷!你觉得呢? 可视化图表,有相当多种,但常见的也就下面几种,其他比较复杂一点,大都也是基于如下几种进行组合,变换出来的.对于初学者来说,很容易被这官网上 ...

  8. python数据可视化(一)——绘制随机漫步图

    数据可视化指的是通过可视化表示来探索数据,它与数据挖掘紧密相关. python有一系列的可视化和分析工具,最流行的工具之一是matplotlib,它是一个数学绘图库. 实现绘制随机漫步图   利用ra ...

  9. python绘制疫情图

    python中进行图表绘制的库主要有两个:matplotlib 和 pyecharts, 相比较而言: matplotlib中提供了BaseMap可以用于地图的绘制,但是个人觉得其绘制的地图不太美观, ...

随机推荐

  1. 常用user agent

    测试user agnet的网站: http://whatsmyuseragent.com/ Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) ...

  2. c#-WPF string,color,brush之间的转换

    原文:c#-WPF string,color,brush之间的转换 String转换成Color string-"ffffff" Color color = (Color)Colo ...

  3. COM编程基础(C++)

    转自:http://www.yesky.com/20020715/1620482_1.shtml (作为一个初学者,觉得本文挺好,推荐给大家) 这篇文章是给初学者看的,尽量写得比较通俗易懂,并且尽量避 ...

  4. 【转载】FusionSphere架构详解

    FusionSphere底层使用Xen架构: 1.单台物理机上建立hypervisor系统. 2.将所有单个hypervisor系统整合起来管理使用. 安装CNA节点,所有的物理服务器都会先成为CNA ...

  5. 读BeautifulSoup官方文档之与bs有关的对象和属性(1)

    自从10号又是5天没更, 是, 我再一次断更... 原因是朋友在搞python, 老问我问题, 我python也是很久没碰了, 于是为了解决他的问题, 我只能重新开始研究python, 为了快速找回感 ...

  6. WPF Layout 系统概述——Measure

    原文:WPF Layout 系统概述--Measure 前言 在WPF/Silverlight当中,如果已经存在的Element无法满足你特殊的需求,你可能想自定义Element,那么就有可能会面临重 ...

  7. .net core api 跨域

    什么是跨域? 跨域,指的是浏览器不能执行其他网站的脚本.它是由浏览器的同源策略造成的,是浏览器对JavaScript施加的安全限制. 所谓同源是指,域名,协议,端口均相同,不明白没关系,举个栗子: h ...

  8. create table as 复制not null

    创建一张表包含非空约束,唯一约束和check约束 SQL> create table dept( 2 ename varchar2(20) constraint mep_ename_nn not ...

  9. 如何在项目中添加Log4net_web.config

    <log4net> <appender name="ConsoleAppender" type="log4net.Appender.ConsoleApp ...

  10. [转]深入Android内存泄露

    深入内存泄露 Android应用的内存泄露,其实就是java虚拟机的堆内存泄漏. 当然,当应用有ndk,jni时,没有及时free,本地堆也会出现内存泄漏. 本文只是针对JVM内存泄漏应用,进行阐述分 ...