Python绘制语谱图+时域波形

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

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

原文地址:https://www.cnblogs.com/Junlong/p/11142032.html

时间: 2024-10-10 20:25:36

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

python生成语谱图

语音的时域分析和频域分析是语音分析的两种重要方法,但是都存在着局限性.时域分析对语音信号的频率特性没有直观的了解,频域特性中又没有语音信号随时间的变化关系.而语谱图综合了时域和频域的优点,明显的显示出了语音频谱随时间的变化情况.语谱图的横轴为时间,纵轴为频率,任意给定频率成分在给定时刻的强弱用颜色深浅来表示.颜色深的,频谱值大,颜色浅的,频谱值小.语谱图上不同的黑白程度形成不同的纹路,称之为声纹,不同讲话者的声纹是不一样的,可用作声纹识别. 下面是在python中绘制语谱图: # 导入相应的包

Python科学计算(二)——正弦信号的时域波形与频谱图

Python科学计算(二)-- 正弦信号的时域波形与频域波形生成.计算与显示 # -*- coding: utf-8 -*- import numpy as np import matplotlib.pyplot as pl import matplotlib import math import random row = 4 col = 4 N = 500 fs = 5 n = [2*math.pi*fs*t/N for t in range(N)] axis_x = np.linspace(

python 绘制走势图

1.工具 matplotlib numpy 2.matplotlib使用 import matplotlib.pyplot as plt #plt用于显示图片import matplotlib.image as mping #mping用于读取图片import datetime as dtimport matplotlib.dates as mdatesfrom pylab import * def draw_trend_chart(dates,y):    mpl.rcParams['font

使用Python绘制漫步图

代码如下: 1 import matplotlib.pyplot as plt 2 from random import choice 3 class RandomWalk(): 4 def __init__(self,num_points=5000): 5 self.num_points=num_points 6 self.x_values=[0] 7 self.y_values=[0] 8 def fill_walk(self): 9 while len(self.x_values)<sel

使用python绘制常用的图表

使用python绘制常用的图表 本文介绍如果使用python汇总常用的图表,与Excel的点选操作相比,用python绘制图表显得比较比较繁琐,尤其提现在对原始数据的处理上.但两者在绘制图表过程中的思路大致相同,Excel中能完成的工作python大多也能做到.为了更清晰的说明使用python绘制图表的过程,我们在汇总图表的代码中进行注解,说明每一行代码的具体作用.并在文章的最后给出了自定义字体和图表配色的对应表. 准备工作 ? 1 2 3 4 5 import numpy as np impo

解读人:刘佳维,Spectral Clustering Improves Label-Free Quanti?cation of Low-Abundant Proteins(谱图聚类改善了低丰度蛋白的无标记定量)

一. 概述:(用精炼的语言描述文章的整体思路及结果) 本文选择四个不同的数据集,分为基于谱图数计数和基于峰值强度计数的无标记定量两种情况,对谱图进行聚类算法分析,提高了低丰度蛋白的可检测性,并开发了可直接使用的聚类方法的PD节点. 二. 研究背景: 无标记量化已成为许多基于质谱的蛋白质组学实验中的常见做法.近年来,聚类方法可以改善蛋白质组学数据集的分析的结论已广泛被人们所接受.本文旨在利用光谱聚类推断额外的肽谱匹配,并提高数据集中的无标记定量蛋白质组学数据的质量,改善低丰度蛋白的定量结果,同时提

无标定量|有标定量|谱图计数|XIC|AMT数据库|RT对对齐|母离子|子离子|SILVER|SRM|iBAQ|APEX|差异蛋白筛选|MaxQuant|PANDA|C-HPP

生物医学大数据-蛋白质定量 现今肽段定量效率存在巨大差异.比如相同质量蛋白质,但是肽段和蛋白信号不均一,在物理条件一致时,仅有70%的重复率,并且当重复次数变多时,overlapping在变少. 无标定量法 方法一是针对二级色谱的谱图计数,即统计二级色谱的数量,数量越多则蛋白丰度越高,但相同丰度蛋白也有不同的二级色谱数,所以算法目的是减少噪音. 方法二是针对一级色谱的离子流色谱峰XIC,即每个肽段的离子流色谱峰,可以取同一个肽段不同时间点上的信号强度,连接成峰,通过求该曲线的曲线下面积获取曲线信

Python学习思维导图

无意间碰到的一个大神整理的Python学习思维导图,感觉对初学者理清学习思路大有裨益,非常感谢他的分享. 详情见:https://woaielf.github.io/2017/06/13/python3-all/ 14 张思维导图 基础知识 数据类型 序列 字符串 列表 & 元组 字典 & 集合 条件 & 循环 文件对象 错误 & 异常 函数 模块 面向对象编程

用Enterprise Architecture绘制十种UML图

UML课程作业要求绘制十种UML图,选择Enterprise Architecture作为绘图工具,每次绘制图都要上网找教程,感觉十分麻烦,而且有些图没有找到具体教程,靠自己摸索找到了绘制方法,现在总结一下使用Enterprise Architecture如何绘制这十种图,方便大家使用.(写完博客后发表发现图都没了,坑爹的CSDN,大家按照文字描述的步骤也能顺利完成) 首先这十种图分别是: 概念类图,活动图,状态机图,用例图,顺序图,通讯图,设计类图,包图,组件图,部署图. 先来介绍一下前五种图