Skip to content

feat(nvidia): NVCF cloud support for one-shot Riva/nvidia TTS - #145

Open
davehorton wants to merge 1 commit into
mainfrom
feat/nvidia-nvcf-cloud-tts
Open

feat(nvidia): NVCF cloud support for one-shot Riva/nvidia TTS#145
davehorton wants to merge 1 commit into
mainfrom
feat/nvidia-nvcf-cloud-tts

Conversation

@davehorton

Copy link
Copy Markdown
Collaborator

Closes the "one-shot Riva/nvidia TTS cloud" gap (#48). The nvidia/riva synth path was self-hosted-only (insecure gRPC to riva_server_uri); this adds NVCF cloud.

  • createRivaClient(uri, {apiKey, functionId}) — when apiKey is set, dials grpc.nvcf.nvidia.com:443 over TLS with per-RPC metadata (function-id + Bearer <api key>) baked into the channel credentials via combineChannelCredentials. function-id defaults to ai-magpie-tts-multilingual, overridable via credentials.function_id. Otherwise insecure self-hosted (unchanged).
  • synthNvidia — passes api_key/function_id to the gRPC synth (the caching/renderForCaching path), and in the say: path emits NVIDIA_API_KEY (+NVIDIA_FUNCTION_ID) for cloud so mediajam's nvidia dialect uses NVCF (it already reads those opts). Self-hosted say: params unchanged.
  • The nvidia assert now accepts riva_server_uri (self-hosted) or api_key (cloud).

Verify

node --check + npm run jslint clean; npm test 46/46 pass (the nvidia synth test skips without RIVA_URI; a live NVCF synth needs the NVIDIA cloud key in run-tests.sh).

Follow-up

Needs a version bump + publish, then the feature-server dep bump. Pairs with the webapp nvidia api_key field (#49) and api-server #55 (stores the nvidia api_key credential).

🤖 Generated with Claude Code

The nvidia/riva one-shot synth path was self-hosted-only (insecure gRPC to
riva_server_uri). Add NVCF cloud: when credentials.api_key is set, createRivaClient
dials grpc.nvcf.nvidia.com:443 over TLS with per-RPC metadata (function-id +
Bearer api key) baked into the channel credentials; function-id defaults to
ai-magpie-tts-multilingual, overridable via credentials.function_id.

- createRivaClient(uri, {apiKey, functionId}) — cloud when apiKey present, else
  insecure self-hosted (unchanged).
- synthNvidia: pass api_key/function_id to the gRPC synth (caching path); and in
  the say: path emit NVIDIA_API_KEY(+NVIDIA_FUNCTION_ID) for cloud so mediajam's
  nvidia dialect uses NVCF (it already reads those). Self-hosted say: unchanged.
- assert now accepts riva_server_uri (self-hosted) OR api_key (cloud).

Closes the 'one-shot say TTS cloud' gap; pairs with the webapp nvidia api_key
field. Requires a version bump + publish.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant