Skip to main content

Privacy-first, local-only oral history transcription.

Project description

Local First Python 3.12+ PyQt6 MIT License CI PyPI

Lore 🎙️

Privacy-First, Local-Only Oral History Transcription & Archiving


Lore is a desktop application designed for historians, archivists, and researchers. It provides state-of-the-art AI transcription, speaker diarization, named entity recognition, and translation—100% offline, on your own hardware.

No data leaves your computer. No cloud subscriptions. Just powerful, open-source AI packaged into a clean, intuitive PyQt6 interface.

Lore Main Window

✨ Features

  • 🎧 Offline Transcription: Powered by faster-whisper, optimized for CPU inference with low memory overhead (< 8GB RAM).
  • 🗣️ Speaker Diarization: Automatically identifies and labels different speakers using the ONNX-based pipeline (WeSpeaker embedding + KMeans clustering, using Whisper segment boundaries). No GPU, no HuggingFace token, no PyTorch required.
  • 🔀 Overlapping Speech Detection: Flags when multiple speakers talk simultaneously via a lightweight ONNX segmentation model (6 MB). Overlap regions are visualised on a dedicated strip and per-segment badges in the transcript view.
  • Model Tier Selection: Choose between Fast (small), Balanced (medium), or Best Quality (large-v3-turbo) Whisper models in Settings.
  • 🔍 Word-Level Confidence: Low-confidence words are visually highlighted so you can quickly spot potential hallucinations.
  • 🌍 Local Translation: Translate transcripts to over 200 languages completely offline using Meta's NLLB-200 model.
  • 📖 Custom Vocabulary: Provide local jargon, proper nouns, and historical terms to guide Whisper's decoding graph for maximum accuracy.
  • 🏷️ Named Entity Recognition: Uses GLiNER to automatically extract people, organizations, dates, and locations.
  • 📦 Archival Exporting: Export your work to the OHMS XML format or create an RFC 8493 BagIt archival package with SHA-256 checksum verification.
  • 🔎 Global Archive Search: A unified SQLite database (FTS5 + sqlite-vec) lets you instantly search across all your past projects using keyword or semantic/conceptual search.

🚀 Installation

Option 1: Pre-built Installers (Recommended)

Download the installer for your platform from the latest release:

Platform Installer
🪟 Windows lore-windows-x86_64.zip — Extract and run lore.exe
🍎 macOS lore-macos-arm64.tar.gz — Extract and run lore
🐧 Linux Install via PyPI (pip install lore-ai) or build from source

Option 2: Install from PyPI

pip install lore-ai
lore

Option 3: Install from Source

Lore requires Python 3.12+ and is cross-platform (Windows, macOS, Linux).

  1. Clone the repository:

    git clone https://github.com/mabo-du/lore.git
    cd lore
    
  2. Set up a virtual environment:

    python -m venv .venv
    source .venv/bin/activate  # On Windows: .venv\Scripts\activate
    
  3. Install the application:

    pip install -e .
    

🎮 Usage

Start the Lore application:

lore

Or launch from your system's application menu if installed via the pre-built installer.

  1. Select an Audio File: Click "Browse" to select any standard audio format (WAV, MP3, M4A, OGG, FLAC).

  2. Configure Settings: Click the ⚙️ Settings icon to set your Custom Vocabulary and speaker diarization preferences.

    Lore Settings
  3. Transcribe & Diarize: Click "Transcribe" on the toolbar. If recording has multiple speakers, check the "Enable Speaker Diarization" box.

  4. Edit & Review: Play the audio, click on segments to edit them, and review any low-confidence words highlighted in red.

  5. Translate: Select a target language from the dropdown and click "Translate" for fully offline translation.

  6. Export: Fill out the Metadata panel and export to OHMS XML or an Archival BagIt Package.

For detailed instructions, see the User Guide.

🏗️ Architecture

Lore is designed with strict sequential memory management to run on older hardware.

  • Models are loaded into memory one at a time (e.g., Whisper loads, transcribes, unloads → NLLB loads, translates, unloads).
  • Heavy use of CTranslate2 (INT8 quantization) ensures models run blazingly fast without needing a dedicated GPU.
  • The UI runs asynchronously using PyQt6's QThread and Signals, keeping the interface completely responsive during heavy AI workloads.

🤝 Contributing

Lore is an open-source project. We welcome pull requests, bug reports, and feature requests. Please see our User Guide for more detailed workflows and documentation on the codebase.

📜 License

This project is licensed under the MIT License - see the LICENSE file for details.

Project details


Download files

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

Source Distribution

lore_ai-0.1.10.tar.gz (68.3 kB view details)

Uploaded Source

Built Distribution

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

lore_ai-0.1.10-py3-none-any.whl (69.0 kB view details)

Uploaded Python 3

File details

Details for the file lore_ai-0.1.10.tar.gz.

File metadata

  • Download URL: lore_ai-0.1.10.tar.gz
  • Upload date:
  • Size: 68.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for lore_ai-0.1.10.tar.gz
Algorithm Hash digest
SHA256 373997156d096f016faaafeac49952f6db25b56d42e0f06c4827ce55c1754218
MD5 9b4ba0c71b7ea8251ec1701de0fbbd86
BLAKE2b-256 da803e3cb7c4f053722dcda92cd54916d6a95bc32982aeabade218c0d687f5bf

See more details on using hashes here.

Provenance

The following attestation bundles were made for lore_ai-0.1.10.tar.gz:

Publisher: release.yml on mabo-du/lore

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

File details

Details for the file lore_ai-0.1.10-py3-none-any.whl.

File metadata

  • Download URL: lore_ai-0.1.10-py3-none-any.whl
  • Upload date:
  • Size: 69.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for lore_ai-0.1.10-py3-none-any.whl
Algorithm Hash digest
SHA256 d5c708fc999fed1a1b330b0ca4f6fafeea77f57dde2f46e0d23777a183e16eb4
MD5 3f76288c058d9ea2220b0381d2d64a52
BLAKE2b-256 6aa8169b06c7957ee11cd55cfd6bf30269e5bd76e3c26044a3c1d9405ceb9f06

See more details on using hashes here.

Provenance

The following attestation bundles were made for lore_ai-0.1.10-py3-none-any.whl:

Publisher: release.yml on mabo-du/lore

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

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page