saidby
Offline-first diarized transcription: a command-line tool and Python library that turns any recording into a transcript with speakers, timestamps, glossary-aware spelling and one audio track per speaker.
Status: pre-alpha. Version 0.1.0 runs the core pipeline: transcription with faster-whisper, diarization with Nemotron-3, word-to-speaker alignment and one aligned audio track per speaker. People identification, glossary correction and review arrive in later 0.x releases.
Install
uv tool install saidby
For machines without an NVIDIA GPU, avoid downloading the CUDA build of PyTorch:
uv tool install saidby --index https://download.pytorch.org/whl/cpu --index-strategy unsafe-best-match
Requirements: ffmpeg on the PATH and, for GPU use, an NVIDIA driver 580 or newer.
Quick start
saidby models pull --all # one-time download, the only step that uses the network
saidby process call.m4a --out out/ --language es
Each recording gets its own folder under out/:
| File | Content |
|---|---|
manifest.json |
Engines, models and versions per stage, speakers, timings |
transcript.txt |
[HH:MM:SS] Speaker: text |
transcript.vtt |
WebVTT with <v Speaker> voice tags |
transcript.words.json |
Word-level transcript with timestamps and speaker labels |
diarization.rttm |
Standard "who spoke when" |
speakers/<id>.flac |
One track per speaker, same length as the original, silent elsewhere |
logs/run.log, logs/telemetry.jsonl |
Local log and closed-field telemetry |
A failed run keeps .work/ so the next run resumes from the last finished stage;
--keep-intermediates keeps it on success too. See docs/cli.md.
Models
Models are never bundled and are only downloaded by an explicit command:
saidby models list
saidby models pull --all
Processing always runs offline (HF_HUB_OFFLINE=1). A Hugging Face token (HF_TOKEN)
is needed only for gated models such as pyannote/speaker-diarization-community-1;
if the conditions have not been accepted, the error shows the URL where to accept them.
Privacy
- No telemetry leaves the machine. Logs and telemetry are written locally and never contain transcript text, names, glossary terms or voiceprints.
- A test suite blocks any non-loopback network access during processing.
License
Apache-2.0. See LICENSE, NOTICE and MODEL_LICENSES.md. Contributions are accepted under the Developer Certificate of Origin.
Metadata
Release files for saidby 0.1.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 | |
|---|---|---|---|
| saidby-0.1.0.tar.gz | 35.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| saidby-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 89.2 kB
Release files / saidby-0.1.0.tar.gz
| Download URL | saidby-0.1.0.tar.gz |
|---|---|
| Size | 35.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
35b5f0ffc2fa064418073c2f5f8e1d399cde65b242c4f9b8fee01182ed5b26b0
|
|
BLAKE2b-256 checksum How to use checksums |
e4a7848e0e0cbc3dc05dfa5bd5b160bdd9be818b8c28d0f18f2f3ab3291104ce
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / saidby-0.1.0-py3-none-any.whl
| Download URL | saidby-0.1.0-py3-none-any.whl |
|---|---|
| Size | 53.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3c87fe6fdc85d03fae93b0009adc1904966ad9ad72217d5f516d6b7d6ff19cd8
|
|
BLAKE2b-256 checksum How to use checksums |
37edcdf221973c83579d04709b6d81862a8d7ed870b995bafdddb1d355678d0f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|