Skip to content

Repository files navigation

Voice Notes

Voice Notes is an open-source, local-first iPhone recorder and transcription app built with SwiftUI.

Features

  • AAC recording with pause/resume, live levels, and background capture.
  • A local library with search, folders, favorites, Recently Deleted, trimming, mixing, and sharing.
  • Waveform playback, scrubbing, speed controls, and Lock Screen controls.
  • On-device transcription with WhisperKit or Apple Speech.
  • Optional local Qwen model for automatic titles and short descriptions.
  • Optional CloudKit and Share extension code paths that you can enable with your own Apple identifiers.

Recordings, transcripts, titles, and summaries remain in the app's local library unless you explicitly configure and enable CloudKit.

Requirements

  • macOS with a current Xcode release
  • iOS 17 or later
  • XcodeGen
  • An Apple development team for physical-device installation

Build

The checked-in Xcode project is generated from project.yml.

git clone https://github.com/libertyequalitydata/VoiceNotes.git
cd VoiceNotes
xcodegen generate
xcodebuild -project VoiceNotes.xcodeproj \
-scheme VoiceNotes \
-destination 'platform=iOS Simulator,name=iPhone 16' \
build

The repository uses deliberately generic org.example identifiers and does not specify a development team. Before installing on a physical device, replace the bundle, App Group, and CloudKit identifiers with identifiers owned by your Apple Developer account.

Models and dependencies

  • WhisperKit is resolved through Swift Package Manager and downloads its model on demand.
  • The optional Qwen model is downloaded at runtime and is not included in this repository.
  • A prebuilt llama.xcframework is included to support the local title model. See THIRD_PARTY_NOTICES.md for upstream projects and licenses.

Optional Apple capabilities

The base app builds without App Group or CloudKit entitlements. To enable the Share extension or CloudKit:

  1. Replace all org.example identifiers with your own reverse-DNS namespace.
  2. Create matching App IDs, an App Group, and a CloudKit container in your Apple Developer account.
  3. Enable the corresponding entitlements and embed the Share extension.
  4. Regenerate the project with xcodegen generate and test on physical hardware.

The planned Watch companion is described in WATCH-COMPANION.md.

Tests

xcodebuild -project VoiceNotes.xcodeproj \
-scheme VoiceNotes \
-destination 'platform=iOS Simulator,name=iPhone 16' \
test

Recording, background audio, imports, model downloads, and Lock Screen controls should also be tested on a physical device.

License

Voice Notes source code is available under the MIT License. Dependencies and downloaded models retain their respective upstream licenses; see THIRD_PARTY_NOTICES.md.

See PRIVACY.md for the privacy policy used by the reference application.

About

Open-source, local-first voice recording and on-device transcription for iPhone

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages