Skip to content

bgbryan2002/NovaCore

Repository files navigation

Meeting Analyzer

An automated meeting analysis tool that transcribes audio, identifies speakers, extracts action items, and generates detailed reports with personalized email distribution.


Features

  • ๐ŸŽ™๏ธ Audio transcription using Whisper
  • ๐Ÿ‘ฅ Speaker identification and verification
  • โœ… Action item and task extraction
  • ๐Ÿ“Š Markdown + PDF meeting report generation
  • ๐Ÿ“ง Email distribution of personalized summaries
  • ๐Ÿ‘ค Speaker profile management (with email memory)
  • ๐Ÿ” .env support for secure API key + credentials
  • ๐ŸŒ Ready for n8n automation via webhooks (coming soon)

๐Ÿ”ง Prerequisites

  1. Python 3.10.9 or later
  2. FFmpeg installed and available in PATH
  3. wkhtmltopdf for PDF generation
  4. OpenAI API key
  5. Gmail account with App Password for email sending

๐Ÿ“ฆ Installation

1. Clone the repository

git clone https://github.com/your-username/meeting-analyzer.git
cd meeting-analyzer

2. Set up a virtual environment

python -m venv whisper-env
.\whisper-env\Scripts\activate  # Windows
source whisper-env/bin/activate  # Linux/Mac

3. Install dependencies

pip install -r requirements.txt

4. Install wkhtmltopdf

  • Download and install: wkhtmltopdf
  • Add the install folder (e.g., C:\Program Files\wkhtmltopdf\bin) to your system PATH

๐Ÿ” Configure Credentials

Option 1: Using .env (Recommended)

  1. Copy and rename .env.example:
cp .env.example .env
  1. Open .env and fill in:
OPENAI_API_KEY=your-openai-key
EMAIL_USERNAME=your.email@gmail.com
EMAIL_PASSWORD=your-app-password
FROM_EMAIL=your.email@gmail.com
SMTP_SERVER=smtp.gmail.com
SMTP_PORT=587

โœ… .env is ignored by Git and keeps your keys safe.


๐Ÿง  Usage

โ–ถ๏ธ Option 1: Batch Files (Windows only)

run_meeting.bat

Runs the full analysis pipeline with default audio file (Senior Project Demo.mp3)

.\run_meeting.bat

๐Ÿ Option 2: Python Execution (More flexible)

Activate your environment:

.\whisper-env\Scripts\activate

Then run:

python meeting_analyzer.py "your_audio.mp3"

Optionally add:

--email-config email_config.json

Will use .env values unless overridden with --email-config


๐Ÿ“ Output Files

  • meeting_report.md โ†’ Markdown summary
  • meeting_report.pdf โ†’ Printable version
  • full_transcript.txt โ†’ Raw transcript
  • segments.json โ†’ Timestamped segments
  • meeting_analysis.log โ†’ Execution logs
  • individual_summaries/ โ†’ Per-speaker task summaries

โš™๏ธ Key Config Files

File Purpose
.env Main API + email config (recommended)
.env.example Template for .env setup
email_config.json Optional legacy email config
attendees_db.json Stores speaker names + emails
requirements.txt Python dependencies

๐Ÿ” Security Notes

  • โœ… .env is excluded from Git
  • โŒ Never commit your credentials
  • ๐Ÿ”’ Use Gmail App Passwords (not your main password)
  • ๐Ÿ”„ You can remove email_config.json if .env is used

๐Ÿ”ฎ Roadmap (Coming Soon)

  • ๐ŸŒ n8n integration via webhooks + JSON payloads
  • ๐Ÿง  AI task suggestion templates
  • ๐Ÿ” Audio highlight replays
  • ๐Ÿง‘โ€๐Ÿ’ผ Dashboard summaries per participant
  • ๐Ÿ“Ž Google Calendar or Notion integration

๐Ÿ› ๏ธ Troubleshooting

Issue Fix
โŒ PDF not generated Ensure wkhtmltopdf is installed + in PATH
โŒ Emails not sending Check app password + Gmail 2FA enabled
โŒ Transcription error Check ffmpeg is installed + audio format
โŒ Batch file fails Use full path, run as admin if needed

๐Ÿค Contributing

Pull Requests are welcome!
Want to add integrations or custom formats? Fork and build on top!


๐Ÿ“œ License

MIT or your license here


๐Ÿ“ฌ Contact

Brendan Bryan & Brian Ford


๐Ÿ“„ Email Configuration Options

You have two ways to configure email settings:

  1. Using Environment Variables (Default):
python meeting_analyzer.py "Senior Project Demo.mp3"

This will use the email credentials from your .env file:

  • EMAIL_USERNAME: Your Gmail address
  • EMAIL_PASSWORD: Your Gmail app password
  1. Using JSON Configuration File:
python meeting_analyzer.py "Senior Project Demo.mp3" --email-config email_config.json

This will use settings from email_config.json:

{
    "smtp_server": "smtp.gmail.com",
    "smtp_port": 587,
    "sender_email": "your.email@gmail.com",
    "sender_password": "your-app-password"
}

Key Differences:

  • Environment variables are more secure (not stored in files)
  • JSON config is more portable and can be version controlled (without credentials)
  • Using --email-config will try JSON first, then fall back to environment variables if needed
  • The batch file run_meeting.bat uses the JSON config approach

Quick Start

  1. Using the batch file (recommended):
.\run_meeting.bat
  1. Manual execution with environment variables:
python meeting_analyzer.py "Senior Project Demo.mp3"
  1. Manual execution with JSON config:
python meeting_analyzer.py "Senior Project Demo.mp3" --email-config email_config.json

Features

  • Automatic speech-to-text transcription using Whisper
  • Speaker identification and verification
  • Action item extraction
  • Task assignment tracking
  • Automated email summaries to participants
  • PDF and Markdown report generation

Output Files

  • meeting_report.md: Detailed meeting summary in Markdown format
  • meeting_report.pdf: PDF version of the meeting summary
  • full_transcript.txt: Complete meeting transcript
  • segments.json: Detailed segment-by-segment analysis

Troubleshooting

  1. Email Configuration:

    • If using environment variables, check your .env file
    • If using JSON config, verify email_config.json exists and is properly formatted
    • Make sure you're using an App Password for Gmail
  2. Common Issues:

    • "EmailConfig not defined": Make sure you're using the latest version of the code
    • Email authentication errors: Check your credentials and App Password
    • PDF generation fails: Install wkhtmltopdf if not already installed

Contributing

Feel free to submit issues and enhancement requests!


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors