Use URL-based logos, env-based WebGUI title, apstrom.ca link, update README
This commit is contained in:
@@ -1,28 +1,42 @@
|
||||
# ScrAIbe – LocalAI-Backed Transcription and Summarization
|
||||
|
||||
ScrAIbe is a lightweight transcription and summarization client that:
|
||||
ScrAIbe is a transcription and summarization service that:
|
||||
|
||||
- Sends audio to a LocalAI server running vibevoice.cpp for transcription and speaker diarization.
|
||||
- Optionally uses a second LLM to generate a detailed, structured summary of the conversation.
|
||||
- Optionally uses a second LLM to generate a detailed, structured summary.
|
||||
- Provides:
|
||||
- A web GUI for uploading audio and receiving transcripts via email.
|
||||
- A CLI and Python API for direct integration.
|
||||
|
||||
No local speech models or heavy dependencies are required. ScrAIbe is designed to be run as a thin client in front of your own AI services.
|
||||
No local speech models or heavy dependencies are required. ScrAIbe is designed as a thin client in front of your own AI services.
|
||||
|
||||
For more information: https://apstrom.ca
|
||||
|
||||
## Features
|
||||
|
||||
- Transcription with speaker diarization via LocalAI:
|
||||
- Uses the `/v1/audio/diarization` endpoint.
|
||||
- Uses the /v1/audio/diarization endpoint.
|
||||
- Compatible with vibevoice.cpp and other diarization-capable backends.
|
||||
- Optional AI-powered summarization:
|
||||
- Task: `transcript_and_summarize`
|
||||
- Chunks long transcripts, summarizes each chunk, then generates a final comprehensive summary.
|
||||
- Summary highlights:
|
||||
- Task: transcript_and_summarize
|
||||
- Highlights:
|
||||
- Main topics and discussion points
|
||||
- Key decisions and outcomes
|
||||
- Action items and responsibilities
|
||||
- Open issues and risks
|
||||
- Async web GUI:
|
||||
- Upload audio via browser.
|
||||
- Jobs are queued and processed in the background (Celery + Redis).
|
||||
- Emails:
|
||||
- Immediate confirmation with queue position.
|
||||
- Final transcript (TXT + JSON) when ready.
|
||||
- Summary as MD file (if requested).
|
||||
- Error notification if processing fails.
|
||||
- Customizable branding:
|
||||
- Web GUI title, logo, and email logo via environment variables.
|
||||
- CLI and Python API:
|
||||
- Simple command-line interface.
|
||||
- Drop-in `Scraibe` class for integration into other tools.
|
||||
- Drop-in Scraibe class for integration into other tools.
|
||||
- Docker-ready:
|
||||
- Lightweight container, configured via environment variables.
|
||||
|
||||
@@ -38,6 +52,31 @@ No local speech models or heavy dependencies are required. ScrAIbe is designed t
|
||||
- Transcript assembly
|
||||
- Chunked summarization
|
||||
- Output formatting (e.g., .md with transcript + summary)
|
||||
- Runs:
|
||||
- Web GUI (Gradio)
|
||||
- Celery worker (async processing)
|
||||
- Redis (in-container by default)
|
||||
|
||||
## Quick Start (Web GUI in Docker)
|
||||
|
||||
Run the container with your LocalAI and summarizer endpoints:
|
||||
|
||||
- docker run -d \
|
||||
-p 7860:7860 \
|
||||
-e LOCALAI_API_URL=http://localai:8080 \
|
||||
-e SUMMARIZER_API_URL=http://llm:8080 \
|
||||
-e EMAIL_SMTP_HOST=smtp.your-domain.com \
|
||||
-e EMAIL_SMTP_PORT=587 \
|
||||
-e EMAIL_SMTP_USER=transcribe@your-domain.com \
|
||||
-e EMAIL_SMTP_PASSWORD=your_password \
|
||||
-e EMAIL_FROM_ADDRESS="ScrAIbe <transcribe@your-domain.com>" \
|
||||
-e EMAIL_CONTACT_ADDRESS=support@your-domain.com \
|
||||
-e WEBUI_TITLE="Your Transcription Service" \
|
||||
-e WEBUI_LOGO_URL="https://your-domain.com/logo.png" \
|
||||
-e EMAIL_LOGO_URL="https://your-domain.com/logo.png" \
|
||||
scraibe:latest
|
||||
|
||||
Then open: http://<host>:7860
|
||||
|
||||
## Quick Start (CLI)
|
||||
|
||||
@@ -101,7 +140,7 @@ Other options (e.g., --language, --num-speakers) are accepted and forwarded wher
|
||||
|
||||
ScrAIbe is designed to run in Docker as a client to your LocalAI and summarizer LLM.
|
||||
|
||||
### Basic run (transcribe)
|
||||
### Basic run (transcribe via CLI)
|
||||
|
||||
- docker run -it \
|
||||
-e LOCALAI_API_URL=http://localai:8080 \
|
||||
@@ -109,7 +148,7 @@ ScrAIbe is designed to run in Docker as a client to your LocalAI and summarizer
|
||||
scraibe:latest \
|
||||
-f /audio/meeting.wav -o /audio/output -of txt
|
||||
|
||||
### Basic run (transcribe + summarize)
|
||||
### Basic run (transcribe + summarize via CLI)
|
||||
|
||||
- docker run -it \
|
||||
-e LOCALAI_API_URL=http://localai:8080 \
|
||||
@@ -148,6 +187,46 @@ Summarization LLM:
|
||||
- Optional (default: llama-3.1-8b-instruct).
|
||||
- Model name used for summarization.
|
||||
|
||||
Web GUI and branding:
|
||||
|
||||
- WEBUI_TITLE:
|
||||
- Title shown in the web GUI (default: A.P.Strom Transcription).
|
||||
- WEBUI_LOGO_URL:
|
||||
- URL of the logo displayed in the web GUI header.
|
||||
- Example: https://your-domain.com/logo.png
|
||||
|
||||
Async processing (Celery + Redis):
|
||||
|
||||
- CELERY_BROKER_URL:
|
||||
- Redis broker URL (default: redis://localhost:6379/0).
|
||||
- CELERY_RESULT_BACKEND:
|
||||
- Redis backend URL (default: redis://localhost:6379/0).
|
||||
- SCRAIBE_UPLOAD_DIR:
|
||||
- Directory where uploaded audio is stored (default: /tmp/scraibe_uploads).
|
||||
|
||||
Email configuration:
|
||||
|
||||
- EMAIL_SMTP_HOST:
|
||||
- SMTP server host.
|
||||
- EMAIL_SMTP_PORT:
|
||||
- SMTP server port (e.g., 587).
|
||||
- EMAIL_SMTP_USER:
|
||||
- SMTP username.
|
||||
- EMAIL_SMTP_PASSWORD:
|
||||
- SMTP password.
|
||||
- EMAIL_SMTP_USE_TLS:
|
||||
- Use TLS (true/false; default: true).
|
||||
- EMAIL_FROM_ADDRESS:
|
||||
- Sender address (e.g., "ScrAIbe <transcribe@your-domain.com>").
|
||||
- EMAIL_CONTACT_ADDRESS:
|
||||
- Support contact address shown in email templates.
|
||||
- EMAIL_LOGO_URL:
|
||||
- URL of the logo used in emails (preferred).
|
||||
- EMAIL_LOGO_PATH:
|
||||
- Fallback local path for email logo (default: /app/src/misc/logo1.png).
|
||||
- EMAIL_CSS_PATH:
|
||||
- Path to the CSS used in emails (default: /app/src/misc/mail_style.css).
|
||||
|
||||
All of these can also be overridden from the CLI when needed (e.g., --localai-api-url, --summarizer-api-url).
|
||||
|
||||
## Dependencies
|
||||
@@ -158,6 +237,9 @@ Core runtime dependencies:
|
||||
- httpx
|
||||
- numpy
|
||||
- tqdm
|
||||
- gradio
|
||||
- celery[redis]
|
||||
- redis
|
||||
- ffmpeg (for audio preprocessing)
|
||||
|
||||
No local Whisper, PyTorch, or Pyannote models are required.
|
||||
|
||||
Reference in New Issue
Block a user