部署PANNs模型面临的问题
- 加载模型出错
在使用PANNs模型时,在PC端可以较好的运行,可是在Android端运行的时候,编译过程提示缺少libpytorch_jni.so文件,导致无法加载模型,无法预测。(如果有读者可以解决这个问题,请在评论中留言,万分感谢!) - 模型所需空间较大
PANNs的.pt模型文件大约30M,需要转换为Android端的torchscript文件,转换过后大约40M,加上pytorch框架可能会上50M。
部署YAMNet模型
- 由于无法使用PANNs,我们尝试将YAMNet部署到Android中。由于Android对Tensorflow的支持较好(可以通过编辑器直接导入模型),所以顺利的完成了YAMNet在Android上的部署。
- 最终编译出来的APK文件大小为21.2M。
测试YAMNet模型
在Android上使用0.975s的16kHz采样率音频数据测试,即一组全0的数组,形状为(1,15600)。得到结果如下所示:
小结
Pytorch对Andorid移动端不太友好,导致PANNs模型部署不成功;然后我们就转向了基于Tensorflow的YAMNet框架,后面尝试使用Java处理长音频数据,对音频进行重采样处理等操作。