NIM Service Chart#
Overview#
The nvidia-studio-voice-h4m-service Helm chart deploys the Studio Voice NIM as a standalone inference service on Kubernetes or Red Hat OpenShift.
Input: Audio stream via SMPTE ST 2110-30.
Output: Enhanced audio via SMPTE ST 2110-30.
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-studio-voice-h4m-service --version 1.2.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 (static) 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. Before deploying, you must update these fields to match your cluster.
Default deployment (NMOS mode):
helm upgrade --install nvidia-studio-voice-h4m-service \
nvidia-studio-voice-h4m-service-1.2.0.tgz
With node hostname, network, scheduler, and secret overrides:
helm upgrade --install nvidia-studio-voice-h4m-service \
nvidia-studio-voice-h4m-service-1.2.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 ngc.secretName=<model-pull-secret>
|
Purpose |
Default |
|---|---|---|
|
Target GPU node. |
|
|
Image pull secret ( |
|
|
Pod |
|
|
Multus |
|
|
Model pull secret ( |
|
Note
The image pull secret and the model pull secret must have different names and different types (docker-registry versus generic). For creation steps, refer to Getting Started.
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 Studio Voice service offers two modes to support media stream connections:
Aspect |
SMPTE ST 2110 (static) |
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 Static Mode#
NMOS discovery is disabled. All multicast IP addresses, ports, and session parameters must be configured explicitly. Upstream sender output IP addresses and ports must match Studio Voice service input IP addresses and ports, and Studio Voice service output IP addresses and ports must match downstream receiver input IP addresses and ports.
helm upgrade --install nvidia-studio-voice-h4m-service \
nvidia-studio-voice-h4m-service-1.2.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 must be set, and transport details are negotiated dynamically over IS-04 or IS-05. 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-studio-voice-h4m-service \
nvidia-studio-voice-h4m-service-1.2.0.tgz \
-f values-nmos.yaml
Note
In NMOS mode, connect receivers to the Studio Voice service before connecting the sender via the NMOS Connection Manager UI. This procedure prevents audio 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.
ST 2110 Configuration — Static (values-st2110.yaml)#
appName: nvidia-studio-voice-nim-st2110
replicas: 1
nodeSelector:
hostname: example-gpu-node
image:
repository: nvcr.io/nim/nvidia/studio-voice-h4m
tag: "1.2.0"
pullPolicy: IfNotPresent
secret: ngc-image-secret
nmos:
enabled: false
httpPort: 9010
seed: nvidia-studio-voice-nim-st2110
audio:
pcmFormat: S24BE
samplingRate: 48000
numChannels: 1
input:
audio:
sessionName: audio_in
localInterfaceName: net1
hostIp: "234.5.8.9"
hostPort: 5003
hostNumSubnetBits: 24
output:
audio:
sessionName: audio_out
localInterfaceName: net1
hostIp: "234.5.8.9"
hostPort: 5004
hostNumSubnetBits: 24
network:
name: media-a-tx-net
studiovoice:
nmosEnabled: false
nimEnabled: true
NMOS Configuration (values-nmos.yaml)#
In NMOS mode the transport parameters (multicast IP address, port, subnet) are negotiated dynamically by the NMOS Connection Manager over IS-04 and IS-05, so only the session names need to be set on the NIM service; the values are discovered at runtime.
appName: nvidia-studio-voice-nim-nmos
replicas: 1
nodeSelector:
hostname: example-gpu-node
image:
repository: nvcr.io/nim/nvidia/studio-voice-h4m
tag: "1.2.0"
pullPolicy: IfNotPresent
secret: ngc-image-secret
nmos:
enabled: true
httpPort: 9010
seed: nvidia-studio-voice-nim-nmos
hostname: studio-voice-nim.local
description: Studio-Voice-NIM
label: Studio-Voice-NIM
audio:
pcmFormat: S24BE
samplingRate: 48000
numChannels: 1
input:
audio:
sessionName: audio_in
output:
audio:
sessionName: audio_out
network:
name: media-a-tx-net
studiovoice:
nmosEnabled: true
nimEnabled: true
Note
In NMOS mode, connect receivers to the Studio Voice service before connecting the sender via the NMOS Connection Manager UI.
Verify#
helm status nvidia-studio-voice-h4m-service
kubectl get pods -o wide
Verify configured Helm values:
helm get values nvidia-studio-voice-h4m-service
On Red Hat OpenShift, replace kubectl with oc. For log access, refer to Observability.
Uninstall#
helm uninstall nvidia-studio-voice-h4m-service
Note
The *-model-cache and *-nim-logs PVCs carry helm.sh/resource-policy: keep and are not removed by helm uninstall. This preserves the cached model across reinstalls; clean them up manually when no longer needed:
kubectl delete pvc -l app.kubernetes.io/instance=nvidia-studio-voice-h4m-service -n <your-namespace>
For troubleshooting and advanced configuration, refer to Advanced Usage.