Privacy-First AI Meeting Assistant - Local transcription and intelligent analysis with dual-mode AI processing.
- ποΈ Local Audio Transcription: Powered by faster-whisper, processes audio entirely on your device
- π€ Dual-Mode AI Analysis: Choose between OpenAI (cloud) or local Gemma 3n models via Ollama
- π Complete Privacy Control: Audio files never leave your device, choose your privacy level
- π Smart Meeting Intelligence: Automatic summaries, action items, key decisions, and topic extraction
- π Meeting Archive: Searchable history with export to Markdown, JSON, and other formats
- π Web-Based Interface: Modern, responsive UI accessible from any browser
- β‘ Cross-Platform: Runs on Windows, macOS, and Linux with automatic device optimization
Mode | Description | Privacy Level | Audio Processing | AI Analysis |
---|---|---|---|---|
π Local Gemma | Complete privacy | π’ Maximum | Local (Whisper) | Local (Ollama/Gemma) |
βοΈ OpenAI Cloud | High-quality analysis | π‘ Moderate | Local (Whisper) | Cloud (OpenAI API) |
π§ Basic Analysis | Keyword-based | π’ Maximum | Local (Whisper) | Local (Keywords) |
π Your audio files never leave your device regardless of the AI mode you choose.
- Fork this Replit or run directly in the browser
- Add OpenAI API Key (optional): Go to Secrets tab β Add
OPENAI_API_KEY
- Click Run - The app will start automatically on port 5000
- Upload audio and start analyzing your meetings!
- Python 3.11 or 3.12 (Python 3.13 is not supported due to the removal of the
audioop
module) - Git
- FFmpeg (required for audio processing)
-
Install FFmpeg (required for audio processing)
Linux (Ubuntu/Debian):
sudo apt update sudo apt install ffmpeg
Linux (CentOS/RHEL/Fedora):
# For CentOS/RHEL sudo yum install ffmpeg # For Fedora sudo dnf install ffmpeg
macOS:
# Using Homebrew brew install ffmpeg # Using MacPorts sudo port install ffmpeg
Windows:
# Using Chocolatey choco install ffmpeg # Using Winget winget install ffmpeg
Or download manually from https://ffmpeg.org/download.html and add to PATH.
Verify installation:
ffmpeg -version ffprobe -version
-
Clone the repository
git clone https://github.com/Rebell-Leader/PrivaNote.git cd PrivaNote
-
Install dependencies
Using uv (recommended):
pip install uv uv sync
Using pip:
pip install streamlit>=1.48.0 faster-whisper>=1.2.0 openai>=1.99.1 ollama>=0.5.2 pandas>=2.3.1 pydub>=0.25.1 torch>=2.8.0 torchaudio>=2.8.0
-
Run the application
streamlit run app.py --server.port 5000
-
Open your browser to
http://localhost:5000
To enable completely local AI processing with Gemma 3n models:
-
Install Ollama
# Windows/Mac: Download from https://ollama.com # Linux: curl -fsSL https://ollama.com/install.sh | sh
-
Install Gemma 3 models
# Recommended 4B model (balanced performance/quality) ollama pull gemma3 # Alternative options: ollama pull gemma3:1b # Faster, smaller (1.7GB) ollama pull gemma3:27b # Highest quality (requires 16GB+ RAM)
-
Restart the app - Ollama integration will be automatically detected
- Upload Audio: Support for WAV, MP3, MP4, M4A, FLAC, OGG formats
- Choose AI Provider: Select your preferred privacy/quality balance
- Review Results: Automatically generated summaries, action items, and insights
- Export & Archive: Save to Markdown, search previous meetings
- OpenAI (Cloud): Requires API key, highest quality analysis
- Local Gemma: Requires Ollama setup, complete privacy
- Basic Analysis: No setup required, keyword-based extraction
- WAV, MP3, MP4, M4A, FLAC, OGG
- Automatic format conversion for optimal Whisper compatibility
- Works with virtual meeting recordings (Zoom, Teams, etc.)
- Frontend: Streamlit web application with responsive design
- Audio Processing: PyDub for format conversion and metadata extraction
- Transcription: faster-whisper for local speech-to-text
- AI Analysis: Dual-mode system (OpenAI API + Ollama integration)
- Storage: Local browser session with export capabilities
- Python 3.11+ - Core runtime
- Streamlit - Web framework and UI
- faster-whisper - Local speech recognition
- OpenAI API - Cloud AI analysis (optional)
- Ollama + Gemma 3n - Local AI analysis (optional)
- PyTorch - ML framework with CPU/GPU optimization
- Local-first processing: Audio transcription happens on your device.
- Configurable AI providers: You choose your desired level of privacy.
- Ephemeral by Default: Meeting data is held only in your browser's session memory and is discarded when you close the tab.
- User-Controlled Persistence: You have full control over what data to save, via manual exports to Markdown or other formats.
- Meetings: Capture decisions, action items, and follow-ups
- Interviews: Generate structured candidate assessments
- Client Calls: Track requirements and commitments
- Team Standups: Document progress and blockers
- Investor Meetings: Capture feedback and next steps
- Team Updates: Track project progress and decisions
- Customer Discovery: Organize insights and pain points
- Board Meetings: Generate structured reports and summaries
- Compliance: Maintain meeting records with privacy controls
- Knowledge Management: Build searchable meeting archives
- Remote Work: Enhance async communication with meeting summaries
- Training: Create documentation from recorded sessions
# Optional: OpenAI API key for cloud analysis
OPENAI_API_KEY=your_openai_api_key
# Optional: Custom Ollama host (default: localhost:11434)
OLLAMA_HOST=localhost:11434
The app includes optimized settings in .streamlit/config.toml
:
- Headless mode for deployment
- Proper host binding (0.0.0.0:5000)
- Performance optimizations
Whisper initialization fails:
- The app automatically tries multiple device configurations
- CPU mode with int8 compute type should work on any system
- Check error messages in the console for specific issues
OpenAI API errors:
- Verify your API key is correctly set in environment variables
- Ensure you have sufficient API credits
- Check your internet connection
Ollama not detected:
- Make sure Ollama service is running (
ollama serve
) - Verify models are installed (
ollama list
) - Check if port 11434 is accessible
Audio upload issues:
- Supported formats: WAV, MP3, MP4, M4A, FLAC, OGG
- Maximum file size depends on available memory
- Try converting audio to WAV format if issues persist
- CPU-only systems: Use Whisper's int8 mode (automatic)
- GPU systems: CUDA acceleration (automatic detection)
- Large files: Consider splitting into smaller segments
- Memory usage: Close unused browser tabs during processing
We welcome contributions! Areas where you can help:
- π Bug fixes - Report issues and submit fixes
- π¨ UI/UX improvements - Enhance the user interface
- π Integrations - Add support for more AI models or export formats
- π Documentation - Improve setup guides and usage examples
- π§ͺ Testing - Test across different platforms and configurations
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- Speaker diarization - Identify individual speakers
- Real-time processing - Live meeting transcription
- Mobile support - Responsive design improvements
- API integrations - Notion, Confluence, Slack export
- Native mobile apps - iOS and Android with local AI
- Team collaboration - Shared meeting spaces
- Advanced search - Semantic search across meeting history
- Custom models - Fine-tuned models for specific domains
- Workflow automation - Trigger actions based on meeting content
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Documentation: This README and inline help
- Email: Contact us
- OpenAI - Whisper model and API services
- Google - Gemma 3n models and research
- Ollama - Local model serving platform
- Streamlit - Web application framework
- faster-whisper - Optimized Whisper implementation
Built with β€οΈ for privacy-conscious professionals who want AI-powered meeting intelligence without compromising their data security.