NIM Service Chart#
Overview#
The nvidia-active-speaker-detection-h4m-service Helm chart deploys the Active Speaker Detection NIM as a standalone inference service on Kubernetes or Red Hat OpenShift.
Inputs: Video stream and one or more diarized audio streams via SMPTE ST 2110
Outputs: Bounding box metadata via SMPTE ST 2110-40 ancillary data; optionally video with bounding box overlay.
This chart can be deployed standalone for integration into a custom media pipeline, or as a subchart of the end-to-end demo chart.
Installation#
Prerequisites#
Complete all prerequisite steps (Rivermax license, image pull and model pull secrets, high-speed network attachment) before running helm install. For details, refer to Getting Started. For hardware requirements per pod, refer to the Support Matrix.
Pull the Chart#
If not already done, add the Helm repository and pull the chart. For the full repository setup, refer to Pull Helm Charts.
helm pull nim-repo/nvidia-active-speaker-detection-h4m-service --version 1.0.0
The downloaded .tgz is referenced directly in the following installation commands.
Helm Installation#
The chart includes a default values.yaml. For full SMPTE ST 2110 and NMOS override files, refer to Starter Configuration Files.
Important
The default values.yaml ships with example values for cluster-specific fields such as node selector (example-gpu-node), image pull secret, network name, and scheduler. You must update these values to match your cluster before deploying.
Default deployment (SMPTE ST 2110 NMOS mode, 1080p):
helm upgrade --install nvidia-asd-h4m-service \
nvidia-active-speaker-detection-h4m-service-1.0.0.tgz
With node hostname and secret overrides:
helm upgrade --install nvidia-asd-h4m-service \
nvidia-active-speaker-detection-h4m-service-1.0.0.tgz \
--set nodeSelector.hostname=<gpu-node-name> \
--set image.secret=<image-pull-secret> \
--set schedulerName=<scheduler-name> \
--set network.name=<multus-net-attach-def> \
--set ngcModelDownload.secretName=<model-pull-secret>
|
Purpose |
Default |
|---|---|---|
|
Target GPU node. |
— |
|
Image pull secret ( |
|
|
Kubernetes scheduler name. |
|
|
|
|
|
Model pull secret ( |
|
After installation, check the status:
kubectl get pods -o wide
kubectl rollout status deployment/<appName> --timeout=180s
On Red Hat OpenShift, replace kubectl with oc.
Deployment Modes#
The NIM service offers two modes to support media stream connections:
Aspect |
SMPTE ST 2110 |
NMOS |
|---|---|---|
Values file |
|
|
Stream discovery |
Fixed multicast IP addresses and ports in values. |
Dynamic discovery via NMOS Connection Manager. |
Use case |
Known network, fixed topology. |
Dynamic registration and connection management. |
SMPTE ST 2110 Mode#
NMOS discovery is disabled. All multicast IP addresses, ports, and session parameters must be configured explicitly. Sender output IP addresses and ports must match NIM service input IP addresses and ports, and NIM service output IP addresses and ports must match downstream receiver input IP addresses and ports.
helm upgrade --install nvidia-asd-h4m-service \
nvidia-active-speaker-detection-h4m-service-1.0.0.tgz \
-f values-st2110.yaml
NMOS Mode#
Stream connections are managed via the NMOS Connection Manager UI. Most input and output transport parameters can be omitted from the values file—only session names and ancillary output parameters must be set. On Holoscan for Media clusters, the UI is typically opened from a browser on the cluster network; for remote graphical access, refer to Chrome Remote Desktop in Getting Started.
helm upgrade --install nvidia-asd-h4m-service \
nvidia-active-speaker-detection-h4m-service-1.0.0.tgz \
-f values-nmos.yaml
Note
In NMOS mode, connect receivers to the NIM service before connecting the sender via the NMOS Connection Manager UI. This procedure prevents frames from accumulating in receiver queues.
Starter Configuration Files#
Copy the appropriate configuration below into values-st2110.yaml or values-nmos.yaml, adjust the fields for your environment, and pass it to helm upgrade --install with -f.
For a full reference of all available Helm keys, pipeline tuning parameters, and environment variables, refer to the Configuration Reference.
ST2110 Configuration — Static (values-st2110.yaml)#
appName: nvidia-active-speaker-detection-nim-st2110
replicas: 1
nodeSelector:
hostname: example-gpu-node
image:
repository: nvcr.io/nim/nvidia/active-speaker-detection-h4m-nim
tag: "1.0.0"
secret: ngc-api-key
schedulerName: topo-aware-scheduler
nimLogs:
enabled: true
mountPath: "/workspace/nim-logs"
network:
name: "media-a-tx-net"
nmos:
enabled: false
hostname: active-speaker-detection-nim.local
description: NVIDIA Active Speaker Detection NIM
label: Nvidia-Active-Speaker-Detection-NIM
video:
width: 1920
height: 1080
framerateNum: 30
framerateDen: 1
audio:
pcmFormat: S24BE
samplingRate: 48000
numChannels: 1
input:
video:
sessionName: video_in
localInterfaceName: net1
hostIp: 234.5.8.26
hostPort: "7005"
hostNumSubnetBits: 24
audio:
sessionName: audio_in
localInterfaceName: net1
hostIp: 234.5.8.26
hostPort: "7006"
hostNumSubnetBits: 24
numStreams: 2
output:
video:
sessionName: video_out
localInterfaceName: net1
hostIp: 234.5.8.27
hostPort: "7005"
hostNumSubnetBits: 24
ancillaryData:
sessionName: ancillary_out
localInterfaceName: net1
hostIp: 234.5.8.27
hostPort: "7006"
hostNumSubnetBits: 24
logging:
level: 3
pipeline:
testFrameOverlayMode: false
outputFrameBufferSize: 30
useAudioThresholdToDetectActiveAudioStream: false
audioThresholdDb: -40.0
syncTolerance: 0.5986
ngcModelDownload:
secretName: "ngc-model-pull-api-key"
secretKey: "NGC_API_KEY"
# NMOS Node API (port 9010) — Service name: <appName>-endpoint
service:
enabled: true
type: NodePort
port: 9010
nodePort: 32526
NMOS Configuration (values-nmos.yaml)#
appName: nvidia-active-speaker-detection-nim-nmos
replicas: 1
nodeSelector:
hostname: example-gpu-node
image:
repository: nvcr.io/nim/nvidia/active-speaker-detection-h4m-nim
tag: "1.0.0"
secret: ngc-api-key
schedulerName: topo-aware-scheduler
nimLogs:
enabled: true
mountPath: "/workspace/nim-logs"
network:
name: "media-a-tx-net"
nmos:
enabled: true
hostname: active-speaker-detection-nim.local
description: NVIDIA Active Speaker Detection NIM
label: Nvidia-Active-Speaker-Detection-NIM
video:
width: 1920
height: 1080
framerateNum: 30
framerateDen: 1
audio:
pcmFormat: S24BE
samplingRate: 48000
numChannels: 1
input:
video:
sessionName: video_in
audio:
sessionName: audio_in
numStreams: 2
output:
video:
sessionName: video_out
ancillaryData:
sessionName: ancillary_out
localInterfaceName: net1
hostIp: 234.5.8.27
hostPort: "7006"
hostNumSubnetBits: 24
logging:
level: 3
pipeline:
testFrameOverlayMode: false
outputFrameBufferSize: 30
useAudioThresholdToDetectActiveAudioStream: false
audioThresholdDb: -40.0
syncTolerance: 0.5986
ngcModelDownload:
secretName: "ngc-model-pull-api-key"
secretKey: "NGC_API_KEY"
# NMOS Node API (port 9010) — Service name: <appName>-endpoint
service:
enabled: true
type: NodePort
port: 9010
nodePort: 32526
Note
In NMOS mode, connect receivers to the NIM service before connecting the sender via the NMOS Connection Manager UI.
Verify#
helm status nvidia-asd-h4m-service
kubectl get pods -o wide
Verify configured Helm values:
helm get values nvidia-asd-h4m-service
On Red Hat OpenShift, replace kubectl with oc. For log access, refer to Observability.
Uninstall#
helm uninstall nvidia-asd-h4m-service
For troubleshooting and advanced configuration, refer to Advanced Usage.