A Chrome extension that tracks facial expressions and generates real-time meeting notes for video calls. ( Future Vision on complete implementation )
- Emotion Detection: Analyzes facial expressions to detect your current mood in real-time
- Automatic Transcription: Captures meeting audio and converts it to text
- AI Summarization: Creates concise bullet-point summaries of the conversation
- Live Overlay: Displays your current mood and meeting notes directly on the call interface
- Clone this repository
- Open Chrome and navigate to
chrome://extensions/ - Enable "Developer mode" in the top-right corner
- Click "Load unpacked" and select the project directory
- The extension should now appear in your browser toolbar
For full functionality with real API calls (optional):
- Open the
config.jsfile - Replace
'your-openai-api-key-here'with your actual OpenAI API key - Reload the extension
If you don't add an API key, the extension will use simulated data for demonstration purposes.
- Join a Zoom, Google Meet, or Microsoft Teams meeting
- Click the Mood Notetaker extension icon in your browser toolbar
- Click "Start Tracking" to begin analyzing your expressions and the conversation
- The overlay will appear on the meeting page showing your current mood and automatically generated notes
- Click "Stop" when you want to end the session
- All processing happens in your browser or through OpenAI API calls
- No data is stored on servers or shared with other meeting participants
- Only you can see the overlay and your emotion data
- Extension scaffolding ✅
- UI overlay implementation ✅
- Communication between content and background scripts ✅
- Emotion detection using face-api.js ✅
- Audio capture and transcription ✅
- Meeting summarization with GPT-4 ✅
- Performance optimization
- Error handling improvements
- User customization options
During the initial testing phase, we encountered and fixed the following issues:
-
Content Security Policy (CSP) Error: Due to Chrome's strict CSP in Manifest V3, the extension couldn't load the face-api.js library from a CDN. Fixed by:
- Implementing a local face-api.js loading strategy
- Adding a simulation mode fallback when face detection can't be initialized
- Properly handling script loading to comply with CSP restrictions
-
System Audio Capture Error: The system audio capture attempt was failing with "System audio capture not implemented in this version". Fixed by:
- Removing the system audio capture attempt to avoid the error
- Going directly to microphone-only mode for reliable audio capture
- Updating message types to match the background service worker expectations
These fixes ensure the extension runs properly on Chrome with Manifest V3's security restrictions while providing graceful fallbacks when needed.
During additional testing, we identified and fixed more issues:
- Face-API Script Loading CSP Error: Chrome's Content Security Policy was blocking face-api.js from executing as an inline script with the error:
Fixed by:
Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'self' 'wasm-unsafe-eval' 'inline-speculation-rules'..."- Using a proper script element with src attribute instead of inline script injection
- Properly loading face-api.js as a web accessible resource with chrome.runtime.getURL()
- Adding proper error handling and fallback mechanisms when the script can't be loaded
manifest.json- Extension configurationbackground/- Background service worker for API callscontent/- Content scripts for page injection and UIemotion-detector.js- Face detection and emotion classificationaudio-capturer.js- Audio recording and processingcontent.js- Main content script and UI managementcontent.css- Styles for the overlay UIface-api/- Face detection models
popup/- Extension popup UIicons/- Extension iconsconfig.js- API configuration (gitignored)config.template.js- Template for API configuration
- Save meeting notes to a file or copy to clipboard
- Improved emotion detection with more emotion categories
- Full meeting audio capture (with participant consent)
- Meeting insights with emotion and topic correlation
- Customizable UI themes and positions