Skip to content

feat: replace local Supertonic TTS with Voxtral#694

Open
AnthonyRonning wants to merge 1 commit into
masterfrom
codex-maple-voxtral-tts-maple
Open

feat: replace local Supertonic TTS with Voxtral#694
AnthonyRonning wants to merge 1 commit into
masterfrom
codex-maple-voxtral-tts-maple

Conversation

@AnthonyRonning

@AnthonyRonning AnthonyRonning commented Jul 25, 2026

Copy link
Copy Markdown
Contributor

Summary

  • replace local Supertonic 3 inference with encrypted OpenSecret speech synthesis using voxtral-tts and neutral_female
  • preserve progressive desktop playback, fully prebuffered iOS playback, cancellation, and existing platform audio-session behavior
  • remove Supertonic models, dependencies, native commands, download and preference UI, and obsolete documentation
  • safely remove exact legacy tts_models directories at launch while retaining ONNX Runtime for PDF OCR
  • add focused coverage for text sanitization and chunking, synthesis errors and cancellation, playback state, and legacy-model cleanup

Dependencies

Maple remains pinned to @opensecret/react 3.2.1. This PR is intentionally being opened before the SDK release and version update. Current frontend and web-build CI fail at TTSContext.tsx because the published SDK does not yet export synthesizeSpeech; a follow-up must update frontend/package.json and frontend/bun.lock after the SDK release. The backend must also be deployed before remote synthesis works outside the local managed workspace.

Related workspace troubleshooting documentation: https://github.com/OpenSecretCloud/opensecret-workspaces/pull/10

Validation

  • 257 frontend tests passed
  • production frontend build and TypeScript checking passed using the path-linked in-flight SDK
  • ESLint passed with 0 errors and the existing 12 warnings
  • 8 native legacy-cleanup tests passed
  • full native suite: 206 passed / 1 model-backed OCR test ignored
  • repository-native Rust lint, formatting, and diff checks passed
  • managed-stack smoke:
    • Free account rejected with HTTP 403
    • Pro account returned a valid 272,684-byte, 5.68-second WAV
    • desktop control completed Read aloud → Stop speaking → Read aloud
    • a legacy-model fixture was removed on launch

Known gaps

  • Physical iOS/TestFlight locked-device playback and Windows/Linux runtime playback have not been tested.
  • The iOS cross-build attempt stopped in upstream native dependencies because the local Nix/Xcode toolchain mixed macOS and iOS flags, before compiling Maple code.
  • A debug macOS app was produced and smoke-tested; updater signing could not finish without the private signing key.
  • Human listening remains the final voice-quality check.
  • Web and Android TTS remain intentionally unsupported.
  • A stricter nonstandard all-target Clippy invocation reports two lints in unchanged agent permission tests; the repository-native just rust-lint passes.

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