Metadata-Version: 2.4
Name: speechscribe
Version: 0.1.0
Summary: A small faster-whisper command-line transcriber for local audio files.
Author: speechscribe contributors
License-Expression: MIT
Keywords: whisper,faster-whisper,transcription,speech-to-text,cli
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: End Users/Desktop
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Multimedia :: Sound/Audio :: Speech
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: faster-whisper>=1.1.0
Provides-Extra: dev
Requires-Dist: build>=1.2.0; extra == "dev"
Requires-Dist: twine>=5.0.0; extra == "dev"
Requires-Dist: pytest>=8.0.0; extra == "dev"
Dynamic: license-file

# speechscribe

A small command-line wrapper around [`faster-whisper`](https://pypi.org/project/faster-whisper/) for local audio transcription.

It packages your original script as a pip-installable command:

```bash
speechscribe audio.wav
```

## Package name

This project is configured to publish as:

```toml
name = "speechscribe"
```

The installed command and import package are also `speechscribe`.

## Install locally while testing

From this directory:

```bash
python3 -m pip install -e .
speechscribe --help
```

## Usage

Transcribe with the default model (`medium`) and default compute type (`int8`):

```bash
speechscribe audio.wav
```

Use `--input` instead of the positional argument:

```bash
speechscribe --input audio.wav
```

Choose a model:

```bash
speechscribe audio.wav --model small
speechscribe audio.wav --model large-v3
```

Choose a compute type:

```bash
speechscribe audio.wav --compute-type float16
```

Write to a custom output file:

```bash
speechscribe audio.wav --output transcript.txt
```

Print timestamped segments as they are processed:

```bash
speechscribe audio.wav --verbose
```

Copy the finished transcript to the macOS clipboard with `pbcopy`:

```bash
speechscribe audio.wav --copy
```

Skip the delete-original prompt:

```bash
speechscribe audio.wav --nodelete
```

Use the DokuWiki output mode from the original script:

```bash
speechscribe audio.wav --format dokuwiki
```

By default, output is written beside the audio file as:

```text
YYYY_MM_DD_inputfilename.txt
```

## Publish to PyPI

This repository includes a helper script named `pip-publish`.

Recommended environment-variable token setup:

```bash
export TWINE_USERNAME=__token__
export TWINE_PASSWORD=pypi-your-token-here
```

Then run:

```bash
chmod +x pip-publish
./pip-publish
```

Optional TestPyPI run:

```bash
./pip-publish --testpypi
```

Dry run that builds and checks distributions without uploading:

```bash
./pip-publish --dry-run
```

The script will:

1. install or upgrade `build` and `twine`, unless `--no-install-deps` is passed;
2. clean previous `dist/`, `build/`, and `*.egg-info` output, unless `--skip-clean` is passed;
3. build a source distribution and wheel;
4. run `twine check dist/*`;
5. upload with `twine upload dist/*`.

See `docs/PUBLISHING.md` for more options.

## Notes

- `faster-whisper` requires Python 3.9 or newer.
- The first run may download the selected Whisper model.
- The `--copy` option is intentionally macOS-focused because it uses `pbcopy`, matching the original script.

## License

MIT
