Skip to content

feat(plugins): add livekit-plugins-voxcpm for vLLM-Omni VoxCPM2 TTS#6122

Open
tamerrkanak wants to merge 3 commits into
livekit:mainfrom
Mank-Technology:livekit-plugins-voxcpm
Open

feat(plugins): add livekit-plugins-voxcpm for vLLM-Omni VoxCPM2 TTS#6122
tamerrkanak wants to merge 3 commits into
livekit:mainfrom
Mank-Technology:livekit-plugins-voxcpm

Conversation

@tamerrkanak

@tamerrkanak tamerrkanak commented Jun 16, 2026

Copy link
Copy Markdown

Summary

  • Add livekit-plugins-voxcpm, a self-hosted TTS plugin for VoxCPM2 served through vLLM-Omni.
  • Support HTTP chunked PCM synthesis (POST /v1/audio/speech) and low-latency WebSocket streaming (/v1/audio/speech/stream).
  • Expose voice clone options (voice, ref_audio, ref_text) and 48 kHz mono PCM output for LiveKit voice agents.

Test plan

  • uv run pytest tests/test_voxcpm_tts.py -v (mock HTTP/WS + local vLLM-Omni integration when available)
  • Manual synthesis against vLLM-Omni 0.22.0 + openbmb/VoxCPM2 on :8800
  • Example agent smoke test: examples/voice_agents/voxcpm_agent.py

Notes

  • This plugin targets self-hosted vLLM-Omni backends; upstream CI toxiproxy matrix is not included because there is no public hosted VoxCPM2 endpoint.
  • vLLM-Omni WebSocket metadata may advertise 24 kHz, but VoxCPM2 PCM output is 48 kHz; the plugin uses 48 kHz consistently.

Made with Cursor

Introduce a self-hosted TTS plugin that streams 48 kHz PCM from vLLM-Omni
Speech API endpoints, with HTTP chunked synthesis and WebSocket streaming
for LiveKit voice agents.
@tamerrkanak tamerrkanak requested a review from a team as a code owner June 16, 2026 08:18
devin-ai-integration[bot]

This comment was marked as resolved.

Streaming TTS must mark synthesis start so LiveKit emits TTFB and
duration metrics, matching other streaming TTS plugins.
@CLAassistant

CLAassistant commented Jun 16, 2026

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

devin-ai-integration[bot]

This comment was marked as resolved.

Each test module must declare exactly one category marker per AGENTS.md.
Move the live vLLM-Omni integration test into test_plugin_voxcpm_tts.py.
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