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:

  1. running the docker container

  2. 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.