Local classroom audio transcription with projects, WER evaluation, and pluggable transcript formats
Project description
Transcribe Studio
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
Usage
- Create a project from the dashboard
- Upload an MP3/WAV/M4A/OGG/FLAC recording
- Divide the wave into chunks, then transcribe each segment
- Use Evaluation to compare your transcript against an LLM upload
- Export when done
Data is stored under ~/.transcribe-studio/ (override with TRANSCRIBE_STUDIO_DATA).
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.tomlapp/config/transcript_formats.tomlapp/config/languages/en.toml
License
MIT — see LICENSE.
Contributing
Issues and PRs welcome at github.com/Mishkat-Quantum-Labs/transcribe-studio.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file transcribe_studio-0.2.0.tar.gz.
File metadata
- Download URL: transcribe_studio-0.2.0.tar.gz
- Upload date:
- Size: 67.0 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
385b066b98059ee1d21871a7704d6723b7e7c0ab18bb43f6f88c5ac4907c6714
|
|
| MD5 |
1143e0ef72ca27dc91d0e13dbb888391
|
|
| BLAKE2b-256 |
dcfea131ebe2d41c899fa561c95773aada5a6b28d6590fdf4e872ad507829922
|
File details
Details for the file transcribe_studio-0.2.0-py3-none-any.whl.
File metadata
- Download URL: transcribe_studio-0.2.0-py3-none-any.whl
- Upload date:
- Size: 84.3 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
68e6a61f911ba3ad644efe9ef0b4c9602875f0b0c235c91f668f14105f91fbaa
|
|
| MD5 |
a8ff922da1d5b617c54d3cbe763c5089
|
|
| BLAKE2b-256 |
5f575635a900ec2c0b2fdba8ab0cba6ef6ad0e58581f366f8d0d4154fd586226
|