连接到 Audio2Face-3D 的示例应用程序#
提供了一个示例应用程序,演示如何与 Audio2Face-3D 微服务通信。此 Python 应用程序将与 A2F-3D NIM 交互。
假设#
Audio2Face-3D NIM 正在运行。
设置示例应用程序#
克隆存储库: NVIDIA/Audio2Face-3D-Samples
转到 scripts/audio2face_3d_microservices_interaction_app 子文件夹。
并按照 README.md
中的设置说明进行操作。
要检查应用程序是否正确设置并了解如何使用它,请运行
$ python3 a2f_3d.py --help
usage: a2f_3d.py [-h] {health_check,run_inference} ...
Sample python3 application to send audio and receive animation data and emotion data through the A2F-3D pipeline.
positional arguments:
{health_check,run_inference}
health_check Check GRPC service health
run_inference Send GRPC request and run inference for an audio file
options:
-h, --help show this help message and exit
NVIDIA CORPORATION. All rights reserved.
健康检查#
要检查 Audio2Face-3D 服务是否正在运行,请运行
$ python3 a2f_3d.py health_check --url <ip>:<port>
与 Audio2Face-3D 交互#
此示例 Python 应用程序可以按如下方式使用
$ python3 a2f_3d.py run_inference <audio_file.wav> <config.yml> -u <ip>:<port> [--skip-print-to-files]
例如,
$ python3 a2f_3d.py run_inference audio.wav config_mark_v2.yml -u 127.0.0.1:52000
该脚本需要两个参数:PCM 16 位格式的音频文件和一个包含情感参数的 YAML 配置文件。
此外,它接受用于 A2F-3D NIM 的
-u
参数。对于快速入门部署,请使用127.0.0.1:52000
。要测试脚本,您需要提供一个音频文件。
或者,您可以选择通过启用
--skip-print-to-files
不将结果打印到文件。或者,您可以选择通过启用
--print-fps
打印数据以进行性能测量。
结果#
这将生成一个文件夹,其中包含 4 个文件。您可以通过运行以下命令来浏览结果,并将 <output_folder>
替换为 a2f_3d.py
脚本打印的文件夹名称
$ ls -l <output_folder>/
-rw-rw-r-- 1 user user 328 Nov 14 15:46 a2f_3d_input_emotions.csv
-rw-rw-r-- 1 user user 65185 Nov 14 15:46 a2f_3d_smoothed_emotion_output.csv
-rw-rw-r-- 1 user user 291257 Nov 14 15:46 animation_frames.csv
-rw-rw-r-- 1 user user 406444 Nov 14 15:46 out.wav
out.wav:包含接收到的音频
animation_frames.csv:包含 blendshape
a2f_3d_input_emotions.csv:包含在 gRPC 协议中作为输入提供的情感
a2f_3d_smoothed_emotion_output.csv:包含随时间平滑的情感
注意
在以前的版本中,此示例应用程序生成了一个名为 a2e_emotion_output.csv 的文件,其中包含 a2f_input_emotions 和我们的 Audio2Emotion 模型推断的情感的混合,在任何后处理或平滑之前。在新的 Audio2Face-3D 微服务中,这些步骤已集成以获得最佳性能,因此不再提供中间推断的情感。
重采样音频数据#
Audio2Face-3D 使用 16 kHz 的最佳采样率执行音频处理。这是在推理期间获得最佳性能和质量的推荐采样率。
注意
至关重要的是使用以 16 kHz 采样的音频数据,以获得最准确的结果。我们的系统允许在音频处理管线中直接进行降采样和升采样;但是,我们强烈建议不要升采样。
重采样指南#
最佳采样率:该系统针对 16 kHz 的音频数据进行了优化。此采样率在性能和音频质量之间提供了最佳平衡。
降采样:如果您的音频数据以高于 16 kHz 的采样率采样,则必须进行降采样,并且可以直接由我们的处理管线处理。这确保您的音频数据与我们应用程序的最佳采样率匹配。
升采样:如果您的音频采样率低于 16 kHz,我们允许在我们的管线中进行升采样。但是,请注意,升采样通常会导致明显的质量下降。升采样中所需的插值可能会引入伪影和失真,从而对推理过程的性能产生不利影响。
警告
不建议使用采样率低于 16 kHz 的音频数据。虽然我们的系统支持升采样,但可能会导致较差的推理结果。为了获得最佳结果,请始终使用或将您的音频转换为 16 kHz 或更高频率,然后再进行处理。
通过遵守这些指南,您可以确保以最有效和保质的方式处理您的音频数据。