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:

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 modeltransformers pipelineinaSpeechSegmenter (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.

Description
No description provided
Readme 328 KiB
Languages
Rust 34.4%
TypeScript 29.6%
CSS 21.4%
Python 8.4%
Batchfile 5.7%
Other 0.5%