Renames what users see. The app, the installers, the window title, the
docs and all 21 locales now say VoiceStudio, with "(previously
OmniVoice-Studio)" noted near the title of each doc surface so people
recognise it.
Deliberately NOT renamed, because renaming any of them silently breaks
an existing install — there is no legacy-path fallback anywhere in this
codebase:
- bundle identifier com.debpalash.omnivoice-studio (MSI UpgradeCode,
macOS TCC grants, managed venv, WebView localStorage, the
single-instance lock)
- data directories OmniVoice / .omnivoice and omnivoice.db
- the ~150 OMNIVOICE_* environment variables
- the X-OmniVoice-* HTTP headers (a wire protocol)
- the published Docker image paths
- the OmniVoice ENGINE, which is a model name and not this product
tests/test_identity_paths_survive_the_rename.py pins every one of those
so a future well-meaning sweep cannot orphan a user's library.
Linux .deb users install a new package name and should apt remove
omnivoice-studio; that note is in the changelog.
68 lines
3.3 KiB
Markdown
68 lines
3.3 KiB
Markdown
# Portable personas — the `.ovsvoice` format
|
|
|
|
A **`.ovsvoice`** file is a portable voice persona: a single ZIP that packages a
|
|
voice profile's identity, an optional reference clip, a consent attestation, an
|
|
SPDX license tag, and a **watermarked preview**. You can export one from any
|
|
voice and import it back into another VoiceStudio install — fully local, no
|
|
account, no upload to anyone.
|
|
|
|
It supersedes the older `.omnivoice` share bundle. VoiceStudio still imports
|
|
`.omnivoice` files (they just carry no consent / license / preview).
|
|
|
|
## Export
|
|
|
|
**Voices → open a voice → Export persona.**
|
|
|
|
- The **"Include voice clip"** checkbox controls privacy:
|
|
- **On (default):** the bundle carries your raw reference/locked audio, so the
|
|
imported persona clones with full fidelity.
|
|
- **Off:** a **preview-only** bundle — only the watermarked preview travels, no
|
|
raw recording of your voice leaves the machine. The imported persona is still
|
|
usable (the preview becomes its reference clip).
|
|
- A short **preview** is always generated and, when AudioSeal is installed,
|
|
**watermarked** so the audio can be attributed back to VoiceStudio. Behaviour is
|
|
identical on macOS, Windows, and Linux; without AudioSeal the preview is still
|
|
written, just flagged un-watermarked.
|
|
- The file downloads as `<voice name>.ovsvoice`.
|
|
|
|
## Import
|
|
|
|
**Voices → My Imports → the package button (next to Upload).** Pick a
|
|
`.ovsvoice` (or legacy `.omnivoice`) file; the persona appears in your voice
|
|
list.
|
|
|
|
### Consent & verification
|
|
|
|
A persona's **verified-own-voice** status can't be forged by hand-editing the
|
|
bundle. On import, VoiceStudio marks a persona verified **only** when all three
|
|
hold: a real consent recording is present (above the minimum length), the
|
|
consent statement text is non-empty, and a `consent.json` attestation is
|
|
included. Otherwise it imports **unverified** — still usable for local
|
|
synthesis; verification is only required for agentic features and community
|
|
sharing, never for plain local generation. You can always re-attest locally
|
|
afterwards.
|
|
|
|
## What's inside (`.ovsvoice` = ZIP)
|
|
|
|
| Member | Purpose | Presence |
|
|
|--------|---------|----------|
|
|
| `manifest.json` | format + schema version, persona identity, engine/design params, license, tags, preview metadata | required |
|
|
| `metadata.json` | legacy-shaped copy so older VoiceStudio can still read the ref audio | always written |
|
|
| `preview.wav` | watermarked preview (24 kHz mono) | required |
|
|
| `consent.json` | attestation: method, statement text, verified flag, timestamp | optional |
|
|
| `ref_audio.*` / `locked_audio.*` | the reference / locked clip | omitted when "Include voice clip" is off |
|
|
| `consent_audio.*` | the recorded consent statement | optional |
|
|
|
|
The manifest's `license.spdx` is validated against an allowlist (plus
|
|
`LicenseRef-` custom ids); anything unrecognised normalises to
|
|
`LicenseRef-VoiceStudio-Personal`. The license is **metadata only** — VoiceStudio
|
|
does not enforce it.
|
|
|
|
## Privacy & local-first
|
|
|
|
Export and import are **100% local** — building a bundle reads your local
|
|
database and files and writes a ZIP on the same machine; importing reads a local
|
|
file. No network call is made on any export/import/inspect path, and the feature
|
|
works fully offline. (The only adjacent network use is AudioSeal's optional
|
|
one-time model download for watermarking, which degrades to a no-op offline.)
|