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: Fast local transcription using Faster 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 uses Faster Whisper for efficient local transcription. All model sizes are supported:

Model Parameters Speed Accuracy Memory
tiny 39M Fastest Good ~1 GB
base 74M Fast Better ~1 GB
small 244M Medium Great ~2 GB
medium 769M Slow Excellent ~5 GB
large 1550M Slowest Best ~10 GB

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
    • faster-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.4.0.tar.gz (13.3 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.4.0-py3-none-any.whl (10.8 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for mnemofy-0.4.0.tar.gz
Algorithm Hash digest
SHA256 edb5f152f054af64b80cdf8ff367f4c4954334860818cf1d63068b9b28ed9f02
MD5 a75af0b45861ee108daeadf878d0db3a
BLAKE2b-256 95aa3015dab079ca983ee208f3dee08518c54125bb9e27be538f50fafbd5f0d1

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for mnemofy-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 238c0747c08ddc2a3e98a3d5b30fef6fd2b40799047c9e01581d06cc2bf85aaa
MD5 c7f4f82aa873f9704858e09384d12516
BLAKE2b-256 1e4d7327b9d78b86aba5e3fbc24ccbee8d808127394f7d74d095eb67cf73f0dd

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