audioFlux简介
audioFlux是一个专门用于音频和音乐分析、特征提取的深度学习工具库。它支持数十种时频分析变换方法和数百种相应的时域和频域特征组合。这些特征可以提供给深度学习网络进行训练,用于研究音频领域的各种任务,如分类、分离、音乐信息检索(MIR)和自动语音识别(ASR)等。
主要功能模块
audioFlux基于数据流设计,在结构上解耦了每个算法模块,可以快速高效地提取多维特征。其主要功能包括以下三个模块:
1. 变换模块(Transform)
在时频表示中,主要的变换算法包括:
- BFT - 基于傅里叶变换,类似于短时傅里叶变换
- NSGT - 非平稳Gabor变换
- CWT - 连续小波变换
- PWT - 伪小波变换
以上变换支持多种频率尺度类型,如线性、梅尔、巴克、ERB、八度等。
此外还包括CQT、VQT、S变换等独立变换,以及同步挤压和重排等技术。
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。可以使用以下方法安装:
使用pip:
pip install audioflux
使用Anaconda:
conda install -c tanky25 -c conda-forge audioflux
其他构建方式
快速入门
以下是一些快速入门的示例:
更多示例脚本可以在官方文档中找到。
学习资源
贡献与支持
audioFlux欢迎社区贡献。如果您想贡献代码,请fork最新的git仓库并创建功能分支。提交的请求应通过所有持续集成测试。
如果您需要帮助、发现了bug、有功能请求或一般性问题,可以提出issue。
引用
如果您在学术工作中使用了audioFlux,请引用以下DOI:
audioFlux是一个功能强大、易于使用的音频分析工具库。无论您是研究人员、开发人员还是音频爱好者,它都能为您的音频处理任务提供有力支持。快来尝试使用audioFlux,探索音频分析的无限可能吧! 🎵🔊