Files
VoiceStudio/docs/features.yaml
velixio 2b6f49c596 feat(workers): make inbound mode reachable — settings, endpoints, docs
Wires the two transport halves into something a user can actually turn on.

Two independent switches, deliberately not one. "Accept connections" makes this
machine a node others dial; "saved connections" are the nodes this panel dials
out to. A workstation with a GPU that also drives jobs on a second box does
both, so neither implies the other.

Binding stays on 127.0.0.1 until someone explicitly widens it, and widening is
its own field rather than a flag riding along with the enable toggle. With no
encryption that boundary is the difference between a credential on one machine
and a credential on a network, so it is never crossed as a side effect. The
API reports `exposed` so the UI can say which side of it the user is on.

Saved nodes are redialled only after the control plane is up, since the
connector hands frames to its servicer. Failing to listen records the reason
rather than leaving the feature looking enabled while it quietly accepts
nothing.

Docs say plainly that this mode is unencrypted, that the connection string is a
password crossing the network in the clear, and that dial-out remains the
better choice when one machine is enough. The Security section no longer
implies its TLS guarantees cover both modes.
2026-08-11 22:28:06 +05:30

99 lines
2.9 KiB
YAML

# Canonical feature inventory — the single source of truth that the daily
# docs-drift job (.github/workflows/docs-drift.yml) diffs against README.md,
# docs/, and the engine registries via scripts/check-docs-drift.py.
#
# When a PR adds or removes an engine or user-facing feature, update this
# file in the same PR — otherwise the nightly job opens/updates the rolling
# `docs-drift` issue. Spec: docs/competitive-analysis.md Spec 9a /
# docs/specs/2026-06-12-elevenlabs-parity-program.md Wave 0.1.
# Each name must appear verbatim in README.md (the Features grid).
features:
- Voice Cloning
- Voice Design
- Video Dubbing
- Dictation Widget
- Vocal Isolation
- Speaker Diarization
- Batch Queue
- MCP Server
- AI Watermark
- Local-first
- GPU Auto-Detect
- Remote Model Downloads
- Extensible
# id: must exactly match the registry keys in backend/services/tts_backend.py
# (_REGISTRY eager entries + _LAZY_REGISTRY).
# readme (optional): a string that must appear in README.md (engine table row).
# doc (optional): a repo-relative doc file that must exist.
tts_engines:
- id: omnivoice
readme: "**VoiceStudio** (default, powered by k2-fsa/OmniVoice)"
- id: omnivoice-subprocess
doc: docs/engines/omnivoice-subprocess.md
- id: cosyvoice
readme: CosyVoice 3
doc: docs/engines/cosyvoice.md
- id: kittentts
readme: KittenTTS
- id: mlx-audio
readme: MLX-Audio
- id: voxcpm2
readme: VoxCPM2
- id: moss-tts-nano
readme: MOSS-TTS-Nano
- id: gpt-sovits
- id: sherpa-onnx
- id: indextts2
readme: "**IndexTTS 2.5** ⚡"
doc: docs/engines/indextts.md
- id: omnivoice-gguf
- id: supertonic3
- id: moss-tts-v15
readme: "**MOSS-TTS-v1.5**"
doc: docs/engines/moss-tts-v15.md
- id: dots-tts
readme: "**dots.tts**"
doc: docs/engines/dots-tts.md
- id: confucius4-tts
readme: "**Confucius4-TTS**"
doc: docs/engines/confucius4-tts.md
- id: pockettts
# Same contract against backend/services/asr_backend.py _REGISTRY.
asr_engines:
- id: whisperx
readme: "**WhisperX** (default)"
- id: faster-whisper
readme: Faster-Whisper
- id: mlx-whisper
readme: MLX Whisper
- id: pytorch-whisper
readme: PyTorch Whisper
- id: nemo-parakeet
readme: Parakeet TDT
- id: parakeet-mlx
readme: Parakeet TDT v3 (MLX)
- id: moonshine
readme: Moonshine
- id: funasr
readme: FunASR
- id: sherpa-onnx-asr
readme: "**sherpa-onnx** (live dictation)"
- id: openai-compat-asr
readme: "**OpenAI-compatible** ⚠️ remote"
# Doc files that must exist (the install path users are sent to).
docs:
- docs/downloading-models.md
- docs/remote-workers.md
- docs/adr/inbound-node-mode.md
- docs/branding.md
- docs/install/macos.md
- docs/install/windows.md
- docs/install/linux.md
- docs/install/docker.md
- docs/install/troubleshooting.md
- docs/migration/real-time-voice-cloning.md