vkcodes/ai-meeting-saas
AI Meeting Assistant
An intelligent meeting assistant that helps you transcribe, analyze, and summarize your meeting recordings. It processes audio files, generates transcripts, and provides AI-powered insights including meeting summaries, key points, and action items.
<img width="959" height="478" alt="Screenshot 2025-10-23 235722" src="https://github.com/user-attachments/assets/053f2df6-6e3c-46d1-b895-e3f778b97880" /> <img width="943" height="479" alt="Screenshot 2025-10-24 010754" src="https://github.com/user-attachments/assets/3750be10-f1da-48a2-aa43-f2e099c2c0b4" />
✨ Features
- 🎙️ Audio Processing
- Upload and process audio recordings (WAV, MP3, OGG, M4A, WebM)
- Automatic format conversion
- Background noise reduction
- 📝 Transcription
- High-accuracy speech-to-text
- Speaker diarization
- Timestamped transcripts
- 🤖 AI Analysis
- Smart meeting title generation
- Concise meeting summaries
- Key points and action items
- Sentiment analysis
- Follow-up recommendations
- 🌐 Web Interface
- Responsive design
- Real-time processing status
- Downloadable reports
- Dark/Light theme
🚀 Getting Started
Prerequisites
- Python 3.8+
- uv (Modern Python package manager)
- Google Gemini API key (for AI analysis)
Installation
- Clone the repository:
git clone <repository-url>.git
cd ai-meeting-saas- Copy the example environment file and update with your API key:
cp .env.example .env
# Edit .env with your API key- Install dependencies using uv:
uv syncEnvironment Variables
Create a .env file with the following variables:
# Required
GENAI_API_KEY=your_gemini_api_key
HF_API_KEY=your_hf_api_key🚦 Usage
- Start the development server:
uv run app.py- Open your browser and navigate to http://localhost:8000
- Record your online meeting and upload to the server
- View the processed results including transcription and AI analysis
🏗️ Project Structure
ai-meeting-saas/
├── .env.example # Example environment variables
├── app.py # Main Flask application
├── pyproject.toml # Project metadata and dependencies
├── services/
│ ├── __init__.py
│ ├── audio_transcriber.py # Audio processing and transcription
│ └── ai_analyzer.py # AI-powered meeting analysis
├── templates/ # HTML templates
│ ├── index.html
│ └── view.html
├── uploads/ # Store uploaded audio files
└── output/ # Generated transcripts🛠️ Development
- Install development dependencies:
uv pip install -e ".[dev]"- Run the development server with auto-reload:
python -m flask --app app.py --debug run- Run tests:
pytest⚙️ Configuration
Application Settings
You can configure the application by setting environment variables in your .env file:
DEBUG: Enable debug mode (default:False)UPLOAD_FOLDER: Directory for uploaded files (default:uploads)MAX_CONTENT_LENGTH: Maximum file size in bytes (default: 100MB)ALLOWED_EXTENSIONS: Comma-separated list of allowed file extensions (default:wav,mp3,ogg,m4a,webm)
AI Configuration
GENAI_API_KEY: Your Google Gemini API key (required)MODEL_NAME: AI model to use (default:gemini-pro)TEMPERATURE: Controls randomness in AI responses (0.0 to 1.0)
📚 Documentation
For detailed documentation, please refer to the docs directory.
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🤝 Contributing
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Please ensure your code follows the project's style guidelines and includes appropriate tests.
Made with ❤️ in India
