rk3588使用NPU部署 wespeaker声纹模型
1. wespeaker导出onnx模型时,需要使用静态模型导出。因为RKNN不支持动态推理。
wespeaker/bin/export_onnx.py修改如下,注释掉动态轴dynamic_axes
关于onxx静态和动态图可参考:https://cloud.tencent.com/developer/article/2010575
opset_version算子使用12版本
#-比如 num_frms=600(6s的音频长度), feat_dim=80
dummy_input = torch.ones(1, num_frms, feat_dim)
torch.onnx.export( model, dummy_input, args.output_model, do_constant_folding=True, verbose=False, opset_version=12, input_names=['feats'], output_names=['embs'], #dynamic_axes={'feats': {0: 'B', 1: 'T'}, 'embs': {0: 'B'}}##--设置动态图 )
2. 导出RKNN模型时(使用rknn-toolkit2-1.4.0版本),dataset设置为 numpy格式维度(1, num_frms, feat_dim) 的音频特征
这里不用设置mean_values和std_values #rknn.config(mean_values=[[0, 0, 0]], std_values=[[255, 255, 255]], target_platform="rk3588")
3. PC电脑端导出RKNN时,需要将系统的GLIBC更新为GLIBC_2.29版本,更新方法 https://blog.csdn.net/m0_37201243/article/details/123641552
4. RK3588板子 librknnrt.so需要替换成 rknn-1.4.0的版本(rknn-1.3.0不支持Sqrt算子),复制替换即可(下载的官方安装包中都有)。