Transformers documentation
Parakeet
Ce modèle a été contribué à Hugging Face Transformers le 2025-09-25.
Parakeet
Aperçu
Les modèles Parakeet, introduits par NVIDIA NeMo, sont des modèles qui combinent un encodeur Fast Conformer avec un décodeur de classification temporelle connexionniste (CTC), de transducteur de réseau de neurones récurrent (RNNT) ou de transducteur de jetons et de durée (TDT) pour la reconnaissance automatique de la parole.
Architecture du modèle
- Fast Conformer Encoder : une architecture Conformer à scalabilité linéaire qui traite les caractéristiques de spectrogramme mel et réduit la longueur de la séquence par sous-échantillonnage. Il s'agit d'une version plus efficace du Conformer Encoder présent dans FastSpeech2Conformer (voir ParakeetEncoder pour l'implémentation et les détails de l'encodeur).
- ParakeetForCTC: un encodeur Fast Conformer + un décodeur CTC
- CTC Decoder: Décodeur simple mais efficace, composé de :
- Projection de convolution 1D de la taille cachée de l'encodeur vers la taille du vocabulaire (pour une compatibilité NeMo optimale).
- Calcul de la perte CTC pour l’entraînement.
- Décodage CTC glouton pour l'inférence.
- CTC Decoder: Décodeur simple mais efficace, composé de :
- ParakeetForRNNT: un encodeur Fast Conformer + un décodeur RNN-T (RNN Transducer)
- RNN-T Decoder: Transducteur neuronal standard :
- Le réseau de prédiction LSTM maintient le contexte linguistique au fil des prédictions de jetons.
- Le réseau conjoint combine les sorties de l'encodeur et du décodeur.
- Décodage transducteur glouton pour l'inférence : une émission vide avance le cadre de l'encodeur d'une unité, tandis qu'une émission non vide reste sur le même cadre.
- RNN-T Decoder: Transducteur neuronal standard :
- ParakeetForTDT: un encodeur Fast Conformer + un décodeur TDT (Token Duration Transducer)
- TDT Decoder: Prédit conjointement les jetons et leurs durées, permettant un décodage efficace :
- Le réseau de prédiction LSTM maintient le contexte linguistique au fil des prédictions de jetons.
- Le réseau conjoint combine les sorties de l'encodeur et du décodeur.
- La tête de durée prédit le nombre de frames à ignorer, permettant une inférence rapide.
- TDT Decoder: Prédit conjointement les jetons et leurs durées, permettant un décodage efficace :
L’implémentation originale peut être trouvée dans NVIDIA NeMo. Les points de contrôle des modèles sont disponibles sous l’organisation NVIDIA.
Ce modèle a été contribué par Nithin Rao Koluguri, Eustache Le Bihan, Eric Bezzam, Maksym Lypivskyi et Hainan Xu.
Utilisation
Utilisation de ParakeetForCTC
from transformers import pipeline
pipe = pipeline("automatic-speech-recognition", model="nvidia/parakeet-ctc-1.1b")
out = pipe("https://huggingface.co/datasets/hf-internal-testing/dummy-audio-samples/resolve/main/bcn_weather.mp3")
print(out)
# {'text': 'yesterday it was thirty five degrees in barcelona but today the temperature will go down to minus twenty degrees'}from datasets import Audio, load_dataset
from transformers import AutoModelForCTC, AutoProcessor
model_id = "nvidia/parakeet-ctc-1.1b"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForCTC.from_pretrained(model_id, device_map="auto")
ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
ds = ds.cast_column("audio", Audio(sampling_rate=processor.feature_extractor.sampling_rate))
speech_samples = [el['array'] for el in ds["audio"][:5]]
inputs = processor(speech_samples, sampling_rate=processor.feature_extractor.sampling_rate)
inputs.to(model.device, dtype=model.dtype)
outputs = model.generate(**inputs)
print(processor.decode(outputs))Utilisation de ParakeetForRNNT
Parakeet RNN-T transcrit sans majuscules ni ponctuation (comme CTC), et le modèle peut également effectuer le timestamping des jetons.
from transformers import pipeline
pipe = pipeline("automatic-speech-recognition", model="nvidia/parakeet-rnnt-0.6b", revision="refs/pr/4")
out = pipe("https://huggingface.co/datasets/hf-internal-testing/dummy-audio-samples/resolve/main/bcn_weather.mp3")
print(out)
# {'text': 'yesterday it was thirty five degrees in barcelona but today the temperature will go down to minus twenty degrees'}from transformers import AutoModelForRNNT, AutoProcessor
from datasets import load_dataset, Audio
model_id = "nvidia/parakeet-rnnt-0.6b"
revision = "refs/pr/4"
processor = AutoProcessor.from_pretrained(model_id, revision=revision)
model = AutoModelForRNNT.from_pretrained(model_id, revision=revision, device_map="auto")
ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
ds = ds.cast_column("audio", Audio(sampling_rate=processor.feature_extractor.sampling_rate))
speech_samples = [el['array'] for el in ds["audio"][:5]]
inputs = processor(speech_samples, sampling_rate=processor.feature_extractor.sampling_rate)
inputs.to(model.device, dtype=model.dtype)
output = model.generate(**inputs, return_dict_in_generate=True)
print(processor.decode(output.sequences, skip_special_tokens=True))Contrairement à TDT (qui prédit une durée par jeton), chaque jeton RNN-T est émis à un seul cadre encodeur, de sorte que son début et sa fin couvrent exactement un cadre.
from datasets import Audio, load_dataset
from transformers import AutoModelForRNNT, AutoProcessor
model_id = "nvidia/parakeet-rnnt-0.6b"
revision = "refs/pr/4"
processor = AutoProcessor.from_pretrained(model_id, revision=revision)
model = AutoModelForRNNT.from_pretrained(model_id, revision=revision, device_map="auto")
ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
ds = ds.cast_column("audio", Audio(sampling_rate=processor.feature_extractor.sampling_rate))
speech_samples = [el['array'] for el in ds["audio"][:1]]
inputs = processor(speech_samples, sampling_rate=processor.feature_extractor.sampling_rate)
inputs.to(model.device, dtype=model.dtype)
output = model.generate(**inputs, return_dict_in_generate=True)
decoded_output, decoded_timestamps = processor.decode(
output.sequences,
durations=output.durations,
skip_special_tokens=True,
)
print("Transcription:", decoded_output)
print("\nTimestamped tokens:", decoded_timestamps)
"""
Transcription: ['mister quilter is the apostle of the middle classes and we are glad to welcome his gospel']
Timestamped tokens: [[{'token': 'm', 'start': 0.4, 'end': 0.48}, {'token': 'is', 'start': 0.56, 'end': 0.64}, {'token': 'ter', 'start': 0.56, 'end': 0.64}, {'token': ' qu', 'start': 0.72, 'end': 0.8}, {'token': 'il', 'start': 0.96, 'end': 1.04}, {'token': 'ter', 'start': 1.12, 'end': 1.2}, {'token': ' is', 'start': 1.36, 'end': 1.44}, {'token': ' the', 'start': 1.52, 'end': 1.6}, {'token': ' ap', 'start': 1.68, 'end': 1.76}, {'token': 'o', 'start': 1.76, 'end': 1.84}, {'token': 'st', 'start': 1.84, 'end': 1.92}, {'token': 'le', 'start': 2.0, 'end': 2.08}, {'token': ' of', 'start': 2.16, 'end': 2.24}, {'token': ' the', 'start': 2.24, 'end': 2.32}, {'token': ' m', 'start': 2.4, 'end': 2.48}, {'token': 'id', 'start': 2.48, 'end': 2.56}, {'token': 'd', 'start': 2.56, 'end': 2.64}, {'token': 'le', 'start': 2.56, 'end': 2.64}, {'token': ' cl', 'start': 2.8, 'end': 2.88}, {'token': 'ass', 'start': 2.88, 'end': 2.96}, {'token': 'es', 'start': 3.12, 'end': 3.2}, {'token': ' and', 'start': 3.28, 'end': 3.36}, {'token': ' we', 'start': 3.44, 'end': 3.52}, {'token': ' are', 'start': 3.6, 'end': 3.68}, {'token': ' gl', 'start': 3.84, 'end': 3.92}, {'token': 'ad', 'start': 3.92, 'end': 4.0}, {'token': ' to', 'start': 4.08, 'end': 4.16}, {'token': ' we', 'start': 4.24, 'end': 4.32}, {'token': 'l', 'start': 4.32, 'end': 4.4}, {'token': 'c', 'start': 4.4, 'end': 4.48}, {'token': 'ome', 'start': 4.48, 'end': 4.56}, {'token': ' his', 'start': 4.72, 'end': 4.8}, {'token': ' go', 'start': 4.96, 'end': 5.04}, {'token': 's', 'start': 5.04, 'end': 5.12}, {'token': 'pe', 'start': 5.2, 'end': 5.28}, {'token': 'l', 'start': 5.36, 'end': 5.44}]]
"""Utilisation de ParakeetForTDT
Les transcriptions Parakeet TDT incluent la casse, et le modèle peut également effectuer le timestampage des jetons.
from transformers import pipeline
pipe = pipeline("automatic-speech-recognition", model="nvidia/parakeet-tdt-0.6b-v3")
out = pipe("https://huggingface.co/datasets/hf-internal-testing/dummy-audio-samples/resolve/main/bcn_weather.mp3")
print(out)
# {'text': 'Yesterday it was 35 degrees in Barcelona, but today the temperature will go down to minus 20 degrees.'}from transformers import AutoModelForTDT, AutoProcessor
from datasets import load_dataset, Audio
model_id = "nvidia/parakeet-tdt-0.6b-v3"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForTDT.from_pretrained(model_id, device_map="auto")
ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
ds = ds.cast_column("audio", Audio(sampling_rate=processor.feature_extractor.sampling_rate))
speech_samples = [el['array'] for el in ds["audio"][:5]]
inputs = processor(speech_samples, sampling_rate=processor.feature_extractor.sampling_rate)
inputs.to(model.device, dtype=model.dtype)
output = model.generate(**inputs, return_dict_in_generate=True)
print(processor.decode(output.sequences, skip_special_tokens=True))from datasets import Audio, load_dataset
from transformers import AutoModelForTDT, AutoProcessor
model_id = "nvidia/parakeet-tdt-0.6b-v3"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForTDT.from_pretrained(model_id, device_map="auto")
ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
ds = ds.cast_column("audio", Audio(sampling_rate=processor.feature_extractor.sampling_rate))
speech_samples = [el['array'] for el in ds["audio"][:1]]
inputs = processor(speech_samples, sampling_rate=processor.feature_extractor.sampling_rate)
inputs.to(model.device, dtype=model.dtype)
output = model.generate(**inputs, return_dict_in_generate=True)
decoded_output, decoded_timestamps = processor.decode(
output.sequences,
durations=output.durations,
skip_special_tokens=True,
)
print("Transcription:", decoded_output)
print("\nTimestamped tokens:", decoded_timestamps)
"""
Transcription: ['mister Quilter is the apostle of the middle classes, and we are glad to welcome his gospel.']
Timestamped tokens: [[{'token': 'm', 'start': 0.24, 'end': 0.48}, {'token': 'ister', 'start': 0.48, 'end': 0.64}, {'token': 'Qu', 'start': 0.64, 'end': 0.88}, {'token': 'il', 'start': 0.88, 'end': 1.12}, {'token': 'ter', 'start': 1.12, 'end': 1.36}, {'token': 'is', 'start': 1.36, 'end': 1.44}, {'token': 'the', 'start': 1.44, 'end': 1.6}, {'token': 'ap', 'start': 1.6, 'end': 1.76}, {'token': 'ost', 'start': 1.76, 'end': 1.92}, {'token': 'le', 'start': 2.0, 'end': 2.16}, {'token': 'of', 'start': 2.16, 'end': 2.24}, {'token': 'the', 'start': 2.24, 'end': 2.4}, {'token': 'mid', 'start': 2.4, 'end': 2.48}, {'token': 'd', 'start': 2.48, 'end': 2.56}, {'token': 'le', 'start': 2.56, 'end': 2.64}, {'token': 'clas', 'start': 2.72, 'end': 2.88}, {'token': 's', 'start': 2.88, 'end': 3.04}, {'token': 'es', 'start': 3.04, 'end': 3.12}, {'token': ',', 'start': 3.12, 'end': 3.12}, {'token': 'and', 'start': 3.2800000000000002, 'end': 3.44}, {'token': 'we', 'start': 3.44, 'end': 3.6}, {'token': 'are', 'start': 3.6, 'end': 3.7600000000000002}, {'token': 'gl', 'start': 3.7600000000000002, 'end': 3.92}, {'token': 'ad', 'start': 3.92, 'end': 4.08}, {'token': 'to', 'start': 4.08, 'end': 4.24}, {'token': 'wel', 'start': 4.24, 'end': 4.4}, {'token': 'c', 'start': 4.4, 'end': 4.48}, {'token': 'ome', 'start': 4.48, 'end': 4.72}, {'token': 'his', 'start': 4.72, 'end': 4.96}, {'token': 'gos', 'start': 4.96, 'end': 5.12}, {'token': 'pel', 'start': 5.36, 'end': 5.6000000000000005}, {'token': '.', 'start': 5.6000000000000005, 'end': 5.6000000000000005}]]
"""Faire tourner le modèle à pleine vitesse
Parakeet prend en charge la compilation du graphe complet avec la capture de graphe (CUDA graphs sur les GPU NVIDIA, et le mécanisme équivalent sur les autres accélérateurs) ! Cette optimisation est la plus efficace lorsque vous connaissez la durée maximale de l'audio que vous souhaitez transcrire. L'idée clé consiste à utiliser des formes d'entrée statiques pour éviter la recompilation. Par exemple, si vous savez que votre audio sera inférieur à 30 secondes, vous pouvez utiliser le processeur pour compléter toutes les entrées jusqu'à 30 secondes, préparant ainsi des caractéristiques d'entrée et des masques d'attention cohérents. Consultez l'exemple ci-dessous !
import torch
from datasets import Audio, load_dataset
from transformers import AutoModelForCTC, AutoProcessor
processor = AutoProcessor.from_pretrained("nvidia/parakeet-ctc-1.1b")
model = AutoModelForCTC.from_pretrained("nvidia/parakeet-ctc-1.1b", device_map="auto")
ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
ds = ds.cast_column("audio", Audio(sampling_rate=processor.feature_extractor.sampling_rate))
speech_samples = [el['array'] for el in ds["audio"][:5]]
# Compile the generate method with fullgraph and graph capture
model.generate = torch.compile(model.generate, fullgraph=True, mode="reduce-overhead")
# let's define processor kwargs to pad to 30 seconds
processor_kwargs = {
"padding": "max_length",
"max_length": 30 * processor.feature_extractor.sampling_rate,
}
# Define a timing context using accelerator events
class TimerContext:
def __init__(self, name="Execution"):
self.name = name
self.start_event = None
self.end_event = None
def __enter__(self):
# Use accelerator events for more accurate device timing
self.start_event = torch.Event(enable_timing=True)
self.end_event = torch.Event(enable_timing=True)
self.start_event.record()
return self
def __exit__(self, *args):
self.end_event.record()
torch.accelerator.synchronize()
elapsed_time = self.start_event.elapsed_time(self.end_event) / 1000.0
print(f"{self.name} time: {elapsed_time:.4f} seconds")
inputs = processor(speech_samples[0], **processor_kwargs)
inputs.to(model.device, dtype=model.dtype)
print("\n" + "="*50)
print("First generation - compiling...")
# Generate with the compiled model
with TimerContext("First generation"):
outputs = model.generate(**inputs)
print(processor.decode(outputs))
inputs = processor(speech_samples[1], **processor_kwargs)
inputs.to(model.device, dtype=model.dtype)
print("\n" + "="*50)
print("Second generation - recording graphs...")
with TimerContext("Second generation"):
outputs = model.generate(**inputs)
print(processor.decode(outputs))
inputs = processor(speech_samples[2], **processor_kwargs)
inputs.to(model.device, dtype=model.dtype)
print("\n" + "="*50)
print("Third generation - fast !!!")
with TimerContext("Third generation"):
outputs = model.generate(**inputs)
print(processor.decode(outputs))
inputs = processor(speech_samples[3], **processor_kwargs)
inputs.to(model.device, dtype=model.dtype)
print("\n" + "="*50)
print("Fourth generation - still fast !!!")
with TimerContext("Fourth generation"):
outputs = model.generate(**inputs)
print(processor.decode(outputs))Entraînement CTC
from datasets import Audio, load_dataset
from transformers import AutoModelForCTC, AutoProcessor
model_id = "nvidia/parakeet-ctc-1.1b"
NUM_SAMPLES = 5
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForCTC.from_pretrained(model_id, device_map="auto")
model.train()
ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
ds = ds.cast_column("audio", Audio(sampling_rate=processor.feature_extractor.sampling_rate))
speech_samples = [el['array'] for el in ds["audio"][:NUM_SAMPLES]]
text_samples = ds["text"][:NUM_SAMPLES]
# passing `text` to the processor will prepare inputs' `labels` key
inputs = processor(audio=speech_samples, text=text_samples, sampling_rate=processor.feature_extractor.sampling_rate)
inputs.to(model.device, dtype=model.dtype)
outputs = model(**inputs)
print("Loss:", outputs.loss.item())
outputs.loss.backward()Entraînement RNN-T
Le calcul de la perte RNN-T nécessite torchaudio (
pip install torchaudio).
from datasets import Audio, load_dataset
import torch
from transformers import AutoModelForRNNT, AutoProcessor
model_id = "nvidia/parakeet-rnnt-0.6b"
revision = "refs/pr/4"
NUM_SAMPLES = 4
processor = AutoProcessor.from_pretrained(model_id, revision=revision)
model = AutoModelForRNNT.from_pretrained(model_id, revision=revision, device_map="auto")
model.train()
ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
ds = ds.cast_column("audio", Audio(sampling_rate=processor.feature_extractor.sampling_rate))
speech_samples = [el['array'] for el in ds["audio"][:NUM_SAMPLES]]
text_samples = ds["text"][:NUM_SAMPLES]
# passing `text` to the processor will prepare inputs' `labels` key
inputs = processor(audio=speech_samples, text=text_samples, sampling_rate=processor.feature_extractor.sampling_rate)
inputs.to(model.device, dtype=model.dtype)
outputs = model(**inputs)
print("Loss:", outputs.loss.item())
outputs.loss.backward()Entraînement TDT
from datasets import Audio, load_dataset
import torch
from transformers import AutoModelForTDT, AutoProcessor
model_id = "nvidia/parakeet-tdt-0.6b-v3"
NUM_SAMPLES = 4
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForTDT.from_pretrained(model_id, device_map="auto")
model.train()
ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
ds = ds.cast_column("audio", Audio(sampling_rate=processor.feature_extractor.sampling_rate))
speech_samples = [el['array'] for el in ds["audio"][:NUM_SAMPLES]]
text_samples = ds["text"][:NUM_SAMPLES]
# passing `text` to the processor will prepare inputs' `labels` key
inputs = processor(audio=speech_samples, text=text_samples, sampling_rate=processor.feature_extractor.sampling_rate)
inputs.to(model.device, dtype=model.dtype)
outputs = model(**inputs)
print("Loss:", outputs.loss.item())
outputs.loss.backward()ParakeetTokenizer
Hérite de toutes les méthodes de PreTrainedTokenizerFast. Les utilisateurs doivent se référer à cette superclasse pour plus d'informations sur ces méthodes,
à l'exception de _decode qui est redéfinie pour l'adapter au décodage CTC :
- Grouper les jetons consécutifs
- Filtrer le jeton vide
ParakeetFeatureExtractor
classe transformers.ParakeetFeatureExtractor
< source >( feature_size = 80sampling_rate = 16000hop_length = 160n_fft = 512win_length = 400preemphasis = 0.97padding_value = 0.0**kwargs )
Paramètres
- feature_size (
int, facultatif, valeur par défaut 80) — La dimension des caractéristiques des fonctionnalités extraites. - sampling_rate (
int, facultatif, valeur par défaut 16000) — La fréquence d'échantillonnage à laquelle les fichiers audio doivent être numérisés, exprimée en hertz (Hz). - hop_length (
int, facultatif, par défaut 160) — Longueur des fenêtres superposées pour la STFT utilisée pour obtenir les coefficients de fréquence Mel. - n_fft (
int, facultatif, par défaut 512) — Taille de la transformée de Fourier. - win_length (
int, facultatif, par défaut 400) — La longueur de la fenêtre pour le calcul de la STFT. - preemphasis (
float, facultatif, valeur par défaut 0.97) — Coefficient du filtre de préaccentuation. 0.0 signifie qu'aucun filtre de préaccentuation n'est appliqué. - padding_value (
float, facultatif, valeur par défaut 0.0) — Valeur de bourrage utilisée pour bourrer l'audio. Doit correspondre à des silences.
Construit un extracteur de caractéristiques Parakeet.
Cet extracteur de fonctionnalités hérite de SequenceFeatureExtractor, qui contient la plupart des méthodes principales. Les utilisateurs doivent se référer à cette superclasse pour plus d'informations sur ces méthodes.
Cette classe extrait les caractéristiques de la banque de filtres mel à partir de la parole brute à l'aide d'une implémentation numpy personnalisée de la Short Time Fourier Transform, qui doit correspondre à l'équivalent torch.stft de pytorch.
__call__
< source >( raw_speech: numpy.ndarray | list[float] | list[numpy.ndarray] | list[list[float]]truncation: bool = Falsepad_to_multiple_of: int | None = Nonereturn_tensors: str | transformers.utils.generic.TensorType | None = Nonereturn_attention_mask: bool | None = Nonepadding: str | None = 'longest'max_length: int | None = Nonesampling_rate: int | None = Nonedo_normalize: bool | None = Nonedevice: str | None = 'cpu'return_token_timestamps: bool | None = None**kwargs )
Paramètres
- raw_speech (
np.ndarray,list[float],list[np.ndarray],list[list[float]]) — La séquence ou le lot de séquences à compléter. Chaque séquence peut être un tableau numpy, une liste de valeurs flottantes, une liste de tableaux numpy ou une liste de listes de valeurs flottantes. L’audio doit être en mono, pas en stéréo, c’est-à-dire un seul flottant par pas de temps. - truncation (
bool, facultatif, par défautTrue) — Active la troncature pour couper les séquences d’entrée plus longues que max_length à max_length. - pad_to_multiple_of (
int, facultatif, valeur par défaut None) — Si défini, la séquence est rembourrée jusqu'à un multiple de la valeur fournie.Ceci est particulièrement utile pour permettre l'utilisation des Tensor Cores sur le matériel NVIDIA avec une capacité de calcul
>= 7.5(Volta), ou sur les TPU qui bénéficient d'avoir des longueurs de séquence qui sont un multiple de 128. - return_attention_mask (
bool, facultatif) — Indique s'il faut retourner le masque d'attention. Si la valeur par défaut est conservée, le masque d'attention est retourné selon la valeur par défaut du feature_extractor spécifique.Qu'est-ce que les masques d'attention ?
Pour les modèles Parakeet,
attention_maskdoit toujours être transmis lors de l'inférence par lots, afin d'éviter des bugs subtils. - return_tensors (
strou TensorType, facultatif) — Si défini, renvoie des tenseurs au lieu d'une liste d'entiers Python. Les valeurs acceptées sont :'tf': Renvoie des objetstf.constantde TensorFlow.'pt': Renvoie des objetstorch.Tensorde PyTorch.'np': Renvoie des objets Numpynp.ndarray.
- sampling_rate (
int, facultatif) — La fréquence d’échantillonnage à laquelle l’entréeraw_speecha été échantillonnée. Il est fortement recommandé de passersampling_ratelors de l’appel forward afin d’éviter les erreurs silencieuses et de permettre le pipeline de reconnaissance automatique de la parole. - padding_value (
float, facultatif, valeur par défaut 0.0) — La valeur utilisée pour remplir les valeurs / vecteurs de bourrage. - do_normalize (
bool, facultatif, valeur par défautFalse) — Indique s'il faut normaliser l'entrée avec une moyenne nulle et une variance unitaire. La normalisation peut contribuer à améliorer considérablement les performances du modèle. - device (
str, facultatif, par défaut'cpu') — Spécifie l'appareil utilisé pour le calcul du spectrogramme log-mel des signaux audio dans la méthode_torch_extract_fbank_features. (par ex. « cpu », « cuda ») - return_token_timestamps (
bool, facultatif, défautNone) — Obsolète. Utilisezreturn_attention_maskà la place, à partir duquel le nombre de frames peut être déduit. Indique s'il faut ou non retourner le nombre de frames de l'entrée raw_speech. Ces num_frames peuvent être utilisés par le modèle pour calculer les horodatages au niveau des mots.Indique s'il faut ou non retourner le nombre de frames de l'entrée raw_speech. Ces num_frames peuvent être utilisés par le modèle pour calculer les horodatages au niveau des mots.
Méthode principale pour extraire les caractéristiques et préparer une ou plusieurs séquences pour le modèle. L’implémentation utilise PyTorch pour le calcul de la STFT si disponible, sinon une version plus lente basée sur NumPy.
ParakeetProcessor
classe transformers.ParakeetProcessor
< source >( feature_extractortokenizerblank_token = '<blank>'decoder_type = None )
Paramètres
- feature_extractor (
feature_extractor_class) — L'extracteur de caractéristiques est une entrée obligatoire. - tokenizer (
tokenizer_class) — Le tokenizer est une entrée obligatoire. - blank_token (
str, facultatif, par défaut"<blank>") — Jeton vide pour le décodage transducteur. - decoder_type (
str, facultatif) — Mode de décodage/émission des horodatages. Valeurs possibles :"ctc": Les jetons identiques consécutifs sont fusionnés en une seule émission."rnnt": les jetons répétés sont conservés ; chaque jeton reçoit une portée horodatée d'une image."tdt": Les jetons répétés sont conservés ; chaque portée de jetons est basée sur sa durée prédite. La ponctuation est rattachée au jeton précédent.
Si
None(anciens points de contrôle), le type de décodeur est inféré automatiquement pour la compatibilité ascendante.
Construit un ParakeetProcessor qui encapsule un extracteur de caractéristiques et un tokenizer en un seul processeur.
ParakeetProcessor offre toutes les fonctionnalités de feature_extractor_class et de tokenizer_class. Consultez ~feature_extractor_class et ~tokenizer_class pour plus d’informations.
__call__
< source >( audio: typing.Union[numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor']]text: str | list[str] | list[list[str]] | None = Nonesampling_rate: int | None = None**kwargs: *<class 'transformers.models.parakeet.processing_parakeet.ParakeetProcessorKwargs'> )
Paramètres
- audio (
Union[numpy.ndarray, torch.Tensor, collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence[torch.Tensor]]) — L’audio ou le lot d’audios à préparer. Chaque audio peut être un tableau NumPy ou un tenseur PyTorch. Dans le cas d’un tableau NumPy/tenseur PyTorch, chaque audio doit avoir la forme (C, T), où C est le nombre de canaux et T est la longueur d’échantillonnage de l’audio. - text (
Union[str, list[str], list[list[str]]], facultatif) — La séquence ou le lot de séquences à encoder. Chaque séquence peut être une chaîne de caractères ou une liste de chaînes de caractères (chaînes pré-tokenisées). Si vous passez une entrée pré-tokenisée, définissezis_split_into_words=Truepour éviter toute ambiguïté avec les entrées en lot. - sampling_rate (
int, facultatif) — La fréquence d’échantillonnage de l’audio d’entrée, en Hz. Elle doit correspondre à la fréquence d’échantillonnage attendue par l’extracteur de caractéristiques (16000 Hz par défaut). Si elle est fournie, elle est validée par rapport à la fréquence d’échantillonnage attendue par le processeur, et une erreur est levée en cas de non-concordance. Si elle n’est pas fournie, un avertissement est émis et la fréquence d’échantillonnage par défaut est supposée. - return_tensors (
strou TensorType, facultatif) — Si défini, renvoie des tenseurs d'un framework particulier. Les valeurs acceptées sont :'pt': Renvoie des objetstorch.Tensorde PyTorch.'np': Renvoie des objets NumPynp.ndarray.
- **kwargs (ProcessingKwargs, facultatif) — Options de traitement supplémentaires pour chaque modalité (texte, images, vidéos, audio). Les paramètres spécifiques au modèle sont répertoriés ci-dessus ; consultez la classe TypedDict pour la liste complète des arguments pris en charge.
Transmet les arguments à decode() et post-traite les horodatages (s'ils sont fournis pour TDT) comme dans la bibliothèque NeMo.
ParakeetEncoderConfig
classe transformers.ParakeetEncoderConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonehidden_size: int = 1024num_hidden_layers: int = 24num_attention_heads: int = 8intermediate_size: int = 4096hidden_act: str = 'silu'attention_bias: bool = Trueconvolution_bias: bool = Trueconv_kernel_size: int = 9subsampling_factor: int = 8subsampling_conv_channels: int = 256num_mel_bins: int = 80subsampling_conv_kernel_size: int = 3subsampling_conv_stride: int = 2dropout: float | int = 0.1dropout_positions: float | int = 0.0layerdrop: float | int = 0.1activation_dropout: float | int = 0.1attention_dropout: float | int = 0.1max_position_embeddings: int = 5000scale_input: bool = Trueinitializer_range: float = 0.02 )
Paramètres
- hidden_size (
int, facultatif, par défaut1024) — Dimension des représentations cachées. - num_hidden_layers (
int, facultatif, par défaut24) — Nombre de couches cachées dans le décodeur Transformer. - num_attention_heads (
int, facultatif, valeur par défaut8) — Nombre de têtes d'attention pour chaque couche d'attention du décodeur Transformer. - intermediate_size (
int, facultatif, par défaut4096) — Dimension des représentations du MLP. - hidden_act (
str, facultatif, par défautsilu) — La fonction d'activation non linéaire (fonction ou chaîne de caractères) du décodeur. Par exemple,"gelu","relu","silu", etc. - attention_bias (
bool, facultatif, par défautTrue) — Indique s'il faut utiliser un biais dans les couches de projection des requêtes, des clés, des valeurs et de la sortie lors de l'auto-attention. - convolution_bias (
bool, facultatif, par défautTrue) — Indique s'il faut utiliser un biais dans les convolutions du module de convolution du conformer. - conv_kernel_size (
int, facultatif, valeur par défaut 9) — La taille du noyau des couches de convolution dans le bloc Conformer. - subsampling_factor (
int, facultatif, valeur par défaut 8) — Le facteur par lequel la séquence d'entrée est sous-échantillonnée. - subsampling_conv_channels (
int, facultatif, valeur par défaut 256) — Le nombre de canaux dans les couches de convolution de sous-échantillonnage. - num_mel_bins (
int, facultatif, valeur par défaut 80) — Nombre de caractéristiques mel. - subsampling_conv_kernel_size (
int, facultatif, valeur par défaut 3) — Taille du noyau des couches de convolution de sous-échantillonnage. - subsampling_conv_stride (
int, facultatif, valeur par défaut 2) — Le pas des couches de convolution de sous-échantillonnage. - dropout (
Union[float, int], facultatif, par défaut0.1) — Le taux appliqué à toutes les couches de dropout. - dropout_positions (
float, facultatif, valeur par défaut 0.0) — Le taux de dropout pour les positions de la séquence d'entrée. - layerdrop (
Union[float, int], facultatif, par défaut0.1) — La probabilité de LayerDrop. Consultez l'article [LayerDrop](voir https://huggingface.co/papers/1909.11556) pour plus de détails. - activation_dropout (
Union[float, int], facultatif, valeur par défaut0.1) — Le taux de dropout appliqué aux activations à l'intérieur de la couche entièrement connectée. - attention_dropout (
Union[float, int], facultatif, valeur par défaut0.1) — Le taux de dropout appliqué aux probabilités d'attention. - max_position_embeddings (
int, facultatif, par défaut5000) — La longueur de séquence maximale avec laquelle ce modèle pourrait être utilisé. - scale_input (
bool, facultatif, par défautTrue) — Indique s'il faut mettre à l'échelle les embeddings d'entrée. - initializer_range (
float, facultatif, par défaut0.02) — L'écart-type de la truncated_normal_initializer utilisé pour initialiser toutes les matrices de poids.
Ceci est la classe de configuration destinée à stocker la configuration d'un ParakeetModel. Elle est utilisée pour instancier un modèle Parakeet en fonction des arguments spécifiés, définissant ainsi l'architecture du modèle. L'instanciation d'une configuration avec les valeurs par défaut produira une configuration similaire à celle de nvidia/parakeet-ctc-1.1b
Les objets de configuration héritent de PreTrainedConfig et peuvent être utilisés pour contrôler les sorties du modèle. Consultez la documentation de PreTrainedConfig pour plus d’informations.
Exemple :
>>> from transformers import ParakeetEncoderModel, ParakeetEncoderConfig
>>> # Initializing a `ParakeetEncoder` configuration
>>> configuration = ParakeetEncoderConfig()
>>> # Initializing a model from the configuration
>>> model = ParakeetEncoderModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configParakeetCTCConfig
classe transformers.ParakeetCTCConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonevocab_size: int = 1025ctc_loss_reduction: str = 'mean'ctc_zero_infinity: bool = Trueencoder_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonepad_token_id: int | None = 1024 )
Paramètres
- vocab_size (
int, facultatif, par défaut1025) — Taille du vocabulaire du modèle. Définit le nombre de jetons différents qui peuvent être représentés parinput_ids. - ctc_loss_reduction (
str, facultatif, par défaut"mean") — Spécifie la réduction à appliquer à la sortie detorch.nn.CTCLoss. Ne concerne que l’entraînement d’une instance de ParakeetForCTC. - ctc_zero_infinity (
bool, facultatif, valeur par défautTrue) — Indique s'il faut mettre à zéro les pertes infinies et les gradients associés detorch.nn.CTCLoss. Les pertes infinies se produisent principalement lorsque les entrées sont trop courtes pour être alignées sur les cibles. Ne concerne que l'entraînement d'une instance de ParakeetForCTC. - encoder_config (
Union[dict, ParakeetEncoderConfig], facultatif) — L'objet de configuration ou le dictionnaire de l'encodeur. - pad_token_id (
int, facultatif, par défaut1024) — Identifiant du jeton utilisé pour le bourrage dans le vocabulaire.
Ceci est la classe de configuration destinée à stocker la configuration d'un ParakeetModel. Elle est utilisée pour instancier un modèle Parakeet en fonction des arguments spécifiés, définissant ainsi l'architecture du modèle. L'instanciation d'une configuration avec les valeurs par défaut produira une configuration similaire à celle de nvidia/parakeet-ctc-1.1b
Les objets de configuration héritent de PreTrainedConfig et peuvent être utilisés pour contrôler les sorties du modèle. Consultez la documentation de PreTrainedConfig pour plus d’informations.
Exemple :
>>> from transformers import ParakeetForCTC, ParakeetCTCConfig
>>> # Initializing a Parakeet configuration
>>> configuration = ParakeetCTCConfig()
>>> # Initializing a model from the configuration
>>> model = ParakeetForCTC(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configParakeetRNNTConfig
classe transformers.ParakeetRNNTConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0id2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Noneis_encoder_decoder: bool = Truevocab_size: int = 8193decoder_hidden_size: int = 640num_decoder_layers: int = 2hidden_act: str = 'relu'max_symbols_per_step: int = 10encoder_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonepad_token_id: int = 2blank_token_id: int = 8192 )
Paramètres
- is_encoder_decoder (
bool, facultatif, valeur par défautTrue) — Indique si le modèle est utilisé comme encodeur/décodeur ou non. - vocab_size (
int, facultatif, par défaut8193) — Taille du vocabulaire du modèle. Définit le nombre de jetons différents qui peuvent être représentés parinput_ids. - decoder_hidden_size (
int, facultatif, valeur par défaut 640) — Taille cachée du réseau de prédiction LSTM et du réseau conjoint. - num_decoder_layers (
int, facultatif, valeur par défaut 2) — Nombre de couches LSTM dans le réseau de prédiction. - hidden_act (
str, facultatif, par défautrelu) — La fonction d'activation non linéaire (fonction ou chaîne de caractères) dans le décodeur. Par exemple,"gelu","relu","silu", etc. - max_symbols_per_step (
int, facultatif, valeur par défaut 10) — Nombre maximal de symboles à émettre par pas de temps de l’encodeur lors du décodage glouton. - encoder_config (
Union[dict, ParakeetEncoderConfig], facultatif) — L'objet de configuration ou le dictionnaire de l'encodeur. - pad_token_id (
int, facultatif, par défaut2) — Identifiant du jeton utilisé pour le bourrage dans le vocabulaire. - blank_token_id (
int, facultatif, valeur par défaut 8192) — Identifiant du jeton vide. Différent depad_token_idpour RNN-T.
Ceci est la classe de configuration destinée à stocker la configuration d'un ParakeetModel. Elle est utilisée pour instancier un modèle Parakeet en fonction des arguments spécifiés, définissant ainsi l'architecture du modèle. L'instanciation d'une configuration avec les valeurs par défaut produira une configuration similaire à celle de nvidia/parakeet-rnnt-0.6b
Les objets de configuration héritent de PreTrainedConfig et peuvent être utilisés pour contrôler les sorties du modèle. Consultez la documentation de PreTrainedConfig pour plus d’informations.
Exemple :
>>> from transformers import ParakeetForRNNT, ParakeetRNNTConfig
>>> # Initializing a Parakeet RNN-T configuration
>>> configuration = ParakeetRNNTConfig()
>>> # Initializing a model from the configuration
>>> model = ParakeetForRNNT(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configParakeetTDTConfig
classe transformers.ParakeetTDTConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0id2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Noneis_encoder_decoder: bool = Truevocab_size: int = 8193decoder_hidden_size: int = 640num_decoder_layers: int = 2hidden_act: str = 'relu'max_symbols_per_step: int = 10encoder_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonepad_token_id: int = 2blank_token_id: int = 8192durations: list[int] | tuple[int, ...] = (0, 1, 2, 3, 4) )
Paramètres
- is_encoder_decoder (
bool, facultatif, valeur par défautTrue) — Indique si le modèle est utilisé comme encodeur/décodeur ou non. - vocab_size (
int, facultatif, par défaut8193) — Taille du vocabulaire du modèle. Définit le nombre de jetons différents qui peuvent être représentés parinput_ids. - decoder_hidden_size (
int, facultatif, valeur par défaut 640) — Taille cachée du réseau de prédiction LSTM et du réseau conjoint. - num_decoder_layers (
int, facultatif, valeur par défaut 2) — Nombre de couches LSTM dans le réseau de prédiction. - hidden_act (
str, facultatif, par défautrelu) — La fonction d'activation non linéaire (fonction ou chaîne de caractères) dans le décodeur. Par exemple,"gelu","relu","silu", etc. - max_symbols_per_step (
int, facultatif, valeur par défaut 10) — Nombre maximal de symboles à émettre par pas de temps de l’encodeur lors du décodage glouton. - encoder_config (
Union[dict, ParakeetEncoderConfig], facultatif) — L'objet de configuration ou le dictionnaire de l'encodeur. - pad_token_id (
int, facultatif, par défaut2) — Identifiant du jeton utilisé pour le bourrage dans le vocabulaire. - blank_token_id (
int, facultatif, valeur par défaut 8192) — Identifiant du jeton vide. Différent depad_token_idpour TDT. - durations (
list[int], facultatif, par défaut[0, 1, 2, 3, 4]) — Valeurs de durée des jetons qui peuvent être prédites. Chaque valeur représente le nombre de frames qu'un jeton ou une émission vide couvre.
Ceci est la classe de configuration destinée à stocker la configuration d'un ParakeetModel. Elle est utilisée pour instancier un modèle Parakeet en fonction des arguments spécifiés, définissant ainsi l'architecture du modèle. L'instanciation d'une configuration avec les valeurs par défaut produira une configuration similaire à celle de nvidia/parakeet-tdt-0.6b-v3
Les objets de configuration héritent de PreTrainedConfig et peuvent être utilisés pour contrôler les sorties du modèle. Consultez la documentation de PreTrainedConfig pour plus d’informations.
Exemple :
>>> from transformers import ParakeetForTDT, ParakeetTDTConfig
>>> # Initializing a Parakeet TDT configuration
>>> configuration = ParakeetTDTConfig()
>>> # Initializing a model from the configuration
>>> model = ParakeetForTDT(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configParakeetEncoder
classe transformers.ParakeetEncoder
< source >( config: ParakeetEncoderConfig )
Paramètres
- config (ParakeetEncoderConfig) — Classe de configuration du modèle contenant tous les paramètres du modèle. L’initialisation à partir d’un fichier de configuration ne charge pas les poids associés au modèle, uniquement la configuration. Consultez la méthode from_pretrained() pour charger les poids du modèle.
Le modèle Parakeet Encoder, basé sur l'architecture Fast Conformer.
Ce modèle hérite de PreTrainedModel. Consultez la documentation de la classe parente pour les méthodes génériques que la bibliothèque implémente pour tous ses modèles (tels que le téléchargement ou l'enregistrement, le redimensionnement des embeddings d'entrée, la taille des têtes, etc.)
Ce modèle est également une sous-classe de torch.nn.Module de PyTorch. Utilisez-le comme un module PyTorch standard et consultez la documentation de PyTorch pour tout ce qui concerne l'utilisation et le comportement généraux.
forward
< source >( input_features: Tensorattention_mask: typing.Optional[torch.Tensor] = Noneoutput_attention_mask: bool = True**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutput or tuple(torch.Tensor)
Paramètres
- input_features (
torch.Tensorde forme(batch_size, sequence_length, feature_dim)) — Les tenseurs correspondant aux caractéristiques audio d’entrée. Les caractéristiques audio peuvent être obtenues à l’aide defeature_extractor_class. Voirfeature_extractor_class.__call__pour plus de détails (processor_classutilisefeature_extractor_classpour le traitement des audios). - attention_mask (
torch.Tensorde forme(batch_size, sequence_length), facultatif) — Masque pour éviter d'appliquer l'attention aux indices des jetons de bourrage. Les valeurs du masque sont choisies dans[0, 1]:- 1 pour les jetons qui ne sont pas masqués,
- 0 pour les jetons masqués.
- output_attention_mask (
bool, facultatif, par défautTrue) — Indique s'il faut retourner le masque d'attention de sortie. N'est efficace que siattention_maskest fourni.
Retourne
BaseModelOutput ou tuple(torch.Tensor)
Un BaseModelOutput ou un tuple de
torch.Tensor (si return_dict=False est passé ou lorsque config.return_dict=False) comprenant divers
éléments en fonction de la configuration (None) et des entrées.
La méthode forward de ParakeetEncoder redéfinit la méthode spéciale __call__.
Bien que la recette de la passe avant doive être définie dans cette fonction, il faut ensuite appeler l'instance
Moduleplutôt que celle-ci, car la première gère l'exécution des étapes de prétraitement et de post-traitement, tandis que la seconde les ignore silencieusement.
last_hidden_state (
torch.Tensorde forme(batch_size, sequence_length, hidden_size)) — Séquence d'états cachés à la sortie de la dernière couche du modèle.hidden_states (
tuple(torch.Tensor), facultatif, renvoyé lorsqueoutput_hidden_states=Trueest passé ou lorsqueconfig.output_hidden_states=True) — Tuple detorch.Tensor(un pour la sortie des embeddings, si le modèle possède une couche d’embedding, + un pour la sortie de chaque couche) de forme(batch_size, sequence_length, hidden_size).États cachés du modèle à la sortie de chaque couche, ainsi que les sorties d'incorporation initiales facultatives.
attentions (
tuple(torch.Tensor), facultatif, renvoyé lorsqueoutput_attentions=Trueest passé ou lorsqueconfig.output_attentions=True) — Tuple detorch.Tensor(un par couche) de forme(batch_size, num_heads, sequence_length, sequence_length).Poids des attentions après le softmax d'attention, utilisés pour calculer la moyenne pondérée dans les têtes d'auto-attention.
Exemple :
>>> from transformers import AutoProcessor, ParakeetEncoder
>>> from datasets import load_dataset, Audio
>>> model_id = "nvidia/parakeet-ctc-1.1b"
>>> processor = AutoProcessor.from_pretrained(model_id)
>>> encoder = ParakeetEncoder.from_pretrained(model_id)
>>> ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
>>> ds = ds.cast_column("audio", Audio(sampling_rate=processor.feature_extractor.sampling_rate))
>>> inputs = processor(ds[0]["audio"]["array"])
>>> encoder_outputs = encoder(**inputs)
>>> print(encoder_outputs.last_hidden_state.shape)ParakeetForCTC
classe transformers.ParakeetForCTC
< source >( config: ParakeetCTCConfig )
Paramètres
- config (ParakeetCTCConfig) — Classe de configuration du modèle contenant tous les paramètres du modèle. L’initialisation à partir d’un fichier de configuration ne charge pas les poids associés au modèle, uniquement la configuration. Consultez la méthode from_pretrained() pour charger les poids du modèle.
Parakeet Encoder avec une tête de Classification Temporelle Connectiviste (CTC).
Ce modèle hérite de PreTrainedModel. Consultez la documentation de la classe parente pour les méthodes génériques que la bibliothèque implémente pour tous ses modèles (tels que le téléchargement ou l'enregistrement, le redimensionnement des embeddings d'entrée, la taille des têtes, etc.)
Ce modèle est également une sous-classe de torch.nn.Module de PyTorch. Utilisez-le comme un module PyTorch standard et consultez la documentation de PyTorch pour tout ce qui concerne l'utilisation et le comportement généraux.
forward
< source >( input_features: Tensorattention_mask: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → CausalLMOutput or tuple(torch.Tensor)
Paramètres
- input_features (
torch.Tensorde forme(batch_size, sequence_length, feature_dim)) — Les tenseurs correspondant aux caractéristiques audio d’entrée. Les caractéristiques audio peuvent être obtenues à l’aide defeature_extractor_class. Voirfeature_extractor_class.__call__pour plus de détails (processor_classutilisefeature_extractor_classpour le traitement des audios). - attention_mask (
torch.Tensorde forme(batch_size, sequence_length), facultatif) — Masque pour éviter d'appliquer l'attention aux indices des jetons de bourrage. Les valeurs du masque sont choisies dans[0, 1]:- 1 pour les jetons qui ne sont pas masqués,
- 0 pour les jetons masqués.
- labels (
torch.Tensorde forme(batch_size, sequence_length), facultatif) — Étiquettes pour le calcul de la perte de modélisation de langage masquée. Les indices doivent être dans[0, ..., config.vocab_size]ou -100 (voir la docstring deinput_ids). Les jetons dont l'indice est défini sur-100sont ignorés (masqués), la perte n'est calculée que pour les jetons dont l'étiquette est dans[0, ..., config.vocab_size].
Retourne
CausalLMOutput ou tuple(torch.Tensor)
Un CausalLMOutput ou un tuple de
torch.Tensor (si return_dict=False est passé ou lorsque config.return_dict=False) comprenant divers
éléments en fonction de la configuration (None) et des entrées.
La méthode forward de ParakeetForCTC redéfinit la méthode spéciale __call__.
Bien que la recette de la passe avant doive être définie dans cette fonction, il faut ensuite appeler l'instance
Moduleplutôt que celle-ci, car la première gère l'exécution des étapes de prétraitement et de post-traitement, tandis que la seconde les ignore silencieusement.
loss (
torch.Tensorde forme(1,), facultatif, renvoyé lorsquelabelsest fourni) — Perte de modélisation du langage (pour la prédiction du jeton suivant).logits (
torch.Tensorde forme(batch_size, sequence_length, config.vocab_size)) — Scores de prédiction de la tête de modélisation du langage (scores pour chaque jeton du vocabulaire avant SoftMax).hidden_states (
tuple(torch.Tensor), facultatif, renvoyé lorsqueoutput_hidden_states=Trueest passé ou lorsqueconfig.output_hidden_states=True) — Tuple detorch.Tensor(un pour la sortie des embeddings, si le modèle possède une couche d’embedding, + un pour la sortie de chaque couche) de forme(batch_size, sequence_length, hidden_size).États cachés du modèle à la sortie de chaque couche, ainsi que les sorties d'incorporation initiales facultatives.
attentions (
tuple(torch.Tensor), facultatif, renvoyé lorsqueoutput_attentions=Trueest passé ou lorsqueconfig.output_attentions=True) — Tuple detorch.Tensor(un par couche) de forme(batch_size, num_heads, sequence_length, sequence_length).Poids des attentions après le softmax d'attention, utilisés pour calculer la moyenne pondérée dans les têtes d'auto-attention.
Exemple :
>>> from transformers import AutoProcessor, ParakeetForCTC
>>> from datasets import load_dataset, Audio
>>> model_id = "nvidia/parakeet-ctc-1.1b"
>>> processor = AutoProcessor.from_pretrained(model_id)
>>> model = ParakeetForCTC.from_pretrained(model_id)
>>> ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
>>> ds = ds.cast_column("audio", Audio(sampling_rate=processor.feature_extractor.sampling_rate))
>>> inputs = processor(ds[0]["audio"]["array"], text=ds[0]["text"])
>>> outputs = model(**inputs)
>>> print(outputs.loss)generate
< source >( input_features: Tensorattention_mask: typing.Optional[torch.Tensor] = Nonereturn_dict_in_generate: bool = Falsecompile_config: transformers.generation.configuration_utils.CompileConfig | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> )
compile_config (CompileConfig, facultatif) :
Si fourni, torch.compile sera appliqué aux appels forward dans la boucle de décodage.
Exemple :
>>> from transformers import AutoProcessor, ParakeetForCTC
>>> from datasets import load_dataset, Audio
>>> model_id = "nvidia/parakeet-ctc-1.1b"
>>> processor = AutoProcessor.from_pretrained(model_id)
>>> model = ParakeetForCTC.from_pretrained(model_id)
>>> ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
>>> ds = ds.cast_column("audio", Audio(sampling_rate=processor.feature_extractor.sampling_rate))
>>> inputs = processor(ds[0]["audio"]["array"], text=ds[0]["text"])
>>> predicted_ids = model.generate(**inputs)
>>> transcription = processor.batch_decode(predicted_ids, skip_special_tokens=True)
>>> print(transcription)ParakeetForRNNT
classe transformers.ParakeetForRNNT
< source >( config: ParakeetRNNTConfig )
Paramètres
- config (ParakeetRNNTConfig) — Classe de configuration du modèle contenant tous les paramètres du modèle. L’initialisation à partir d’un fichier de configuration ne charge pas les poids associés au modèle, uniquement la configuration. Consultez la méthode from_pretrained() pour charger les poids du modèle.
Parakeet Encoder avec une tête RNN-T (RNN Transducer).
Ce modèle hérite de PreTrainedModel. Consultez la documentation de la classe parente pour les méthodes génériques que la bibliothèque implémente pour tous ses modèles (tels que le téléchargement ou l'enregistrement, le redimensionnement des embeddings d'entrée, la taille des têtes, etc.)
Ce modèle est également une sous-classe de torch.nn.Module de PyTorch. Utilisez-le comme un module PyTorch standard et consultez la documentation de PyTorch pour tout ce qui concerne l'utilisation et le comportement généraux.
forward
< source >( input_features: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonedecoder_input_ids: typing.Optional[torch.LongTensor] = Nonedecoder_cache: transformers.models.parakeet.generation_parakeet.ParakeetRNNTDecoderCache | None = Noneuse_decoder_cache: bool | None = Noneencoder_outputs: transformers.models.parakeet.modeling_parakeet.ParakeetEncoderModelOutput | tuple[torch.Tensor] | None = Nonelabels: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → ParakeetRNNTOutput or tuple(torch.Tensor)
Paramètres
- input_features (
torch.Tensorde forme(batch_size, sequence_length, feature_dim), facultatif) — Les tenseurs correspondant aux caractéristiques audio d’entrée. Les caractéristiques audio peuvent être obtenues à l’aide defeature_extractor_class. Consultezfeature_extractor_class.__call__pour plus de détails (processor_classutilisefeature_extractor_classpour le traitement des audios). - attention_mask (
torch.Tensorde forme(batch_size, sequence_length), facultatif) — Masque pour éviter d'appliquer l'attention aux indices des jetons de bourrage. Les valeurs du masque sont choisies dans[0, 1]:- 1 pour les jetons qui ne sont pas masqués,
- 0 pour les jetons masqués.
- decoder_input_ids (
torch.LongTensorde forme(batch_size, 1), facultatif) — Identifiants des jetons d’entrée du décodeur pour une inférence en une étape. - decoder_cache (
ParakeetRNNTDecoderCache, facultatif) — Cache du LSTM du décodeur. S’il est fourni et initialisé, la sortiedecoder_outputmise en cache est réutilisée (par exemple lors de l’omission des symboles vides) au lieu d’exécuter le décodeur. Siinput_idsest fourni, le décodeur s’exécute et le cache est mis à jour en place. - use_decoder_cache (
bool, facultatif) — Indique s'il faut utiliser un cache de décodeur. SiTrueet quedecoder_cacheestNone, un nouveau cache est créé automatiquement lors du passage avant. - encoder_outputs (
tuple(torch.Tensor), facultatif) — Sorties de l’encodeur précalculées (last_hidden_state, pooler_output, hidden_states, attentions, attention_mask). Peut être un tuple ouParakeetEncoderModelOutput. - labels (
torch.Tensorde forme(batch_size, sequence_length), facultatif) — Étiquettes pour le calcul de la perte de modélisation de langage masquée. Les indices doivent être dans[0, ..., config.vocab_size]ou -100 (voir la docstring deinput_ids). Les jetons dont l'indice est défini sur-100sont ignorés (masqués), la perte n'est calculée que pour les jetons dont l'étiquette est dans[0, ..., config.vocab_size].
Retourne
ParakeetRNNTOutput ou tuple(torch.Tensor)
Un ParakeetRNNTOutput ou un tuple de
torch.Tensor (si return_dict=False est passé ou lorsque config.return_dict=False) comprenant divers
éléments en fonction de la configuration (None) et des entrées.
La méthode forward de ParakeetForRNNT redéfinit la méthode spéciale __call__.
Bien que la recette de la passe avant doive être définie dans cette fonction, il faut ensuite appeler l'instance
Moduleplutôt que celle-ci, car la première gère l'exécution des étapes de prétraitement et de post-traitement, tandis que la seconde les ignore silencieusement.
- loss (
torch.Tensor, facultatif) — Perte RNN-T, renvoyée lorsquelabelsest fourni. - logits (
torch.Tensor) — Logits des jetons conjoints. La forme est(batch, T, U+1, vocab)pour l'entraînement ou(batch, 1, 1, vocab)pour l'inférence en une étape. - decoder_cache (
ParakeetRNNTDecoderCache, facultatif) — Cache LSTM du décodeur contenant l'état caché, l'état de la cellule et la dernière sortie.
Exemple :
>>> from transformers import AutoProcessor, ParakeetForRNNT
>>> from datasets import load_dataset, Audio
>>> model_id = "nvidia/parakeet-rnnt-0.6b"
>>> processor = AutoProcessor.from_pretrained(model_id)
>>> model = ParakeetForRNNT.from_pretrained(model_id)
>>> ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
>>> ds = ds.cast_column("audio", Audio(sampling_rate=processor.feature_extractor.sampling_rate))
>>> inputs = processor(ds[0]["audio"]["array"])
>>> outputs = model(**inputs)ParakeetForTDT
classe transformers.ParakeetForTDT
< source >( config: ParakeetTDTConfig )
Paramètres
- config (ParakeetTDTConfig) — Classe de configuration du modèle contenant tous les paramètres du modèle. L’initialisation à partir d’un fichier de configuration ne charge pas les poids associés au modèle, uniquement la configuration. Consultez la méthode from_pretrained() pour charger les poids du modèle.
Parakeet Encoder avec une tête TDT (Token Duration Transducer).
Ce modèle hérite de PreTrainedModel. Consultez la documentation de la classe parente pour les méthodes génériques que la bibliothèque implémente pour tous ses modèles (tels que le téléchargement ou l'enregistrement, le redimensionnement des embeddings d'entrée, la taille des têtes, etc.)
Ce modèle est également une sous-classe de torch.nn.Module de PyTorch. Utilisez-le comme un module PyTorch standard et consultez la documentation de PyTorch pour tout ce qui concerne l'utilisation et le comportement généraux.
forward
< source >( input_features: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonedecoder_input_ids: typing.Optional[torch.LongTensor] = Nonedecoder_cache: transformers.models.parakeet.generation_parakeet.ParakeetRNNTDecoderCache | None = Noneuse_decoder_cache: bool | None = Noneencoder_outputs: transformers.models.parakeet.modeling_parakeet.ParakeetEncoderModelOutput | tuple[torch.Tensor] | None = Nonelabels: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → ParakeetRNNTOutput or tuple(torch.Tensor)
Paramètres
- input_features (
torch.Tensorde forme(batch_size, sequence_length, feature_dim), facultatif) — Les tenseurs correspondant aux caractéristiques audio d’entrée. Les caractéristiques audio peuvent être obtenues à l’aide defeature_extractor_class. Consultezfeature_extractor_class.__call__pour plus de détails (processor_classutilisefeature_extractor_classpour le traitement des audios). - attention_mask (
torch.Tensorde forme(batch_size, sequence_length), facultatif) — Masque pour éviter d'appliquer l'attention aux indices des jetons de bourrage. Les valeurs du masque sont choisies dans[0, 1]:- 1 pour les jetons qui ne sont pas masqués,
- 0 pour les jetons masqués.
- decoder_input_ids (
torch.LongTensorde forme(batch_size, 1), facultatif) — Identifiants des jetons d’entrée du décodeur pour une inférence en une étape. - decoder_cache (
ParakeetRNNTDecoderCache, facultatif) — Cache du LSTM du décodeur. S’il est fourni et initialisé, la sortiedecoder_outputmise en cache est réutilisée (par exemple lors de l’omission des symboles vides) au lieu d’exécuter le décodeur. Siinput_idsest fourni, le décodeur s’exécute et le cache est mis à jour en place. - use_decoder_cache (
bool, facultatif) — Indique s'il faut utiliser un cache de décodeur. SiTrueet quedecoder_cacheestNone, un nouveau cache est créé automatiquement lors du passage avant. - encoder_outputs (
tuple(torch.Tensor), facultatif) — Sorties de l’encodeur précalculées (last_hidden_state, pooler_output, hidden_states, attentions, attention_mask). Peut être un tuple ouParakeetEncoderModelOutput. - labels (
torch.Tensorde forme(batch_size, sequence_length), facultatif) — Étiquettes pour le calcul de la perte de modélisation de langage masquée. Les indices doivent être dans[0, ..., config.vocab_size]ou -100 (voir la docstring deinput_ids). Les jetons dont l'indice est défini sur-100sont ignorés (masqués), la perte n'est calculée que pour les jetons dont l'étiquette est dans[0, ..., config.vocab_size].
Retourne
ParakeetRNNTOutput ou tuple(torch.Tensor)
Un ParakeetRNNTOutput ou un tuple de
torch.Tensor (si return_dict=False est passé ou lorsque config.return_dict=False) comprenant divers
éléments en fonction de la configuration (None) et des entrées.
La méthode forward de ParakeetForTDT redéfinit la méthode spéciale __call__.
Bien que la recette de la passe avant doive être définie dans cette fonction, il faut ensuite appeler l'instance
Moduleplutôt que celle-ci, car la première gère l'exécution des étapes de prétraitement et de post-traitement, tandis que la seconde les ignore silencieusement.
- loss (
torch.Tensor, facultatif) — Perte RNN-T, renvoyée lorsquelabelsest fourni. - logits (
torch.Tensor) — Logits des jetons conjoints. La forme est(batch, T, U+1, vocab)pour l'entraînement ou(batch, 1, 1, vocab)pour l'inférence en une étape. - decoder_cache (
ParakeetRNNTDecoderCache, facultatif) — Cache LSTM du décodeur contenant l'état caché, l'état de la cellule et la dernière sortie.
Exemple :
>>> from transformers import AutoProcessor, ParakeetForTDT
>>> from datasets import load_dataset, Audio
>>> model_id = "nvidia/parakeet-tdt-0.6b-v3"
>>> processor = AutoProcessor.from_pretrained(model_id)
>>> model = ParakeetForTDT.from_pretrained(model_id)
>>> ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
>>> ds = ds.cast_column("audio", Audio(sampling_rate=processor.feature_extractor.sampling_rate))
>>> inputs = processor(ds[0]["audio"]["array"])
>>> outputs = model(**inputs)