Migrating from 1.0 to 1.2#
The Audio2Face-3D NIM (version 1.2) was previously a suite of 2 microservices (in version 1.0): Audio2Face Microservice and Audio2Face Controller. This page will guide you through what has changed between the two versions.
Audio2Face Controller#
The Audio2Face Controller’s functionality has been integrated into Audio2Face-3D Microservice. The gRPC proto service remains the same.
Service Interface#
service A2FControllerService {
rpc ProcessAudioStream(stream nvidia_ace.controller.v1.AudioStream)
returns (stream nvidia_ace.controller.v1.AnimationDataStream) {}
}
Audio2Face-3D Microservice#
Audio stream header#
The new field emotion_params
in AudioStreamHeader
message controls temporal smoothing in the Audio2Emotion SDK.
message AudioStreamHeader {
nvidia_ace.audio.v1.AudioHeader audio_header = 1;
nvidia_ace.a2f.v1.FaceParameters face_params = 2;
nvidia_ace.a2f.v1.EmotionPostProcessingParameters emotion_post_processing_params = 3;
nvidia_ace.a2f.v1.BlendShapeParameters blendshape_params = 4;
nvidia_ace.a2f.v1.EmotionParameters emotion_params = 5;
}
The new EmotionParameters
message introduces control for emotion smoothing over time. The live_transition_time
field defines the duration over which the emotion should be smoothed. The beginning_emotions
field provides the
initial set of emotions to the smoothing algorithm.
message EmotionParameters {
optional float live_transition_time = 1;
map<string, float> beginning_emotion = 2;
}
Blendshape parameters#
The new field enable_clamping_bs_weight
in BlendShapeParameters
message controls whether or not to clamp the
values of the returned blendshapes between 0 and 1. The clamping is applied after multipliers and offsets are applied.
message BlendShapeParameters {
map<string, float> bs_weight_multipliers = 1;
map<string, float> bs_weight_offsets = 2;
optional bool enable_clamping_bs_weight = 3;
}
Migrating Configuration files#
In order to make the configuration file migration easier we provide here a tool to do it.
Clone the repository: NVIDIA/Audio2Face-3D-Samples
Go to migration/deployment_configuration_files_from_v1.0_to_v1.2/ subfolder.
And follow the setup instructions below:
Configuration file migration guide
This sample python app allows you to migrate your A2F-3D config files from v1.0 to v1.2.
Prerequisite
Install:
python3
python3-venv
Setup a virtual environment and install the needed packages:
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install -r requirements.txt
Steps
To do so there are 2 possibilities. You want to migrate the A2F-3D config files used for:
running the docker container
deploying the UCS app
Updating docker container configs
Update:
docker_container_configs/a2f_config.yaml
docker_container_configs/ac_a2f_config.yaml
with your own config files.
Then run:
$ python3 convert_configuration_files.py docker_config
This will generate new config files compatible with A2F-3D v1.2 and print the folder name.
Updating the UCS app configs
Update:
ucs_app_configs/a2f_config.yaml
with your own config file.
Then run:
$ python3 convert_configuration_files.py ucs
This will generate new config files compatible with A2F-3D v1.2 and print the folder name.
Migrating Kubernetes deployment#
The quick deployment resource for Audio2Face-3D via NGC is no longer available. For a straightforward Kubernetes deployment, refer to the detailed steps in this guide: Kubernetes Deployment.