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.9.tar.gz (64.8 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.9-py3-none-any.whl (65.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: lore_ai-0.1.9.tar.gz
  • Upload date:
  • Size: 64.8 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.9.tar.gz
Algorithm Hash digest
SHA256 5e528bedaf255ff17615be1dcbf80f0d1400969c1d1801d3e9ac261c64b50578
MD5 097f3f4eba23bbd1d0b3fe2eba744fcc
BLAKE2b-256 4c79e6eadec88128dd0612c6720bf24f62a772f3e62911eae90d7a5905bb3c4e

See more details on using hashes here.

Provenance

The following attestation bundles were made for lore_ai-0.1.9.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.9-py3-none-any.whl.

File metadata

  • Download URL: lore_ai-0.1.9-py3-none-any.whl
  • Upload date:
  • Size: 65.1 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.9-py3-none-any.whl
Algorithm Hash digest
SHA256 23d07ce4a2b731b594c552c56135fcb721e9244eb507dba0d969a3e8f0c50527
MD5 d8fde21fa26012c47b64c4af51e51436
BLAKE2b-256 9ab82b68fe42ddf839360585190b407e72cd024a18cd5ea7fe02199770090543

See more details on using hashes here.

Provenance

The following attestation bundles were made for lore_ai-0.1.9-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