docs: add lineage README mapping v1→v6 evolution
Overview table, engine evolution notes, and per-version caveats. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
33
README.md
Normal file
33
README.md
Normal file
@@ -0,0 +1,33 @@
|
||||
# sing_detect
|
||||
|
||||
Consolidated history of my singing/music-segment detection tools, gathered from
|
||||
across several projects and ranked by **technical & functional evolution** (not
|
||||
by file timestamp). The goal of every version is the same:
|
||||
|
||||
> Take a long live-stream recording, find the segments where someone is singing,
|
||||
> and export markers (CSV / EDL / JSON) for fast editing in DaVinci Resolve.
|
||||
|
||||
Each version lives in its own folder and was committed as a separate step so the
|
||||
git history reads as the evolution story.
|
||||
|
||||
| Version | Folder | Engine | Interface | Leap |
|
||||
|---------|--------|--------|-----------|------|
|
||||
| v1 | `v1_svd_prototype/` | HuggingFace `matthijs/svd` (torch.jit) | tkinter file picker | First prototype — single file, proves the idea |
|
||||
| v2 | `v2_transformers_gui/` | `transformers` pipeline + pyannote | CustomTkinter GUI | Overlapping-chunk inference, CSV timecode export |
|
||||
| v3 | `v3_inaseg_cli/` | inaSpeechSegmenter | CLI (argparse) | Robust pipeline: gap-merge, min-duration, EDL+CSV |
|
||||
| v4 | `v4_inaseg_batch/` | inaSpeechSegmenter | CLI batch | Process whole folders, `--recursive`, `--auto-cut` |
|
||||
| v5 | `v5_stream_tools_app/` | inaSpeechSegmenter | CustomTkinter multi-tab app | Refactored into modular `core/` engine + UI tab, JSON + ffmpeg-script export |
|
||||
| v6 | `v6_stream_studio_tauri/` | 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 per version
|
||||
- **v4** includes 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* API client)
|
||||
was **not** included — it identifies/names a track rather than detecting singing segments.
|
||||
Reference in New Issue
Block a user