• 【Python百日进阶-Web开发-音频】Day702 - librosa安装及模块一览表


    一、Librosa简介与安装

    1.1 Librosa是什么

    librosa是一个非常强大的python语音信号处理的第三方库,它提供了创建音乐信息检索系统所必需的构造块。

    1.2 Librosa官网

    https://librosa.org/doc/latest/index.html

    二、Librosa安装

    2.1 安装Librosa

    pip install librosa -i  https://pypi.douban.com/simple
    

    自动安装一些依赖库

    Successfully built audioread resampy
    Installing collected packages: urllib3, pyparsing, pycparser, llvmlite, idna, charset-normalizer, threadpoolctl, s
    cipy, requests, packaging, numba, joblib, cffi, appdirs, soundfile, scikit-learn, resampy, pooch, decorator, audioread, librosa
    Successfully installed appdirs-1.4.4 audioread-2.1.9 cffi-1.15.0 charset-normalizer-2.0.12 decorator-5.1.1 idna-3.
    3 joblib-1.1.0 librosa-0.9.1 llvmlite-0.38.0 numba-0.55.1 packaging-21.3 pooch-1.6.0 pycparser-2.21 pyparsing-3.0.
    8 requests-2.27.1 resampy-0.2.2 scikit-learn-1.0.2 scipy-1.7.3 soundfile-0.10.3.post1 threadpoolctl-3.1.0 urllib3-1.26.9
    
    

    三、安装ffmpeg

    为了audioread增强音频解码能力,您可以安装许多音频解码器附带的ffmpeg 。请注意,Linux 和 OSX 上的 conda 用户将默认安装它;Windows 用户必须单独安装 ffmpeg。

    3.1 ffmpeg官网下载

    https://www.ffmpeg.org/
    在这里插入图片描述
    https://www.ffmpeg.org/download.html
    在这里插入图片描述
    https://www.gyan.dev/ffmpeg/builds/packages/ffmpeg-2022-04-28-git-ec07b15477-full_build.7z
    在这里插入图片描述

    3.2 ffmpeg安装

    3.2.1 解压

    下载的压缩包解压到C:\Program Files
    在这里插入图片描述
    找到ffmpeg.exe的完整路径:C:\Program Files\ffmpeg-2022-04-28\bin

    3.2.2 添加环境变量

    系统 - 关于 - 高级系统设置 - 环境变量 - 系统变量 - path - 编辑 - 新建:C:\Program Files\ffmpeg-2022-04-28\bin
    在这里插入图片描述

    3.2.3 测试ffmpeg是否安装成功

    打开cmd / winodws powershell / windows termianl输入

    ffmpeg -version
    

    显示版本信息即为安装成功

    在这里插入图片描述

    四、Librosa 库模块一览

    4.1 库函数结构

    源文件功能介绍
    librosa.beat用于估计节拍和检测节拍事件
    librosa.core核心功能包括从磁盘加载音频、计算各种谱图表示以及各种常用的音乐分析工具。为了方便起见,这个子模块中的所有功能都可以直接从顶层 librosa.* 名称空间访问。
    librosa.decompose利用 scikit-learn 中实现的矩阵分解方法实现谐波冲击源分离 (HPSS) 和通用谱图分解功能。
    librosa.display使用 matplotlib 的可视化。
    librosa.effects时域音频处理,如音高移动和时间拉伸。这个子模块还为分解子模块提供时域包装器。
    librosa.feature特征提取和操作。这包括低层次特征提取,如彩色公音、伪常量 q (对数频率) 变换、Mel 光谱图、MFCC 和调优估计。此外,还提供了特性操作方法,如 delta 特性、内存嵌入和事件同步特性对齐。
    librosa.filters过滤库生成 (chroma、伪 CQT、CQT 等)。这些主要是 librosa 的其他部分使用的内部函数。
    librosa.onset起跳检测和起跳强度计算。
    librosa.output文本和波形文件输出。
    librosa.segment用于结构分割的函数,如递归矩阵构造、时滞表示和顺序约束聚类。
    librosa.sequence用于顺序建模的函数。各种形式的维特比解码,以及用于构造转换矩阵的辅助函数。
    librosa.util辅助实用程序 (规范化、填充、居中等)。

    4.2 Audio processing(音频处理)

    函数功能
    load()从文件加载音频数据,貌似没有格式限制,而且可以通过参数设置是否保留双声道,采样率,重采样类型。
    to_mono()把音频数据降至单声道。
    resample()重采样,也可以称之为降采样。
    get_duration()计算音频时间序列、特征矩阵或文件名的持续时间 (以秒为单位)。从文件路径读取时间长度更快一些。
    autocorrelate()计算自相关。
    zero_crossings()找到过零点的位置。
    clicks()在信号指定的位置放置 click 信号。可以通过参数设置 click 信号的频率等属性。
    tone()生成一个 tone 信号,即一个简单的正弦波。
    chirp()生成一个 chirp 信号。

    4.3 Spectral representations(谱表示)

    函数功能
    stft()短时傅里叶变换。默认参数:sr=22050, n_fft=2048, hob_length=512
    istft()短时傅里叶逆变换。
    ifgram()计算得到的瞬时频率 (作为采样率的比例) 作为复谱相位的时间导数。
    cqt()常数 Q 变换。
    icqt()常数 Q 逆变换。
    hybrid_cqt()计算音频信号的混合常量 - q 变换。
    pseudo_cqt()计算音频信号的伪常量 - q 变换。
    iirt()使用 IIR 滤波器的时频表示。
    fmt()快速梅林变换 (FMT)
    interp_harmonics()计算谐波处的能量。
    salience()谐波突出功能。
    phase_vocoder()阶段声码器。给定一个 STFT 矩阵 D,将速度提高一个因子。
    magphase()计算复数图谱的幅度值和相位值。

    4.4 Magnitude scaling(幅度标度)

    函数功能
    amplitude_to_db()将振幅谱图转换为 db _scale 谱图。|
    db_to_amplitude()将 db 谱图转为普通振幅谱图。|
    power_to_db()功率谱转换。|
    db_to_power()功率谱转换。|
    perceptual_weighting()功率谱图的感知加权。|
    A_weighting()计算一组频率的 a 加权。|
    pcen()该函数通过自动增益控制对时频表示 S 进行归一化,然后进行非线性压缩。|

    4.5 Time and frequency conversion(时间和频率转换)

    函数功能
    frames_to_sample()将帧索引转换为音频样本索引。
    frames_to_time()将帧数转换为时间 (秒)。
    samples_to_frames()将样本索引转换为 STFT 帧。
    samples_to_time()将 STFT 帧转换为样本索引。
    time_to_frames()将时间戳转换为 STFT 帧。
    time_to_samples()将时间戳(以秒为单位)转换为样本索引。
    hz_to_note()将一个或多个频率(以 Hz 为单位)转换为最近的音符名称。
    hz_to_midi()获取给定频率的 MIDI 音符编号。
    midi_to_hz()获取 将一个或多个 MIDI 数转换为音符串。MIDI 音符的频率(Hz)
    midi_to_note()将一个或多个 MIDI 数转换为音符串。
    note_to_hz()将一个或多个音符名称转换为频率(Hz)
    note_to_midi()将一个或多个拼写音符转换为 MIDI 数字。
    hz_to_mel()将 Hz 转换为 Mels。
    hz_to_octs()将频率(Hz)转换为(分数)倍频程数。
    mel_to_hz()将 mel 频率转换为频率
    octs_to_hz()将八度数转换为频率。
    fft_frequencies()np.fft.fftfreq 的替代实现。
    cqt_frequencies()计算 Constant-Q 箱的中心频率。
    mel_frequencies()计算调整到梅尔音阶的声学频率阵列。
    tempo_frequencies()计算对应于起始自相关或临时图矩阵的频率(以每分钟节拍数为单位)。
    samples_like()返回一组样本索引以匹配特征矩阵中的时间轴。
    times_like()返回一组时间值以匹配特征矩阵中的时间轴。

    4.6 Pitch and tuning(音调和调谐)

    函数功能
    estimate_tuning()估计音频序列的音调或者频谱输入。
    pitch_tuning()给定一个集合,估计其调谐偏移 (一个 bin 的分数) 相对于 A440 = 440.0Hz。
    piptrack()阈值抛物线插值 STFT 上的节距跟踪。

    4.7 Deprecated (moved)(不推荐(移动))

    函数功能
    dtw()动态时间扭曲。
    fill_off_diagonal()将一个矩阵的所有细胞设置为给定的值,如果它们位于约束区域之外。

    4.8 Display(显示)

    通过 librosa.display.* 访问函数。

    函数功能
    specshow()Display a spectrogram/chromagram/cqt/etc.
    waveplot()绘制波形的振幅包络。
    camp()从给定的数据中获取默认的颜色映射。
    TimeFormatter()时间轴的刻度格式化程序。
    NoteFormatter()Notes 的刻度格式。
    LogHzFormatter()用于对数频率的制表程序。
    ChromaFormatter()色度轴的格式化程序。
    TonnetzFormatter()tonnetz 轴的格式化程序。

    4.9 Feature extraction(特征提取)

    通过 librosa.feature.* 访问函数。
    Spectral features(光谱特征)

    函数功能
    chroma_stft()从 stft 的结果计算色谱图。
    chroma_cqt常数 Q 色谱图。
    chroma_cens()色谱能量归一化。
    melspectrogram()计算梅尔频谱。
    mfcc()梅尔倒频谱系数。
    rms()谱的均方根。
    spectral_centroid()谱中心
    spectral_bandwidth()谱带宽。
    spectral_contrast()谱对比度。
    spectral_flatness()频谱平坦度。
    spectral_rolloff()滚降频率。
    poly_feature()求一个 n 阶多项式与谱图列的拟合系数。
    tonnetz()计算色调质心特征 (tonnetz)。
    zero_crossing_rate()过零率。

    4.10 Rhythm features(节奏特征)

    函数功能
    tempogram()计算模板图:起始强度包络线的局部自相关。

    4.11 Feature manipulation(特征操作)

    函数功能
    delta()计算增量特性:对输入数据沿选定轴的导数进行局部估计。计算了三角函数的萨维茨基 - 戈莱滤波。
    stack_memory()短期历史嵌入:将数据向量或矩阵与自身的延迟副本垂直连接。

    4.12 Spectrogram decomposition(谱图分解)

    通过 librosa.decompose.* 访问。

    函数功能
    decompose()分解一个特征矩阵。
    hpss()Median-filtering harmonic percussive source separation (HPSS).
    nn_filter()Filtering by nearest-neighbors.

    4.13 Output(输出)

    通过 librosa.ouput.* 来访问。

    函数功能
    annotation()保存 3 列格式的注释。
    time_csv()按 CSV 格式保存时间步骤。这可以用来存储打击跟踪器或分割算法的输出。
    write_wav()保存为 wav 文件格式。

    4.14 Utilities(实用功能)

    通过 librosa.util.* 来访问。
    Array operations(数组操作)

    函数功能
    frame()将时间序列分割成重叠的帧。
    pad_center()将数组居中。
    fix_length()将数组数据的长度固定为精确的大小。
    fix_frames固定一个帧的最大值和最小值。
    index_to_slice()从索引数组生成切片数组。
    softmask()鲁棒地计算软掩码操作。
    sync()边界之间多维数组的同步聚合。
    axis_sort()对数组的行或列进行排序。
    normalize()沿着选定的轴对数组进行标准化。
    roll_sparse()系数矩阵滚动。
    sparsify_rows()返回一个近似于输入 x 的行稀疏矩阵。
    buf_to_float()将整数缓冲区转换为浮点值。
    tiny()计算与输入数据类型对应的极小值。就是比如输入数据是 int8 类型,则返回 int8 类型可以表示的最小的数。

    4.15 Matching(匹配)

    函数功能
    match_intervals()将一组时间间隔与另一组时间间隔匹配。
    match_events()将一组事件与另一组事件匹配。

    4.16 Miscellaneous

    函数功能
    localmax()在数组 x 中找到局部最大值。
    peak_pick()使用灵活的启发式算法选择信号中的峰值。

    4.17 Input Validation(输入验证)

    函数功能
    valid_audio()验证变量是否包含有效的单声道音频数据。
    valid_int()确保输入值是整型的。
    valid_intervals()确保数组是时间间隔的有效表示。

    4.18 File operations(文件操作)

    函数功能
    example_audio_file()获取包含音频示例文件的路径。
    find_files()获取目录或目录子树中已排序的 (音频) 文件列表。
  • 相关阅读:
    ios 让tableview 的section cell整体圆角
    Degeneracy (mathematics)
    Java IO流(上)
    openssl升级
    联表查询 && 索引 && 事务 && JDBC使用 &&CPU工作原理 && 线程概念 && Thread类的用法
    PyTorch的自动求导
    C++ 多态
    Java并发编程—synchronized
    【NLP】【TextCNN】 文本分类
    MMEdu离线版的使用:实现石头剪刀布图像分类的检测
  • 原文地址:https://blog.csdn.net/yuetaope/article/details/124540502