Two cells. Upload audio. Get a timestamped TXT automatically.
WhisperSprint transcribes English audio/video with Whisper large-v3-turbo on a
Google Colab TPU, using JAX/XLA. Upload a recording and receive a plain .txt
file containing numbered segments and SRT-style timestamps. No output ZIP, no
Drive mount, no file-path fields, no model selector and no extra download cell.
繁體中文 · Output format · Validation · Troubleshooting
- Open the badge and select Runtime → Change runtime type → TPU v5e-1. Run cell 1 once to prepare the isolated environment and model worker.
- Run cell 2, choose one or more English audio/video files in the upload widget, and transcription starts automatically. Each completed recording requests its own timestamped TXT download. Nothing needs extracting.
For the next recording, rerun only cell 2. Model weights and compiled functions remain loaded in the same worker. Cancelling the upload does nothing; it never silently reuses the previous recording.
The notebook contains exactly two code cells and is self-contained. Uploading
WhisperSprint.ipynb directly into Colab works even before the GitHub repository
is published. Its generated source payload matches the readable code in src/.
The payload is a packaging detail, not a ZIP of transcription results.
The browser may ask permission to save files or allow several downloads. The code requests downloads automatically; it cannot bypass browser policy or confirm that files reached your computer. On a browser download error, the completed TXT stays in the Colab Files panel and its location is shown. No diagnostic ZIP is downloaded.
For lecture.mp3, the download is named lecture_transcript.txt:
1
00:00:00,000 --> 00:00:03,540
Welcome to this English lesson.
2
00:00:08,400 --> 00:00:13,060
We will practice 12 phrases today.
This is a UTF-8 text file, not a compressed file and not a separate .srt
download. Every cue has an index, a start/end time to the millisecond, and the
recognized text. Repeated phrases, punctuation and numbers are preserved. These
are segment timestamps, not word-level forced alignment or speaker labels.
One uploaded file produces one TXT. Several uploaded files produce several TXT
files, never a combined archive. Colliding names get _2, _3, etc. Local
transcript.json, progress.jsonl, timing and logs remain available for recovery
and debugging, but are not automatically downloaded. See the exact output
contract.
| Setting | Value |
|---|---|
| Checkpoint | openai/whisper-large-v3-turbo |
| Revision | 41f01f3fe87f28c78e2fbf8b568835947dd65ed9 |
| Language and task | English (en), transcribe |
| Arithmetic | BF16 weights/activations; FP32 normalization and softmax statistics |
| Decoding | Greedy; fixed-capacity K/V cache; device-side token loop |
| Long audio | Timestamp-driven sequential seek; unfinished tails re-decoded |
| Download | SRT-style timestamped .txt only |
| Runtime target | Linux, Python 3.11–3.13, one v5/v6 TPU device |
The checkpoint is multilingual; the application fixes English transcription. It does not translate other languages into English. No OpenAI API key or external ASR API is used. The inference environment does not install PyTorch, Transformers or Flax. Model and runtime versions remain pinned rather than silently changing.
The default is TPU v5e-1, the device covered by supplied runtime evidence. The Colab migration notice and FAQ describe the service; hardware and quota are not guaranteed by this notebook. A single v6 TPU can attempt the same mandatory checks, but it is not a separately verified configuration.
A user-supplied WhisperSprint v0.1.0 run passed TPU/model acceptance and processed 92.6563125 seconds of audio into 15 segments. Its eight Python source hashes match the supplied v0.1.0 repo. The sanitized evidence contains no recording, transcript or original filename. This is now evidence for the persistent-worker/load path, not only the older reference notebook.
v0.2.0 changes the upload interface and text export. The inference core, weight loader and resident engine remain byte-identical to that successful v0.1.0 release. Local tests cover the revised workflow; the packager has not executed this new revision on a physical TPU or in a live Colab browser. Every new worker still performs real on-device checks before processing audio. A smoke pass is not WER, CER, perfect recognition, perfect timing or a universal speed claim.
One isolated worker owns the TPU for initialization and all jobs. Model assets are downloaded concurrently; setup can overlap the upload. Matching environments are reused, BF16 weights are packed on the CPU, and model weights, English control tensors and compiled functions stay resident between recordings. Inputs remain fixed-shape, with no per-token Python round-trip. A bounded lookahead prepares the next independent file while the TPU processes the current one.
This edition removes result compression and unused SRT/VTT exports. It still keeps local atomic TXT/JSON writes and journaling. No audio speed-up, reduced token budget, silent CPU fallback, automatic repetition deletion, quota workaround or untested attention kernel is added. These are design choices, not a newly measured TPU speedup. Timing boundaries and performance notes.
Audio is uploaded to your Google-hosted Colab runtime, not to an external ASR API. This is cloud processing, not offline execution. No custom telemetry, API credential collection or source-media upload elsewhere is added. Inspect source and dependency/model publishers before running downloaded code.
Only completed outputs are offered for automatic download. Errors show the stage,
exception and log location; they do not produce a success-looking archive.
Incomplete work is marked transcript.partial.*. Within the same surviving VM,
rerunning cell 2 with the same audio can reuse matching committed progress. After
an active-job interruption, rerun cell 1 before uploading again. A code/model change
invalidates old progress. Colab VM deletion loses /content; this upload-only
edition intentionally has no Drive controls. Save the downloaded TXT.
Logs and diagnostic JSON can contain filenames and model-produced text. Review and redact them before sharing. The repo includes no user audio, transcripts, private logs, credentials or model weights. See SECURITY.md.
python -m pip install -r requirements-cpu.txt -r requirements-dev.txt
python -m pip install torch==2.10.0 --index-url https://download.pytorch.org/whl/cpu
python tools/build_notebook.py
python -m pytest -q
python tools/check_release.pyTorch is test-only, as an independent numerical reference. Edit readable sources, then regenerate the notebook; never patch only its embedded payload.
To upgrade an existing repo, replace all supplied project files, not just the notebook. PUBLISH.md covers existing repositories, first publication and the Colab badge. The source distribution is a ZIP for convenient repository transfer; transcription downloads are TXT files, not ZIPs.
MIT licensed. Third-party notices. An independent project, not affiliated with or endorsed by Google, OpenAI or Hugging Face.