Sample application connecting to A2F Controller#

A sample application is provided to demonstrate how to communicate with the Audio2Face microservices. This python application will interact with A2F controller.

Assumptions#

The Audio2Face and Audio2Face Controller Microservices are up and running.

Sending an audio clip#

Clone the repository: NVIDIA/ACE

Follow the instructions in the above link to set up the specified environments.

Go to microservices/audio_2_face_microservice/scripts/audio2face_microservices_interaction_app subfolder.

And follow the setup instructions in the README.md.

This sample python application can be used as follows:

$ ./a2f.py --help
$ ./a2f.py <audio_file.wav> <config.yml> -u <ip>:<port>

For example,

$ ./a2f.py audio.wav config_mark_v2.yml -u 127.0.0.1:52000
  • The script requires two parameters: an audio file in PCM 16-bit format and a YAML configuration file containing emotion parameters.

  • Additionally, it accepts a -u parameter for the A2F Controller URL. For quick start deployment, use 127.0.0.1:52000.

  • To test the script, you’ll need to provide an audio file.

Results#

This will produce a folder in which 5 files are available:

$ ls -l 20240410_120000
-rw-rw-r-- 1 user user   1733 Apr 10 12:00 a2e_emotion_output.csv
-rw-rw-r-- 1 user user    466 Apr 10 12:00 a2f_input_emotions.csv
-rw-rw-r-- 1 user user  17702 Apr 10 12:00 a2f_smoothed_emotion_output.csv
-rw-rw-r-- 1 user user  76219 Apr 10 12:00 animation_frames.csv
-rw-rw-r-- 1 user user 133368 Apr 10 12:00 out.wav
  • out.wav: contains the audio received

  • animation_frames.csv: contains the blendshapes

  • a2f_input_emotions.csv: contains the emotions provided as input in the gRPC protocol

  • a2e_emotion_output.csv: contains a blend of a2f_input_emotions and emotions inferred by Audio2Emotion

  • a2f_smoothed_emotion_output.csv: contains the emotions of a2e_emotion_output smoothed over time