Metadata-Version: 2.4
Name: saidby
Version: 0.0.1
Summary: Offline-first diarized transcription: CLI and Python library
Keywords: speech-to-text,diarization,whisper,offline,spanish
Author: devEstivenValencia
Author-email: devEstivenValencia <dev@estivenvalencia.co>
License-Expression: Apache-2.0
License-File: LICENSE
License-File: NOTICE
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Environment :: Console
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Multimedia :: Sound/Audio :: Speech
Classifier: Typing :: Typed
Requires-Dist: faster-whisper>=1.2.1,<2
Requires-Dist: ctranslate2>=4.8,<5
Requires-Dist: torch>=2.8
Requires-Dist: torchaudio>=2.8
Requires-Dist: transformers>=5.19,<6
Requires-Dist: huggingface-hub>=1.0
Requires-Dist: numpy>=2.0
Requires-Dist: scipy>=1.13
Requires-Dist: soundfile>=0.13
Requires-Dist: pydantic>=2.7,<3
Requires-Dist: ruamel-yaml>=0.18
Requires-Dist: typer>=0.12
Requires-Dist: nvidia-cublas-cu12>=12.9 ; platform_machine == 'x86_64' and sys_platform == 'linux'
Requires-Dist: jiwer>=4.0 ; extra == 'eval'
Requires-Dist: pyannote-metrics>=4.1 ; extra == 'eval'
Requires-Dist: pyannote-core>=6.0 ; extra == 'eval'
Requires-Dist: pyannote-audio>=4.0.7,<4.1 ; extra == 'pyannote'
Requires-Python: >=3.12
Project-URL: Homepage, https://github.com/khvostpola/saidby
Project-URL: Changelog, https://github.com/khvostpola/saidby/blob/main/CHANGELOG.md
Project-URL: Issues, https://github.com/khvostpola/saidby/issues
Provides-Extra: eval
Provides-Extra: pyannote
Description-Content-Type: text/markdown

# 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.0.1 ships the CLI skeleton (`--version`, `doctor`,
`models`). The processing pipeline arrives in 0.1.0.

## Install

```bash
uv tool install saidby
```

For machines without an NVIDIA GPU, avoid downloading the CUDA build of PyTorch:

```bash
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.

## Models

Models are never bundled and are only downloaded by an explicit command:

```bash
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](LICENSE), [NOTICE](NOTICE) and
[MODEL_LICENSES.md](MODEL_LICENSES.md). Contributions are accepted under the
[Developer Certificate of Origin](CONTRIBUTING.md).
