Skip to content

Add hosted Oruk API STT plugin - #7501

Draft
Nathan-Roll1 wants to merge 2 commits into
livekit:mainfrom
Nathan-Roll1:codex/oruk-hosted-api-20260927
Draft

Nathan-Roll1 wants to merge 2 commits into
livekit:mainfrom
Nathan-Roll1:codex/oruk-hosted-api-20260927

Conversation

@Nathan-Roll1

@Nathan-Roll1 Nathan-Roll1 commented Sep 27, 2026 •

Copy link
Copy Markdown

Adds an authenticated Oruk API STT provider and a runnable WAV example, following the request for a hosted Python integration. Spectra-2 returns a final utterance; live agents use the existing VAD StreamAdapter. The plugin converts input to mono 16 kHz, preserves request identity/audio across transport retries, handles the API's distinct capacity-rejection rules, and avoids replaying authentication, completed/uncertain-ID, or malformed-success failures.

Validation: 31 focused plugin/base/prewarm tests pass; package wheel and sdist build; repository formatting and lint pass. A dedicated temporary internal key completed three real API calls (six public-fixture audio seconds), including 48 kHz stereo input conversion; automatic retries were disabled for that smoke. Full repository mypy reports the same 14 Azure/AWS dependency errors with this plugin excluded; the new plugin's focused strict check passes. Upstream CI passes repository lint, Python 3.10/3.13 typing, all three platform blockguard suites, the release gate, CLA and the broad unit suite. No native partial streaming, diarization, word alignment, or latency/accuracy guarantee is claimed.

Run before publication: uv sync --package livekit-agents --extra oruk --extra silero --dev, set ORUK_API_KEY, then uv run python examples/other/oruk_transcribe.py recording.wav. The account must have access to the selected model.

This branch has not been deployed

No deployments
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