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

The default base model offers a good balance of speed and accuracy. Use tiny for quick tests or medium/large for maximum accuracy.

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.1.1.tar.gz (13.1 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.1.1-py3-none-any.whl (10.6 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for mnemofy-0.1.1.tar.gz
Algorithm Hash digest
SHA256 3d8b3bb76c82276c1e4b2ccd3b4184f48aa1f374208cc885018a3cfc1464125b
MD5 925faaffea19441e9cc12d7b74a421cf
BLAKE2b-256 80f572a8d4ff113a933362ef4c074e6777f41700d60203c9ee0c0d4cd69f77a7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mnemofy-0.1.1-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.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9d46f95bb7f1a2f52b79320275077fc497adae743a988ce7d59049ec5da2e791
MD5 6f23207829bef7ebe42019663ba2b423
BLAKE2b-256 e66eb550250dee0edc7466085d2472db442c07c867cd4c4c1a85fdd7ee230759

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