audioFlux简介
audioFlux是一个强大的音频分析和特征提取工具库,为音频和音乐分析、特征提取提供了全面的解决方案。它支持数十种时频分析变换方法和数百种相应的时域和频域特征组合,可以为深度学习网络提供训练数据,用于研究音频分类、分离、音乐信息检索(MIR)和自动语音识别(ASR)等音频领域的各种任务。
主要功能
audioFlux基于数据流设计,在结构上解耦了每个算法模块,可以方便、快速、高效地从大批量数据中提取特征。它的主要功能包括以下几个方面:
-
时频变换:提供了多种时频表示算法,包括:
- 基于傅里叶变换(BFT)
- 非平稳Gabor变换(NSGT)
- 连续小波变换(CWT)
- 伪小波变换(PWT)
- 常数Q变换(CQT)
- 变Q变换(VQT)
- S变换(ST)
- 离散小波变换(DWT)等
-
特征提取:支持多种频谱特征、倒谱系数、去卷积等算法。
-
音乐信息检索(MIR):包含音高估计、起音检测、谐波打击乐分离等算法。
丰富的频率尺度支持
audioFlux支持多种频率尺度类型,包括:
- 线性尺度
- 梅尔尺度
- Bark尺度
- ERB尺度
- 八度尺度
- 对数尺度
这使得它可以灵活地应用于不同的音频分析任务。
安装使用
audioFlux支持多种安装方式:
- 使用pip安装Python包:
pip install audioflux
- 使用Anaconda安装:
conda install -c tanky25 -c conda-forge audioflux
- 从源码编译安装 audioFlux支持Linux、macOS、Windows、iOS和Android等多个平台。
快速入门
以下是一些使用audioFlux的示例:
- 计算梅尔频谱图和MFCC:
import audioflux as af
import numpy as np
# 读取音频
audio_path = 'path/to/your/audio/file.wav'
audio_arr, sr = af.read(audio_path)
# 计算梅尔频谱图
mel_spec = af.melspectrogram(audio_arr, sr=sr)
# 计算MFCC
mfcc = af.mfcc(audio_arr, sr=sr)
- 使用连续小波变换(CWT)和同步压缩变换:
# 计算CWT
cwt_spec = af.cwt(audio_arr)
# 计算同步压缩变换
wsst_spec = af.wsst(cwt_spec)
- 计算色度图:
# 计算常数Q变换
cqt_spec = af.cqt(audio_arr, sr=sr)
# 计算色度图
chroma = af.chroma(cqt_spec)
更多示例和详细文档可以在官方文档中找到。
性能基准
audioFlux在性能方面表现出色。以下是在AMD Ryzen Threadripper 3970X 32核处理器上的基准测试结果:
从图中可以看出,audioFlux在各种音频处理任务中都展现出了优异的性能。
文档和贡献
详细的文档可以在https://audioflux.top找到。 audioFlux欢迎社区贡献,无论是提出改进建议、报告bug、提出新功能需求,还是直接提交代码,都可以通过GitHub Issues或Pull Request参与项目开发。
总结
audioFlux作为一个功能全面、性能优异的音频分析工具库,为音频处理和音乐信息检索领域的研究和应用提供了强大的支持。无论是学术研究还是工业应用,audioFlux都是一个值得尝试的优秀工具。
如果您在音频分析、特征提取或音乐信息检索方面有需求,不妨尝试使用audioFlux,相信它能为您的项目带来便利和效率的提升。
通过使用audioFlux,研究人员和开发者可以更加专注于音频分析的核心问题,而不必过多关注底层实现细节。让我们一起探索audioFlux的强大功能,推动音频处理技术的进步!