An intelligent tool that converts video meetings and discussions into comprehensive Software Requirements Specification (SRS) documents using AI-powered transcription and analysis.
- π₯ Video Processing: Extract audio from various video formats (MP4, AVI, MOV, MKV)
- π Multilingual Support: Automatic language detection and transcription using OpenAI Whisper
- π€ AI-Powered Analysis: Convert transcripts to structured SRS documents using Ollama (local AI models)
- π± Web Interface: Beautiful Streamlit web application for easy use
- π» Command Line: CLI interface for automation and scripting
- π Multiple Outputs: Generate both SRS documents and transcripts
- π¨ Modern UI: Clean, responsive web interface with real-time progress tracking
A Software Requirements Specification (SRS) is a document that describes what the software will do and how it will be expected to perform. It serves as a contract between the development team and stakeholders, ensuring everyone understands the project requirements.
- Python 3.8 or higher
- FFmpeg (for video processing)
- Ollama (for local AI models)
Windows:
# Using Chocolatey
choco install ffmpeg
# Or download from https://ffmpeg.org/download.htmlmacOS:
# Using Homebrew
brew install ffmpegLinux (Ubuntu/Debian):
sudo apt update
sudo apt install ffmpeg- Clone the repository:
git clone <repository-url>
cd srs-generator- Install Python dependencies:
pip install -r requirements.txt- Install and set up Ollama:
# Run the setup script
python setup_ollama.py
# Or manually install Ollama from https://ollama.ai/download
# Then pull a model:
ollama pull llama3.2- Download Ollama from https://ollama.ai/download
- Install and start the Ollama service
- Pull a model:
ollama pull llama3.2
The application supports various Ollama models:
llama3.2(recommended)llama3.1llama2mistralcodellamaphi3
Choose the model based on your hardware capabilities and quality requirements.
Launch the Streamlit web application:
streamlit run app.pyThen open your browser to http://localhost:8501
# Generate SRS from video file
python cli.py video.mp4 --project "My Project"
# Generate SRS with custom output file
python cli.py meeting.avi --output my_srs.md
# Only generate transcript (skip SRS generation)
python cli.py audio.wav --transcript-only# Use specific API key
python cli.py video.mp4 --api-key YOUR_API_KEY
# Verbose output
python cli.py video.mp4 --verbose
# Use different Whisper model
python cli.py video.mp4 --whisper-model largepython cli.py --helpfrom srs_generator import SRSGenerator
# Initialize the generator
generator = SRSGenerator(gemini_api_key="your_api_key")
# Process video to SRS
result = generator.process_video_to_srs("video.mp4", "My Project")
# Access results
print(result["transcript"]["text"]) # Raw transcript
print(result["srs_document"]) # Generated SRS- MP4
- AVI
- MOV
- MKV
- And more (via FFmpeg)
- MP3
- WAV
- M4A
- And more (via FFmpeg)
- All major languages supported by OpenAI Whisper
- Automatic language detection
- Multilingual content handling
The generated SRS document follows the IEEE 830 standard and includes:
-
Introduction
- Purpose
- Scope
- Definitions, Acronyms, and Abbreviations
- References
- Overview
-
Overall Description
- Product Perspective
- Product Functions
- User Classes and Characteristics
- Operating Environment
- Design and Implementation Constraints
- User Documentation
- Assumptions and Dependencies
-
Specific Requirements
- Functional Requirements
- External Interface Requirements
- Performance Requirements
- Design Constraints
- Software System Attributes
-
Appendices
- Glossary
- Analysis Models
Create a .env file in the project root:
GEMINI_API_KEY=your_gemini_api_key_here
OPENAI_API_KEY=your_openai_api_key_here # OptionalChoose from different Whisper model sizes:
tiny: Fastest, least accuratebase: Good balance (default)small: Better accuracymedium: High accuracylarge: Best accuracy, slowest
-
FFmpeg not found
- Install FFmpeg and ensure it's in your PATH
- Restart your terminal after installation
-
API key errors
- Verify your Gemini API key is correct
- Check that the API key has proper permissions
-
Memory issues with large videos
- Use a smaller Whisper model
- Consider processing shorter video segments
-
Slow processing
- Use a smaller Whisper model
- Ensure you have sufficient RAM
- Consider using GPU acceleration if available
If you encounter issues:
- Check the error messages in the console
- Verify all dependencies are installed
- Ensure API keys are properly configured
- Check that input files are valid and accessible
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
- OpenAI Whisper for speech recognition
- Google Gemini for AI-powered analysis
- Streamlit for the web interface
- MoviePy for video processing
For support and questions:
- Open an issue on GitHub
- Check the troubleshooting section
- Review the documentation
Happy SRS Generation! πβ¨