lecturize
I record my lectures and I want them back as notes I can read, not as a two hour
audio file. lecturize runs on my machine, transcribes with
faster-whisper, picks up where it
left off if the run is interrupted, and can translate the result with local
models. Nothing leaves the computer except the model downloads.
pipx install lecturize
lecturize run lecture.mp4 --to it
That writes lecture.md, lecture.srt, lecture.it.md and lecture.it.srt
next to the recording.
What it does
- transcribes audio and video files (anything ffmpeg reads) with Whisper models, on CPU or on an NVIDIA GPU;
- skips silence with voice activity detection, which is what stops Whisper from inventing text during pauses;
- writes markdown with a chapter every few minutes, plain text, SRT subtitles and Word documents, all from the same timeline;
- resumes an interrupted run. Utterances are saved as they are produced; the
next
lecturize runon the same file starts from the last one and ends with the same output a clean run would give.lecturize jobslists what is pending; - translates into about fifty languages with the OPUS-MT models packaged by the Argos Translate project, run through CTranslate2. Pairs that have no direct model go through English. Translation into English uses Whisper itself, in one pass.
Install
You need Python 3.10 or newer. pipx keeps it out of your other environments:
pipx install lecturize
On an NVIDIA GPU add the CUDA libraries, and the runs get several times faster:
pipx install "lecturize[cuda]"
Models are downloaded on first use into the user cache (lecturize paths shows
where): small is 460 MB, large-v3 about 3 GB, a translation package 90 MB.
ffmpeg is not required for the common formats, since decoding goes through PyAV,
but having it installed does not hurt.
Use
lecturize run talk.mp3 # small model, language detected, md + srt
lecturize run talk.mp3 -m large-v3 -l it # a bigger model, Italian spoken
lecturize run talk.mp3 --to en # English notes, translated by Whisper
lecturize run talk.mp3 --to it -f md,docx # Italian notes as markdown and Word
lecturize run *.mp4 -o notes/ # many files, outputs in one folder
lecturize run talk.mp3 --fresh # ignore the checkpoint, start over
lecturize jobs # interrupted runs waiting to resume
lecturize languages # translation targets available
Options: -m/--model (tiny, base, small, medium, large-v2, large-v3,
large-v3-turbo, distil-large-v3, or a folder with a CTranslate2 model),
-l/--language, --to, -f/--format, -o/--out, --device auto|cpu|cuda,
--compute-type, --no-vad, --fresh.
On my machine (a laptop CPU and an RTX 4070 Ti SUPER) small runs at about
three times real time on the CPU in int8 and ten times on the GPU in float16;
large-v3 on the GPU stays above real time. A two hour lecture translated into
Italian adds about a minute.
The library is usable from Python as well:
from pathlib import Path
from lecturize import device
from lecturize.engine import Engine
from lecturize.pipeline import Job, run
dev = device.pick("auto")
outputs = run(Job(Path("talk.mp3"), model="small", target="it"), Engine("small", dev), dev)
How it is organised
src/lecturize/
cli.py the commands (typer)
pipeline.py one recording in, files out; resume logic
engine.py faster-whisper, streaming utterances with absolute timestamps
checkpoint.py SQLite store of utterances per (file fingerprint, settings)
translate.py Argos model packages through ctranslate2 + sentencepiece, pivot via English
text.py sentences, paragraphs, chapters
writers.py txt, md, srt, docx
device.py CPU or CUDA, and the DLL paths the [cuda] extra needs on Windows
tests/ unit tests, a resume test with a scripted engine, two slow tests with the real one
pytest runs the fast tests; pytest -m slow downloads the tiny model and runs
the real engine on the 37 second synthetic lecture in tests/data.
Licenses
lecturize is MIT. It downloads and runs third party models: Whisper weights converted by SYSTRAN (MIT), and translation packages from Argos Translate, built on OPUS-MT models, which carry a CC-BY 4.0 attribution to their authors. See THIRD_PARTY.md.
MIT © 2026 David Cohen
Release files for lecturize 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| lecturize-1.0.0.tar.gz | 16.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| lecturize-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 36.0 kB
Release files / lecturize-1.0.0.tar.gz
| Download URL | lecturize-1.0.0.tar.gz |
|---|---|
| Size | 16.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1d4a9bea21133eba282e0a2e62e6fab81e8307a0817b02e4dbbfee4b7ee0a324
|
|
BLAKE2b-256 checksum How to use checksums |
63cc982828d06eac4340abb6f543aed0b7130516f867c99d820f91fdff1a2b17
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 20, 2026.
Transparency logRelease files / lecturize-1.0.0-py3-none-any.whl
| Download URL | lecturize-1.0.0-py3-none-any.whl |
|---|---|
| Size | 19.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a1e6e767489181b8c4eab81a2f7944cde670c3e11bedb764b0d6f93ce6625f28
|
|
BLAKE2b-256 checksum How to use checksums |
a4778929b04052cf3d4f392b33db55760f6775daa678c1a8505d88c371c85c7e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 20, 2026.
Transparency log