Skip to content

Conversation

@toubatbrian
Copy link
Contributor

@toubatbrian toubatbrian commented Jan 13, 2026

Description

Ports the NVIDIA Riva STT and TTS plugins from the Python livekit/agents repository to TypeScript for livekit/agents-js. This enables LiveKit Agents to use NVIDIA's Riva speech services for speech recognition and synthesis.

Changes Made

  • Added new @livekit/agents-plugin-nvidia package with STT and TTS implementations
  • STT: Streaming speech recognition using NVIDIA Riva ASR with interim results and word-level timing
  • TTS: Streaming and chunked text-to-speech synthesis using NVIDIA Riva
  • Added type definitions for supported models, voices, and languages
  • Added NVIDIA_API_KEY to turbo.json globalEnv
  • Added changeset for the new plugin
  • Added example agent (examples/src/nvidia_agent.ts) demonstrating NVIDIA STT and TTS usage

Pre-Review Checklist

  • Build passes: All builds (lint, typecheck, tests) pass locally
  • AI-generated code reviewed: Removed unnecessary comments and ensured code quality
  • Changes explained: All changes are properly documented and justified above
  • Scope appropriate: All changes relate to the PR title
  • Video demo: Not applicable - requires NVIDIA API credentials for testing

Testing

  • Build passes (pnpm build)
  • Lint passes (pnpm lint)
  • Automated tests added/updated - No tests added
  • Runtime testing with NVIDIA Riva API - Not tested (requires API credentials)

Important Review Notes

⚠️ This implementation has NOT been runtime tested with actual NVIDIA Riva services.

Key areas requiring careful review:

  1. gRPC Implementation: The code uses grpc.makeGenericClientConstructor with JSON serialization. Reviewers should verify this approach works with NVIDIA Riva's protobuf-based API, or if proper .proto files need to be used instead.

  2. Type Casting: Several as unknown as casts are used for gRPC client types (stt.ts:198, tts.ts:130, tts.ts:290). These work around TypeScript but may hide runtime issues.

  3. Default Function IDs: Hardcoded function IDs (1598d209-5e27-4d3c-8079-4751568b1081 for STT, 877104f7-e885-42b9-8de8-f6e4c6303969 for TTS) - verify these are correct/current.

Additional Notes

  • Follows existing plugin patterns (deepgram, cartesia, etc.)
  • Supports both SSL (cloud) and non-SSL (local NIM) deployments
  • SPDX headers added for REUSE compliance
  • Package version set to 1.0.0 as initial release

Updates Since Last Revision

  • Added SPDX header to README.md to fix REUSE-3.2 compliance check
  • Changed changeset from minor to patch
  • Set package.json version to 1.0.0
  • Added example agent file (examples/src/nvidia_agent.ts) using NVIDIA STT and TTS

Link to Devin run: https://livekit.devinenterprise.com/sessions/ca0209fd85d4460ebe1eab7ed2be31ea
Requested by: @toubatbrian

Note to reviewers: Please ensure the pre-review checklist is completed before starting your review. Runtime testing with NVIDIA credentials is recommended before merging.

Co-Authored-By: brian.yin@livekit.io <brian.yin@livekit.io>
@devin-ai-integration
Copy link

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

@changeset-bot
Copy link

changeset-bot bot commented Jan 13, 2026

🦋 Changeset detected

Latest commit: e716065

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 18 packages
Name Type
@livekit/agents-plugin-nvidia Patch
@livekit/agents Patch
@livekit/agents-plugin-anam Patch
@livekit/agents-plugin-baseten Patch
@livekit/agents-plugin-bey Patch
@livekit/agents-plugin-cartesia Patch
@livekit/agents-plugin-deepgram Patch
@livekit/agents-plugin-elevenlabs Patch
@livekit/agents-plugin-google Patch
@livekit/agents-plugin-inworld Patch
@livekit/agents-plugin-livekit Patch
@livekit/agents-plugin-neuphonic Patch
@livekit/agents-plugin-openai Patch
@livekit/agents-plugin-resemble Patch
@livekit/agents-plugin-rime Patch
@livekit/agents-plugin-silero Patch
@livekit/agents-plugin-xai Patch
@livekit/agents-plugins-test Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

devin-ai-integration bot and others added 4 commits January 13, 2026 19:54
Co-Authored-By: brian.yin@livekit.io <brian.yin@livekit.io>
Co-Authored-By: brian.yin@livekit.io <brian.yin@livekit.io>
Co-Authored-By: brian.yin@livekit.io <brian.yin@livekit.io>
Co-Authored-By: brian.yin@livekit.io <brian.yin@livekit.io>
@toubatbrian toubatbrian changed the title Add NVIDIA Riva plugin with STT and TTS support [draft] Add NVIDIA Riva plugin with STT and TTS support Jan 20, 2026
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.

2 participants