Spaces:
Running on Zero
Running on Zero
Commit History
17 days ago
-
Decide one-vs-many speakers by how alike the voices are Running
The silhouette score always finds a split, so an 8-minute audiobook with one reader was reported as two speakers. Clusters whose average voices have cosine similarity above SAME_VOICE_SIMILARITY (0.65) are now merged: different people measured 0.24-0.39, one person split in two 0.92. Replaces MIN_SPEAKER_SEPARATION. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>4bb3ba0 -
Set aside outlier turns before counting speakers
Single-speaker recordings were reported as two: clustering isolated one odd-sounding turn (2-3 s) and scored that split highly. Clusters holding almost no speech are now removed and the count is taken again. Also logs how alike the chosen voices are, for calibration. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>64da021 -
Snap speaker changes to sentence boundaries and drop filler summary items
- Words one to three positions off a speaker change (timing error between Whisper word timestamps and turn edges) move to the sentence they belong to; a lone mid-sentence word inside another speaker's sentence is folded back in. Short complete replies ("Okay.") are kept. - Raise the single-speaker threshold to 0.25: test recordings scored 0.50-0.58 with several speakers and 0.15 with one. - Remove "None mentioned"-style items the small model writes instead of leaving a list empty; show a plain message when nothing is left. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>d72d28b -
Cluster speakers on reliable turns and fix LLM thread oversubscription
Speaker separation - sherpa-onnx's built-in clustering reported 16 speakers for a two-person interview: every one-word interjection became its own speaker. It is now used only to cut the recording into turns. - Each turn gets a voice fingerprint; only turns of 1.5 s or more decide the number of speakers (best silhouette score, as the original app did, but on neural embeddings). Short turns join the closest voice. - New variables: MAX_AUTO_SPEAKERS, MIN_SPEAKER_SEPARATION. Summary - llama.cpp used one prompt-reading thread per host core (192) inside a 16-CPU container; n_threads_batch now follows the container quota. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>7239b1f -
Add Gradio meeting summarizer app
Recording -> faster-whisper (word timestamps) -> sherpa-onnx speaker diarization -> word-level speaker alignment -> structured summary with a GGUF model run in-process by llama.cpp (Ollama cannot run on a Gradio Space). - app.py: upload, speaker count, progress by stage, speaker timeline, speaker renaming and merging, transcript and summary tabs, report and transcript downloads. Results live in the browser session only. - Thread count fixed to the Space's 2 vCPUs; overridable with the CPU_THREADS variable. - Models are fetched at startup and loaded one at a time. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>0db4022