Skip to content

About

Experimental android app to record, transcribe and display audio of speech

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Cassini for Android

Record a thought, find the words later, and keep the audio with the transcript. I’m building Cassini around that simple flow, with transcription running on your phone.

Download 0.0.6-beta · Release notes

Notes library with dates, transcript previews and search Microphone recording with timer, pause and Done controls Timed transcript with word seeking and fixed playback controls

Requirements

  • Android: 8.0+ to install; creating Cassini files needs 10+ and a working platform Opus encoder. Some emulator images lack that encoder. Existing documents can still be read.
  • Processor: a 64-bit ARM phone (arm64-v8a) running 64-bit Android. The APK also includes x86_64 for emulators. It does not support 32-bit ARM or x86 systems. Transcription runs on CPU; no GPU/NPU is required.
  • RAM (recommended): 4 GB+. This is a starting recommendation, not a tested minimum. Short-clip INT8 process memory peaked at about 1.02 GiB on the Pixel; longer clips and other apps need additional memory.
  • Free storage: allow 1 GiB for the INT8 model, plus space for recordings. The model download is about 640 MiB. Reading existing documents needs no model.

I’ve tested recording and transcription on a Pixel 8 (8 GB RAM, Android 17); see device results. An Android 14 x86_64 emulator has also passed recording/transcription checks. Other physical phones haven’t been verified end to end. Installation alone doesn’t guarantee usable transcription speed or enough memory.

Try it

  • Install the APK, open a note, then tap Download model once. Transcription uses Parakeet v3 INT8. After download, audio processing works offline.
  • Tap Record, allow microphone access, then Done. You can pause and resume. Transcription starts when the model is ready. Or import WAV, MP3, M4A/AAC or Ogg Opus and tap Transcribe. While it works you see how far along it is, how fast it’s going and roughly how long is left, and draft words show up as each chunk is decoded.
  • Browse Notes or search titles and past transcriptions. Tap a word to hear that part of the recording. Each note remembers its playback position.
  • Use Save Cassini to keep a complete .opus document containing audio, timed words and metadata. You can open it again without downloading a model. This is a portable recording, not just a word-body JSON export.

The interface supports English and Italian. Parakeet recognizes speech languages automatically; the current transcript metadata labels the language as Italian.

What’s still limited

This is an early beta: microphone recordings stop at 2:59, imports for transcription are limited to 3 minutes / 64 MiB, and recording and transcription need the app in the foreground. Leaving the recording screen stops and saves the audio. Failed transcription retains the recording for retry.

The current development build transcribes after recording finishes. The earlier live transcription mode and FP32 model have been removed. Updates reclaim obsolete FP32 downloads and keep existing recordings and transcripts; installations with only FP32 need to download INT8.

There’s no transcription queue or storage cleanup UI yet. The APK is a release build signed with a stable beta key.

Tap Identify speakers on a completed transcript to add anonymous labels, with automatic detection or a known speaker count (1–8). The optional models download separately (about 40 MiB). The original stays under Choose transcript. Labels can be wrong, especially with overlapping voices; automatic detection can overestimate the count.

Build

Requires JDK 17 and Android SDK platform/build tools 34. Set ANDROID_HOME or sdk.dir in local.properties.

./scripts/setup.sh
./gradlew :app:assembleDebug :app:testDebugUnitTest :app:lintDebug
adb install -r app/build/outputs/apk/debug/app-debug.apk

GitHub Actions builds and checks each push and pull request, including playback, recording and settings checks on Android 8, 10 and 14 emulators. Version tags publish the APK with a stable beta signing key, so updates preserve notes and downloaded models. Models and the pinned Android runtime are fetched separately.

For device checks and format interoperability, see development notes, Pixel 8 results and the Android acceleration investigation. Android currently uses stock sherpa-onnx on CPU; desktop Cassini uses a modified runtime. Cutting recordings at speech pauses is borrowed from the desktop pipeline.

Developed with AI coding assistance; recording, transcription and portable-file checks ran on a Pixel 8. GPLv3. See dependency licenses and sources.

About

Experimental android app to record, transcribe and display audio of speech

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages