Transform audio into structured, intelligent content with AI-powered processing
WhisperForge is a powerful Streamlit application that converts audio files into comprehensive content packages including transcripts, insights, articles, and social media posts. Now with revolutionary large file processing supporting files up to 2GB.
- ποΈ Audio Transcription - High-quality speech-to-text using OpenAI Whisper
- π‘ Wisdom Extraction - AI-powered insights and key takeaways
- π Content Outline - Structured organization and flow
- π° Article Generation - Complete written content from audio
- π± Social Media Posts - Platform-optimized content
- π Notion Integration - Automatic publishing to Notion workspace
- π Knowledge Base - Add custom context from your files
- π Custom Prompts - Personalize AI output
- π Large File Processing - Handle files up to 2GB with intelligent chunking
- π Real-time Streaming - Watch content generate step-by-step
- π¨ Aurora Theme - Beautiful bioluminescent UI design
whisperforge--prime/
βββ app_simple.py # Main Streamlit application (v3.0.0)
βββ app.py # Redirect to main app
βββ core/ # Core functionality modules
β βββ content_generation.py
β βββ file_upload.py # Enhanced large file processing
β βββ supabase_integration.py
β βββ ...
βββ prompts/ # Custom AI prompts
βββ static/ # CSS, JS, and assets
βββ tests/ # Test suite
βββ docs/ # Documentation
βββ requirements.txt # Dependencies
- Python 3.8+
- Supabase account (for data storage)
- OpenAI API key (for AI processing)
-
Clone the repository
git clone https://github.com/your-username/whisperforge.git cd whisperforge -
Set up virtual environment
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies
pip install -r requirements.txt
-
Configure environment variables
cp env.example .env # Edit .env with your API keys -
Run the application
streamlit run app_simple.py
Create a .env file with your API keys:
# Required
SUPABASE_URL=your_supabase_url
SUPABASE_ANON_KEY=your_supabase_anon_key
OPENAI_API_KEY=your_openai_api_key
# Optional
NOTION_API_KEY=your_notion_api_key
NOTION_DATABASE_ID=your_notion_database_id- Upload Audio - Support for MP3, WAV, M4A, and video files up to 2GB
- Choose Processing Mode - Standard (β€25MB) or Enhanced Large File (β€2GB)
- Watch Real-time Processing - See content generate step-by-step
- Review Results - Comprehensive content package with all outputs
- Auto-publish - Optional Notion integration for seamless publishing
Before running tests, make sure all dependencies are installed:
pip install -r requirements.txtYou can also use the helper script scripts/setup_test_env.sh to create a
virtual environment with the required packages.
Run the test suite:
# Run all tests
pytest
# Run specific test categories
pytest -m unit # Unit tests only
pytest -m integration # Integration tests only
pytest tests/test_basic_functionality.py -v # Specific test file- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- OpenAI for Whisper and GPT models
- Supabase for backend infrastructure
- Streamlit for the amazing web framework
- The open-source community for inspiration and tools
WhisperForge v3.0.0 - Transform your audio into intelligent content π
βββ app_simple.py # Main Streamlit application (v3.0.0)
βββ app.py # Redirect to main app
βββ core/
β βββ streaming_pipeline.py # Step-by-step content processing
β βββ streaming_results.py # Real-time content display
β βββ content_generation.py # AI content generation functions
β βββ supabase_integration.py # Database operations
β βββ visible_thinking.py # AI thinking bubbles
β βββ session_manager.py # User session handling
β βββ styling.py # Aurora UI components
βββ prompts/ # Default and custom AI prompts
- Upload audio files (MP3, WAV, M4A, FLAC, etc.)
- Automatic transcription using OpenAI Whisper
- Progressive content generation with live updates
- Transcription - Speech-to-text conversion
- Wisdom Extraction - Key insights and takeaways
- Outline Creation - Structured content organization
- Article Generation - Complete written content
- Social Media - Platform-optimized posts
- π Notion Publishing - Auto-publish to Notion with beautiful formatting
- Database Storage - Persistent content library with Supabase
- Bioluminescent 2025 design system
- Real-time progress indicators
- Animated content cards
- Responsive Aurora color scheme
- Frontend: Streamlit with custom Aurora CSS
- Backend: Supabase (PostgreSQL)
- AI Models: OpenAI GPT-4
- Audio Processing: OpenAI Whisper
- Authentication: Supabase Auth + OAuth
- Deployment: Streamlit Cloud ready
-
Clone Repository
git clone <repository-url> cd whisperforge--prime
-
Install Dependencies
python -m venv venv source venv/bin/activate # or `venv\Scripts\activate` on Windows pip install -r requirements.txt
-
Environment Setup Create
.envfile or set environment variables:# Required - Supabase Database SUPABASE_URL=your_supabase_url SUPABASE_ANON_KEY=your_supabase_anon_key SUPABASE_SERVICE_ROLE_KEY=your_service_role_key # Optional for admin features # Required - AI Provider OPENAI_API_KEY=your_openai_key # Notion Integration - Auto-Publishing NOTION_API_KEY=your_notion_integration_token NOTION_DATABASE_ID=your_notion_database_id # Optional - OAuth & Integrations OAUTH_REDIRECT_URL=http://localhost:8501 # For OAuth flows # Optional - Security & Monitoring JWT_SECRET=your_jwt_secret_key SENTRY_DSN=your_sentry_dsn # For error tracking # Optional - Development DEBUG=true LOG_LEVEL=INFO ENVIRONMENT=development # or 'production'
-
Run Application
./start_app.sh # development (default) ./start_app.sh production # production mode
The WhisperForge UI uses a custom Aurora design system featuring:
- Bioluminescent Effects: Glowing borders and animations
- Gradient Backgrounds: Dynamic color transitions
- Glass Morphism: Backdrop blur effects
- Responsive Cards: Animated content containers
- Progress Streams: Real-time processing indicators
users- User accounts and settingscontent- Generated content and metadataprompts- Custom AI promptsknowledge_base- User-uploaded filesapi_keys- Encrypted API credentials
- Encrypted Storage: API keys and sensitive data
- Session Management: Secure user sessions
- Input Validation: File size and type restrictions
- Rate Limiting: API usage controls
- Database Content Retrieval: 26 processed files not displaying in history (investigating field name mismatches)
- Real-time Streaming: Content shows but not truly real-time like cursor chat
- Session Persistence: Authentication doesn't persist across refreshes consistently
- Prompt Saving: Custom prompts saving but not loading properly
- Thinking Bubbles: AI thinking stream not integrating smoothly
The content history page includes debug information:
- Database connection status
- Raw record samples
- Session state inspection
- Content structure analysis
- Fix content history display issues
- Implement true real-time streaming
- Resolve session persistence
- Debug prompt saving/loading
- Batch audio processing
- Export to multiple formats
- Advanced AI model selection
- Team collaboration features
This is currently a private project focused on creating the best audio-to-content transformation experience with a beautiful, modern interface.
MIT License - See LICENSE file for details.
WhisperForge - Transforming audio into actionable insights with the beauty of Aurora. π
# Simple, reliable pattern
if 'authenticated' not in st.session_state:
st.session_state.authenticated = False
@st.cache_resource
def init_supabase():
return get_supabase_client()- Supabase Client: Cached with
@st.cache_resource - User Data: Loaded fresh each session (not cached in session state)
- Content Storage: Direct to database, no complex state management
- User enters credentials β Verify against Supabase
- Set simple session state flags β No tokens or complex persistence
- Load user preferences from database β Use
@st.cache_datafor performance