Commit Graph

188 Commits

Author SHA1 Message Date
admin bdd0a80d8d Add watch-folder mode and wire MCP/watcher into entrypoint
Mirror and run GitLab CI / build (push) Waiting to run
Ruff / ruff (push) Waiting to run
- New watcher.py: polls WATCH_DIR, enqueues transcription+summary via Celery.
- New process_watch_file_task in tasks.py.
- Updated __main__.py: WebUI always runs; MCP and watcher run in parallel when enabled.
2026-06-19 17:18:20 +00:00
admin 7a31be9de5 Improve summary prompt, add markdown-to-DOCX styling, and add cover pages
Mirror and run GitLab CI / build (push) Waiting to run
Ruff / ruff (push) Waiting to run
- Configurable summary prompts via ENV or file; stronger default prompt.
- New docx_styles.py: converts markdown (headings, bullets, bold/italic) to DOCX.
- Updated create_summary_docx to use markdown-aware styling.
- New docx_cover.py: reusable cover page for transcript and summary.
- Cover pages enabled when COVER_PAGE_ENABLED=true.
2026-06-19 17:16:46 +00:00
admin 54414def26 Add MCP-style API server (OpenAPI) alongside WebUI
Mirror and run GitLab CI / build (push) Waiting to run
Ruff / ruff (push) Waiting to run
- New mcp_server.py: FastAPI app for LLMs to upload audio and get transcript JSON.
- Added process_mcp_transcribe_task Celery task.
- Updated __main__.py: WebUI always runs; MCP server runs in parallel when MCP_SERVER_ENABLED=true.
2026-06-19 17:04:44 +00:00
admin 111d1ea18b Set 30 lines per page
Mirror and run GitLab CI / build (push) Waiting to run
Ruff / ruff (push) Waiting to run
2026-06-19 16:18:15 +00:00
admin cb27ba80a1 Increase line length to 64 chars and lines per page to 32
Mirror and run GitLab CI / build (push) Waiting to run
Ruff / ruff (push) Waiting to run
2026-06-19 16:12:20 +00:00
admin 2112b8c7e2 Rewrite transcript DOCX logic for correctness
Mirror and run GitLab CI / build (push) Waiting to run
Ruff / ruff (push) Waiting to run
- Prepare transcript into pages of 29 lines each before writing.
- Each line max 60 chars total (48 content + number + spaces).
- Words preserved (no clipping); wrap at word boundaries.
- Page break after every 29 lines.
- No distinction between logical/visual lines.
2026-06-19 16:07:20 +00:00
admin 49f3cdc407 Fix page breaks: insert after every 29 lines; wrap at 58 chars preserving whole words
Mirror and run GitLab CI / build (push) Waiting to run
Ruff / ruff (push) Waiting to run
- Insert page break after every 29 visual lines.
- Wrap content at 58 characters, keeping whole words together.
- Ensure no text is lost; all transcript text is included.
2026-06-19 15:32:31 +00:00
admin 2c0998579c Ensure page break after line 29 and preserve all transcript text
Mirror and run GitLab CI / build (push) Waiting to run
Ruff / ruff (push) Waiting to run
- Insert page break after every 29 visual lines.
- Wrap long lines instead of truncating to preserve all words.
- No text is dropped; content wraps onto new lines as needed.
2026-06-19 15:25:49 +00:00
admin 327c05ea16 Use single-column layout in web UI with status below submit button
Mirror and run GitLab CI / build (push) Waiting to run
Ruff / ruff (push) Waiting to run
2026-06-19 15:20:18 +00:00
admin dabb5970ba Remove language and number of speakers fields from web GUI
Mirror and run GitLab CI / build (push) Waiting to run
Ruff / ruff (push) Waiting to run
- Drop 'Language (optional)' and 'Number of speakers (optional)' inputs.
- Update submit handler to pass None for both fields.
2026-06-19 15:18:03 +00:00
admin 6640bc050d feat: add chunked ASR for long audio with env-configurable chunk duration
Mirror and run GitLab CI / build (push) Has been cancelled
Ruff / ruff (push) Has been cancelled
- Integrate chunking into LocalAI client to avoid GPU OOM on long audio.
- Split long files into overlapping chunks; transcribe each chunk; merge segments with corrected timestamps.
- Auto-enable chunking when audio duration > LOCALAI_MAX_SINGLE_REQUEST_DURATION (default 300s).
- Add env variables:
    LOCALAI_CHUNK_DURATION (default 180)
    LOCALAI_CHUNK_OVERLAP (default 2)
    LOCALAI_MAX_SINGLE_REQUEST_DURATION (default 300)
- Add unit and integration tests for chunking logic.
- Confirmed working end-to-end with vibevoice-cpp-asr on 88-minute file.
2026-06-18 17:46:29 +00:00
admin 59363c5dcd Set content max_chars to 54
Mirror and run GitLab CI / build (push) Has been cancelled
Ruff / ruff (push) Has been cancelled
2026-06-17 17:08:41 +00:00
admin 0e27537a68 Enforce 60-char max per full line including spaces
Mirror and run GitLab CI / build (push) Has been cancelled
Ruff / ruff (push) Has been cancelled
- Reduce content max_chars to 48 so that:
  - line_number (up to 2) + spaces (up to 9) + content (48) <= 60.
2026-06-17 17:03:33 +00:00
admin 0947e91f15 Add extra white space between line number and text
Mirror and run GitLab CI / build (push) Has been cancelled
Ruff / ruff (push) Has been cancelled
- First line of each speaker turn: 2 base + 7 extra spaces.
- Continuation lines: 2 base + 3 extra spaces.
2026-06-17 16:55:31 +00:00
admin 1d447f2836 Center footer page numbers
Mirror and run GitLab CI / build (push) Has been cancelled
Ruff / ruff (push) Has been cancelled
2026-06-17 02:11:56 +00:00
admin 49e607e1e1 Add page numbers to footer: 'X of Y' (bottom left)
Mirror and run GitLab CI / build (push) Has been cancelled
Ruff / ruff (push) Has been cancelled
- Use PAGE and NUMPAGES fields for dynamic page numbering.
- Footer aligned left.
2026-06-17 02:10:42 +00:00
admin bd4393addc Increase max characters per visual line to 60
Mirror and run GitLab CI / build (push) Has been cancelled
Ruff / ruff (push) Has been cancelled
2026-06-17 02:01:35 +00:00
admin f5836d83f3 Add two spaces after line number and reduce max chars to 57
Mirror and run GitLab CI / build (push) Has been cancelled
Ruff / ruff (push) Has been cancelled
- Insert two spaces after the tab between line number and content.
- Reduce max_chars from 58 to 57 to slightly shorten each visual line.
2026-06-17 02:00:08 +00:00
admin b2dce9e048 Set 29 lines per page and fix page break insertion
Mirror and run GitLab CI / build (push) Has been cancelled
Ruff / ruff (push) Has been cancelled
- Use 29 visual lines per page before inserting a page break.
- Use w:pageBreak element for reliable page breaks across editors.
- Restart line numbering at 1 on each new page.
2026-06-16 19:51:24 +00:00
admin 4d9414fee9 Set line spacing to 1.5; page break every 32 lines
Mirror and run GitLab CI / build (push) Has been cancelled
Ruff / ruff (push) Has been cancelled
- Increase line spacing to 1.5 (360 twips).
- Insert page break after every 32 visual lines.
- Restart line numbering at 1 on each new page.
2026-06-16 19:49:01 +00:00
admin d4ed84f68d Set line spacing to 1.2 and 32 lines per page
Mirror and run GitLab CI / build (push) Has been cancelled
Ruff / ruff (push) Has been cancelled
- Increase line spacing to 1.2 (288 twips).
- Restart line numbering at 1 every 32 lines with page break.
2026-06-16 19:42:25 +00:00
admin eb83a37f02 Restart line numbering at 1 every 45 lines with page break
Mirror and run GitLab CI / build (push) Has been cancelled
Ruff / ruff (push) Has been cancelled
- Insert page break after 45 visual lines.
- Reset line counter so each page starts at 1.
- Uses embedded line numbers for consistent behavior across editors.
2026-06-16 19:40:15 +00:00
admin e7aa5ebf25 Ensure first visual line respects 58-char limit including label
Mirror and run GitLab CI / build (push) Has been cancelled
Ruff / ruff (push) Has been cancelled
- Trim first line at word boundary if label + content > 58.
- Subsequent lines continue at full width.
2026-06-16 19:26:30 +00:00
admin 1265a664cd Clip visual lines at 58 characters
Mirror and run GitLab CI / build (push) Has been cancelled
Ruff / ruff (push) Has been cancelled
2026-06-16 19:23:09 +00:00
admin 83f3c09218 Make line numbers reflect visual lines, not speaker turns
Mirror and run GitLab CI / build (push) Has been cancelled
Ruff / ruff (push) Has been cancelled
- Split long lines into multiple visual lines at word boundaries.
- Each visual line is its own paragraph with its own embedded line number.
- Continuous numbering across speakers and pages.
- Portable across Word, LibreOffice, Google Docs.
2026-06-16 19:21:04 +00:00
admin d828a91bf3 Use embedded line numbers instead of built-in line numbering
Mirror and run GitLab CI / build (push) Has been cancelled
Ruff / ruff (push) Has been cancelled
- Remove w:lnNumType; line numbers are now plain text in each paragraph.
- Ensures first line is always '1' across Word, LibreOffice, Google Docs.
- Each paragraph: line number + tab + content.
2026-06-16 19:15:47 +00:00
admin 670c6d3e2b Fix first-page line numbering off-by-one in transcript DOCX
Mirror and run GitLab CI / build (push) Has been cancelled
Ruff / ruff (push) Has been cancelled
- Remove docGrid element to prevent phantom grid-based line offset.
- Ensure exactly one lnNumType element (no duplicates).
- First visible line on page 1 now correctly numbered as 1.
2026-06-16 19:09:26 +00:00
admin f20102d564 Fix transcript DOCX line numbering (spacing and column fixes)
Mirror and run GitLab CI / build (push) Has been cancelled
Ruff / ruff (push) Has been cancelled
- Ensure single column layout (cols num='1')
- Set explicit single line spacing (before/after=0, line=240 twips)
- Prevents Word from counting extra lines due to spacing/columns
2026-06-16 18:08:46 +00:00
admin 0e6bc53cf8 Fix duplicate pgMar causing line numbering issue
Mirror and run GitLab CI / build (push) Has been cancelled
Ruff / ruff (push) Has been cancelled
- Update existing pgMar instead of appending a second one
- Prevents Word from miscounting lines on first page
2026-06-16 18:03:39 +00:00
admin c43076efd4 Increase timeouts for large-file transcription
Mirror and run GitLab CI / build (push) Has been cancelled
Ruff / ruff (push) Has been cancelled
- LocalAI client timeout: 600s -> 3600s
- Summarizer timeout: 600s -> 3600s
- Add task_time_limit=14400s (4h) and soft_time_limit=13500s to transcription task
2026-06-16 17:18:09 +00:00
admin 03d66219d9 Rebuild transcript DOCX generation flow
Mirror and run GitLab CI / build (push) Has been cancelled
Ruff / ruff (push) Has been cancelled
- Clean, single-pass implementation for transcript and summary DOCX
- Explicit margins, font, line numbering per OOXML spec
- Disable docGrid to prevent off-by-one line numbering
- Ensure first content line is line 1
2026-06-16 16:54:48 +00:00
admin 0c0e52dfb8 Fix syntax error in speaker identification prompt string
Mirror and run GitLab CI / build (push) Has been cancelled
Ruff / ruff (push) Has been cancelled
2026-06-16 16:05:02 +00:00
admin 604bfa3f41 Ensure identified speaker names/roles are printed in ALL CAPS
Mirror and run GitLab CI / build (push) Has been cancelled
Ruff / ruff (push) Has been cancelled
2026-06-16 16:02:55 +00:00
admin 8ff473f3e6 Fix transcript DOCX line numbering starting at 2 (docGrid)
Mirror and run GitLab CI / build (push) Has been cancelled
Ruff / ruff (push) Has been cancelled
- Disable document grid (w:type='none') when enabling line numbering
- Prevents Word from treating an empty grid line as line 1
2026-06-16 16:00:09 +00:00
admin 0b3f737e5b Update speaker identification to use real names or roles instead of random names
Mirror and run GitLab CI / build (push) Has been cancelled
Ruff / ruff (push) Has been cancelled
2026-06-16 15:49:39 +00:00
admin 598f8630de Fix transcript DOCX line numbering (invalid 'eachPage' value)
Mirror and run GitLab CI / build (push) Has been cancelled
Ruff / ruff (push) Has been cancelled
- Replace invalid 'eachPage' with valid 'newPage' for w:lnNumType restart attribute
- This ensures Word starts line numbering at 1 on the first page
2026-06-16 15:41:12 +00:00
admin 7fac0e7d9c Fix transcript DOCX line numbering starting at line 2 (robust)
Mirror and run GitLab CI / build (push) Has been cancelled
Ruff / ruff (push) Has been cancelled
- Fully clear default paragraphs from document body so Word's line numbering starts at the first real line
2026-06-15 16:26:28 +00:00
admin 5dd56a3368 Fix missing subject on emails with attachments
Mirror and run GitLab CI / build (push) Has been cancelled
Ruff / ruff (push) Has been cancelled
- Ensure Subject header is set on the outermost MIME part when attachments are present
- Restructure send_email to use multipart/mixed as root with headers when attachments exist
2026-06-15 15:03:50 +00:00
admin 7364d572d5 Fix transcript DOCX line numbering starting at line 2
Mirror and run GitLab CI / build (push) Has been cancelled
Ruff / ruff (push) Has been cancelled
- Remove initial empty paragraph so Word's line numbering starts at first real line
2026-06-15 14:54:32 +00:00
admin d51b006a19 Fix Gradio launch error and adjust upload template
Mirror and run GitLab CI / build (push) Has been cancelled
Ruff / ruff (push) Has been cancelled
- Remove unsupported 'enable_api' argument from app.launch()
- Hide API link via CSS instead
- Remove queue-position paragraph from upload_notification_template.html
2026-06-15 04:06:55 +00:00
admin b0a1bc059b Simplify email subject handling and remove duplicate functions
Mirror and run GitLab CI / build (push) Has been cancelled
Ruff / ruff (push) Has been cancelled
- Remove send_success_email/send_error_email from email_sender.py
- Centralize subject logic in tasks.py using _get_subject()
- Use EMAIL_SUBJECT_SUCCESS and EMAIL_SUBJECT_ERROR with clear defaults
- Ensure subject is always set and logged before sending
2026-06-15 03:52:19 +00:00
admin e27e5b8522 Revert PDF generation; simplify to DOCX + MD + JSON only
Mirror and run GitLab CI / build (push) Has been cancelled
Ruff / ruff (push) Has been cancelled
- Remove PDF helpers, LibreOffice, PyPDF2, reportlab
- Transcript DOCX: standalone, no cover page, with line numbering
- Summary DOCX: standalone, no cover page, no line numbering
- Attachments:
  - Transcribe: JSON, transcript MD, transcript DOCX
  - Transcribe & Summarize: JSON, transcript MD, transcript DOCX, summary MD, summary DOCX
2026-06-15 03:38:12 +00:00
admin 6233a41f61 Remove Gradio API page and 'Use via API' link from web UI
Mirror and run GitLab CI / build (push) Has been cancelled
Ruff / ruff (push) Has been cancelled
- Set enable_api=False in app.launch()
- Hide API-related links via CSS
2026-06-15 03:26:34 +00:00
admin 237bd4b37c Refactor PDF generation and attachment logic
Mirror and run GitLab CI / build (push) Has been cancelled
Ruff / ruff (push) Has been cancelled
- Generate PDFs by:
  - Creating individual .docx components (cover, transcript, summary)
  - Converting each .docx to PDF
  - Merging PDFs in correct order
  - Adding page numbers to final PDFs

- Transcribe & Summarize:
  - Attach: JSON, transcript MD, summary MD, TRANSCRIPT.pdf, SUMMARY.pdf, COMBINED.pdf

- Transcribe only:
  - Attach: JSON, transcript MD, TRANSCRIPT.pdf

- Ensure transcript line numbering is isolated to its own .docx before PDF merge
2026-06-15 03:16:53 +00:00
admin 7ece1a50c2 Update Web UI: rename option, increase title font, default identify speakers
Mirror and run GitLab CI / build (push) Has been cancelled
Ruff / ruff (push) Has been cancelled
- Rename 'Transcript & Summarize' to 'Transcribe & summarize'
- Increase title font size to 60px via CSS
- Set 'Identify speakers' checkbox to default selected
2026-06-15 03:02:19 +00:00
admin 46fbcf80af Ensure success and error emails always have a subject
Mirror and run GitLab CI / build (push) Has been cancelled
Ruff / ruff (push) Has been cancelled
- Use EMAIL_SUBJECT_SUCCESS env var for success emails
- Use EMAIL_SUBJECT_ERROR env var for error emails
- Provide safe defaults if env vars are missing or blank
- Add final guard in send_email() to prevent blank subjects
2026-06-15 02:57:09 +00:00
admin 42a155aeaa Add PDF-based document generation with LibreOffice; fix line numbering and margins
Mirror and run GitLab CI / build (push) Has been cancelled
Ruff / ruff (push) Has been cancelled
- Add LibreOffice Writer and DejaVu fonts to Dockerfile for PDF generation
- Add PyPDF2 and reportlab to requirements.txt
- Refactor email_sender.py:
  - Enforce 1-inch margins on all sides
  - Isolate line numbering to transcript section only
  - Add generate_pdf_documents() to build:
    - TRANSCRIPT.pdf (cover + transcript)
    - SUMMARY.pdf (cover + summary)
    - COMBINED.pdf (transcript cover + summary + TRANSCRIPT header + transcript)
  - Add page numbers (bottom-right) to all PDFs via reportlab
- Update tasks.py:
  - Use generate_pdf_documents() after creating DOCX files
  - Attach source JSON, MD files, and compiled PDFs in success email
- Add test_docx_generation.py for transcript/summary/combined DOCX testing
2026-06-15 02:19:17 +00:00
admin b0a23b32e1 Fix page numbering: correct field insertion for PAGE and NUMPAGES
Mirror and run GitLab CI / build (push) Has been cancelled
Ruff / ruff (push) Has been cancelled
2026-06-14 23:08:51 +00:00
admin 2e2bc3fb29 Fix page numbering: use correct python-docx field insertion for PAGE and NUMPAGES
Mirror and run GitLab CI / build (push) Has been cancelled
Ruff / ruff (push) Has been cancelled
2026-06-14 23:03:12 +00:00
admin 2f9299389b Fix line numbering: only transcript pages; ensure page numbering fields are set correctly
Mirror and run GitLab CI / build (push) Has been cancelled
Ruff / ruff (push) Has been cancelled
2026-06-14 22:25:26 +00:00