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, and SegmentReader applies it to the
segments a transcription session emits.
Structs§
- 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.
- Heard
sileroand non-target_family=wasm - One finalized segment, as the labeler judged it.
- Profile
- One enrolled voice.
- Profile
Store Non- target_family=wasm - The directory of enrolled voices.
- Segment
Labeler sileroand non-target_family=wasm - Segment
Reader sileroand non-target_family=wasm - Walks the finalized segments of one recording: cuts each segment’s audio out of the window, labels it, and frees what no reader needs any more.
- Speaker
Name - An enrolled person’s name, which is also their filename. Holding one is proof it cannot escape the speakers directory.
- Stored
Profiles Non- target_family=wasm
Enums§
- Enrollment
Error Non- target_family=wasm - Heard
Update sileroand non-target_family=wasm - 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
Error - Speaker
Name Error - Verdict
sileroand non-target_family=wasm
Constants§
- CLUSTER_
THRESHOLD - Similarity threshold for anonymous clusters; short audio windows need a lower gate.
- ENROLLED_
THRESHOLD - Minimum similarity for claiming an enrolled name.
- MIN_
SAMPLES Non- target_family=wasm - Below two samples there is nothing to average and no disagreement to measure.
- OWN_
VOICE_ THRESHOLD sileroand non-target_family=wasm - Owner-match threshold below the naming gate to allow short turns. Calibrated on one voice and one synthetic alternative.
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.
Functions§
- 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.