- """
- 参数:
- path :音频文件的路径。
- sr:采样率,是每秒传输的音频样本数,以Hz或kHz为单位。默认采样率为22050Hz(sr缺省或sr=None),高于该采样率的音频文件会被下采样,低于该采样率的文件会被上采样。
- 以44.1KHz重新采样:librosa.load(audio_path, sr=44100)
- 禁用重新采样(使用音频自身的采样率):librosa.load(audio_path, sr=None)
- mono :bool值,表示是否将信号转换为单声道。mono=True为单声道,mono=False为stereo立体声
- offset :float,在此时间之后开始阅读(以秒为单位)
- duration:持续时间,float,仅加载这么多的音频(以秒为单位)
- dtype:返回的音频信号值的格式,似乎只有float和float32
- res_type:重采样的格式
- 返回:
- y:音频时间序列,类型为numpy.ndarray
- sr:音频的采样率,如果参数没有设置返回的是原始采样率
- """
使用IPython.display.Audio 直接在jupyter笔记本中播放音频:
- import IPython.display as ipd
- ipd.Audio(path)
重采样:librosa.resample(y, sr, 16000, fix=True, scale=False):
- """
- 参数:
- y:音频时间序列。可以是单声道或立体声。
- orig_sr:y的原始采样率
- target_sr:目标采样率
- fix:bool,调整重采样信号的长度。
- scale:bool,缩放重新采样的信号,以使y和y_hat具有大约相等的总能量。
- 返回:
- y_hat :重采样之后的音频数组
- """
计算时间序列的的持续时间(以秒为单位):librosa.get_duration(y=y, sr=22050, S=None, n_fft=2048, hop_length=512, center=True, filename=None) :
- """
- 参数:
- y:音频时间序列
- sr:y的音频采样率
- S:STFT矩阵或任何STFT衍生的矩阵(例如,色谱图或梅尔频谱图)。根据频谱图输入计算的持续时间仅在达到帧分辨率之前才是准确的。如果需要高精度,则最好直接使用音频时间序列。
- n_fft:S的FFT窗口大小
- hop_length :S列之间的音频样本数
- center :布尔值
- 如果为True,则S [:, t]的中心为y [t* hop_length]
- 如果为False,则S [:, t]从y[t * hop_length]开始
- filename:如果提供,则所有其他参数都将被忽略,并且持续时间是直接从音频文件中计算得出的。
- 返回:d :持续时间(以秒为单位)
- """
过零率:描述声音的明亮程度,声音越明亮,过零率越高。因为声音信号是波形,所以过零率越高,表示频率越高。声音的频率高则其在单位时间内拥有更多波形周期,因此 单位时间内过零数会更多,那么过零率就更高。librosa.zero_crossings(y[n0:n1], pad=False):
- """
- 参数:
- y:音频时间序列
- frame_length :帧长
- hop_length:帧移
- center:bool,如果为True,则通过填充y的边缘来使帧居中。
- 返回:zcr:zcr[0,i]是第i帧中的过零率
- """
- """
- 参数:
- y:信号值
- max_size:要求自相关的长度
- axis:沿着的维
- 返回值:y关于max_size的自相关值
- """
展示波形:librosa.display.waveshow(y, sr=22050, x_axis='time', offset=0.0, ax=None):
- """
- 参数:
- y:音频时间序列
- sr:y的采样率
- x_axis:str {‘time’,‘off’,‘none’}或None,如果为“时间”,则在x轴上给定时间刻度线。
- offset:水平偏移(以秒为单位)开始波形图
- 音频信号每一位分别对应一个采样点,其位数等于“采样率*音频时长(以秒为单位)”,记录了每个样本上音频的振幅信息.
- """
数据标准化:sklearn.preprocessing.scale(mfccs, axis=1,with_mean=True, with_std=True)
- """
- 公式:(X-X_mean)/X_std 计算时对每个属性/每列分别进行。
- 原理:得到的结果是,对每个属性/每列来说所有数据都聚集在0附近,方差值为1。
- 参数:
- X:待处理的数组
- axis:表示处理哪个维度,0表示处理横向的数据(行), 1表示处理纵向的数据(列)
- with_mean:默认为true,表示使均值为0
- with_std:默认为true,表示使标准差为1
- """
抽取mfcc特征:librosa.feature.mfcc(y, sr):
- """
- 参数:
- y:音频数据。np.ndarray [shape=(n,)] 或 None
- sr:y的采样率。number > 0 [scalar]
- S:对数功能梅尔谱图。np.ndarray [shape=(d, t)] or None
- n_mfcc:要返回的MFCC数量。 int > 0 [scalar]
- dct_type:离散余弦变换(DCT)类型。默认情况下,使用DCT类型2。None, or {1, 2, 3}
- norm: None or ‘ortho’ 规范。如果dct_type为2或3,则设置norm =’ortho’使用正交DCT基础。标准化不支持dct_type = 1。
- n_fft:返回的mfcc数据维数,默认为13维。#获得N_FFT的长度N_FFT=getNearestLen(0.25,sr);print(“N_FFT:” , N_FFT)
- hop_length:帧移
- lifter: 如果 lifter>0, 提升倒谱滤波。设置lifter >= 2 * n_mfcc强调高阶系数。随着lifter的增加,权重系数近似为线性。
- kwargs: 额外的关键参数。参数melspectrogram,如果按时间序列输入操作
- 返回:M:np.ndarray [shape=(n_mfcc, t)] 。 MFCC序列
- """