处理音频文件的python模块
首先是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模块相关推荐
- python如何引用txt_如何使用pip requirements.txt文件安装python模块附加组件
pip requirements.txt documentation表示可以使用类似的线安装附加功能 MyPackage==3.0 [PDF] 所以在我的requirements.txt文件中,我有一 ...
- python调用pyd文件_如何将.pyd文件作为python模块导入?
我在用PyCharm.我在以下位置有一个python脚本: C:\Users\XYZ\PycharmProjects\Project1\playground.py playground.py只有一行代 ...
- Openpyxl:读取/写入Excel文件的Python模块
Python openpyxl module is a native library to work with excel files. We can read excel files as well ...
- 用 .pth 文件附加 Python 模块搜索路径
上一篇 Python 的模块搜索路径,介绍了 Python 的模块搜索路径,最终起作用的是 sys.path 路径列表.如果要自定义自己的搜索路径,就是要怎么定制 sys.path 的内容.可以简单的 ...
- hdf5 python_HDF5 文件及Python模块之h5py
HDF5文件 什么是HDF5文件呢?先引用一波维基百科的介绍,『层级数据格式(Hierarchical Data Format:HDF)是设计用来存储和组织大量数据的一组文件格式(HDF4,HDF5) ...
- Linux文件操作--Python模块
蓝桥云课笔记 一.认识Linux 1.快捷操作 2.查看目录结构:tree 3.绝对路径 4.新建目录 二.Linux文件操作 1.**新建空白文件** 2.**复制** 3.**删除** 4.**移 ...
- python怎样导出py文件_导出python模块(到字符串或py文件)
摘要: 我想要一个'module'类型的变量并导出它.在 我使用import从.py文件导入python模块并对其进行更改.我需要将模块导出回一个文件,或者获取完整模块的字符串表示形式,然后将其写入磁 ...
- Python模块(自己整理并不完整)
PY核心模块方法 ******************** os模块: os.remove() 删除文件 os.unlink() 删除文件 os.rename() 重命名文件 os.listdi ...
- python模块初始与time、datetime及random
模块初始 模块的概念(本质为一个py文件) python模块可以将代码量较大的程序分割成多个有组织的.彼此独立但又能互相交互的代码片段,这些自我包含的有组织 的代码段就是模块,模块在物理形式上表现为以 ...
最新文章
- mysql 并行复制搭建_基于GTID的主从实践系列之④并行复制搭建及测试
- ios浏览器不支持onblur事件
- 用ARM DS-5进行android linux开发
- 机器学习项目实战----泰坦尼克号获救预测(二)
- 微信浏览器如何禁止iPhone手机上下滑动网页
- 使用CleanMyMac软件进行文件清理
- 信捷XC系列PLC-编程
- 目前大多数计算机工作原理采用的是,计算机应用基础复习题2016有答案
- 初一计算机知识点都教啥,10分钟试讲几个知识点?初中信息技术教师招聘面试试讲教案真题:补间动画...
- 小米android通知栏图标不显示,MIUI开发版更新:已修复原生样式下部分通知图标不显示的问题...
- 搅拌摩擦焊有限元仿真分析学习笔记
- Pytho读取Xml文件
- 记录一次阿里云服务器迁移
- 深入理解设计模式-抽象工厂模式
- 2020年中国中医针灸行业发展现状及未来发展前景分析,国家政策扶持,针灸行业发展前景良好「图」
- 公网IP,内网IP,动态IP,静态IP的区别
- Manjaro Linux安装ROS2 humble机器人系统:从开始到安装完成
- STM32 10进制转16进制,16进制转10进制 超简单
- 有限元方法简介与COMSOL操作入门
- python与h5开发_【Python】真零基础Python开发web
热门文章
- c语言怎么输入学号姓名,c语言如何输入编号和姓名
- windows环境下python怎么安装mlxtend-python连接QQ实现自动回复python 机器学习库
- java取字符串中不相同的字母_java 判断两个字符串是否为相同字母异序词 --- 记录...
- matlab 多项式的相关运算
- WPF中的动画——(二)From/To/By 动画
- Django的缓存机制
- JSON:如果你愿意一层一层剥开我的心,你会发现...这里水很深——深入理解JSON...
- 【转】DNS查询过程
- 【循序渐进学Python】1. Python基础知识
- 自动更新变成灰色的解决方法