docs: lineage README mapping v1→v6 via tags
This commit is contained in:
41
README.md
Normal file
41
README.md
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
# sing_detect
|
||||||
|
|
||||||
|
Singing/music-segment detection for long live-stream recordings: find the
|
||||||
|
segments where someone is singing and export markers (CSV / EDL / JSON) for fast
|
||||||
|
editing in DaVinci Resolve.
|
||||||
|
|
||||||
|
**This branch is the latest version (v6).** A plain `git pull` gives you only the
|
||||||
|
current code — no old versions clutter the working tree. The earlier iterations
|
||||||
|
live in the git history and are tagged, so you can inspect or check out any of
|
||||||
|
them:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git checkout v3 # or v1 … v6
|
||||||
|
git checkout - # back to latest
|
||||||
|
```
|
||||||
|
|
||||||
|
## Evolution
|
||||||
|
|
||||||
|
The history is ordered by **technical & functional evolution** (not file
|
||||||
|
timestamp). Each tag is a complete, standalone version at the repository root.
|
||||||
|
|
||||||
|
| Tag | Engine | Interface | Leap |
|
||||||
|
|-----|--------|-----------|------|
|
||||||
|
| `v1` | HuggingFace `matthijs/svd` (torch.jit) | tkinter file picker | First prototype — single file, proves the idea |
|
||||||
|
| `v2` | `transformers` pipeline + pyannote | CustomTkinter GUI | Overlapping-chunk inference, CSV timecode export |
|
||||||
|
| `v3` | inaSpeechSegmenter | CLI (argparse) | Robust pipeline: gap-merge, min-duration, EDL+CSV |
|
||||||
|
| `v4` | inaSpeechSegmenter | CLI batch | Process whole folders, `--recursive`, `--auto-cut` |
|
||||||
|
| `v5` | inaSpeechSegmenter | CustomTkinter multi-tab app | Modular `core/` engine + UI tab, JSON + ffmpeg-script export |
|
||||||
|
| `v6` | inaSpeechSegmenter (Python sidecar) | Tauri (Rust + TS) | Cross-platform rewrite; Python reduced to a thin ML sidecar emitting line-JSON |
|
||||||
|
|
||||||
|
Engine evolution: `svd model` → `transformers pipeline` →
|
||||||
|
**`inaSpeechSegmenter`** (settled from v3 on, which classifies singing voice as
|
||||||
|
"music").
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
- **v4** carries a copy of `detect_singing.py` because `batch_detect.py` imports it at runtime.
|
||||||
|
- **v5** keeps the original package layout (`core/`, `ui/`, `utils/`) so the relative imports resolve; it was extracted from the larger `stream_tools` app.
|
||||||
|
- **v6** is the detection slice only (`sidecar_detect.py`, `detect.rs`, `detect.ts`), extracted from the `stream-studio` Tauri app — `detect.ts` still references the app's `../dom`, `../ui`, `../api` modules.
|
||||||
|
|
||||||
|
Excluded: `song_detection_cn.py` (an ACRCloud-style fingerprint *song-identification*
|
||||||
|
client) — it names a track rather than detecting singing segments.
|
||||||
Reference in New Issue
Block a user