Skip to main content

Local classroom audio transcription with projects, WER evaluation, and pluggable transcript formats

Project description

Transcribe Studio

CI

A local, browser-based tool for classroom audio transcription. Organize work by project, split audio into timed chunks, label speakers in free text, and evaluate human transcripts against LLM output (WER + semantic WER).

Built for researchers and annotators who need millisecond timestamps and exportable data — without Label Studio complexity.

Features

  • Projects — group recordings by class, session, or study
  • Waveform editor — divide audio into chunks (by duration or count), overlap speakers at the same timestamp
  • Chunk playback — play one chunk at a time with speed up/down (0.25×–2×, keys , / .)
  • Exports — TXT, Markdown, JSON, CSV, SRT, WebVTT
  • LLM evaluation — paste or upload hypothesis transcripts; strict + semantic WER
  • Pluggable formats — timestamp/speaker lines, JSON segments, plain text (TOML-driven)

Quick start

With uv (recommended)

git clone https://github.com/Mishkat-Quantum-Labs/transcribe-studio.git
cd transcribe-studio
uv venv
uv pip install -e ".[dev]"
uv run transcribe-studio

With pip

pip install transcribe-studio
transcribe-studio

Open http://127.0.0.1:8082

Options:

transcribe-studio start --port 8083
transcribe-studio --port 8083          # same as start
transcribe-studio stop                 # free the port if still running
transcribe-studio status
transcribe-studio start --force        # stop old instance, then start

Windows: command not found?

On some Windows setups (especially Microsoft Store Python), transcribe-studio is installed but not on your PATH. Use any of these instead:

python -m app
python -m app --port 8083

Or install with pipx (adds the command to PATH automatically):

pip install pipx
pipx install transcribe-studio
transcribe-studio

Usage

  1. Create a project from the dashboard
  2. Upload an MP3/WAV/M4A/OGG/FLAC recording
  3. Divide the wave into chunks, then transcribe each segment
  4. Use Evaluation to compare your transcript against an LLM upload
  5. Export when done

Data is stored under ~/.transcribe-studio/ (override with TRANSCRIBE_STUDIO_DATA).

Environment variables:

Variable Default Description
TRANSCRIBE_STUDIO_DATA ~/.transcribe-studio Data directory
TRANSCRIBE_STUDIO_HOST 127.0.0.1 Bind address
TRANSCRIBE_STUDIO_PORT 8082 Listen port

Supabase: open Settings in the sidebar to add your project URL and anon key.

Deploy on AWS (free tier)

cd infra
cp terraform.tfvars.example terraform.tfvars
terraform init && terraform apply

See infra/README.md. Nginx serves port 80 → app on 8082.

Development

uv pip install -e ".[dev]"
uv run pytest

Publishing

PyPI via uv (recommended)

uv build
uv publish   # uses UV_PUBLISH_TOKEN or prompts for PyPI credentials

PyPI via pip/twine

pip install build twine
python -m build
twine upload dist/*

GitHub release

git tag v0.2.0
git push origin v0.2.0
gh release create v0.2.0 dist/*

Configuration

Evaluation and transcript import settings ship inside the package:

  • app/config/evaluation.toml
  • app/config/transcript_formats.toml
  • app/config/languages/en.toml

License

MIT — see LICENSE.

Contributing

Issues and PRs welcome at github.com/Mishkat-Quantum-Labs/transcribe-studio.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

transcribe_studio-0.2.3.tar.gz (74.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

transcribe_studio-0.2.3-py3-none-any.whl (92.2 kB view details)

Uploaded Python 3

File details

Details for the file transcribe_studio-0.2.3.tar.gz.

File metadata

  • Download URL: transcribe_studio-0.2.3.tar.gz
  • Upload date:
  • Size: 74.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for transcribe_studio-0.2.3.tar.gz
Algorithm Hash digest
SHA256 c70745ee36ce47f9214d004feb35ad7961b8ca4614d62a2ef10b3c8bf94ecde7
MD5 11c3c1822d1768d4f1cd0542eec4f093
BLAKE2b-256 690c0c073d273c9048c11f34c7df5da2ed2a9f1c3ec14bd4dfcfed8088eeffd2

See more details on using hashes here.

File details

Details for the file transcribe_studio-0.2.3-py3-none-any.whl.

File metadata

  • Download URL: transcribe_studio-0.2.3-py3-none-any.whl
  • Upload date:
  • Size: 92.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for transcribe_studio-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 6798b981f27908223bc35aaf2b8a833a7f4d9c3ca21b07778669f1362efb49e9
MD5 7cd5dc8771f8ef73aa96fea7b3782891
BLAKE2b-256 8ac0f835a6017cbc75c044788eedc9dc1079f6c47c95461c9d8ba914367aa958

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page