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)相关推荐

  1. python画图标题为蓝色_python绘制语谱图怎么设置成黄蓝色

    展开全部 语音的时域分析和频32313133353236313431303231363533e59b9ee7ad9431333431333937域分析是语音分析的两种重要方法,但是都存在着局限性.时域 ...

  2. python绘制语谱图(详细注释)

    用python 绘制语谱图 1.步骤: 1)导入相关模块 2)读入音频并获取音频参数  3)将音频转化为可处理形式(注意读入的是字符串格式,需要转换成int或short型) 代码如下: import ...

  3. python求语音信号短时能量、短时过零率、语谱图

    python语音信号处理(二) 一.短时能量 短时能量主要用于区分浊音段和清音段,因为浊音时E(i)值比清音时大得多:区分声母与韵母的分界和无话段与有话段分界. 计算第i帧语音信号yi(n)的短时能量 ...

  4. 不调包绘制音频语谱图并批量生成语谱图

    什么是语谱图 语谱图(Spectrogam)是表示语音频谱随时间变化的图形,其实是一个二维的图像,但却能表示三个维度的信息,横坐标表示时间,纵坐标表示频率,颜色的深浅来映射能量的大小.任一给定频率成分 ...

  5. python实现绘制信号序列语谱图

    python实现绘制信号序列语谱图 功能:绘制信号序列语谱图 代码: import numpy as np # 导入音频及绘图显示包 import librosa.display # 导入绘图工作的函 ...

  6. python实现时频谱,语谱图,mel语谱倒谱等

    python实现时频谱,语谱图,mel语谱倒谱等 可以和理论相结合学习:https://blog.csdn.net/qq_36002089/article/details/108378796 语音信号 ...

  7. python绘制语谱图(手动实现)

    1 原理分析 在获取语谱图数据之前,我们需要先了解短时傅里叶变换.语音信号是典型的非平稳信号,但是由于其非平稳性由发声器官的物理运动过程而产生,这种过程是相对变换缓慢的,在10~30ms以内可以认为是 ...

  8. 【语音信号处理】1语音信号可视化——时域、频域、语谱图、MFCC详细思路与计算、差分

    基本语音信号处理操作入门 1. 数据获取 2. 语音信号可视化 2.1 时域特征 2.2 频域特征 2.3 语谱图 3. 倒谱分析 4. 梅尔系数 4.1 梅尔频率倒谱系数 4.2 Mel滤波器原理 ...

  9. 使用tensorflow和densenet神经网路实现语谱图声纹识别,即说话人识别。

    介绍 本文介绍一种使用tensorflow框架和densenet神经网路实现声纹语谱图识别算法,即说话人识别.本文侧重一种解决方案的思路,仅做了小批量数据的简单验证,收敛效果良好,还没有做大量数据集的 ...

最新文章

  1. 工作中 99% 能用到的 Git 命令
  2. 【笔记】Linux就该这么学-第六课第四章
  3. windows phone 快捷键
  4. day18(javaEE三大组件之一servlet(简介(一)))
  5. 解开发者之痛:中国移动MySQL数据库优化最佳实践
  6. Android USB audio on Android platform
  7. CodeMirror入门
  8. 「版本升级」MyEclipse CI 2018.12.0正式发布
  9. Integer类的缓存机制
  10. 黑苹果快捷键修改_小米air13.3安装黑苹果教程
  11. Linux60个小时速成
  12. 两人互殴打架派出所如何处理
  13. 新西兰梅西大学有计算机专业吗,新西兰梅西大学本科热门专业
  14. stm32 系统进入stop模式_STM32开发笔记78: 2种STOP模式的唤醒方法
  15. 资料1:中小企业局势分析
  16. 基于Outline构建团队的知识库 (上篇)
  17. win10使用KMS激活浏览器被t999劫持
  18. 已知含税单价、税率、数量,计算不含税单价、不含税金额、税额
  19. 超大Excel文件读写 :使用SXSSFWorkbook和EasyExcel方式对比
  20. C语言使用信号量解决生产者消费者模型的同步问题

热门文章

  1. 拉勾教育-求职技巧总结
  2. 语音合成TTS(Text-To-Speech,从文本到语音)
  3. C语言实现双向非循环链表(不带头结点)的基本操作
  4. 手机扫码登录实现原理
  5. 微信定向流量_我和小伙伴都玩微信定向流量了
  6. 微信小程序免费http转https
  7. Arduino ESP8266读取土壤湿度传感器 ADC
  8. 编译 bonjour
  9. 网易考拉Android客户端网络模块设计
  10. 【ESXi】失败 – “scsi0:0”的磁盘类型 2 不受支持或无效。请确保磁盘已导入