首先是wave

def read_wav_data(filename):'''读取一个wav文件,返回声音信号的时域谱矩阵和播放时间'''filename="/home/chenyang/"+filename[2:]with wave.open(filename,"rb") as wav: # 打开一个wav格式的声音文件流num_frame = wav.getnframes() # 获取帧数num_channel=wav.getnchannels() # 获取声道数framerate=wav.getframerate() # 获取帧速率num_sample_width=wav.getsampwidth() # 获取实例的比特宽度,即每一帧的字节数str_data = wav.readframes(num_frame) # 读取全部的帧wav.close() # 关闭流wave_data = np.fromstring(str_data, dtype = np.short) # 将声音文件数据转换为数组矩阵形式wave_data.shape = -1, num_channel # 按照声道数将数组整形,单声道时候是一列数组,双声道时候是两列的矩阵wave_data = wave_data.T # 将矩阵转置#wave_data = wave_data return wave_data, framerate

接着就是

from python_speech_features import mfcc
from python_speech_features import delta
def GetMfccFeature(wavsignal, fs):# 获取输入特征feat_mfcc=mfcc(wavsignal[0],fs)feat_mfcc_d=delta(feat_mfcc,2)feat_mfcc_dd=delta(feat_mfcc_d,2)# 返回值分别是mfcc特征向量的矩阵及其一阶差分和二阶差分矩阵wav_feature = np.column_stack((feat_mfcc, feat_mfcc_d, feat_mfcc_dd))return wav_feature

接着就是

from scipy.io import wavfile as wav
fs, audio = wav.read(file)

这个是语谱图函数

def GetFrequencyFeature(wavsignal, fs):''''''if(16000 != fs):raise ValueError('[Error] ASRT currently only supports wav audio files with a sampling rate of 16000 Hz, but this audio is ' + str(fs) + ' Hz. ')# wav波形 加时间窗以及时移10mstime_window = 25 # 单位mswindow_length = fs / 1000 * time_window # 计算窗长度的公式,目前全部为400固定值wav_arr = np.array(wavsignal)#wav_length = len(wavsignal[0])wav_length = wav_arr.shape[1]range0_end = int(len(wavsignal[0])/fs*1000 - time_window) // 10 + 1 # 计算循环终止的位置,也就是最终生成的窗数data_input = np.zeros((range0_end, window_length // 2), dtype = np.float) # 用于存放最终的频率特征数据data_line = np.zeros((1, window_length), dtype = np.float)for i in range(0, range0_end):p_start = i * 160p_end = p_start + 400data_line = wav_arr[0, p_start:p_end]data_line = data_line * w # 加窗data_line = np.abs(fft(data_line)) / wav_lengthdata_input[i]=data_line[0: window_length // 2] # 设置为400除以2的值(即200)是取一半数据,因为是对称的#print(data_input.shape)data_input = np.log(data_input + 1)return data_input

还用
torchaudio
https://pytorch.org/audio/
aukit

处理音频文件的python模块相关推荐

  1. python如何引用txt_如何使用pip requirements.txt文件安装python模块附加组件

    pip requirements.txt documentation表示可以使用类似的线安装附加功能 MyPackage==3.0 [PDF] 所以在我的requirements.txt文件中,我有一 ...

  2. python调用pyd文件_如何将.pyd文件作为python模块导入?

    我在用PyCharm.我在以下位置有一个python脚本: C:\Users\XYZ\PycharmProjects\Project1\playground.py playground.py只有一行代 ...

  3. Openpyxl:读取/写入Excel文件的Python模块

    Python openpyxl module is a native library to work with excel files. We can read excel files as well ...

  4. 用 .pth 文件附加 Python 模块搜索路径

    上一篇 Python 的模块搜索路径,介绍了 Python 的模块搜索路径,最终起作用的是 sys.path 路径列表.如果要自定义自己的搜索路径,就是要怎么定制 sys.path 的内容.可以简单的 ...

  5. hdf5 python_HDF5 文件及Python模块之h5py

    HDF5文件 什么是HDF5文件呢?先引用一波维基百科的介绍,『层级数据格式(Hierarchical Data Format:HDF)是设计用来存储和组织大量数据的一组文件格式(HDF4,HDF5) ...

  6. Linux文件操作--Python模块

    蓝桥云课笔记 一.认识Linux 1.快捷操作 2.查看目录结构:tree 3.绝对路径 4.新建目录 二.Linux文件操作 1.**新建空白文件** 2.**复制** 3.**删除** 4.**移 ...

  7. python怎样导出py文件_导出python模块(到字符串或py文件)

    摘要: 我想要一个'module'类型的变量并导出它.在 我使用import从.py文件导入python模块并对其进行更改.我需要将模块导出回一个文件,或者获取完整模块的字符串表示形式,然后将其写入磁 ...

  8. Python模块(自己整理并不完整)

    PY核心模块方法 ******************** os模块: os.remove() 删除文件  os.unlink() 删除文件  os.rename() 重命名文件  os.listdi ...

  9. python模块初始与time、datetime及random

    模块初始 模块的概念(本质为一个py文件) python模块可以将代码量较大的程序分割成多个有组织的.彼此独立但又能互相交互的代码片段,这些自我包含的有组织 的代码段就是模块,模块在物理形式上表现为以 ...

最新文章

  1. mysql 并行复制搭建_基于GTID的主从实践系列之④并行复制搭建及测试
  2. ios浏览器不支持onblur事件
  3. 用ARM DS-5进行android linux开发
  4. 机器学习项目实战----泰坦尼克号获救预测(二)
  5. 微信浏览器如何禁止iPhone手机上下滑动网页
  6. 使用CleanMyMac软件进行文件清理
  7. 信捷XC系列PLC-编程
  8. 目前大多数计算机工作原理采用的是,计算机应用基础复习题2016有答案
  9. 初一计算机知识点都教啥,10分钟试讲几个知识点?初中信息技术教师招聘面试试讲教案真题:补间动画...
  10. 小米android通知栏图标不显示,MIUI开发版更新:已修复原生样式下部分通知图标不显示的问题...
  11. 搅拌摩擦焊有限元仿真分析学习笔记
  12. Pytho读取Xml文件
  13. 记录一次阿里云服务器迁移
  14. 深入理解设计模式-抽象工厂模式
  15. 2020年中国中医针灸行业发展现状及未来发展前景分析,国家政策扶持,针灸行业发展前景良好「图」
  16. 公网IP,内网IP,动态IP,静态IP的区别
  17. Manjaro Linux安装ROS2 humble机器人系统:从开始到安装完成
  18. STM32 10进制转16进制,16进制转10进制 超简单
  19. 有限元方法简介与COMSOL操作入门
  20. python与h5开发_【Python】真零基础Python开发web

热门文章

  1. c语言怎么输入学号姓名,c语言如何输入编号和姓名
  2. windows环境下python怎么安装mlxtend-python连接QQ实现自动回复python 机器学习库
  3. java取字符串中不相同的字母_java 判断两个字符串是否为相同字母异序词 --- 记录...
  4. matlab 多项式的相关运算
  5. WPF中的动画——(二)From/To/By 动画
  6. Django的缓存机制
  7. JSON:如果你愿意一层一层剥开我的心,你会发现...这里水很深——深入理解JSON...
  8. 【转】DNS查询过程
  9. 【循序渐进学Python】1. Python基础知识
  10. 自动更新变成灰色的解决方法