Vocello is a voice studio for your Mac and iPhone. Write a script, pick one of nine voices or describe a new one, and Vocello speaks it with Qwen3-TTS running on your own Apple Silicon. There is no account, no credits and no cloud: what you write and record stays local.
- Built-in Voice. Nine Qwen3 speakers in ten languages, with a delivery preset or a few words about how it should sound. Vocello 2.4.0 calls this mode Custom Voice.
- Voice Design. Describe a voice ("a warm, clear narrator") and hear it. Save the ones you like to use again.
- Voice Cloning. Record or import a clip of a voice you own or have permission to use, and save it to your library. Voice Cloning follows the reference voice, so the clip sets its character.
Paste a whole chapter: past 900 characters, Vocello plans the script into segments that play one after another while the rest generates, then joins them into one file. Languages are detected automatically: Chinese, English, Japanese, Korean, German, French, Russian, Portuguese, Spanish and Italian.
Clone generation waits for your consent in Settings, and (3.0) every take carries an inaudible AudioSeal watermark that marks it as AI-generated.
Note
The Mac download is Vocello 2.4.0. This page describes the upcoming Vocello 3.0, and (3.0) marks what is new in it.
How these were measured
The real-time factor (RTF) is seconds of generation per second of audio, so lower is faster and anything under 1.0 plays ahead of generation. The speed figures pool warm takes of the Speed models from the canonical benchmark host, a Mac mini M6 with 16 GB; the chart under Performance, measured breaks them down by mode and script length. The 8 GB Mac mini M2 is the support floor: its records (the last canonical one, 379db820, measured warm RTF 0.53 to 0.82) form an earlier series that is never compared with the M6's. The memory figures come from that M2: streaming took the peak of the same take from about 8 GB to about 3 GB (benchmarks/OPTIMIZATION.md §F.1), and a 12-segment long-form project (smoke run 8f15c1fd) ended 1.1% below its starting footprint.
Every published record is in benchmarks/HISTORY.md, and the method is in docs/reference/telemetry-and-benchmarking.md.
On a Mac: download Vocello 2.4.0, drag it to Applications, then install a voice model from Settings > Model downloads. The app is signed with an Apple Developer ID and notarized.
On iPhone: join the public beta on TestFlight.
| Platform | Requirements | Model variants | Status |
|---|---|---|---|
| Mac | macOS 26.0 or newer, Apple Silicon, 8 GB RAM minimum | Speed (4-bit) and Quality (8-bit) | Vocello 2.4.0 is available now |
| iPhone | iPhone 15 Pro or newer, iOS 26.0 or newer | Speed (4-bit) | Public beta via TestFlight |
Speed uses less memory and suits 8 GB Macs; Quality is a Mac option for 16 GB or more. The three Mac Speed models take about 4.8 GB on disk, because they share one speech tokenizer, stored once.
Upgrading, and older Macs
Upgrading from Vocello 2.x keeps your models and data under ~/Library/Application Support/QwenVoice/. Vocello was called QwenVoice before 2.2.0; old repository links redirect here. Macs on macOS 15 can use the legacy QwenVoice 1.2.3. Each release's notes are in docs/releases/, and the 2.4.0 release attaches release-metadata.txt with its source and toolchain provenance.
Vocello is a working reference for running a 1.7B-parameter text-to-speech model natively on Apple Silicon: Swift 6 with strict concurrency, a first-party MLX runtime, audio that streams with bounded memory, and a measurement discipline that keeps every performance claim tied to a record. The docs record each decision and the measurement behind it.
One engine serves three hosts: the Mac app, the iPhone app and the vocello command-line tool, all built on NativeRuntimeFactory. Every request takes one path from conditioning to a verified 24 kHz mono WAV: an engine actor owns the session, the Qwen3-TTS talker and code predictor sample codec frames, the Mimi decoder turns them into audio, and PCM streams back chunk by chunk to the player, a limiter, an atomic WAV writer and a quality check. → Architecture
|
An owned runtime, not a Python wrapper |
Streaming that doesn't grow |
|
Launch-bound, not compute-bound |
Reproducible by construction |
|
Proof before merge |
Tested on real hardware |
→ Optimization ledger · Testing runbook · MLX guide
Warm real-time factor by mode and script length on the Mac mini M6 (16 GB), pooled from the most recent canonical records of one build (today record 74f026be, a Vocello 3.0 build from source):
The charts regenerate from the named records with scripts/generate_readme_charts.py. → Benchmark history
You need full Xcode (the CI version is pinned in config/toolchain.json) on an Apple Silicon Mac with macOS 26 or newer, plus the pinned xcodegen, ripgrep and Python packages. New Mac setup sets up a new Mac step by step.
git clone https://github.com/PowerBeef/Vocello.git
cd Vocello
./scripts/regenerate_project.sh
./scripts/build.sh buildproject.yml generates the Xcode project, and the repository scripts are the build and test interface: scripts/dev.sh check runs the lint, contracts and tests your changes touch, and scripts/dev.sh ci runs exactly what CI runs. Start with CONTRIBUTING.md; coding agents also read CLAUDE.md.
vocello drives the same engine without a UI. It writes machine-readable output, with progress on standard error.
./scripts/build.sh cli
build/vocello models list
build/vocello custom --variant speed --text "The train left at dawn."
echo "Hello there." | build/vocello generate --variant speed --stream --jsonSources/ the apps and the engine
QwenVoiceApp.swift macOS app (Views/, ViewModels/, Services/)
iOS/ iPhone app
QwenVoiceCore/ engine host: runtime factory, generation, model delivery
VocelloCLI/ the vocello command-line tool
Packages/VocelloQwen3Core/ the owned Qwen3-TTS runtime on MLX, with its own tests
Tests/ unit and iPhone logic tests, Mac and iPhone UI tests
scripts/ build, test, benchmark and release lanes, and the README art
config/ machine-readable contracts: models, privacy, release, roadmap
benchmarks/ published benchmark records and the optimization ledger
website/ vocello.vercel.app (React and Vite)
docs/ architecture, references, audits, release notes
Dark-first, warm neutrals on a charcoal canvas, and one accent per mode. Liquid Glass stays on chrome and falls back to solid surfaces under Reduce Transparency and while audio generates. The tokens live in the app's theme and in website/src/tokens.css.
| Token | Color | Use |
|---|---|---|
| Gold | Built-in Voice, the brand accent | |
| Lavender | Voice Design | |
| Terracotta | Voice Cloning | |
| Charcoal | The canvas | |
| Text | Primary text |
The README art comes from the same tokens: scripts/readme_art/render.sh redraws it from the screenshots in docs/screenshots/.
| Architecture | Ownership, the life of a take, the engine's invariants |
| Development setup | A new Mac, from clone to first build |
| Testing runbook | Which lane proves what, on the Mac and on a paired iPhone |
| Benchmarking | The protocol behind every published number |
| Privacy and storage | What is stored where, and how it is deleted |
| iPhone app | The iPhone app, including the 3.0 export purchase |
| Roadmap | What is in flight for 3.0 and what follows |
Vocello is available under the MIT License. It builds on Qwen3-TTS, MLX, mlx-audio-swift and GRDB.swift. Third-party models and assets keep their own terms; see the third-party attributions and the runtime's notices.


