除了以上列出方法,还存在其他读写方法,例如kaldiio包等。并且以上方法没有考虑时间复杂度差异,有兴趣的同学可以自己试试。
在语音处理中,音频文件读写是基本操作。然而读写方式乃至归一化处理的多样化,有可能导致后续处理的偏差乃至错误。本文汇集实践中所遇的一些方法,并参考了其他文章,确保读写操作的准确性和一致性。前置条件 本文以实践中常见的音频文件参数(wav格式,PCM编码,单通道,采样率16KHz,位深16bit)为例,如果参数不同需做对应调整。一. 文件读取1. librosa import librosa wav_path='' sample_r.
File "/home/hwja/anaconda3/envs/py2/lib/python2.7/site-packages/soundfile.py", line 373, in read
subtype, endian, format, closefd) as f:
File "/home/hwja/anaconda3/envs/py2/lib/python2.7/site-packages/soundfile.py", line 740, ininit
self._file = self._ope.
(1)音调
人耳对声音高低的感觉称为音调(也叫音频)。音调主要与声波的频率有关。声波的频率高,则音调也高。一般音频 儿童>女生>男生。
人耳听觉音频范围是20Hz-20000Hz(做音频压缩时不在这个范围内的数据就可以砍掉)。
(2)音量
也就是响度。人耳对声音强弱的主观感觉称为响度。响度和声波振动的幅度有关。一般说来,声波振动幅度越大则响度也越大...
由于本人研究的音频方面,一开始读取音频文件的时候就遇到了一些问题,比如,这个函数返回的是numpy,另外一个函数返回tensor,巴拉巴拉等等问题,所以在这里做一个简单的整理。
1、wavefile.read
代码示例如下:
from scipy.io import wavfile
fs, .
1: os.listdir(path) //path为目录 功能相当于在path目录下执行dir命令,返回为list类型 print os.listdir(‘..’) 2: os.path.walk(path,visit,arg) path :是将要遍历的目录 visit :是一个函数指针,函数圆形为: callback(arg,dir,fileList) 其中arg为为传给walk的arg , dir是path下的一个目录,fileList为dir下的文件和目录组成的list, arg:传给visit用的 3:os.path.split(path) path 为一个路径, 输出,把path分
python中对文件、文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块。
得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd()
返回指定目录下的所有文件和目录名:os.listdir()
函数用来删除一个文件:os.remove()
删除多个目录:os.removedirs(r“c:\python”)
检验给出的路径是否是一个文件:os.path.isfile()
检验给出的路径是否是一个目录:os.path.isdir()
判断是否是绝对路径:os.path.isabs()
检验给出的路径是否真地存:os.path.exists()
返回一个路径的
wavfile
一个轻量级的库,用于在本地Python类型列表中读写波形音频文件。
该库当前仅限于PCM(整数)格式,但支持任意精度,包括16位,24位,32位和64位样本。
用法:读取wave文件
f = wavfile.open(file, 'r')
其中file是wave文件的路径或打开文件的指针。 这将返回具有以下属性的wavfile.wavread.WavRead对象:
num_channels流中的音频通道数。
sample_rate音频流的采样率/频率。
bits_per_sample每个音频样本的位数。
num_frames音频流中音频帧的总数。 一帧是一组样本,每个通道一个样本,对应一个采样点。
该对象还具有以下方法:
read_int([N]) -从音频流中最多读取N帧未经修改的整数格式。 该方法返回大小为(N,C)的列表的列表,其中C是音频通道的数量。