Ubuntu 22.04 Nvidia Audio2Face Error:Failed to build TensorRT engine

本文讲述了在Ubuntu22.04环境下安装Audio2Face遇到的实时同步问题,主要原因是ONNX模型的INT64精度不被TensorRT支持。通过使用onnx-simplifier将模型转换为INT32并重新构建TensorRTEngine解决了这个问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

1.在Ubuntu22.04上安装Audio2Face后启动,嘴形不会实时同步。控制台显示如【图一】:

图一
【图一】

2.log日志如下:

Error: Error during running command: [‘/home/admin/omniverse/libs/deps/321b626abba810c3f8d1dd4d247d2967/exts/omni.audio2face.inference_deps/deps/audio2face-inference-deps/bin/trtexec’, ‘–onnx=/home/admin/omniverse/libs/deps/321b626abba810c3f8d1dd4d247d2967/exts/omni.audio2face.emotion_deps/deps/audio2emotion-nets/nets/a2e_v1.4.2/network.onnx’, ‘–saveEngine=/home/admin/omniverse/cache/Kit/105.1/c677816d/audio2emotion-nets/a2e_v1.4.2/network_device0_fp32.trt’, ‘–device=0’, ‘–tacticSources=-CUDNN’, ‘–explicitBatch’]`
根据提示,直接在终端运行该命令:

/home/admin/omniverse/libs/deps/321b626abba810c3f8d1dd4d247d2967/exts/omni.audio2face.inference_deps/deps/audio2face-inference-deps/bin/trtexec --onnx=/home/admin/omniverse/libs/deps/321b626abba810c3f8d1dd4d247d2967/exts/omni.audio2face.emotion_deps/deps/audio2emotion-nets/nets/a2e_v1.4.2/network.onnx --saveEngine=/home/admin/omniverse/cache/Kit/105.1/c677816d/audio2emotion-nets/a2e_v1.4.2/network_device0_fp32.trt --device=0 --tacticSources=-CUDNN --explicitBatch

果然没有失望,报错如下:
Your ONNX model has been generated with INT64 weights, while TensorRT does not natively support INT64. Attempting to cast down to INT32.
不难看出,Nvidia提供的audio2emotion network.onnx为INT64.需要将模型转化为INIT32后重新构建TensorRT Engine即可。
接下来,需要将network.onnx的精度从INT64转化为INT32。

安装onnx-simplifier

pip install onnx-simplifier

根据上面的log,在/home/admin/omniverse/libs/deps/321b626abba810c3f8d1dd4d247d2967/exts/omni.audio2face.emotion_deps/deps/audio2emotion-nets/nets/a2e_v1.4.2/network.onnx找到network.onnx文件
转化模型为INT32:

cd /home/admin/omniverse/libs/deps/321b626abba810c3f8d1dd4d247d2967/exts/omni.audio2face.emotion_deps/deps/audio2emotion-nets/nets/a2e_v1.4.2/
# 转化INT64->INT32
python -m onnxsim network.onnx networkfp32.onnx
# 将转化后的networkfp32.onnx重命令为network.onnx,不然audio2face build TensorRT Engine时找不到。
mv network.onnx networkfp64.onnx
mv networkfp32.onnx network.onnx

重新构建TensorRT
如图二进行重构即可,重构成功后的AUTO-EMOTION控制面板如图三:
图二
【图二】
图三
【图三】
PS:如果自己已经安装过TensorRT,也可以用自己的trtexec进行转化,不过不建议这样做,因为要和Audio2Face中的trtexec(即log中的文件【/home/admin/omniverse/libs/deps/321b626abba810c3f8d1dd4d247d2967/exts/omni.audio2face.inference_deps/deps/audio2face-inference-deps/bin/trtexec】)版本一致。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值