# UniSpeech-SAT

## Overview

The UniSpeech-SAT model was proposed in [UniSpeech-SAT: Universal Speech Representation Learning with Speaker Aware

Pre-Training](https://arxiv.org/abs/2110.05752) by Sanyuan Chen, Yu Wu, Chengyi Wang, Zhengyang Chen, Zhuo Chen,

Shujie Liu, Jian Wu, Yao Qian, Furu Wei, Jinyu Li, Xiangzhan Yu .

The abstract from the paper is the following:

*Self-supervised learning (SSL) is a long-standing goal for speech processing, since it utilizes large-scale unlabeled

data and avoids extensive human labeling. Recent years witness great successes in applying self-supervised learning in

speech recognition, while limited exploration was attempted in applying SSL for modeling speaker characteristics. In

this paper, we aim to improve the existing SSL framework for speaker representation learning. Two methods are

introduced for enhancing the unsupervised speaker information extraction. First, we apply the multi-task learning to

the current SSL framework, where we integrate the utterance-wise contrastive loss with the SSL objective function.

Second, for better speaker discrimination, we propose an utterance mixing strategy for data augmentation, where

additional overlapped utterances are created unsupervisely and incorporate during training. We integrate the proposed

methods into the HuBERT framework. Experiment results on SUPERB benchmark show that the proposed system achieves

state-of-the-art performance in universal representation learning, especially for speaker identification oriented

tasks. An ablation study is performed verifying the efficacy of each proposed method. Finally, we scale up training

dataset to 94 thousand hours public audio data and achieve further performance improvement in all SUPERB tasks.*

This model was contributed by [patrickvonplaten](https://huggingface.co/patrickvonplaten). The Authors' code can be

found [here](https://github.com/microsoft/UniSpeech/tree/main/UniSpeech-SAT).

## Usage tips

- UniSpeechSat is a speech model that accepts a float array corresponding to the raw waveform of the speech signal.

  Please use [`Wav2Vec2Processor`] for the feature extraction.

- UniSpeechSat model can be fine-tuned using connectionist temporal classification (CTC) so the model output has to be

  decoded using [`Wav2Vec2CTCTokenizer`].

- UniSpeechSat performs especially well on speaker verification, speaker identification, and speaker diarization tasks.

## Resources

- [Audio classification task guide](../tasks/audio_classification)

- [Automatic speech recognition task guide](../tasks/asr)

## UniSpeechSatConfig

[[autodoc]] UniSpeechSatConfig

## UniSpeechSat specific outputs

[[autodoc]] models.unispeech_sat.modeling_unispeech_sat.UniSpeechSatForPreTrainingOutput

## UniSpeechSatModel

[[autodoc]] UniSpeechSatModel

    - forward

## UniSpeechSatForCTC

[[autodoc]] UniSpeechSatForCTC

    - forward

## UniSpeechSatForSequenceClassification

[[autodoc]] UniSpeechSatForSequenceClassification

    - forward

## UniSpeechSatForAudioFrameClassification

[[autodoc]] UniSpeechSatForAudioFrameClassification

    - forward

## UniSpeechSatForXVector

[[autodoc]] UniSpeechSatForXVector

    - forward

## UniSpeechSatForPreTraining

[[autodoc]] UniSpeechSatForPreTraining

    - forward