Skip to content

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

Ai-Transcriber

Transcribe audio into a raw transcript, a speaker-diarized transcript, and an LLM summary. The transcriber service orchestrates Whisper, an internal diarizer, and an LLM. It is the only service exposed to the outside.

Run

cp .env.example .env
docker compose up --build

COMPOSE_PROFILES=cpu (default) or gpu in .env picks the worker/Whisper variant.

Transcriber API - http://localhost:8000 (interactive docs at /docs).

API

Submit, poll, cancel.

  • POST /v1/transcribe - form: file, and any of raw, diarized, summary (at least one), optional webhooks[]
  • GET /v1/jobs/{id} - status and result
  • POST /v1/jobs/{id}/cancel

Supported files

Up to 4 GB and 4 hours. The worker first converts every upload to FLAC, 16 kHz, mono. A strategy is picked by the file extension (transcriber/src/pipeline/convert.py). A file with no audio track is rejected with 400.

  • Audio: wav, mp3, m4a, flac, ogg, oga, opus, aac, wma, amr, aiff, aif, mka, caf
  • Video (the audio track is used): mp4, m4v, mov, mkv, webm, avi, wmv, flv, mpg, mpeg, ts, mts, 3gp

MCP

mcp-server exposes transcription to AI agents over Streamable HTTP at http://localhost:8002/mcp. One tool:

  • transcribe(path, raw, diarized, summary) - path is a file in the shared pool, absolute or relative to its root; returns the requested artifacts once the job finishes.

The pool is POOL_DIR from .env, mounted read-only at the same path. Mount the directory the agent's uploads land in there, so the paths it reports resolve inside the MCP container.

Config

  • config.yaml - runtime settings (models, limits, LLM provider, logging)
  • prompts.yaml - summary prompts
  • .env - ports, tokens, images, profile

Architecture

System Context

System Context

Containers - Diarizer

The API accepts an upload and returns. Worker consumes the job out of band. Redis carries the job and its result.

Containers - Diarizer

Components - Diarizer API

Components - Diarizer API

Components - Diarization Worker

Components - Diarization Worker

Flow - Diarize an audio file

Flow - Diarize an audio file

Containers - Transcriber

Containers - Transcriber

Components - Transcriber API

Components - Transcriber API

Components - Transcription Worker

Components - Transcription Worker

Flow - Transcribe an audio file

Flow - Transcribe an audio file

Flow - Cancel a job

Flow - Cancel a job

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages