From db24d111970312dca1cbcb17250bfd15025e0493 Mon Sep 17 00:00:00 2001 From: Ben Date: Wed, 12 Aug 2026 12:10:55 +0200 Subject: [PATCH] Add project README describing goals and privacy-first design. --- README.md | 129 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 129 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..483b86c --- /dev/null +++ b/README.md @@ -0,0 +1,129 @@ +# mp3Transriber + +`mp3Transriber` is a desktop app for managing MP3 recordings from a pocket recorder, viewing their metadata, and generating transcriptions. + +The project is being designed with **privacy first** in mind: + +- **Local transcription is the default** +- **MP3 files and transcripts stay on the user's machine by default** +- **Cloud AI providers may be supported later as an explicit opt-in choice** + +## Goals + +- Import and manage MP3 recordings from a handheld or pocket recorder +- Read and display MP3 metadata +- Transcribe recordings to text +- Store transcripts inside the app +- Use a local `SQLite` database +- Run on **Linux** and **macOS** +- Be easy to start and use after download + +## Planned Product Direction + +The current plan is to build this as a **Tauri** desktop application with a small web UI and a Rust backend. + +Core design points: + +- Desktop-first app for Linux and macOS +- Local file import and local storage +- Local transcription engine by default +- Optional cloud provider support only when the user enables it + +## Privacy Model + +Privacy is a core requirement for this project because recordings may contain confidential information. + +### Default behavior + +By default, the app will: + +- keep recordings on the local machine +- transcribe audio locally +- store transcript text locally in SQLite +- avoid sending audio or transcript text to the internet + +### Optional cloud mode + +The app may later support cloud transcription providers, but only under these conditions: + +- cloud mode is **off by default** +- the user must explicitly enable it +- the user must configure their own provider credentials +- the UI must clearly warn that audio and transcript data may leave the machine + +## Planned Tech Stack + +This is the current working stack proposal: + +- **Desktop shell:** Tauri +- **Frontend:** React + TypeScript +- **Backend orchestration:** Rust +- **Database:** SQLite +- **Metadata extraction:** local MP3 tag reader library +- **Local transcription:** `whisper.cpp` or another fully local ASR engine +- **Audio conversion:** `ffmpeg` when needed for transcription preprocessing + +## Expected Features + +### Recording management + +- Import MP3 files from disk +- Keep a list of recordings inside the app +- Prevent duplicate imports where practical + +### Metadata viewer + +- Show common MP3 metadata fields such as: + - title + - artist + - album + - date + - duration + - bitrate + - file name and path + +### Transcription + +- Start transcription from the app UI +- Save the resulting text to the local database +- Re-open saved transcripts later +- Support local-only transcription as the primary mode + +## Project Status + +This repository is currently in the planning and scaffolding stage. + +What exists so far: + +- initial project notes in `todo.txt` +- an implementation plan for a privacy-focused desktop app + +What is expected next: + +- scaffold the Tauri app +- define the SQLite schema +- implement MP3 import and metadata extraction +- integrate local transcription +- add a basic user interface + +## Non-Goals for the First Version + +To keep the first version focused, these are likely out of scope initially: + +- real-time live microphone dictation +- syncing files across devices +- automatic cloud backup +- multi-user collaboration + +## Development Notes + +The first implementation will prioritize: + +1. local-first behavior +2. simple setup on Linux and macOS +3. a clear and minimal UI +4. auditable privacy behavior + +## License + +License not chosen yet.