Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“‹ SRS Generator

An intelligent tool that converts video meetings and discussions into comprehensive Software Requirements Specification (SRS) documents using AI-powered transcription and analysis.

πŸš€ Features

  • πŸŽ₯ 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

πŸ“‹ What is SRS?

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.

πŸ› οΈ Installation

Prerequisites

  • Python 3.8 or higher
  • FFmpeg (for video processing)
  • Ollama (for local AI models)

Install FFmpeg

Windows:

# Using Chocolatey
choco install ffmpeg

# Or download from https://ffmpeg.org/download.html

macOS:

# Using Homebrew
brew install ffmpeg

Linux (Ubuntu/Debian):

sudo apt update
sudo apt install ffmpeg

Install Python Dependencies

  1. Clone the repository:
git clone <repository-url>
cd srs-generator
  1. Install Python dependencies:
pip install -r requirements.txt
  1. 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

πŸ”‘ Ollama Setup

Installing Ollama

  1. Download Ollama from https://ollama.ai/download
  2. Install and start the Ollama service
  3. Pull a model: ollama pull llama3.2

Available Models

The application supports various Ollama models:

  • llama3.2 (recommended)
  • llama3.1
  • llama2
  • mistral
  • codellama
  • phi3

Choose the model based on your hardware capabilities and quality requirements.

πŸš€ Usage

Web Interface (Recommended)

Launch the Streamlit web application:

streamlit run app.py

Then open your browser to http://localhost:8501

Command Line Interface

Basic Usage

# 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

Advanced Options

# 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 large

CLI Help

python cli.py --help

Programmatic Usage

from 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

πŸ“ Supported Formats

Video Formats

  • MP4
  • AVI
  • MOV
  • MKV
  • And more (via FFmpeg)

Audio Formats

  • MP3
  • WAV
  • M4A
  • And more (via FFmpeg)

Languages

  • All major languages supported by OpenAI Whisper
  • Automatic language detection
  • Multilingual content handling

πŸ“„ Output Structure

The generated SRS document follows the IEEE 830 standard and includes:

  1. Introduction

    • Purpose
    • Scope
    • Definitions, Acronyms, and Abbreviations
    • References
    • Overview
  2. Overall Description

    • Product Perspective
    • Product Functions
    • User Classes and Characteristics
    • Operating Environment
    • Design and Implementation Constraints
    • User Documentation
    • Assumptions and Dependencies
  3. Specific Requirements

    • Functional Requirements
    • External Interface Requirements
    • Performance Requirements
    • Design Constraints
    • Software System Attributes
  4. Appendices

    • Glossary
    • Analysis Models

πŸ”§ Configuration

Environment Variables

Create a .env file in the project root:

GEMINI_API_KEY=your_gemini_api_key_here
OPENAI_API_KEY=your_openai_api_key_here  # Optional

Whisper Models

Choose from different Whisper model sizes:

  • tiny: Fastest, least accurate
  • base: Good balance (default)
  • small: Better accuracy
  • medium: High accuracy
  • large: Best accuracy, slowest

πŸ› Troubleshooting

Common Issues

  1. FFmpeg not found

    • Install FFmpeg and ensure it's in your PATH
    • Restart your terminal after installation
  2. API key errors

    • Verify your Gemini API key is correct
    • Check that the API key has proper permissions
  3. Memory issues with large videos

    • Use a smaller Whisper model
    • Consider processing shorter video segments
  4. Slow processing

    • Use a smaller Whisper model
    • Ensure you have sufficient RAM
    • Consider using GPU acceleration if available

Getting Help

If you encounter issues:

  1. Check the error messages in the console
  2. Verify all dependencies are installed
  3. Ensure API keys are properly configured
  4. Check that input files are valid and accessible

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

πŸ“ž Support

For support and questions:

  • Open an issue on GitHub
  • Check the troubleshooting section
  • Review the documentation

Happy SRS Generation! πŸ“‹βœ¨

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages