You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+51-34Lines changed: 51 additions & 34 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,45 +6,64 @@ A provider-agnostic speech-to-text pipeline that plugs into **any OpenAI-compati
6
6
7
7
## Features
8
8
9
-
-**Any ASR provider** — Point at any service that implements `POST /v1/audio/transcriptions` (or OpenRouter STT); swap models with flags, not code changes.
10
-
-**Resilient ASR discovery** — Auto-detects local workers and hosted APIs, retries failed requests, and starts a bundled Qwen fallback when nothing else is reachable.
11
-
-**Audio preprocessing** — ffmpeg normalization to mono 16 kHz WAV with optional enhancement before transcription.
12
-
-**Voice activity detection** — Silero, webrtcvad, or RMS fallback to skip silence and focus compute on speech.
13
-
-**Smart chunking & stitching** — Fixed or pause-aligned chunks for long files, with global word and segment timestamps stitched back together.
14
-
-**Speaker diarization** — pyannote on the full audio, with word-level speaker assignment (IoU + segment fallback).
15
-
-**LLM transcript repair** — Optional two-pass repair via any OpenAI-compatible chat endpoint, with validation to preserve timing and mixed-script Hinglish.
16
-
-**Rich exports** — JSON, SRT, and VTT with segments, words, speakers, and pipeline metadata.
17
-
-**Lightweight orchestrator** — No ASR model weights in the core package; inference stays in the microservice you choose.
18
-
-**CLI and Python API** — `resilient-stt` from the terminal, or `pipeline.run(JobConfig)` for programmatic use.
19
-
20
-
> **Experimental:** This project is under active development and is **not production-ready**. Expect breaking changes, incomplete features, and behavior that may shift between releases. Use for evaluation and prototyping only.
9
+
-**Universal ASR** — Connect to any OpenAI-compatible endpoint, switching models easily by flag.
10
+
-**Automatic Discovery** — Finds local or remote ASR, retries if needed, starts Qwen fallback automatically.
-**Python imports:**`resilient_stt` (underscore), e.g. `from resilient_stt.orchestrator.pipeline import run`.
47
-
-**From source:**`uv sync` then `uv run resilient-stt …` (or activate `.venv` and run `resilient-stt`).
60
+
No ASR setup required — the CLI auto-detects local workers and hosted APIs, or starts a bundled Qwen worker. Quick smoke test without pyannote or repair: add `--skip-diarization --repair false`. For OpenAI or OpenRouter, set `OPENAI_API_KEY` or `OPENROUTER_API_KEY` in `.env` and pass `--no-asr-fallback`. Full flags: [docs/cli.md](docs/cli.md). Repository layout: [docs/design.md](docs/design.md#4-repository-layout).
61
+
62
+
63
+
> **Note**
64
+
>
65
+
> 🚧 Active development – not production-ready.
66
+
> Expect changes, incomplete features, and ongoing improvements.
48
67
49
68
## Architecture
50
69
@@ -168,8 +187,6 @@ timestamps; the default aligner is a no-op pass-through.
168
187
169
188
## Install (PyPI)
170
189
171
-
Prerequisites: **Python 3.11 or 3.12**, **ffmpeg** on PATH.
172
-
173
190
```bash
174
191
# Minimal orchestrator (webrtcvad VAD; ASR via API or bundled qwen worker)
0 commit comments