Expand description
Who is speaking, as a vector: the contract every speaker-embedding engine implements.
An engine turns a window of 16 kHz samples into a unit-norm embedding.
Two embeddings of one voice point the same way, so their cosine says
whether two stretches of speech came from the same person. What to do
with that number is policy, kept out of every engine: Diarizer groups
voices and claims enrolled names, VoiceprintTracker judges who holds each
turn as a recording is heard, and PyannoteVoices settles who spoke
when from the audio itself, afterwards.
Structs§
- Chunk
- Model outputs for one chunk, reusable across clustering threshold sweeps.
- Decision
sileroand non-target_family=wasm - What may go out now. Segments still undecided stay held.
- Diarizer
- An embedding engine with enrolled profiles and anonymous voice clusters.
- Enrolled
Non- target_family=wasm - A finished enrollment: the profile to store, and the score worth showing the person who just recorded it.
- Enrollment
Non- target_family=wasm - Samples gathered so far, and the engine that measures them.
- Gate
sileroand non-target_family=wasm - Holds decoded segments until the timeline decides them.
- Grouping
- Clustering thresholds, adjustable without rerunning model inference.
- Merged
- A voice that turned out to be one already heard.
- Profile
- One enrolled voice.
- Profile
Store Non- target_family=wasm - The directory of enrolled voices.
- Pyannote
Voices - Released
sileroand non-target_family=wasm - A segment let out, and the voice it was heard in.
- Revision
- What an observation changed about names already written.
- Speaker
Name - An enrolled person’s name, which is also their filename. Holding one is proof it cannot escape the speakers directory.
- Spoken
- One stretch of the recording, and whose voice was in it.
- Standing
- One voice as it stands right now, for a caller watching a session settle.
- Stored
Profiles Non- target_family=wasm - Timeline
sileroand non-target_family=wasm - The turns of one recording so far, and how far into it they reach.
- Turn
Feed sileroand non-target_family=wasm - Feeds one recording to its speech detector and then to its tracker, on a fork of its own, so turns are cut where the audio pauses, not where a decoder finalizes. The tracker hears only what the detector has scored.
- Voiceprint
- What one local voice sounded like, embedded through its own frame mask.
- Voiceprint
Tracker sileroand non-target_family=wasm - Cuts one recording into turns and judges each one. The diarizer scores whose voice a window is. The segmenter, when there is one, checks a speaker change inside a turn before the turn splits, which owner-only admission needs.
Enums§
- Admission
sileroand non-target_family=wasm - Which words a session lets out. The tracker reads it to know what to judge, and the gate reads it to know what to release.
- Ahead
sileroand non-target_family=wasm - How far
TurnFeed::hear_aheadgot. - Enrollment
Error Non- target_family=wasm - Label
- An enrolled person, or a voice nobody enrolled, numbered in the order it was first heard.
- NoSegmenter
sileroand non-target_family=wasm - The segmenter of a tracker that never checks a speaker change, so it can name voices but not admit only the owner. Nothing can build one.
- Owner
Tracking Error sileroand non-target_family=wasm - Why no tracker can admit only the owner’s words.
- Profile
Error Non- target_family=wasm - Replace
Non- target_family=wasm - Whether storing a profile may overwrite one already there.
- Role
- What an enrolled voice is allowed to be. Only an owner’s voice answers “was that you?”, so a guest can be recognized by name without turning on dictation meant for the person who set the machine up.
- Speaker
sileroand non-target_family=wasm - Whose voice the latest turn is, as judged so far.
- Speaker
Error - Speaker
Name Error
Constants§
- CLUSTER_
THRESHOLD - Similarity threshold for anonymous clusters; short audio windows need a lower gate.
- ENROLLED_
THRESHOLD - Minimum similarity for claiming a guest’s enrolled name.
- MIN_
SAMPLES Non- target_family=wasm - Below two samples there is nothing to average and no disagreement to measure.
- OWN_
VOICE_ THRESHOLD - The owner is named at this similarity: below a guest’s bar, so a short turn can carry the name. Whether a turn is the owner’s is read by its length instead, in the speaker tracker.
Traits§
- Embedder
- Turns audio into a comparable voice vector.
- Engine
- How an engine is constructed from its own configuration.
NAMEnames the engine in stored profiles and errors;Configcarries whatever it needs to load. - Speaker
Tracker sileroand non-target_family=wasm - Says who spoke when in one recording, reading where anyone spoke from a
SpeechMap. A recording’s audio arrives in order, in pieces of any size; the map must have scored a frame before the tracker hears it. - Voices
- A running account of who is speaking in a recording.
Functions§
- attribute_
spans - Asks a track who owned each paragraph, skipping the ones nobody timed.
- centroid
Non- target_family=wasm - Normalizes the elementwise mean of unit-length embeddings.
Returns
Nonewhen the mean has no direction. - consistency
Non- target_family=wasm - Mean pairwise cosine similarity of unit-length embeddings.
- normalized
- Scales a vector to unit length, so cosines are plain dot products.
Nonewhen the vector has no direction to keep. - settle
- Fills missing labels from neighboring speakers. Utterance openings prefer the following label; other gaps prefer the preceding one. All-None input stays unchanged.
- validate_
model_ file Non- target_family=wasm crate::backend::validate_model_file, failing as aSpeakerError.