用于音频特征提取、分类、分割和应用的Python库
这是一般信息。点击这里查看完整wiki,点击这里了解音频数据处理的更通用介绍
新闻
- [2022-01-01] 如果你对使用自己的数据训练音频模型不感兴趣,可以查看Deep Audio API,你可以直接发送音频数据并接收有关相应音频内容的预测(语音与静音、音乐流派、说话者性别等)。
- [2021-08-06] deep-audio-features 使用CNN和Pytorch进行深度音频分类和特征提取
- 查看paura,这是一个用于实时录音和音频数据分析的Python脚本
概述
pyAudioAnalysis是一个涵盖广泛音频分析任务的Python库。通过pyAudioAnalysis,你可以:
- 提取音频特征和表示(如mfcc、频谱图、色度图)
- 训练、参数调优和评估音频片段分类器
- 分类未知声音
- 检测音频事件并从长时间录音中排除静音期
- 执行有监督分割(联合分割-分类)
- 执行无监督分割(如说话人分割)并提取音频缩略图
- 训练和使用音频回归模型(应用示例:情感识别)
- 应用降维来可视化音频数据和内容相似性
安装
- 克隆此库的源代码:
git clone https://github.com/tyiannak/pyAudioAnalysis.git
- 安装依赖:
pip install -r ./requirements.txt
- 使用pip安装:
pip install -e .
音频分类示例
更多示例和详细教程可以在wiki中找到
pyAudioAnalysis提供易于调用的包装器来执行音频分析任务。例如,以下代码首先训练一个音频片段分类器,给定存储在文件夹中的一组WAV文件(每个文件夹代表一个不同的类),然后使用训练好的分类器对未知的音频WAV文件进行分类
from pyAudioAnalysis import audioTrainTest as aT
aT.extract_features_and_train(["classifierData/music","classifierData/speech"], 1.0, 1.0, aT.shortTermWindow, aT.shortTermStep, "svm", "svmSMtemp", False)
aT.file_classification("data/doremi.wav", "svmSMtemp","svm")
结果: (0.0, array([ 0.90156761, 0.09843239]), ['music', 'speech'])
此外,所有功能都提供命令行支持。例如,以下命令提取存储在WAV文件中的音频信号的频谱图:python audioAnalysis.py fileSpectrogram -i data/doremi.wav
进一步阅读
除了这个README文件,为了更好地理解如何使用这个库,你应该阅读以下内容:
- 音频处理基础:使用命令行或Python处理音频文件,如果你想学习如何从命令行处理音频文件,以及一些基本的音频信号处理编程。如果你对音频一无所知,从这里开始。
- 音频分析入门:使用机器学习识别声音 这比前一篇文章更深入,提供了音频特征提取、分类和分割的理论和实践的完整介绍(包含许多Python示例)。
- 库的wiki
- 如何使用机器学习根据音乐情绪调节灯光颜色。使用这个库训练实时音乐情绪估计器的一个有趣用例。
- 采用方法的更一般和理论性描述(以及针对特定用例的几个实验)在这篇出版物中有介绍。在你的研究工作中引用pyAudioAnalysis时,请使用以下引用:
@article{giannakopoulos2015pyaudioanalysis,
title={pyAudioAnalysis: An Open-Source Python Library for Audio Signal Analysis},
author={Giannakopoulos, Theodoros},
journal={PloS one},
volume={10},
number={12},
year={2015},
publisher={Public Library of Science}
}
关于Matlab相关的音频分析材料,请查看这本书。
作者
Theodoros Giannakopoulos, 国家科学研究中心"Demokritos"信息学和电信研究所计算智能实验室多媒体分析组(MagCIL)的多模态机器学习首席研究员