Glossary of Terms#
Those new to Audio2Face-3D may want to first familiarize with the terminology below.
Common terminology#
Audio2Face-3D (A2F-3D)
The Audio2Face-3D Microservice provides access to the underlying Audio2Face-3D SDKs without the need to develop your own pipeline. It accepts audio and emotional input, producing animation data as output.
Microservice
A microservice is a software architectural style where an application is composed of loosely coupled, independently deployable components or services. Each service is focused on a specific business function and can be developed, deployed, and scaled independently. Microservices communicate with each other through well-defined APIs (Application Programming Interfaces), often using lightweight protocols such as HTTP or messaging queues. This approach promotes modularity, scalability, and flexibility in software development, making it easier to update, maintain, and scale complex systems.
NVIDIA technology#
NVIDIA NGC NVIDIA NGC is the hub for GPU-optimized software for deep learning, machine learning, and HPC that provides containers, models, model scripts, and industry solutions so data scientists, developers and researchers can focus on building solutions and gathering insights faster. Essentially NGC is a place to access data and documentation relating to a particular Nvidia product through Docker Containers. More information about NGC can be found on the Nvidia GPU cloud site - NVIDIA NGC | NVIDIA.
Docker Container and NVIDIA Container Toolkit Docker Containers are an essential part of the Linux installation process for Audio2Face-3D microservice. These containers can be deployed as a microservice using UCS tools and Kubernetes and can be hosted on any cloud or local server. You will use Docker Containers to drop-in or setup the necessary environment for the Audio2Face-3D microservice Linux machine.
3rd Party Technology#
Unreal Engine Unreal Engine is used in many industries, such as games and movies, as it is the most powerful way to showcase avatars, environments, and more. Unreal Engine is free to download, although you should become familiar with its usage and licensing to assess the needs of your project ( https://www.unrealengine.com/en-US/license ).
MetaHuman MetaHuman makes use of complex Avatars available and simplifies the process of character development. MetaHuman is powered by Unreal Engine. It’s a complete framework that provides creators and developers access to complex avatars. Read more about MetaHuman Here.
OpenTelemetry (OTel) OpenTelemetry is an open-source observability framework for instrumenting, generating, and collecting distributed traces and metrics in applications. It provides a unified way to monitor performance and detect issues across complex systems. Learn more at https://opentelemetry.io.
Jaeger Jaeger is an open-source, end-to-end distributed tracing system used for monitoring and troubleshooting complex, microservices-based architectures. It helps track request flows and diagnose performance issues. Learn more at https://jaegertracing.io.
Prometheus Prometheus is an open-source system for monitoring and alerting, designed to collect, store, and query time-series metrics from service endpoints. It is widely used for tracking performance data and supporting system reliability. Learn more at https://prometheus.io.
gRPC - Types of Requests In gRPC, there are four types of requests, each defining how data streams between client and server:
Unary RPC: This is the simplest form, where the client sends a single request message to the server, and the server responds with a single response message.
Client Streaming RPC: The client sends a stream of messages to the server, which processes them and returns a single response along with status details (typically but not necessarily after it has received all the data).
Server Streaming RPC: The client sends a single message to the server, and the server responds with a stream of messages. The server sends the status code after all the streamed messages. The client reads responses as they arrive.
Bidirectional Streaming RPC: Both client and server send a stream of messages to each other. The streams operate independently, meaning the client and server can read and write in any order.
Learn about gRPC at https://grpc.io/.