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 pyannote.audio or Resemblyzer, with configurable speaker count (1–20).
  • 🔀 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.6.tar.gz (55.0 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.6-py3-none-any.whl (56.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: lore_ai-0.1.6.tar.gz
  • Upload date:
  • Size: 55.0 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.6.tar.gz
Algorithm Hash digest
SHA256 b4a003a10544d247b1b1c91e5da9e1554ad47c6bf01ab1e60ba6ed8ccdd46150
MD5 744bf3c90e8dd6389c4a37bfa4945fa4
BLAKE2b-256 0613a84d7edb2355a5c8fbb37e7e516d3746583f03161759dc64a5e777e14e9a

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: lore_ai-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 56.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.6-py3-none-any.whl
Algorithm Hash digest
SHA256 78abf3a8070da0b90efdf7a087044b51d8e1a0bcecd6864c658edb61b9e14636
MD5 2ac5a93558c3db74a976c4cb9880ec85
BLAKE2b-256 0a07fc0737fd99debdf8b0a3e35d00331d19e366bc7e833c130321fcf36c1f6a

See more details on using hashes here.

Provenance

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