python将批量音频信号(wav)转化为语谱图并保存(jpg/png)
python将批量音频信号(wav)转化为语谱图并保存(jpg/png)
1. 导入需要的函数库
import numpy as np
import wave
import matplotlib.pyplot as plt
import os
2. 读取wav格式的信号
COOKED_DIR = 'D:/proj1/Test1/cough/cough/'
i = 0
for root, dirs, files in os.walk(COOKED_DIR):print("Root = ", root, "dirs = ", dirs, "files = ", files)for filename in files:print(filename)path_one = COOKED_DIR + filenameprint(path_one)f = wave.open(path_one, 'rb')
3. 语音信号处理
params = f.getparams() # 一次性返回所有的音频参数,声道数、量化位数、采样频率、采样点数nchannels, sampwidth, framerate, nframes = params[:4] # 声道/量化数/采样频率/采样点数str_data = f.readframes(nframes) # 指定需要读取的长度(以取样点为单位),返回字符串类型数据waveData = np.frombuffer(str_data, dtype=np.int16) # 将字符串转化为intwaveData = waveData * 1.0 / (max(abs(waveData))) # wave幅值归一化
4.绘图
plt.specgram(waveData, NFFT=512, Fs=framerate, noverlap=500, scale_by_freq=True, sides='default')plt.ylabel('Frequency')plt.xlabel('Time(s)')
5. 保存绘图
plt.axis('off')name = str(i) # 做名字i += 1plt.savefig("filepath"+name+".jpg", bbox_inches='tight', pad_inches=0) # 后两项为去除白边plt.show()
6. 结果
另外:想要得到合适的图片像素做深度学习,可以设置:输出224的图片像素大小
plt.rcParams['figure.figsize'] = (4.48, 4.48) # 2.24, 2.24 设置figure_size尺寸plt.rcParams['savefig.dpi'] = 50 # 图片像素 这样输出的就是4.48*50=224
- 重点
- params = f.getparams() 用于一次性返回音频文件的各项参数。
- plt.specgram()用于绘制语谱图。
- plt.savefig(“filepath”+name+".png", bbox_inches=‘tight’, pad_inches=0)用于保存图片。
python将批量音频信号(wav)转化为语谱图并保存(jpg/png)相关推荐
- python画图标题为蓝色_python绘制语谱图怎么设置成黄蓝色
展开全部 语音的时域分析和频32313133353236313431303231363533e59b9ee7ad9431333431333937域分析是语音分析的两种重要方法,但是都存在着局限性.时域 ...
- python绘制语谱图(详细注释)
用python 绘制语谱图 1.步骤: 1)导入相关模块 2)读入音频并获取音频参数 3)将音频转化为可处理形式(注意读入的是字符串格式,需要转换成int或short型) 代码如下: import ...
- python求语音信号短时能量、短时过零率、语谱图
python语音信号处理(二) 一.短时能量 短时能量主要用于区分浊音段和清音段,因为浊音时E(i)值比清音时大得多:区分声母与韵母的分界和无话段与有话段分界. 计算第i帧语音信号yi(n)的短时能量 ...
- 不调包绘制音频语谱图并批量生成语谱图
什么是语谱图 语谱图(Spectrogam)是表示语音频谱随时间变化的图形,其实是一个二维的图像,但却能表示三个维度的信息,横坐标表示时间,纵坐标表示频率,颜色的深浅来映射能量的大小.任一给定频率成分 ...
- python实现绘制信号序列语谱图
python实现绘制信号序列语谱图 功能:绘制信号序列语谱图 代码: import numpy as np # 导入音频及绘图显示包 import librosa.display # 导入绘图工作的函 ...
- python实现时频谱,语谱图,mel语谱倒谱等
python实现时频谱,语谱图,mel语谱倒谱等 可以和理论相结合学习:https://blog.csdn.net/qq_36002089/article/details/108378796 语音信号 ...
- python绘制语谱图(手动实现)
1 原理分析 在获取语谱图数据之前,我们需要先了解短时傅里叶变换.语音信号是典型的非平稳信号,但是由于其非平稳性由发声器官的物理运动过程而产生,这种过程是相对变换缓慢的,在10~30ms以内可以认为是 ...
- 【语音信号处理】1语音信号可视化——时域、频域、语谱图、MFCC详细思路与计算、差分
基本语音信号处理操作入门 1. 数据获取 2. 语音信号可视化 2.1 时域特征 2.2 频域特征 2.3 语谱图 3. 倒谱分析 4. 梅尔系数 4.1 梅尔频率倒谱系数 4.2 Mel滤波器原理 ...
- 使用tensorflow和densenet神经网路实现语谱图声纹识别,即说话人识别。
介绍 本文介绍一种使用tensorflow框架和densenet神经网路实现声纹语谱图识别算法,即说话人识别.本文侧重一种解决方案的思路,仅做了小批量数据的简单验证,收敛效果良好,还没有做大量数据集的 ...
最新文章
- 工作中 99% 能用到的 Git 命令
- 【笔记】Linux就该这么学-第六课第四章
- windows phone 快捷键
- day18(javaEE三大组件之一servlet(简介(一)))
- 解开发者之痛:中国移动MySQL数据库优化最佳实践
- Android USB audio on Android platform
- CodeMirror入门
- 「版本升级」MyEclipse CI 2018.12.0正式发布
- Integer类的缓存机制
- 黑苹果快捷键修改_小米air13.3安装黑苹果教程
- Linux60个小时速成
- 两人互殴打架派出所如何处理
- 新西兰梅西大学有计算机专业吗,新西兰梅西大学本科热门专业
- stm32 系统进入stop模式_STM32开发笔记78: 2种STOP模式的唤醒方法
- 资料1:中小企业局势分析
- 基于Outline构建团队的知识库 (上篇)
- win10使用KMS激活浏览器被t999劫持
- 已知含税单价、税率、数量,计算不含税单价、不含税金额、税额
- 超大Excel文件读写 :使用SXSSFWorkbook和EasyExcel方式对比
- C语言使用信号量解决生产者消费者模型的同步问题