FMFCC Audio Deepfake Detection Solution
This repo provides an solution for the 多媒体伪造取证大赛. Our solution achieve the 1st in the Audio Deepfake Detection track . The ranking can be seen here
Authors
Institution: Shenzhen Key Laboratory of Media Information Content Security(MICS)
Team name: Forensics_SZU
Username:
- 陈保营 email: [email protected]
- [黄远坤]
- [梅思玉]
Pipeline
EfficientNet-B2 + mel features (不同mel参数的训练两个模型ensemble)
Requirements:
- 激活已经配置好的环境[建议使用这个]
conda activate audio
- 或者执行这个重新配置
pip install -r requirements.txt
- 可能存在部分包漏了安装,可以通过pip install 方式继续安装完整
Submission
- cd到代码位置:/home/audio5/py_project/CSIG_audio
cd /home/audio5/py_project/CSIG_audio
- 接着,修改inference.py 文件的第98行中的root_path路劲为自己语音测试集的路劲
1. 预测第一个模型
- 然后执行
python inference.py
- 运行结束后,可以在 "./output/results/efficientnet-b2_96_k2e6_hop48_t' 看到results.json文件
2. 预测第二个模型
- 2.1 修改json_root的路劲:把inference.py的105行的代码注释掉, 然后解除106行的注释,更新了第二个模型预测结果保存的路劲,修改后的代码如下
105 # json_root = f'./output/results/{model_name}_96_k2e6_hop48_t'
106 json_root = f'./output/results/{model_name}_96_k2e9_t'
- 2.2 修改model_path的路劲(即改变模型权值):把inference.py的114行的代码注释掉, 然后解除115行的注释,更新了模型权值的路劲,修改后的代码如下
114 # model_path = './output/weights/efficientnet-b2_96_hop48_k2/audio6_acc0.9832.pth'
115 model_path = './output/weights/efficientnet-b2_96_k2/audio9_acc0.9752.pth'
- 2.3 修改mel feature的配置参数:把dataset/preprocess/vggish_params.py中的 35行代码"EXAMPLE_HOP_SECONDS = 0.48" 改为"EXAMPLE_HOP_SECONDS = 0.96" 特别要注意EXAMPLE_HOP_SECONDS这个参数,验证结束后,需要重新修改为0.48, 方便最终决赛运行
- 修改上述三点后,然后执行, 另外前面的两个修改也需要恢复。
python inference.py
- 运行结束后,可以在 "./output/results/efficientnet-b2_96_k2e9_t' 看到results.json文件
Ensemble
- 集成刚刚生成的两个json文件:把inference.py 第88行的"json_ensemble = False"改为"json_ensemble = True"
- 修改后执行:
python inference.py
- 运行结束后,可以在 "./output/results/ensemble_01_t' 看到results.json文件,该文件就是我们最终提交的结果json文件