Skip to content
thedavidwengPublic

Repository files navigation

Apple Say Icon

Apple Say

A native macOS studio for speech synthesis, LRC, and Enhanced LRC timed text.

GitHub Release macOS 14+ Swift 6.4 Homebrew Tap Privacy First

English • 简体中文


Apple Say Main Window

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.


✨ Features

  • 📄 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.

🚀 Installation

Homebrew (Recommended)

brew install --cask thedavidweng/tap/apple-say

Upgrade:

brew upgrade --cask apple-say

Direct Download

  1. Download Apple-Say.dmg from GitHub Releases.
  2. Drag Apple Say.app into /Applications.
  3. Launch from Applications or Spotlight.

Note

From v1.2.3, official releases are signed with Developer ID and notarized by Apple.


📖 Supported Formats

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.


⌨️ Keyboard Shortcuts

Action Shortcut
Preview Speech ⌘ Return
Stop Playback ⌘ .
Export Audio ⇧ ⌘ E
Toggle Speech Inspector ⌥ ⌘ I

🛠️ Building from Source

Prerequisites

  • macOS 14.0+
  • Xcode 26+ (Swift 6 toolchain and Icon Composer)

Build & Run

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"

Test & Package

# Run tests
swift test

# Build release artifacts in dist/
./scripts/package-release.sh

Release 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.


🛡️ Privacy & Permissions

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.


📄 Documentation & Contributing

Releases

Packages

Used by

Contributors

Languages