Skip to main content

Extract audio from media files, transcribe speech, and produce documented meeting notes

Project description

mnemofy

mnemofy Logo

mnemofy extracts audio from media files, transcribes speech using OpenAI Whisper, and produces structured meeting notes with topics, decisions, action items, and mentions with timestamps.

Features

  • 🎵 Audio Extraction: Automatically extracts audio from video files using ffmpeg
  • 🎤 Speech Transcription: Local transcription using OpenAI Whisper (no API keys needed)
  • 📝 Structured Notes: Generates Markdown notes with:
    • Topics discussed with timestamps
    • Decisions made with timestamps
    • Action items with timestamps and @mentions
    • Full transcript with timestamps
  • 🎯 Supported Formats: aac, mp3, wav, mkv, mp4
  • 🚀 Production Ready: Clean modular architecture, type hints, error handling

Installation

Prerequisites

  1. Python 3.9+ is required
  2. ffmpeg must be installed:
    # Ubuntu/Debian
    sudo apt install ffmpeg
    
    # macOS
    brew install ffmpeg
    
    # Windows
    # Download from https://ffmpeg.org/download.html
    

Install mnemofy

# Clone the repository
git clone https://github.com/tiroq/mnemofy.git
cd mnemofy

# Install the package
pip install -e .

# Or install with development dependencies
pip install -e ".[dev]"

Usage

Basic Usage

Transcribe an audio or video file:

mnemofy transcribe meeting.mp4

This will create meeting_notes.md in the same directory.

Advanced Options

# Specify output file
mnemofy transcribe meeting.mp4 -o notes/meeting_summary.md

# Use a different Whisper model (tiny, base, small, medium, large)
# Larger models are more accurate but slower
mnemofy transcribe meeting.mp4 -m small

# Set a custom title for the notes
mnemofy transcribe meeting.mp4 -t "Team Sprint Planning"

# Keep the extracted audio file
mnemofy transcribe video.mkv --keep-audio

Get Help

# Show all options
mnemofy transcribe --help

# Show version
mnemofy version

Example Output

Given an audio file with meeting content, mnemofy generates structured Markdown like:

# Meeting Notes

## Topics Discussed

- **[00:32]** Let's talk about the new feature requirements
- **[05:12]** Now let's discuss the timeline

## Decisions Made

- **[03:45]** We've decided to use Python for the backend
- **[08:20]** The consensus is to launch in Q2

## Action Items

- **[10:15]** John needs to create the API documentation (@john)
- **[12:30]** Sarah will follow up with the design team (@sarah)

## Mentions

- @john: 10:15
- @sarah: 12:30

## Full Transcript

**[00:00]** Welcome everyone to today's meeting...

Architecture

mnemofy follows a clean, modular architecture:

mnemofy/
├── src/mnemofy/
│   ├── __init__.py       # Package initialization
│   ├── audio.py          # Audio extraction using ffmpeg
│   ├── transcriber.py    # Speech transcription using Whisper
│   ├── notes.py          # Structured note generation
│   └── cli.py            # Command-line interface with Typer
├── tests/                # Test suite
├── pyproject.toml        # Modern Python packaging (PEP 621)
└── README.md

Development

Running Tests

pytest

Linting and Type Checking

# Run ruff for linting
ruff check src/

# Run mypy for type checking
mypy src/

Whisper Models

mnemofy supports all Whisper model sizes:

Model Parameters Speed Accuracy
tiny 39M Fastest Good
base 74M Fast Better
small 244M Medium Great
medium 769M Slow Excellent
large 1550M Slowest Best

Requirements

  • Python 3.9+
  • ffmpeg
  • Dependencies (automatically installed):
    • typer
    • openai-whisper
    • rich
    • pydantic

License

MIT License - see 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

mnemofy-0.3.0.tar.gz (13.0 kB view details)

Uploaded Source

Built Distribution

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

mnemofy-0.3.0-py3-none-any.whl (10.6 kB view details)

Uploaded Python 3

File details

Details for the file mnemofy-0.3.0.tar.gz.

File metadata

  • Download URL: mnemofy-0.3.0.tar.gz
  • Upload date:
  • Size: 13.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for mnemofy-0.3.0.tar.gz
Algorithm Hash digest
SHA256 44a551d5b5ad3f0faf559846a0ab973b6251508d1e5d1f6a3afebad75f67ea39
MD5 30d5af90d6862339bdc8a019244e48fb
BLAKE2b-256 586c5852c78c4bd5b35661efb6072aa6e3a0b275a4a11aad072f27f6c6eb5861

See more details on using hashes here.

File details

Details for the file mnemofy-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: mnemofy-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 10.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for mnemofy-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7351ac042276d848512e3bfc7f574048a134e5990424316d34a62072c4fe5463
MD5 5f2a742214fc4090a42e5ecc8078f3b4
BLAKE2b-256 bb62f4851d9ed3562508cbd27a14d116c770ffd75fd7e56e69a5793235c420fd

See more details on using hashes here.

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