Open-source project
Notely-Voice/NotelyVoice avatar
Notely-Voice/NotelyVoice

Notely Voice: on-device Whisper transcription for Android and iOS

A 100% private AI voice transcription app that converts speech to text in 100+ languages. Built with Compose Multiplatform for Android & iOS using Whisper AI - no cloud uploads, all processing happens on-device for complete privacy.

797 stars74 forksC++GPL-3.0

At a glance

What is it?
Notely Voice is a Compose Multiplatform note app that runs Whisper speech recognition locally, so audio never leaves the device. The F-Droid build is the GPL-3.0 codebase; the Play Store build is a separate proprietary app.
Who is it for?
Adopt Notely Voice if you want a GPL-3.0, offline-first transcriber on Android and can accept a UI that is less polished than the proprietary Play Store build. Skip it if you need a desktop client or a documented iOS build path, because the repository's top-level entries show only iosApp/ and shared/ with no desktop target, and the README does not describe how the iOS app is produced.
Can I use it commercially?
Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
Is it still maintained?
Yes. The repository last received commits 41 days ago.
What is it written in?
Mainly C++, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 30, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What Notely Voice solves, and for whom

Most transcription apps send audio to a server. Notely Voice does the opposite: the README describes it as a "100% private AI voice transcription & note-taking application" where processing happens on the device, with the speech recognition working without an internet connection once the model is downloaded. The stated audience is students capturing lectures, professionals documenting meetings, doctors recording patient notes, and researchers transcribing interviews.

The repository is the open source half of a two-app project. The README is explicit that the F-Droid build is free under GPL-3.0, while a separate Google Play version has a "new codebase, redesigned UI, and a subscription model" and is proprietary. That split matters more than any feature list: if you file an issue against this repo, you are filing it against the F-Droid codebase, not the app most Play Store users see. The README also states that revenue from the Play version funds development of both.

How the transcription pipeline is structured

The README describes the audio path in some detail. A streaming WAV decoder processes files in chunks rather than loading them whole, which the project frames as the fix for out-of-memory failures on long recordings. Long audio is then split into overlapping chunks before being handed to Whisper, with the overlap intended to prevent text loss at chunk boundaries. Progress is reported as chunks complete.

The defaults are documented: 30 seconds per chunk, 3 seconds of overlap, a configurable maximum of 60 seconds, and a 1 MB processing buffer. Those numbers are the interesting part of the design. A 3-second overlap on a 30-second chunk means roughly 10 percent of the audio is transcribed twice, and the project does not document how duplicate text at the seams is reconciled. If you transcribe hour-long interviews, that seam handling is the first thing worth reading in the source.

Underneath, the app is Kotlin and Compose Multiplatform with Koin for dependency injection and Coroutines for async work. SQLDelight appears in the repository topics, which suggests it handles persistence, though the README does not describe the schema. The UI targets Android and iOS; the top-level layout contains core/, lib/, shared/ and iosApp/ alongside the Gradle files, with no desktop entry visible.

Installing Notely Voice and running a first transcription

The README does not give build-from-source instructions. It points users at three distribution channels: F-Droid for the open source build, Google Play for the subscription build, and the App Store for iOS. The F-Droid package identifier appears in the README's badge link as com.module.notelycompose.android.

The practical install path is therefore the F-Droid listing rather than a Gradle command. The README documents no command-line install step, so the identifier is the only concrete artifact to work from:

bash
# Package identifier from the README badge link:
# com.module.notelycompose.android

For a first real use, the workflow the README describes is: record a voice note in the app, then transcribe it. Transcription runs locally, so the first run needs the Whisper model present; the README lists model sizes from tiny at 39 MB to large at 1550 MB and says the model can run locally without an internet dependency once downloaded. Nothing in the README documents where that download is triggered or how to pick a model size from inside the app, so treat model selection as something to confirm on your own device.

The repository does contain a Gradle wrapper and a shared/ module, so building from source is at least structurally possible. The README does not document this path, does not list required SDK versions beyond an API 21+ badge, and does not describe how to produce an APK. If you need a reproducible build, that gap is the first thing you will have to close yourself.

Where the privacy claim and the licence meet

The GPL-3.0 licence and the on-device design reinforce each other. Because the code is open, you can verify the claim that audio is not uploaded rather than trusting a privacy policy. Because transcription runs locally, there is no server to subpoena and no per-minute cost, which is why the README can call transcriptions unlimited.

The licence also has a practical consequence the README handles honestly: the Play Store version is a separate, proprietary codebase, so GPL-3.0 does not reach it. If your organisation needs a licence review, the relevant question is which build you are shipping. The F-Droid build carries GPL-3.0 obligations if you redistribute it; the Play build does not, because it is not this code. The README does not state whether the two codebases share any source, so do not assume fixes in one appear in the other.

The iOS story is the weakest part of the repository

The README lists cross-platform support for Android and iOS and links an App Store listing, so an iOS app exists. What the repository shows is thinner. The top-level entries include iosApp/ and shared/, which is the usual Compose Multiplatform arrangement, but the README's build instructions, such as they are, are Android-centric: the badge advertises API 21+, and no Xcode scheme, Podfile, or iOS build step is described.

That asymmetry matters if you are evaluating this as a Kotlin Multiplatform sample rather than as an end-user app. The shared/ module is where the transcription logic presumably lives, and it is the part worth reading if you want to reuse the chunking approach. But anyone hoping to fork this and ship an iOS build is working from the repository layout, not from documentation. The README does not describe how the iOS app is built or signed.

A second limitation is the model itself. Whisper's larger variants run comfortably on modern phones but the README gives no guidance on which model size suits which device class. A 1550 MB model on a low-end phone is a different experience from the 39 MB tiny model, and the README presents both without a recommendation.

How it compares with a cloud transcription API

The obvious alternative is a hosted speech-to-text service, where you upload audio and get text back. The difference is not just privacy. Cloud APIs typically give you higher accuracy on hard audio, no model download, and no device storage cost, because they run large models on server hardware. They also give you a per-minute bill and a network dependency, which is exactly what Notely Voice removes.

A closer alternative in spirit is running Whisper yourself on a desktop or server, using the same model weights with a Python or C++ runtime. That approach gives you the same offline property with more compute, but it is not a phone app: you record on the device, move the file, transcribe elsewhere. Notely Voice's contribution is packaging the model, a streaming decoder, and a chunking scheme into an Android and iOS app so the whole loop stays on the handset. If your recordings are short and you already have a desktop pipeline, that packaging buys you less.

Maintenance, releases and what to verify

The last push to the default branch was on 2026-08-21, and the repository is not archived. Recent tagged releases run v1.3.2 in March 2026, v1.3.3 in May 2026, and v1.3.4 in June 2026, so the F-Droid build has seen regular tagged releases through mid-2026 even though the README does not describe a release cadence or a support policy.

The upgrade cost is low if you install from F-Droid, since updates arrive through that store. It is higher if you build from source, because the README documents no build or release process for the open source variant, and the Play Store build is a different codebase, so a fix you see there may never land here. Before adopting, verify three things: the current version on the F-Droid listing, the model size your device can hold in storage, and whether the chunk defaults in the source match your recording lengths. The README documents the defaults but not how to change them at runtime.

Editorial conclusion

Adopt Notely Voice if you want a GPL-3.0, offline-first transcriber on Android and can accept a UI that is less polished than the proprietary Play Store build. Skip it if you need a desktop client or a documented iOS build path, because the repository's top-level entries show only iosApp/ and shared/ with no desktop target, and the README does not describe how the iOS app is produced. Before committing, check the F-Droid listing for the current version, confirm the model download size fits your device, and read the source for the chunk defaults if you plan to transcribe long recordings.

Frequently asked questions

What is the best free voice note app?

Notely Voice is free on F-Droid under GPL-3.0, with unlimited transcriptions and no cloud upload. The Google Play version of the same product is a separate proprietary app with a subscription.

What is the best app to transcribe notes?

Notely Voice records voice notes and transcribes them on-device with Whisper, supporting 100+ languages according to the repository description. The README positions it for lectures, meetings, patient notes and interviews.

What is the best voice recorder for taking notes?

Notely Voice records audio inside the app, plays it back, and can share recordings to other apps. Its distinguishing feature is that transcription happens locally rather than on a server.

What is the best app for text to voice?

The README describes the opposite direction: speech to text, not text to speech. Notely Voice converts recorded audio into written notes using Whisper, and the README does not mention any text-to-speech capability.

Official sources

  1. License: GPL-3.0
  2. Notely-Voice/NotelyVoice on GitHub
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/notely-voice-notelyvoice.svg)](https://hysenlabs.com/projects/notely-voice-notelyvoice)