Skip to content

PyAudioAnalysis

PyAudioAnalysis是一个 Python 下的完整的音频分析库。

安装

首先克隆仓库:

Bash
git clone https://github.com/tyiannak/pyAudioAnalysis.git

安装依赖项目:

Bash
pip install -r requirements.txt

安装自身:

Bash
pip install -e .

分类

分类是通过对多个监督类中的音乐数据进行学习来构建监督模型,之后通过该模型来识别未知类。通常用于对音乐流派进行分类。

加载模型进行分类检测

对于单文件:

Python
from pyAudioAnalysis import audioTrainTest as aT

# 1. 音频文件路径
# 2. 模型文件路径
# 3. 模型文件类型
aT.file_classification("TrueFaith.wav", "data/svmMusicGenre3","svm")

对整个文件夹进行分类:

Bash
# only generates freq counts for each audio class
python audioAnalysis.py classifyFolder -i testFolder/ --model svm --classifier data/svmSM
# also outputs the result of each singe WAV file
python audioAnalysis.py classifyFolder -i testFolder/ --model svm --classifier data/svmSM --details

回归

回归模型在音频分析中也相当重要,例如语音情感识别。由于情感状态并不是一个离散的类别,而是一个实际测量值:

  • 唤起度(arousal): 表示激动的程度,值越高,感情也强烈
  • 评价值(valence): 表示高兴、满意的程度,值越高越是积极的情感

arousal 和 valence 都高即使非常兴奋,arousal 高 valence 低就是非常伤心。

加载模型进行回归检测

对于单文件回归:

Python
from pyAudioAnalysis import audioTrainTest as aT

aT.file_regression("anger1.wav", "data/modelssvmSpeechEmotion", "svm")

对整个文件夹进行回归:

Bash
python audioAnalysis.py regressionFolder -i ~/ResearchData/AUDIO/emotionSpeechData/germanSegments/Anger/ --model svm --regression data/svmSpeechEmotion
python audioAnalysis.py regressionFolder -i ~/ResearchData/AUDIO/emotionSpeechData/germanSegments/Sadness/ --model svm --regression data/svmSpeechEmotion
python audioAnalysis.py regressionFolder -i ~/ResearchData/AUDIO/emotionSpeechData/germanSegments/Happiness/ --model svm --regression data/svmSpeechEmotion