Vocello 2.0.0
Vocello 2.0.0
Vocello 2.0.0 is the first stable release of the rewritten, macOS 26-native, on-device voice generation app — formerly shipped as QwenVoice. Everything runs locally on Apple Silicon via MLX; no audio leaves the Mac unless you export it. This release replaces both v1.2.3 (the macOS 15-compatible legacy line) and v2.0.0-beta.1 as the recommended download.
Upgrading from 2.0.0-beta.1? Download the new DMG below and drag
Vocello.appto/Applications(replacing the beta). Your installed models, history, and saved voices live in~/Library/Application Support/QwenVoice/and carry over automatically — no re-download needed.
Requirements
- macOS 26.0 or later
- Apple Silicon Mac
- ~7 GB free disk for the three recommended Speed (4-bit) model variants; ~16 GB if you also install Quality (8-bit)
- Internet for one-time model downloads from Hugging Face
What's new since 1.2.x
The 1.2.x → 2.0 transition is a full app rewrite. The highlights:
- Rebranded as Vocello. The macOS app, DMG, About box, and bundle identifier (
com.qwenvoice.app) all reflect the new name. The repo, Xcode scheme, and several internal type names retainQwenVoiceto avoid breaking historical tooling. - macOS 26 only, Apple Silicon only. No backport to macOS 15; the legacy line stays at
v1.2.3for that audience. - Three generation modes, each on its own sidebar surface:
- Custom Voice — one of nine shipped speakers, with optional natural-language delivery instructions and a 9 × 3 emotion × intensity preset matrix.
- Voice Design — describe a voice in natural language; the model produces it. Designed voices can be saved as cloning references in a single click.
- Voice Cloning — provide a 10–30 s reference clip; the model speaks your text in that voice. Quality-warning chips flag short, long, or unreadable references.
- Speed (4-bit) and Quality (8-bit) model variants with per-mode selection on the generation screen. Speed is the default everywhere. A global "Always use Speed (4-bit) models" toggle exists in Settings → Performance for floor-tier (8 GB) Macs.
- Streaming preview / autoplay. The first audio chunks play within ~3–6 seconds of pressing Generate on cold cells (vs ~8–15 s for the materialize-then-play flow that preceded it). Time-to-first-sound improved by roughly +3 s to +9 s per cell depending on mode and variant. The streaming decoder now uses an input-side context buffer to keep batch and streaming paths bit-equivalent.
- Memory-adaptive on 8 GB Macs. The native engine now responds to macOS memory-pressure events: idle-unload shortens from 120 s baseline to 30 s under soft trim and 10 s under hard trim; the clone-cache is capped at 1 entry; the custom-voice dedicated prewarm is skipped (it folds into the first generation); and a failed Quality model load falls back to its Speed sibling automatically with an in-app explanation.
- Engine isolation. TTS generation runs in a bundled XPC service so the UI process stays responsive and engine crashes don't take down the window.
- Saved Voices library. Reusable voice references with quality-warning chips: references under 10 s or over 30 s get a soft warning; over 60 s is hard-blocked. A single saved voice can drive any number of cloning generations.
- History library. Per-row playback, search, and a "re-save as voice" affordance for promoting a generated take into a saved cloning reference.
- Settings → Model Downloads. One-click "Download recommended" pulls the three Speed variants; per-variant Manage / Repair / Reveal-in-Finder controls are available for advanced cases. Status badges and progress bars per variant.
- Emotion + tone delivery hardening. All 27 preset instruction strings (9 emotions × 3 intensities) were rewritten with an action-verb-leading pattern. Voice Design now uses a labeled
Voice character: … Delivery: …framing so the model attributes the description to identity vs delivery correctly. The English-diction dedup guard recognizes an expanded vocabulary of clarity tokens, so the model is no longer told to "be clear" twice. - Notarized + signed DMG on every GitHub Release. First launch opens with a double-click — no right-click bypass, no
xattr -dr com.apple.quarantine, no "unidentified developer" warning. The DMG carries a stapled Apple notarization ticket and is signed byDeveloper ID Application: PATRICE DERY (FK2D8X36G2).
Since 2.0.0-beta.1
Beta 1 shipped 2026-05-11. Between then and 2.0.0 final:
- Signed + notarized CI release pipeline.
.github/workflows/release.ymlbuilds, signs, notarizes, and staples the DMG on everyrelease.publishedevent using an App Store Connect API key (Individual key supported). Six repo secrets configured; the workflow imports the Developer ID cert into a temporary ephemeral keychain, derives the signing identity at runtime, then tears everything down. The signed DMG is attached to the Release within ~15-25 min of publishing. - Streaming preview enabled production-wide. All eight user-facing call sites now run with
shouldStream: true. Decoder-level fix (DecoderBlockUpsample.stepnow uses an input-side context buffer instead of an output-side overlap-and-add accumulator) eliminates LSB drift between streaming and batch paths. Several streaming-engagement race conditions on warm-after-cold generation were closed (stale buffer completions clobbering counters, AVAudioEngine references not nil'd on teardown). - Voice Cloning configuration card reworked. A single-row tappable warning chip replaces the wrapping
Labelrow inside the saved-voice panel, so the Transcript field stays inside the fixed 184 pt configuration slot regardless of warning state. The Speed/Quality model picker no longer renders a stray keyboard-focus halo on screen appearance. - Voice-cloning reference duration warnings re-based. The 10-20 s sweet-spot copy was clarified; soft-warn moved from >20 s → >30 s; a new hard cap at >60 s mirrors Apple-side guidance for cloning references. The "Reference quality may be poor" copy was softened to "Reference outside recommended range."
- Antigravity CLI migration. Google retired Gemini CLI; the perceptual-review pipeline now runs through
agy(App Store Connect-style auth, default model). New script:scripts/antigravity_voice_review.sh. New runbook:docs/reference/antigravity-voice-review.md. Oldgemini-reviewscript + runbook stay as one-release deprecation shims. - Bench harness expanded to 24-cell coverage at n=3 (
docs/reference/benchmark-baselines.jsonschema v3) with regression-gatedbench-compare. Paired-signal reading rules (msvsrtf) clarified for triage. - Smoke runbooks for Settings, History, Saved Voices added alongside the existing per-mode generation runbooks.
Notes for contributors
Repo conventions for the 2.0 line — agent guide pointer, build script + single-resident policy, the three runtime data-folder tiers, and the "CI is scoped to release packaging only" carve-out — are documented in CONTRIBUTING.md. Testing strategy is in docs/reference/testing-overview.md.
Known limitations
- macOS 15 users: stay on
v1.2.3. No 2.x backport is planned. - Quality (8-bit) models on 8 GB Macs are still tight even with the new memory-pressure response. Speed is the recommended default; the Quality→Speed OOM fallback covers most cases but expect occasional swap pressure under sustained generation.
- iPhone target: the iOS code in this repo stays compile-safe, but no TestFlight build is attached to this GitHub Release. iPhone work continues on a separate distribution path.
- Voice Cloning is reference-driven. Only clone voices you own or have explicit permission to clone.
- Subjective quality varies by reference. A perceptual review tool is in-tree (
scripts/uitest.sh antigravity-review <wav>) for testers who want cell-by-cell comparison.
Install
- Download
Vocello-macos26.dmgfrom this release's assets. - Open the DMG and drag
Vocello.appto/Applications. - Double-click
Vocelloto launch. No right-click bypass needed — the DMG is notarized and stapled. - On first launch, go to Settings → Model Downloads and click Download recommended to fetch the three Speed (4-bit) variants (~7 GB total). Quality variants are optional.
- Generate locally from Custom Voice, Voice Design, or Voice Cloning.
Verification (optional)
The DMG is signed and notarized; macOS will accept it without any extra steps. To verify out of band:
Before install (the DMG envelope):
xcrun stapler validate Vocello-macos26.dmgshould printThe validate action worked!spctl --assess --type install -vv Vocello-macos26.dmgshould printacceptedwithsource=Notarized Developer IDandorigin=Developer ID Application: PATRICE DERY (FK2D8X36G2).
After install (the .app itself — proves the app inside the DMG is also notarized, not just the wrapper):
spctl --assess --type execute -vv /Applications/Vocello.appshould print the sameaccepted+source=Notarized Developer IDlines.codesign --verify --deep --strict /Applications/Vocello.appshould exit silently.
release-metadata.txt (also attached to this release) records the commit SHA, Xcode version, SDK, app minimum OS, marketing version, and build number used to produce the DMG.