AudioFlux 是一个专为音频和音乐分析、特征提取设计的开源 Python 库。它支持广泛的音频处理功能,包括特征提取、音高检测、时频分析、谱图处理等。这些功能被广泛应用于机器学习、深度学习、信号处理等领域,特别是对于音乐信息检索(MIR)、音频分类、语音增强等任务极为有效。
AudioFlux 提供了多种时频分析工具,如短时傅里叶变换(STFT)、连续小波变换(CWT)、梅尔谱图(Mel Spectrogram)等。通过这些工具,开发者可以轻松实现音频信号的时频分析,并将音频数据可视化为不同类型的频谱图。
以下是如何使用 AudioFlux 提取梅尔谱图的示例:
import audioflux as af
from audioflux.type import SpectralFilterBankScaleType
import numpy as np
# 读取音频文件
sample_path = af.utils.sample_path('220') # 获取示例音频文件
audio_arr, sr = af.read(sample_path)
# 创建BFT对象并提取梅尔谱图
bft_obj = af.BFT(num=128, radix2_exp=12, samplate=sr, scale_type=SpectralFilterBankScaleType.MEL)
mel_spec = bft_obj.bft(audio_arr)
# 转换为幅值谱图
mel_spec