• librosa--学习笔记(1)


    1. 加载音频librosa.load(path, sr=22050, mono=True, offset=0.0, duration=None)   #可以是WAV、Mp3等:
      1. """
      2. 参数:
      3. path :音频文件的路径。
      4. sr:采样率,是每秒传输的音频样本数,以Hz或kHz为单位。默认采样率为22050Hz(sr缺省或sr=None),高于该采样率的音频文件会被下采样,低于该采样率的文件会被上采样。
      5. 以44.1KHz重新采样:librosa.load(audio_path, sr=44100)
      6. 禁用重新采样(使用音频自身的采样率):librosa.load(audio_path, sr=None)
      7. mono :bool值,表示是否将信号转换为单声道。mono=True为单声道,mono=False为stereo立体声
      8. offset :float,在此时间之后开始阅读(以秒为单位)
      9. duration:持续时间,float,仅加载这么多的音频(以秒为单位)
      10. dtype:返回的音频信号值的格式,似乎只有float和float32
      11. res_type:重采样的格式
      12. 返回:
      13. y:音频时间序列,类型为numpy.ndarray
      14. sr:音频的采样率,如果参数没有设置返回的是原始采样率
      15. """
    2. 使用IPython.display.Audio 直接在jupyter笔记本中播放音频:

      1. import IPython.display as ipd
      2. ipd.Audio(path)
    3. 重采样:librosa.resample(y, sr, 16000, fix=True, scale=False):

      1. """
      2. 参数:
      3. y:音频时间序列。可以是单声道或立体声。
      4.     orig_sr:y的原始采样率
      5.     target_sr:目标采样率
      6.     fix:bool,调整重采样信号的长度。
      7.     scale:bool,缩放重新采样的信号,以使y和y_hat具有大约相等的总能量。
      8. 返回:
      9.     y_hat :重采样之后的音频数组
      10. """
    4. 计算时间序列的的持续时间(以秒为单位):librosa.get_duration(y=y, sr=22050, S=None, n_fft=2048, hop_length=512, center=True, filename=None) :

      1. """
      2. 参数:
      3.     y:音频时间序列
      4.     sr:y的音频采样率
      5.     S:STFT矩阵或任何STFT衍生的矩阵(例如,色谱图或梅尔频谱图)。根据频谱图输入计算的持续时间仅在达到帧分辨率之前才是准确的。如果需要高精度,则最好直接使用音频时间序列。
      6.     n_fft:S的FFT窗口大小
      7.     hop_length :S列之间的音频样本数
      8.     center :布尔值
      9.         如果为True,则S [:, t]的中心为y [t* hop_length]
      10.         如果为False,则S [:, t]从y[t * hop_length]开始
      11.     filename:如果提供,则所有其他参数都将被忽略,并且持续时间是直接从音频文件中计算得出的。
      12. 返回:d :持续时间(以秒为单位)
      13. """
    5. 过零率:描述声音的明亮程度,声音越明亮,过零率越高。因为声音信号是波形,所以过零率越高,表示频率越高。声音的频率高则其在单位时间内拥有更多波形周期,因此 单位时间内过零数会更多,那么过零率就更高。librosa.zero_crossings(y[n0:n1], pad=False):

      1. """
      2. 参数:
      3.     y:音频时间序列
      4.     frame_length :帧长
      5.     hop_length:帧移
      6.     center:bool,如果为True,则通过填充y的边缘来使帧居中。
      7. 返回:zcr:zcr[0,i]是第i帧中的过零率
      8. """
    6. 自相关(autocorrelation)也叫序列相关,可以描述一个信号与其沿时间轴位移后的版本之间的相似度:librosa.autocorrelate(y, max_size=int(k_high))  # int(k_high) = 801:
      1. """
      2. 参数:
      3.     y:信号值
      4.     max_size:要求自相关的长度
      5.     axis:沿着的维
      6. 返回值:y关于max_size的自相关值
      7. """
    7. 展示波形:librosa.display.waveshow(y, sr=22050, x_axis='time', offset=0.0, ax=None):

      1. """
      2. 参数:
      3.     y:音频时间序列
      4.     sr:y的采样率
      5.     x_axis:str {‘time’,‘off’,‘none’}或None,如果为“时间”,则在x轴上给定时间刻度线。
      6.     offset:水平偏移(以秒为单位)开始波形图
      7. 音频信号每一位分别对应一个采样点,其位数等于“采样率*音频时长(以秒为单位)”,记录了每个样本上音频的振幅信息.
      8. """
    8. 数据标准化:sklearn.preprocessing.scale(mfccs, axis=1,with_mean=True, with_std=True)  

      1. """
      2. 公式:(X-X_mean)/X_std 计算时对每个属性/每列分别进行。
      3. 原理:得到的结果是,对每个属性/每列来说所有数据都聚集在0附近,方差值为1。
      4. 参数:
      5. X:待处理的数组
      6. axis:表示处理哪个维度,0表示处理横向的数据(行), 1表示处理纵向的数据(列)
      7. with_mean:默认为true,表示使均值为0
      8. with_std:默认为true,表示使标准差为1
      9. """
    9. 抽取mfcc特征:librosa.feature.mfcc(y, sr):

      1. """
      2. 参数:
      3.     y:音频数据。np.ndarray [shape=(n,)] 或 None
      4.     sr:y的采样率。number > 0 [scalar]
      5.     S:对数功能梅尔谱图。np.ndarray [shape=(d, t)] or None
      6.     n_mfcc:要返回的MFCC数量。 int > 0 [scalar]
      7.     dct_type:离散余弦变换(DCT)类型。默认情况下,使用DCT类型2。None, or {1, 2, 3}
      8.     norm: None or ‘ortho’ 规范。如果dct_type为2或3,则设置norm =’ortho’使用正交DCT基础。标准化不支持dct_type = 1。
      9.     n_fft:返回的mfcc数据维数,默认为13维。#获得N_FFT的长度N_FFT=getNearestLen(0.25,sr);print(“N_FFT:” , N_FFT)
      10.     hop_length:帧移
      11.     lifter: 如果 lifter>0, 提升倒谱滤波。设置lifter >= 2 * n_mfcc强调高阶系数。随着lifter的增加,权重系数近似为线性。
      12.     kwargs: 额外的关键参数。参数melspectrogram,如果按时间序列输入操作
      13. 返回:M:np.ndarray [shape=(n_mfcc, t)] 。 MFCC序列
      14. """

  • 相关阅读:
    Teamviewer 再次涨价,太贵了,有没有平替软件?
    iNFTnews | 从《雪崩》到百度“希壤”,元宇宙30年的16件大事
    redo log、binlog的提问
    day13学习总结
    总结最近遇到的几个问题
    MySQL之优化服务器设置(六)
    Multilevel Cooperative Coevolution for Large Scale Optimization
    网络-网络状态&网络速度
    计算机组成原理知识总结(八)输入/输出系统
    scratch班级成绩处理 电子学会图形化编程scratch等级考试四级真题和答案解析2022年9月
  • 原文地址:https://blog.csdn.net/weixin_45647721/article/details/127433709