[1] Cao Y, Kong Q, Iqbal T, et al. Polyphonic sound event detection and localization using a two-stage strategy[J]. arXiv preprint arXiv:1905.00268, 2019.
论文: TWO-STAGE SOUND EVENT LOCALIZATION AND DETECTION USING INTENSITY VECTOR AND GENERALIZED CROSS-CORRELATION(基于强度向量与广义互相关的两步声事件定位与探测)
相关代码: https://github.com/yinkalario/Two-Stage-Polyphonic-Sound-Event-Detection-and-Localization/
内容 | 概述 |
---|---|
输入特征 | LogMel谱 、广义互相关谱 |
网络 | 两个分支 |
输出 | 类别预测概率 |
我使用的环境
。h5py==3.1.0
ipython==8.4.0
joblib==0.17.0
librosa==0.9.2
matplotlib==3.3.4
numpy==1.19.5
pandas==0.25.3
scikit_learn==1.1.1
scipy==1.5.4
tensorboardX==2.5.1
torch==1.4.0
torchsummary==1.5.1
tqdm==4.64.0
数据集准备具体参见上面给出的代码的github页面,里面有详细教程,另外数据集下载链接也能在github页面中找到。
dataset_root
├── metadata_dev (400 files)
│ ├── split1_ir0_ov1_0.csv
│ └── …
├── foa_dev (400 files)
│ ├── split1_ir0_ov1_0.wav
│ └── …
├── mic_dev (400 files)
│ ├── split1_ir0_ov1_0.wav
│ └── …
└── …
如上所示,数据集中mic_dev主要是用于训练和交叉验证,metadata_dev则是训练数据的标签。
数据集详情见dcase官网: TAU DataSet
0_directories.sh
,设置项目工作目录、数据集目录和提取的特征文件所在的目录,然后通过 source
命令运行设置目录。1_extract_features.sh
设置提取特征的相关配置,然后通过 source
命令运行提取特征,特征文件包含以 .h5
为后缀,根据设置包含了对数梅尔谱、广义互相关谱、声事件类别及位置等参数。2_train.sh
,设置相关参数,然后通过 source
命令运行文件进行模型训练。3_evaluation.sh
,设置相关参数,然后通过 source
命令运行文件进行模型性能评估。需要解决的文件是声分类与角度定位。
Two_Stage
,声分类和角度定位分两步训练。CRNN10
模型训练,损失函数使用二进制交叉熵函数。训练后将8层CNN feature layer
迁移至定位的网络模型(文中认为该操作可以使用于定位网络模型利用声分类中先验信息辅助定位)。pretrained_CRNN10
,损失函数为最小平方误差函数对声事件的水平角和俯仰角进行回归(区别于数据集中将空间划分为324类)。使用模型对音频推理时,灵活性较高。本文鉴于模型在数据集的训练和推理介绍一种最简单的方案。
liborsa
导入所要推理的音频文件。RT_processing
函数进行特征提取。