Releases: OthmaneBlial/audio-capture
Release list
Voice Transcriber v1.0.0
Voice Transcriber v1.0.0
Dictate a thought, review it, and intentionally keep or discard the text on Linux.
See the workflow
Watch the three-state guided demo
made with synthetic sample text, then read the
support matrix
before installing.
What changed
Added
- A public privacy notice and threat model spanning microphone capture, local
VAD, bounded memory, provider requests, credentials, exports, opt-in text
history, logs, local executables, and release supply chain. - Privacy regression tests for raw-audio non-persistence, secret and provider
detail redaction, history-off defaults, explicit text storage permissions,
and deletion. - Tag-driven release automation that produces a checksum, CycloneDX SBOM,
deterministic test report, GitHub provenance and SBOM attestations, and
downloadable Sigstore bundles. - A contributor map with architecture, no-key development, fake-fixture, UI,
packaging, and issue-to-PR guides; plus eight maintained public tasks. - An FAQ, explicit public-feedback loop, and technical/user launch stories
with original cover art.
Changed
- Expanded CI to Python 3.9, 3.11, and 3.14 with branch coverage, wheel/sdist
builds, hash-pinned dependency audit, Bandit, Ruff, and compilation. - Hardened Flatpak verification with documented linter exceptions, mirrored
AppStream media, an offline no-download rebuild, installed-bundle smoke, and
compatibility-safe reporting. - Release notes now lead from a visual demo to verified installation, support,
privacy delta, benchmark receipt, and bounded help-wanted tasks.
Privacy
- The runtime data path is unchanged: local VAD precedes Groq transmission,
raw audio is not persisted by the app, transcript history stays disabled by
default, and exports remain explicit. - Release and diagnostic evidence adds no analytics, crash upload, transcript
collection, recording collection, or project server. - The experimental local provider remains source-only, explicitly flagged,
user-supplied, and disabled in Flatpak; v1 does not relabel it as supported.
Verification
- Fifty-nine deterministic unit tests, Ruff, source compilation, release
version checks, and release-note surface tests pass locally before the tag. - Candidate commit
1db98066a75329fc5ac5b6b13cf3a3be15fa4428passed CI run
33019179553on Python 3.9, 3.11, and 3.14 plus the dependency/security job;
Flatpak run33019179602passed lints, online build, offline rebuild,
install/GTK/CLI smoke, and removal; CodeQL run33019179363passed all three
detected languages with no open alerts at verification time. - The tag workflow records the exact release commit and workflow URL in its
downloadable test report. Physical microphone/desktop combinations remain a
separately labelled community gate.
Install and verify
Download the x86_64 Flatpak and its .sha256 file from this release, then run:
sha256sum --check voice-transcriber-1.0.0-x86_64.flatpak.sha256
flatpak install --user ./voice-transcriber-1.0.0-x86_64.flatpakThe artifact maps to commit c2244664fda6cc1603fada2ee60632e00c403d39. This release also publishes a CycloneDX
SBOM and downloadable Sigstore provenance/SBOM-attestation bundles. Verify online
with gh attestation verify voice-transcriber-1.0.0-x86_64.flatpak --repo OthmaneBlial/audio-capture.
Privacy delta
The versioned changelog above contains the complete Privacy subsection for
this release. The enduring microphone-to-export contract is documented in the
privacy notice
and threat model.
Support boundary
The package targets x86_64 Linux, GTK 3, Wayland/fallback X11, and the system
PulseAudio/PipeWire route. Automated package and accessibility checks are not a
substitute for the separately recorded real-microphone gate. Read
docs/SUPPORT.md.
Benchmark and help wanted
Published benchmark receipts live in
benchmarks/results/.
Small contributor tasks are labelled
good first issue
and help wanted.
Voice Transcriber v0.6.0 — Choice
Dictate a thought, review it, and paste it anywhere on Linux—with the active transcription boundary visible.\n\nWhat changed:\n- A typed provider contract now normalizes capabilities, cancellation, limits, errors, languages, and privacy boundaries.\n- Groq remains the supported Flatpak path with a user-managed key.\n- A source-only whisper.cpp prototype is available behind an explicit feature flag; it is disabled in Flatpak and is not claimed as supported or universally offline.\n- The first run, Settings, desk, diagnostics, and config checks all expose the selected provider boundary.\n- The reproducible LibriSpeech test-clean benchmark receipt reports 37 word errors over 627 reference words (5.90% WER), p50 1043.810 ms and p95 1508.576 ms on the named GitHub runner.\n\nVerification:\n- Exact-tag CI run 33016125424: Ruff, compilation, 50 deterministic tests.\n- Exact-tag Flatpak run 33016125188: build, install, version/help/doctor, GTK onboarding and accessibility smoke, uninstall.\n- CodeQL run 33015923746 passed Python, Actions, and JavaScript with no open alerts.\n- Bundle SHA-256: fd4e59b2af2f72f9158ce8275fde30fddb3ff90b9fb7d7888770d53e9874e3ea.\n\nKnown limits:\n- x86_64 Flatpak only. Real microphone, PipeWire/PulseAudio, X11/Wayland, and tester-owned Groq-key acceptance gates still need physical Linux reports.\n- The local prototype is source-only and depends on user-supplied whisper-cli/model files.
Voice Transcriber v0.5.0 — Daily dictation
Dictate, correct, and intentionally keep or discard text on Linux.\n\nThis release adds an editable transcript desk, bounded undo/redo, per-segment request state, focused push-to-talk, an X11-only capability-gated tray toggle, optional copy-on-final, destination-confirmed plain/Markdown/timestamped exports, and opt-in text-only history with retention and permanent deletion. Raw audio remains non-persistent.\n\nThe x86_64 Flatpak was built and smoke-tested from exact source commit d6770b2 in Actions run 33014228607. Verify the companion SHA-256 file before installing. The bundle requests Wayland, fallback X11/IPC, PulseAudio, and network, without broad filesystem access.\n\nKnown evidence boundary: package/CLI/GTK/accessibility tests passed in automation. A physical Linux microphone, tester-owned Groq key, and five real-participant usability sessions are still explicitly open; this release does not relabel headless checks as that evidence.
Voice Transcriber v0.4.0 — install and diagnose
Dictate a thought, review it, and paste it anywhere on Linux.
This release adds the first x86_64 Flatpak bundle, privacy-safe --doctor --json, explicit first-run Groq boundary consent, microphone/language selection, and a smaller auditable standard-library HTTP transport.
Verified in GitHub Actions: source-pinned GNOME 50 build, AppStream/desktop metadata, clean user install, exact 0.4.0 version, diagnostics contract, GTK first-run accessibility, minimal Wayland/fallback-X11/PulseAudio/network permissions, no broad filesystem access, launch, and uninstall with data removal.
Privacy boundary: local VAD and input meter; completed speech segments go to Groq only after setup consent; no analytics or raw-audio persistence. Bring a key you control.
Automated packaging proof is complete. A physical Linux microphone and real Groq transcript remain hardware/account-dependent; please use the public real-desktop checklist when reporting compatibility.
Install and removal: https://github.com/OthmaneBlial/audio-capture/blob/v0.4.0/docs/packaging/FLATPAK.md
Support matrix: https://github.com/OthmaneBlial/audio-capture/blob/v0.4.0/docs/SUPPORT.md
Build evidence: https://github.com/OthmaneBlial/audio-capture/actions/runs/33013357498
Voice Transcriber v0.2.0 — confident microphone setup
Voice Transcriber v0.2.0 makes the first recording session easier to trust: choose the right microphone, see its local signal respond, then dictate.
Highlights
- Choose the system default or a detected microphone from Settings; the choice is saved locally for future sessions.
- Verify a live, rate-limited input meter before dictation. The meter is derived locally from in-memory PCM and never records audio.
- Inspect machines without opening GTK using
python main.py --list-devicesor JSON output with--list-devices --json. - Override the saved microphone for one run with
python main.py --device INDEX. - Keep real-time behavior bounded: native input discovery is released immediately, capture queues remain capped, and unavailable saved inputs are shown clearly instead of silently changing source.
Quick start
git clone https://github.com/OthmaneBlial/audio-capture.git
cd audio-capture
./setup.sh
cp .env.example .env
# add a newly created GROQ_API_KEY to .env
source venv/bin/activate
python main.py --check-config
python main.py --list-devices
python main.pyPrivacy and support boundary
Raw microphone frames and the input meter stay in process memory. After local voice activity detection, completed speech segments are sent to Groq for transcription. This is a Debian/Ubuntu GTK 3 desktop application, not an offline transcription engine.
Validation
- 15 unit tests passed, including faked native input discovery, selection, cleanup, and signal normalization.
- Ruff, Python compilation, package build, static-site syntax, local HTTP, copy interaction, mobile overflow, and console checks passed.
- CI passed on the tagged commit with
actions/checkout@v7andactions/setup-python@v7.
Voice Transcriber v0.1.0
A focused first public release
Voice Transcriber turns short spoken notes into editable text on a Linux desktop. It captures microphone audio locally, detects speech before uploading, and uses Groq Whisper for transcription.
Highlights
- Local voice activity detection and a bounded real-time microphone queue.
- Bounded two-worker transcription pool with actionable key, network, rate-limit, and queue errors.
- A keyboard-friendly GTK recording desk with copy, local text export, language selection, translation, text sizing, and always-on-top mode.
- Validated, atomically saved configuration with owner-only permissions and explicit environment-variable precedence.
- Public documentation, contributor guidance, security reporting, Dependabot, and CI.
Install
git clone https://github.com/OthmaneBlial/audio-capture.git
cd audio-capture
./setup.sh
cp .env.example .env
# add GROQ_API_KEY to .env
source venv/bin/activate
python main.pyPrivacy and support boundary
Raw audio is held in memory and completed speech segments are sent to Groq for transcription. The app is not an offline transcription engine and does not save recordings. Configure only a Groq key you control.
Verification
The tagged commit passed CI lint, compilation, and 10 unit tests. Packaging produced a wheel locally; the live project site and documentation were checked over HTTPS and in a browser.
- Project site: https://othmaneblial.github.io/audio-capture/
- Documentation: https://othmaneblial.github.io/audio-capture/docs.html
- Security reporting: https://github.com/OthmaneBlial/audio-capture/security/policy