Skip to main content
Listenr Logo

Listenr

Build better speech-to-text and ASR models entirely on your machine.

Record your voice. Clean it up with local AI. Fine-tune Whisper or Moonshine. Deploy something that's actually yours.

PyPI Python License Tests

Walkthrough  |  Setup  |  Configuration  |  Recording  |  Dataset  |  Troubleshooting

Lemonade Developer Challenge Winner

Listenr CLI streaming - example output

How it works

  1. Create good data - Use Listenr to record and collect natural speech with domain-specific vocabulary that generic models miss.
  2. Process & improve - Pipe it through Lemonade or any OpenAI-compatible provider to transcribe with Whisper and automatically correct grammar, punctuation, and homophones using a local LLM.
  3. Fine-tune & deploy - Use Listenr to build train/dev/test splits and fine-tune Whisper or Moonshine with LoRA. Merge the adapter into a self-contained model you can deploy.

Everything stays local - no audio, text, or weights ever leave on your machine.

Get started

Install Lemonade and pull models:

Lemonade guide: lemonade-server.ai/docs/guide/install

# after installing locally, download default models
lemonade pull Whisper-Base
lemonade pull gpt-oss-20b-mxfp4-GGUF

Install Listenr and start recording:

uv tool install listenr   # or: pipx install listenr
listenr record            # start recording

On PyPI. Python 3.11 or newer. The core install covers recording, transcription and dataset building; fine-tuning and the dataset importers live behind extras, listed in docs/setup.md.

On an AMD GPU, install a ROCm torch before the finetune extra, or pip will resolve a CUDA wheel that cannot see your card. See docs/setup.md.

Working on Listenr itself? Clone the repo and uv pip install -e ".[dev]" instead.

Once you have recordings, process & fine-tune:

# Build train/dev/test splits from your manifest
listenr build-dataset --format hf

# Fine-tune Whisper or Moonshine (see docs/finetune-amd.md for AMD GPUs)
podman compose run --rm finetune

# Merge the LoRA adapter into a standalone model
podman compose run --rm merge

# Evaluate it on the held-out test split
listenr eval --compare-base --keyword YourDomainWord

See docs/setup.md for full installation details.

If you want to mix in an external ASR dataset, use the optional importers to write a separate Listenr-compatible manifest — listenr import-mdc <dataset-id> (Mozilla Data Collective) or listenr import-hf <dataset-id> (Hugging Face) — then pass that manifest to listenr build-dataset alongside your normal one. See docs/dataset.md for details.

Under the hood

Recording & transcription - Listenr streams your microphone to Lemonade's /realtime WebSocket in ~85 ms chunks (16 kHz). Lemonade's voice activity detection segments speech, runs Whisper.cpp, and streams back transcripts.

Auto-correction - A local LLM cleans up punctuation, grammar, and homophones, producing a higher-quality training corpus than raw Whisper output alone.

Dataset & fine-tuning - Listenr saves each utterance as a .wav clip and a line in manifest.jsonl. One command builds train/dev/test splits in HuggingFace format. Another command fine-tunes any openai/whisper-* or UsefulSensors/moonshine-* model using LoRA (works on AMD and NVIDIA GPUs via Podman). Moonshine is the smaller, English-only, edge-oriented option; Whisper is the multilingual all-rounder.

Deployment - listenr merge folds the LoRA adapter into a self-contained model that loads with plain transformers. No PEFT dependency. Run inference locally or deploy it anywhere.

Documentation

Guide Description
docs/setup.md Installation, Lemonade Server, microphone setup
docs/configuration.md Full config.toml reference, VAD tuning, available models
docs/recording.md CLI usage, how recording works, batch transcription
docs/dataset.md Building train/dev/test splits, CSV and HF formats, and the optional Mozilla Data Collective import
docs/finetune-amd.md Fine-tuning Whisper on AMD GPU via ROCm + Podman, merging, and inference testing
docs/troubleshooting.md Common errors and fixes

Acknowledgments

License

Mozilla Public License Version 2.0 - see LICENSE.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

listenr-0.2.0.tar.gz (412.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

listenr-0.2.0-py3-none-any.whl (79.8 kB view details)

Uploaded Python 3

File details

Details for the file listenr-0.2.0.tar.gz.

File metadata

  • Download URL: listenr-0.2.0.tar.gz
  • Upload date:
  • Size: 412.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for listenr-0.2.0.tar.gz
Algorithm Hash digest
SHA256 d0394b78e5a5b6abaabb92812c95e675dead73e85e1d710de49120e1affc656b
MD5 636fa00a41690444ea42e08c5b932aaf
BLAKE2b-256 763987586104d9c882bccab115ac8bcb842d3acc1f3b212f5c2833260815c0ef

See more details on using hashes here.

Provenance

The following attestation bundles were made for listenr-0.2.0.tar.gz:

Publisher: release.yml on Rebreda/listenr

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file listenr-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: listenr-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 79.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for listenr-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 433f0ab3cb4b774a601f045a1b7617ec1e3cdc481640a616ead456438031d07b
MD5 07dce4851fefe12d289e7b2f1ee21add
BLAKE2b-256 f37bac6e52bd04187354623df8b3e3ff269b11ba10cbcf099680612b82aba299

See more details on using hashes here.

Provenance

The following attestation bundles were made for listenr-0.2.0-py3-none-any.whl:

Publisher: release.yml on Rebreda/listenr

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.2.1

2 files

This release

0.2.0 This release

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page