Apple Say is a native macOS studio for speech synthesis and timed audio. It writes, previews, and exports Plain Text, LRC, and Enhanced LRC documents using system voices and /usr/bin/say — fully local, offline, and subscription-free.
- 📄 Direct Editor: Start typing immediately; preview and export audio without saving first.
- ⏱️ Timed Text: Supports Plain Text, LRC (line-level), and Enhanced LRC (word-level) with automatic rate scaling.
- 🗣️ System & Personal Voices: Filter installed macOS voices by language; use Spoken Content Siri voices and authorized Personal Voice profiles.
- 🎛️ Speech Inspector: Tune speech rate, pitch, container formats (AAC, AIFF, WAV, CAF), channels, sample rates, and bitrates.
- 🎧 Preview & Export: Fast keyboard preview playback and standard save panel audio export.
- 🔒 Local & Private: On-device synthesis with zero network calls, telemetry, or external runtime dependencies.
brew install --cask thedavidweng/tap/apple-sayUpgrade:
brew upgrade --cask apple-say- Download
Apple-Say.dmgfrom GitHub Releases. - Drag Apple Say.app into
/Applications. - Launch from Applications or Spotlight.
Note
From v1.2.3, official releases are signed with Developer ID and notarized by Apple.
Document formats are detected automatically:
- Plain Text: Continuous speech without timestamps.
- LRC: Line-level timestamps:
[00:02.00] Hello, welcome to Apple Say. [00:05.50] Line-level synchronized speech. - Enhanced LRC: Word-level inline timestamps:
[00:01.00] <00:01.20> Precision <00:02.00> word-level <00:02.80> alignment.
Timing or syntax conflicts safely fall back to Plain Text or report a Timing Error without modifying document text.
| Action | Shortcut |
|---|---|
| Preview Speech | ⌘ Return |
| Stop Playback | ⌘ . |
| Export Audio | ⇧ ⌘ E |
| Toggle Speech Inspector | ⌥ ⌘ I |
- macOS 14.0+
- Xcode 26+ (Swift 6 toolchain and Icon Composer)
git clone https://github.com/thedavidweng/apple-say.git
cd apple-say
# Build application bundle
./scripts/build-app.sh
# Launch app
open "build/Apple Say.app"# Run tests
swift test
# Build release artifacts in dist/
./scripts/package-release.shRelease packaging requires Developer ID signing and notarization credentials: APPLE_SIGNING_IDENTITY, APPLE_SIGNING_KEYCHAIN, APPLE_TEAM_ID, APPLE_API_KEY_PATH, APPLE_API_KEY_ID, and APPLE_API_ISSUER. The Release workflow imports the certificate from APPLE_CERTIFICATE_P12_BASE64 / APPLE_CERTIFICATE_PASSWORD and the API key from APPLE_API_KEY_BASE64 GitHub secrets. Development builds remain available through scripts/build-app.sh.
Apple Say collects, stores, and transmits zero personal data.
- System Speech: Synthesized entirely on-device via native macOS APIs.
- Personal Voice: Prompts for native macOS authorization on first use; used strictly for user-requested speech preview and export.
Details in PRIVACY.md.
- Domain vocabulary and specifications: CONTEXT.md
- Contribution guidelines and pre-commit checks: CONTRIBUTING.md
- Issues and feature requests: GitHub Issues
- License: Apache-2.0
