Model Details of diar_streaming_sortformer_4spk-v2
Streaming Sortformer Diarizer 4spk v2
|
This model is a streaming version of Sortformer diarizer.
Sortformer
[1] is a novel end-to-end neural model for speaker diarization, trained with unconventional objectives compared to existing end-to-end diarization models.
Streaming Sortformer
[2] employs an Arrival-Order Speaker Cache (AOSC) to store frame-level acoustic embeddings of previously observed speakers.
Sortformer resolves permutation problem in diarization following the arrival-time order of the speech segments from each speaker.
Model Architecture
Streaming sortformer employs pre-encode layer in the Fast-Conformer to generate speaker-cache. At each step, speaker cache is filtered to only retain the high-quality speaker cache vectors.
Aside from speaker-cache management part, streaming Sortformer follows the architecture of the offline version of Sortformer. Sortformer consists of an L-size (17 layers)
NeMo Encoder for
Speech Tasks (NEST)
[3] which is based on
Fast-Conformer
[4] encoder. Following that, an 18-layer Transformer[5] encoder with hidden size of 192,
and two feedforward layers with 4 sigmoid outputs for each frame input at the top layer. More information can be found in the
Streaming Sortformer paper
[2].
NVIDIA NeMo
To train, fine-tune or perform diarization with Sortformer, you will need to install
NVIDIA NeMo
[6]. We recommend you install it after you've installed Cython and latest PyTorch version.
The model is available for use in the NeMo Framework[6], and can be used as a pre-trained checkpoint for inference or for fine-tuning on another dataset.
Loading the Model
from nemo.collections.asr.models import SortformerEncLabelModel
# load model from Hugging Face model card directly (You need a Hugging Face token)
diar_model = SortformerEncLabelModel.from_pretrained("nvidia/diar_streaming_sortformer_4spk-v2")
# If you have a downloaded model in "/path/to/diar_streaming_sortformer_4spk-v2.nemo", load model from a downloaded file
diar_model = SortformerEncLabelModel.restore_from(restore_path="/path/to/diar_streaming_sortformer_4spk-v2.nemo", map_location='cuda', strict=False)
# switch to inference mode
diar_model.eval()
Input Format
Input to Sortformer can be an individual audio file:
where each line is a dictionary containing the following fields:
# Example of a line in `multispeaker_manifest.json`
{
"audio_filepath":"/path/to/multispeaker_audio1.wav", # path to the input audio file "offset":0, # offset (start) time of the input audio"duration":600, # duration of the audio, can be set to `null` if using NeMo main branch
}
{
"audio_filepath":"/path/to/multispeaker_audio2.wav",
"offset":900,
"duration":580,
}
Setting up Streaming Configuration
Streaming configuration is defined by the following parameters, all measured in
80ms frames
:
CHUNK_SIZE
: The number of frames in a processing chunk.
RIGHT_CONTEXT
: The number of future frames attached after the chunk.
FIFO_SIZE
: The number of previous frames attached before the chunk, from the FIFO queue.
UPDATE_PERIOD
: The number of frames extracted from the FIFO queue to update the speaker cache.
SPEAKER_CACHE_SIZE
: The total number of frames in the speaker cache.
Here are recommended configurations for different scenarios:
Configuration
Latency
RTF
CHUNK_SIZE
RIGHT_CONTEXT
FIFO_SIZE
UPDATE_PERIOD
SPEAKER_CACHE_SIZE
very high latency
30.4s
0.002
340
40
40
300
188
high latency
10.0s
0.005
124
1
124
124
188
low latency
1.04s
0.093
6
7
188
144
188
ultra low latency
0.32s
0.180
3
1
188
144
188
For clarity on the metrics used in the table:
Latency
: Refers to
Input Buffer Latency
, calculated as
CHUNK_SIZE
+
RIGHT_CONTEXT
. This value does not include computational processing time.
Real-Time Factor (RTF)
: Characterizes processing speed, calculated as the time taken to process an audio file divided by its duration. RTF values are measured with a batch size of 1 on an NVIDIA RTX 6000 Ada Generation GPU.
This model accepts single-channel (mono) audio sampled at 16,000 Hz.
The actual input tensor is a Ns x 1 matrix for each audio clip, where Ns is the number of samples in the time-series signal.
For instance, a 10-second audio clip sampled at 16,000 Hz (mono-channel WAV file) will form a 160,000 x 1 matrix.
Output
The output of the model is an T x S matrix, where:
S is the maximum number of speakers (in this model, S = 4).
T is the total number of frames, including zero-padding. Each frame corresponds to a segment of 0.08 seconds of audio.
Each element of the T x S matrix represents the speaker activity probability in the [0, 1] range. For example, a matrix element a(150, 2) = 0.95 indicates a 95% probability of activity for the second speaker during the time range [12.00, 12.08] seconds.
Train and evaluate Sortformer diarizer using NeMo
Training
Sortformer diarizer models are trained on 8 nodes of 8×NVIDIA Tesla V100 GPUs. We use 90 second long training samples and batch size of 4.
The model can be trained using this
example script
and
base config
.
Inference
Sortformer diarizer models can be performed with post-processing algorithms using inference
example script
. If you provide the post-processing YAML configs in
post_processing
folder
to reproduce the optimized post-processing algorithm for each development dataset.
Technical Limitations
The model operates in a streaming mode (online mode).
It can detect a maximum of 4 speakers; performance degrades on recordings with 5 and more speakers.
While the model is designed for long-form audio and can handle recordings that are several hours long, performance may degrade on very long recordings.
The model was trained on publicly available speech datasets, primarily in English. As a result:
Performance may degrade on non-English speech.
Performance may also degrade on out-of-domain data, such as recordings in noisy conditions.
Datasets
Sortformer was trained on a combination of 2445 hours of real conversations and 5150 hours or simulated audio mixtures generated by
NeMo speech data simulator
[7].
All the datasets listed above are based on the same labeling method via
RTTM
format. A subset of RTTM files used for model training are processed for the speaker diarization model training purposes.
Data collection methods vary across individual datasets. For example, the above datasets include phone calls, interviews, web videos, and audiobook recordings. Please refer to the
Linguistic Data Consortium (LDC) website
or dataset webpage for detailed data collection methods.
NVIDIA Riva
, is an accelerated speech AI SDK deployable on-prem, in all clouds, multi-cloud, hybrid, on edge, and embedded.
Additionally, Riva provides:
World-class out-of-the-box accuracy for the most common languages with model checkpoints trained on proprietary data with hundreds of thousands of GPU-compute hours
Best in class accuracy with run-time word boosting (e.g., brand and product names) and customization of acoustic model, language model, and inverse text normalization
Streaming speech recognition, Kubernetes compatible scaling, and enterprise-grade support
License to use this model is covered by the
CC-BY-4.0
. By downloading the public and release version of the model, you accept the terms and conditions of the CC-BY-4.0 license.
Runs of nvidia diar_streaming_sortformer_4spk-v2 on huggingface.co
38.9K
Total runs
0
24-hour runs
-224
3-day runs
-1.9K
7-day runs
2.5K
30-day runs
More Information About diar_streaming_sortformer_4spk-v2 huggingface.co Model
More diar_streaming_sortformer_4spk-v2 license Visit here:
diar_streaming_sortformer_4spk-v2 huggingface.co is an AI model on huggingface.co that provides diar_streaming_sortformer_4spk-v2's model effect (), which can be used instantly with this nvidia diar_streaming_sortformer_4spk-v2 model. huggingface.co supports a free trial of the diar_streaming_sortformer_4spk-v2 model, and also provides paid use of the diar_streaming_sortformer_4spk-v2. Support call diar_streaming_sortformer_4spk-v2 model through api, including Node.js, Python, http.
diar_streaming_sortformer_4spk-v2 huggingface.co is an online trial and call api platform, which integrates diar_streaming_sortformer_4spk-v2's modeling effects, including api services, and provides a free online trial of diar_streaming_sortformer_4spk-v2, you can try diar_streaming_sortformer_4spk-v2 online for free by clicking the link below.
nvidia diar_streaming_sortformer_4spk-v2 online free url in huggingface.co:
diar_streaming_sortformer_4spk-v2 is an open source model from GitHub that offers a free installation service, and any user can find diar_streaming_sortformer_4spk-v2 on GitHub to install. At the same time, huggingface.co provides the effect of diar_streaming_sortformer_4spk-v2 install, users can directly use diar_streaming_sortformer_4spk-v2 installed effect in huggingface.co for debugging and trial. It also supports api for free installation.
diar_streaming_sortformer_4spk-v2 install url in huggingface.co: