A Streamlit application that analyzes sentiment from video recordings by:
- Extracting audio from video
- Transcribing speech to text using OpenAI Whisper
- Performing sentiment analysis using German BERT model
- Visualizing sentiment changes over time
- Video upload interface
- High-quality speech-to-text transcription (Whisper)
- German language sentiment analysis (oliverguhr/german-sentiment-bert)
- Facial expression analysis (DeepFace)
- Combined time-series visualization of:
- Text sentiment
- Facial emotions (angry, disgust, fear, happy, sad, surprise, neutral)
- Automatic cleanup of temporary files
- Clone this repository
- Install dependencies:
pip install -r requirements.txt- Download Whisper model (will happen automatically on first run)
- Build the container image:
docker build -t vsentiment .- Run the container:
docker run -p 8501:8501 vsentiment- Access the application at:
http://localhost:8501Note: For GPU support, install NVIDIA Container Toolkit and add --gpus all to the docker run command.
- Run the application:
streamlit run app.py- Open http://localhost:8501 in your browser
- Upload a video file (MP4 or MOV)
- View analysis results including:
- Full transcript
- Sentiment timeline chart
- Overall sentiment score
- Speech Recognition: OpenAI Whisper (base model)
- Sentiment Analysis: German BERT model (oliverguhr/german-sentiment-bert)
- Visualization: Matplotlib with Streamlit
- Audio Processing: MoviePy
vsentiment/
├── app.py # Main MCP server implementation
├── requirements.txt # Python dependencies
├── README.md # Project documentation
├── PLANNING.md # Project planning
├── TASK.md # Task tracking
└── .streamlit/ # Streamlit config
└── config.toml
- Follows PEP8 standards
- Uses type hints for all functions
- Google-style docstrings for documentation
- Formatted with Black
- Uses Pydantic for data validation
- Frame-level video segmentation for more granular analysis
- Multi-language support
- Whisper model upgrades (small/medium)
- Facial expression analysis integration