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

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%