Lecture Transcriber Status: Work in Progress A Streamlit-based application for real-time lecture transcription, grammar correction, note structuring, and PDF export. This is an early, incomplete version intended for development and testing. Features (Planned/Partial)
Real-time Transcription: Records audio and transcribes using Whisper. Grammar Correction: Corrects text with LanguageTool. Note Structuring: Organizes notes into sections with summaries using spaCy and BART. PDF Export: Generates formatted PDFs with a table of contents. UI: Streamlit interface for live transcription and structured notes display.
Known Issues
Transcription may include noise or incomplete sentences (e.g., "What is..."). Summarization may timeout for long texts.
Setup Instructions
Clone the repository:git clone https://github.com/BaraaHazzaa/lecture-transcriber.git cd lecture-transcriber
Create and activate a virtual environment:python -m venv venv .\venv\Scripts\activate # On Windows
Install dependencies:pip install -r requirements.txt
Install spaCy model:python -m spacy download en_core_web_sm
Ensure Java is installed for LanguageTool (required by language-tool-python). Run the app:streamlit run main.py
Dependencies See requirements.txt for a full list. Key libraries:
Streamlit Whisper spaCy Transformers (BART) LanguageTool ReportLab
Project Structure
main.py: Streamlit app and main logic. text_processing.py: Grammar correction and note structuring. transcription.py: Audio transcription with Whisper. audio_processing.py: Audio recording and queue management. pdf_generator.py: PDF export with ReportLab.
Contributing This is a work-in-progress project. Feedback, bug reports, and pull requests are welcome! Please open an issue to discuss contributions. License TBD (to be determined upon project completion). Notes
The Whisper and BART models are downloaded at runtime, so the first run may take time. Temporary WAV files are generated during transcription and deleted automatically. Ensure a stable internet connection for model downloads and LanguageTool server access.