69 lines
1.5 KiB
Markdown
69 lines
1.5 KiB
Markdown
# PolyScribe
|
|
|
|
Local-first transcription and plugins.
|
|
|
|
## Features
|
|
|
|
- **Local-first**: Works offline with downloaded models
|
|
- **Multiple backends**: CPU, CUDA, ROCm/HIP, and Vulkan support
|
|
- **Plugin system**: Extensible via JSON-RPC plugins
|
|
- **Model management**: Automatic download and verification of Whisper models
|
|
- **Manifest caching**: Local cache for Hugging Face model manifests to reduce network requests
|
|
|
|
## Model Management
|
|
|
|
PolyScribe automatically manages Whisper models from Hugging Face:
|
|
|
|
```bash
|
|
# Download models interactively
|
|
polyscribe models download
|
|
|
|
# Update existing models
|
|
polyscribe models update
|
|
|
|
# Clear manifest cache (force fresh fetch)
|
|
polyscribe models clear-cache
|
|
```
|
|
|
|
### Manifest Caching
|
|
|
|
The Hugging Face model manifest is cached locally to avoid repeated network requests:
|
|
|
|
- **Default TTL**: 24 hours
|
|
- **Cache location**: `$XDG_CACHE_HOME/polyscribe/manifest/` (or platform equivalent)
|
|
- **Environment variables**:
|
|
- `POLYSCRIBE_NO_CACHE_MANIFEST=1`: Disable caching
|
|
- `POLYSCRIBE_MANIFEST_TTL_SECONDS=3600`: Set custom TTL (in seconds)
|
|
|
|
## Installation
|
|
|
|
```bash
|
|
cargo install --path .
|
|
```
|
|
|
|
## Usage
|
|
|
|
```bash
|
|
# Transcribe audio/video
|
|
polyscribe transcribe input.mp4
|
|
|
|
# Merge multiple transcripts
|
|
polyscribe transcribe --merge input1.json input2.json
|
|
|
|
# Use specific GPU backend
|
|
polyscribe transcribe --gpu-backend cuda input.mp4
|
|
```
|
|
|
|
## Development
|
|
|
|
```bash
|
|
# Build
|
|
cargo build
|
|
|
|
# Run tests
|
|
cargo test
|
|
|
|
# Run with verbose logging
|
|
cargo run -- --verbose transcribe input.mp4
|
|
```
|