audioFlux - 一个用于音频和音乐分析、特征提取的库

codeChord1年前 ⋅ 2742 阅读

https://github.com/libAudioFlux/audioFlux

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

  1. 系统、多维度的提取特征和组合,可以灵活的用于各种任务研究分析。
  2. 性能高效,核心大部分C实现,基于不同平台FFT硬件加速,方便大规模数据特征提取。
  3. 适用移动端,支持移动端音频流实时计算。

快速上手
pip install audioflux

import numpy as np
import audioflux as af

import matplotlib.pyplot as plt
from audioflux.display import fill_spec

# Get a 220Hz's audio file path
sample_path = af.utils.sample_path('220')

# Read audio data and sample rate
audio_arr, sr = af.read(sample_path)

# Extract mel spectrogram
spec_arr, mel_fre_band_arr = af.mel_spectrogram(audio_arr, num=128, radix2_exp=12, samplate=sr)
spec_arr = np.abs(spec_arr)

# Extract mfcc
mfcc_arr, _ = af.mfcc(audio_arr, cc_num=13, mel_num=128, radix2_exp=12, samplate=sr)

# Display
audio_len = audio_arr.shape[0]
# calculate x/y-coords
x_coords = np.linspace(0, audio_len / sr, spec_arr.shape[1] + 1)
y_coords = np.insert(mel_fre_band_arr, 0, 0)
fig, ax = plt.subplots()
img = fill_spec(spec_arr, axes=ax,
                x_coords=x_coords, y_coords=y_coords,
                x_axis='time', y_axis='log',
                title='Mel Spectrogram')
fig.colorbar(img, ax=ax)

fig, ax = plt.subplots()
img = fill_spec(mfcc_arr, axes=ax,
                x_coords=x_coords, x_axis='time',
                title='MFCC')
fig.colorbar(img, ax=ax)

plt.show()

更多实例
https://github.com/libAudioFlux/audioFlux#other-examples

详细文档
https://audioflux.top

在音乐领域应该有用武之地,对音频做特征提取,比如

  1. 可以做相似音频谱的片段推荐;
  2. 或者做音频特征提取后作为神经网络的输入训练出一个音频领域的ChatGPT,自然语言描述做为输入,能创作新的人类没有的音乐出来

有哪些使用场景?

audioFlux 的使用场景包括但不限于:

1. 音频和音乐信号处理:可以用于音频的降噪、音频过滤、音频格式转换、音乐相似度计算等应用。
2. 语音识别:可用于提取声音特征用于语音识别算法。
3. 音乐信息检索:可以用于音乐相似度计算、音乐片段检索等应用。
4. 音频可视化:可将音频转化成图像进行可视化分析。
5. 音频混合、合成和处理:可用于音频编辑器、音频录制、声音合成等应用。

总之,本库可以用于音乐、语音或者声音相关的各种应用场景,可以大幅提高音频和音乐分析的效率。

有哪些类似的项目?

1. Essentia: 另一款流行的音频和音乐分析库,提供开源的Python和C++ API,以及命令行工具。

2. Librosa: 一个Python音频分析库,提供了用于特征提取,可视化和预处理的函数。

3. MIRtoolbox: 一个MATLAB音乐分析工具箱,提供了用于音乐分析和特征提取的函数。

4. Marsyas: 一个用于音频分析和特征提取的C++库,可用于音乐信息检索和机器学习。

5. WaveSurfer: 一个开源的交互式音频编辑器和分析工具,可用于音频标记和特征提取等任务。

6. Sonic Visualizer: 一个可视化的音频分析工具,支持多种格式和插件,可用于音乐学研究和音频分析。

7. Pymir: 一个Python音频和音乐分析库,提供了用于特征提取和可视化的函数。

有哪些优缺点?

优点:

1. 音频处理速度快:audioFlux使用优化的算法,可以快速处理音频信号,并提取出其中的重要特征,同时也支持多线程处理,提高了处理效率。

2. 灵活性强:audioFlux提供了丰富的接口和函数库,支持多种音频数据格式和处理方式,可以方便地进行音频分析、特征提取、音频转换和生成音频效果等任务。

3. 易于使用:audioFlux提供了易于使用的API和文档,使开发人员可以迅速掌握其功能和使用方法,从而开发出高质量的音频应用程序。

缺点:

1. 学习曲线较陡峭:audioFlux是一个比较复杂的库,需要掌握音频信号处理的基本知识和算法,因此可能需要较长的学习时间才能掌握其使用方法。

2. 硬件要求较高:由于音频处理需要大量的计算资源,所以使用audioFlux需要较高的计算机配置,特别是在处理大量数据时会需要更高的性能。

3. 功能有限:虽然audioFlux提供了丰富的接口和函数库,但是其功能还是有限的,无法满足所有的音频处理需求。如果需要更多的功能,可能需要使用其他的音频处理库或自己开发相应的算法。

全部评论: 0

    相关推荐