diff --git a/README.md b/README.md index ee4ec57..9852fd7 100644 --- a/README.md +++ b/README.md @@ -1,74 +1,105 @@ -# OBS Recording Transcriber +# Video Transcriber -Process OBS recordings or any video/audio files with AI-based transcription and summarization locally on your machine. +## Project Overview +The video Recording Transcriber is a Python application built with Streamlit that processes video recordings (particularly from OBS Studio) to generate transcripts and summaries using AI models. The application uses Whisper for transcription and Hugging Face Transformers for summarization. +## Key Improvement Areas -## Features -- AI transcription using Whisper. -- Summarization using Hugging Face Transformers. -- File selection, resource validation, and error handling. -- Speaker diarization to identify different speakers in recordings. -- Language detection and translation capabilities. -- Keyword extraction with timestamp linking. -- Interactive transcript with keyword highlighting. -- Export to TXT, SRT, VTT, and ASS subtitle formats with compression options. -- GPU acceleration for faster processing. -- Caching system for previously processed files. +### 1. UI Enhancements +- **Implemented:** + - Responsive layout with columns for better organization + - Expanded sidebar with categorized settings + - Custom CSS for improved button styling + - Spinner for long-running operations + - Expanded transcript view by default -## Installation +- **Additional Recommendations:** + - Add a dark mode toggle + - Implement progress bars for each processing step + - Add tooltips for complex options + - Create a dashboard view for batch processing results + - Add visualization of transcript segments with timestamps -### Easy Installation (Recommended) +### 2. Ollama Local API Integration +- **Implemented:** + - Local API integration for offline summarization + - Model selection from available Ollama models + - Chunking for long texts + - Fallback to online models when Ollama fails -#### Windows -1. Download or clone the repository -2. Run `install.bat` by double-clicking it -3. Follow the on-screen instructions +- **Additional Recommendations:** + - Add temperature and other generation parameters as advanced options + - Implement streaming responses for real-time feedback + - Cache results to avoid reprocessing + - Add support for custom Ollama model creation with specific instructions + - Implement parallel processing for multiple chunks -#### Linux/macOS -1. Download or clone the repository -2. Open a terminal in the project directory -3. Make the install script executable: `chmod +x install.sh` -4. Run the script: `./install.sh` -5. Follow the on-screen instructions +### 3. Subtitle Export Formats +- **Implemented:** + - SRT export with proper formatting + - ASS export with basic styling + - Multi-format export options + - Automatic segment creation from plain text -### Manual Installation -1. Clone the repo. -``` -git clone https://github.com/DataAnts-AI/VideoTranscriber.git -cd VideoTranscriber -``` +- **Additional Recommendations:** + - Add customizable styling options for ASS subtitles + - Implement subtitle editing before export + - Add support for VTT format for web videos + - Implement subtitle timing adjustment + - Add batch export for multiple files -2. Install dependencies: -``` -pip install -r requirements.txt -``` +### 4. Architecture and Code Quality +- **Recommendations:** + - Implement proper error handling and logging throughout + - Add unit tests for critical components + - Create a configuration file for default settings + - Implement caching for processed files + - Add type hints throughout the codebase + - Document API endpoints for potential future web service -Notes: -- Ensure that the versions align with the features you use and your system compatibility. -- torch version should match the capabilities of your hardware (e.g., CUDA support for GPUs). -- For advanced features like speaker diarization, you'll need a HuggingFace token. -- See `INSTALLATION.md` for detailed instructions and troubleshooting. +### 5. Performance Optimizations +- **Recommendations:** + - Implement parallel processing for batch operations + - Add GPU acceleration configuration options + - Optimize memory usage for large files + - Implement incremental processing for very long recordings + - Add compression options for exported files -3. Run the application: -``` -streamlit run app.py -``` +### 6. Additional Features +- **Recommendations:** + - Speaker diarization (identifying different speakers) + - Language detection and translation + - Keyword extraction and timestamp linking + - Integration with video editing software + - Batch processing queue with email notifications + - Custom vocabulary for domain-specific terminology -## Usage -1. Set your base folder where OBS recordings are stored -2. Select a recording from the dropdown -3. Choose transcription and summarization models -4. Configure performance settings (GPU acceleration, caching) -5. Select export formats and compression options -6. Click "Process Recording" to start +## Implementation Roadmap +1. **Phase 1 (Completed):** Basic UI improvements, Ollama integration, and subtitle export +2. **Phase 2 (Completed):** Performance optimizations and additional export formats + - Added WebVTT export format for web videos + - Implemented GPU acceleration with automatic device selection + - Added caching system for faster processing of previously transcribed files + - Optimized memory usage with configurable memory limits + - Added compression options for exported files + - Enhanced ASS subtitle styling options + - Added progress indicators for better user feedback +3. **Phase 3 (Completed):** Advanced features like speaker diarization and translation + - Implemented speaker diarization to identify different speakers in recordings + - Added language detection and translation capabilities + - Integrated keyword extraction with timestamp linking + - Created interactive transcript with keyword highlighting + - Added named entity recognition for better content analysis + - Generated keyword index with timestamp references + - Provided speaker statistics and word count analysis +4. **Phase 4:** Integration with other tools and services -## Advanced Features -- **Speaker Diarization**: Identify and label different speakers in your recordings -- **Translation**: Automatically detect language and translate to multiple languages -- **Keyword Extraction**: Extract important keywords with timestamp links -- **Interactive Transcript**: Navigate through the transcript with keyword highlighting -- **GPU Acceleration**: Utilize your GPU for faster processing -- **Caching**: Save processing time by caching results +## Technical Considerations +- Ensure compatibility with different Whisper model sizes +- Handle large files efficiently to prevent memory issues +- Provide graceful degradation when optional dependencies are missing +- Maintain backward compatibility with existing workflows +- Consider containerization for easier deployment -## Contributing -Contributions are welcome! Please feel free to submit a Pull Request. +## Conclusion +The OBS Recording Transcriber has a solid foundation but can be significantly enhanced with the suggested improvements. The focus should be on improving user experience, adding offline processing capabilities, and expanding export options to make the tool more versatile for different use cases.