Skip to content

feat(media-use): add Cartesia TTS provider#2426

Open
FNDEVVE wants to merge 1 commit into
heygen-com:mainfrom
FNDEVVE:feat/cartesia-voice-support
Open

feat(media-use): add Cartesia TTS provider#2426
FNDEVVE wants to merge 1 commit into
heygen-com:mainfrom
FNDEVVE:feat/cartesia-voice-support

Conversation

@FNDEVVE

@FNDEVVE FNDEVVE commented Jul 14, 2026

Copy link
Copy Markdown

Summary

Add Cartesia as a fourth TTS provider in the shared media-use audio engine, mirroring the existing ElevenLabs Python SDK integration. The Cartesia integration follows the existing ElevenLabs Python SDK schema, which is why the included and excluded features align the way they do.

Provider order

The automatic selection now cascades:
HeyGen → ElevenLabs → Cartesia → Kokoro

What's included

  • Cartesia provider branch in skills/media-use/audio/scripts/lib/tts.mjs
    • Official Python SDK invocation (pip install cartesia)
    • Model: sonic-3.5
    • API version header: Cartesia-Version: 2026-03-01
    • Default voice: Skylar (db6b0ed5-d5d3-463d-ae85-518a07d3c2b4)
    • Direct WAV output (pcm_s16le, 44.1 kHz)
    • Locale normalization (en-usen, etc.)
    • Speed propagated via generation_config.speed
    • Returns words: null; existing Whisper transcription path provides captions
  • Hermetic Node tests for order, defaults, SDK args, key isolation, and failure paths
  • CLI readiness update in packages/cli/src/audio/providers.ts (Cartesia third, no schema changes)
  • Regenerated skills-manifest.json
  • Updated canonical references, public docs, and workflow skills to document the four-provider shared audio engine while keeping npx hyperframes tts Kokoro-only and resolve --type voice HeyGen → Kokoro

What's NOT included

  • No Cartesia in npx hyperframes tts (remains Kokoro-only)
  • No Cartesia in resolve --type voice (remains HeyGen → Kokoro)
  • No JavaScript dependency, package.json, or lockfile changes
  • No auto-install, credential persistence, auth command, or doctor changes
  • No SSE/WebSocket, native timestamps, emotion, model selector, voice list, or clone support

Verification

  • Node tests: 43/43 passed
  • CLI tests: 37/37 passed
  • Skills tests: 262/262 passed
  • Workspace typecheck: all packages passed
  • Build: passed
  • Lint: 0 warnings/errors
  • Skills manifest: in sync (20 skills)
  • End-to-end Cartesia test produced a valid WAV

Benchmark context: Artificial Analysis benchmark and Cartesia launch. This is not a Cartesia advertisement, but the voice quality is good and the free plan provides approximately 24 minutes of free voice-over per month.

video.mp4

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