sincnet-speaker-recognition-eval
Speaker Recognition from Raw Waveform with SincNet — Ravanelli et al. (2018) (arXiv:1808.00158, 2018)
What this evaluates
Evaluates text-independent speaker identification and verification on raw audio waveforms, testing the model's ability to extract speaker-specific features and generalize across different corpus sizes and utterance lengths.
Datasets
- TIMIT — total ?; splits: train (-1), test (-1)
- Librispeech — total ?; splits: train (-1), test (-1)
Metrics
accuracy(primary) — range: percent- Identification accuracy is computed by averaging frame-level softmax posteriors across a sentence and voting for the speaker with the highest average posterior. Verification performance is assessed using Equal Error Rate (EER) based on cosine distance between d-vectors or direct softmax posterior scores.
Input / output format
Input: Raw audio waveform chunks of 200ms duration with 10ms overlap. For verification, a genuine enrollment utterance and a test utterance are provided.
Output: Per frame: softmax posterior probabilities over all target speakers. Per sentence: averaged posterior probabilities, with the final prediction being the speaker with the maximum average posterior.
Scoring recipe
frame_probs = model.predict(chunk)
sentence_probs = sum(frame_probs) / len(frame_probs)
predicted_speaker = argmax(sentence_probs)
is_correct = (predicted_speaker == true_speaker)
# Verification
dvec_test = model.get_last_hidden_layer(test_chunk)
dvec_enroll = model.get_last_hidden_layer(enroll_chunk)
cos_dist = dot(dvec_test, dvec_enroll) / (norm(dvec_test) * norm(dvec_enroll))
# EER computed over threshold sweep on cos_dist
Common pitfalls
- Removing calibration sentences from TIMIT to ensure text-independent evaluation, which changes the standard TIMIT split.
- Splitting Librispeech sentences with internal silences >125ms into multiple chunks, altering standard utterance boundaries.
- Using random impostors from a different speaker pool for open-set verification, requiring careful threshold calibration.
Evidence (verbatim from paper)
Frame-level speaker classification was obtained by applying a softmax classifier, providing a set of posterior probabilities over the targeted speakers. A sentence-level classification was simply derived by averaging the frame predictions and voting for the speaker which maximizes the average posterior. The speaker verification system was derived from the speaker-id neural network considering two possible setups. First, we consider the d-vector framework [13, 21], which relies on the output of the last hidden layer and computes the cosine distance between test and the claimed speaker d-vectors.
Citation
@misc{ravanelli2018sincnet,
title={Speaker Recognition from Raw Waveform with SincNet},
author={Ravanelli et al. (2018)},
year={2018},
note={arXiv:1808.00158}
}
- arXiv: 1808.00158