音频深度学习工具库:audioFlux 功能概览与应用指南

文摘   2024-08-15 00:22   江苏  

audioFlux,这名字听起来就像是音频界的“流量明星”,专门搞音频和音乐分析的深度学习工具库。它支持一大堆时间-频率分析变换方法,还有几百种对应的时域和频域特征组合,可以说是深度学习网络训练的“营养大餐”。

新版本 v0.1.8 更是不得了,加了好多调音算法,比如YINCEPPEF等等,还有PitchShiftTimeStretch算法,简直就是音频界的“变声器”和“时间魔术师”。

再说说安装,这audioFlux可是个“多面手”,Linux、macOS、Windows、iOS、Android,它都能玩得转。用 Python 安装也简单,pip install audioflux或者conda install audioflux,分分钟搞定。

快速开始也方便,各种例子脚本在文档里都有,就像跟着菜谱做菜一样简单。性能测试也是杠杠的,用 AMD Ryzen Threadripper 3970X 32-Core Processor 跑的,性能图看起来就像是“速度与激情”。

audioFlux

audioFlux 是一个深度学习工具库,用于音频和音乐分析、特征提取。它支持数十种时频分析转换方法和数百种相应的时域和频域特征组合。这些可以提供给深度学习网络进行训练,用于研究音频领域的各种任务,如分类、分离、音乐信息检索(MIR)和自动语音识别(ASR)等。

新特性

  • v0.1.8
    • 增加了多种音高算法:YINCEPPEFNCFHPSLHSSTFTFFP
    • 增加了 PitchShiftTimeStretch 算法。

目录

  • 概述[1]
  • 安装[2]
    • Python 包安装[3]
    • 其他构建方式[4]
  • 快速开始[5]
  • 基准测试[6]
  • 文档[7]
  • 贡献[8]
  • 引用[9]
  • 许可证[10]

概述

audioFlux 基于数据流设计。它在结构上解耦了每个算法模块,能够快速高效地提取多维度的特征。以下是主要特征架构图。

您可以使用多维特征组合,选择不同的深度学习网络进行训练,研究音频领域的各种任务,如分类、分离、MIR 等。

audioFlux 的主要功能包括 transform、feature 和 mir 模块。

1. 变换(Transform)

在时频表示中,主要的变换算法包括:

  • BFT - 基于傅里叶变换,类似于短时傅里叶变换。
  • NSGT - 非平稳高斯变换。
  • CWT - 连续小波变换。
  • PWT - 伪小波变换。

以上变换支持所有以下频率刻度类型:

  • 线性 - 短时傅里叶变换频谱图。
  • Linspace - Linspace 刻度频谱图。
  • Mel - Mel 刻度频谱图。
  • Bark - Bark 刻度频谱图。
  • Erb - Erb 刻度频谱图。
  • 八度 - 八度刻度频谱图。
  • 对数 - 对数刻度频谱图。

以下变换不支持多种频率刻度类型,仅作为独立变换使用:

  • CQT - 恒定 Q 变换。
  • VQT - 可变 Q 变换。
  • ST - S 变换/Stockwell 变换。
  • FST - 快速 S 变换。
  • DWT - 离散小波变换。
  • WPT - 波包变换。
  • SWT - 静止小波变换。

详细的变换函数、描述和使用,请查看文档。

同步挤压重分配 是一种用于锐化时频表示的技术,包括以下算法:

  • reassign - STFT 的重分配变换。
  • synsq - 使用 CWT 数据的重分配数据。
  • wsst - CWT 的重分配变换。

2. 特征(Feature)

特征模块包含以下算法:

  • spectral - 频谱特征,支持所有频谱类型。
  • xxcc - 倒谱系数,支持所有频谱类型。
  • deconv - 频谱的去卷积,支持所有频谱类型。
  • chroma - 色度特征,仅支持 CQT 频谱,基于 BFT 的线性/八度频谱。

3. 音乐信息检索(MIR)

MIR 模块包含以下算法:

  • pitch - YIN, STFT 等算法。
  • onset - 频谱流量,新颖性等算法。
  • hpss - 中值滤波,NMF 算法。

安装

audioFlux 库是跨平台的,目前支持 Linux、macOS、Windows、iOS 和 Android 系统。

Python 包安装

要安装 audioFlux 包,需要 Python >=3.6,使用发布的 Python 包。

使用 PyPI:

$ pip install audioflux

使用 Anaconda:

$ conda install -c tanky25 -c conda-forge audioflux

其他构建方式

  • iOS 构建[11]
  • Android 构建[12]
  • 从源代码构建[13]

快速开始

  • Mel & MFCC[14]
  • CWT & 同步挤压[15]
  • CQT & 色度[16]
  • 不同小波类型[17]
  • 频谱特征[18]
  • 音高估计[19]
  • 起始点检测[20]
  • 谐波打击乐源分离[21]

更多示例脚本在 文档[22] 部分提供。

基准测试

服务器硬件:

  • CPU: AMD Ryzen Threadripper 3970X 32-Core Processor

更详细的性能基准测试在 基准测试[23] 模块提供。

文档

包的文档可以在线找到:

https://audioflux.top[24]

最后,如果你用audioFlux搞出了什么大新闻,记得引用一下,给个 DOI 链接,也算是给它个名分。至于许可证,audioFlux用的是 MIT License,自由得很。

如果想了解更多,或者想给它加加油,可以去它的主页[25]逛逛

Reference
[1]

概述: #overview

[2]

安装: #installation

[3]

Python 包安装: #python-package-install

[4]

其他构建方式: #other-build

[5]

快速开始: #quickstart

[6]

基准测试: #benchmark

[7]

文档: #documentation

[8]

贡献: #contributing

[9]

引用: #citing

[10]

许可证: #license

[11]

iOS 构建: docs/installing.md#ios-build

[12]

Android 构建: docs/installing.md#android-build

[13]

从源代码构建: docs/installing.md#building-from-source

[14]

Mel & MFCC: docs/examples.md#mel--mfcc

[15]

CWT & 同步挤压: docs/examples.md#cwt--synchrosqueezing

[16]

CQT & 色度: docs/examples.md#cqt--chroma

[17]

不同小波类型: docs/examples.md#different-wavelet-type

[18]

频谱特征: docs/examples.md#spectral-features

[19]

音高估计: docs/examples.md#pitch-estimate

[20]

起始点检测: docs/examples.md#onset-detection

[21]

谐波打击乐源分离: docs/examples.md#harmonic-percussive-source-separation

[22]

文档: https://audioflux.top/

[23]

基准测试: https://github.com/libAudioFlux/audioFlux/tree/master/benchmark

[24]

https://audioflux.top: https://audioflux.top

[25]

主页: https://audioflux.top



github 地址:

https://github.com/libAudioFlux/audioFlux

编程悟道
自制软件研发、软件商店,全栈,ARTS 、架构,模型,原生系统,后端(Node、React)以及跨平台技术(Flutter、RN).vue.js react.js next.js express koa hapi uniapp Astro
 最新文章