parakeet-ctc-0.6b is an ASR model that transcribes speech in lower case English alphabet. This model is jointly developed by NVIDIA NeMo and Suno.ai teams.
It is an XL version of FastConformer CTC [1] (around 600M parameters) model.
See the model architecture section and NeMo documentation for complete architecture details.
To train, fine-tune or play with the model you will need to install NVIDIA NeMo. We recommend you install it after you've installed latest PyTorch version.
pip install nemo_toolkit['all']
The model is available for use in the NeMo toolkit [3], and can be used as a pre-trained checkpoint for inference or for fine-tuning on another dataset. Moreover, you can now run Parakeet CTC natively with Transformers 🤗.
import nemo.collections.asr as nemo_asr
asr_model = nemo_asr.models.EncDecCTCModelBPE.from_pretrained(model_name="nvidia/parakeet-ctc-0.6b")
First, let's get a sample
wget https://dldata-public.s3.us-east-2.amazonaws.com/2086-149220-0033.wav
Then simply do:
asr_model.transcribe(['2086-149220-0033.wav'])
Make sure to install transformers from source.
pip install git+https://github.com/huggingface/transformers
from transformers import pipeline
pipe = pipeline("automatic-speech-recognition", model="nvidia/parakeet-ctc-0.6b")
out = pipe("https://huggingface.co/datasets/hf-internal-testing/dummy-audio-samples/resolve/main/bcn_weather.mp3")
print(out)
from transformers import AutoModelForCTC, AutoProcessor
from datasets import load_dataset, Audio
import torch
device = "cuda" if torch.cuda.is_available() else "cpu"
processor = AutoProcessor.from_pretrained("nvidia/parakeet-ctc-0.6b")
model = AutoModelForCTC.from_pretrained("nvidia/parakeet-ctc-0.6b", dtype="auto", device_map=device)
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.batch_decode(outputs))
from transformers import AutoModelForCTC, AutoProcessor
from datasets import load_dataset, Audio
import torch
device = "cuda" if torch.cuda.is_available() else "cpu"
processor = AutoProcessor.from_pretrained("nvidia/parakeet-ctc-0.6b")
model = AutoModelForCTC.from_pretrained("nvidia/parakeet-ctc-0.6b", dtype="auto", device_map=device)
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]]
text_samples = [el for el in ds["text"][:5]]
# 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(device, dtype=model.dtype)
outputs = model(**inputs)
outputs.loss.backward()
For more details about usage, the refer to Transformers' documentation.
python [NEMO_GIT_FOLDER]/examples/asr/transcribe_speech.py
pretrained_name="nvidia/parakeet-ctc-0.6b"
audio_dir="<DIRECTORY CONTAINING AUDIO FILES>"
This model accepts 16000 Hz mono-channel audio (wav files) as input.
This model provides transcribed speech as a string for a given audio sample.
FastConformer [1] is an optimized version of the Conformer model with 8x depthwise-separable convolutional downsampling. The model is trained using CTC loss. You may find more information on the details of FastConformer here: Fast-Conformer Model.
The NeMo toolkit [3] was used for training the models for over several hundred epochs. These model are trained with this example script and this base config.
The tokenizers for these models were built using the text transcripts of the train set with this script.
The model was trained on 64K hours of English speech collected and prepared by NVIDIA NeMo and Suno teams.
The training dataset consists of private subset with 40K hours of English speech plus 24K hours from the following public datasets:
The performance of Automatic Speech Recognition models is measuring using Word Error Rate. Since this dataset is trained on multiple domains and a much larger corpus, it will generally perform better at transcribing audio in general.
The following tables summarizes the performance of the available models in this collection with the CTC decoder. Performances of the ASR models are reported in terms of Word Error Rate (WER%) with greedy decoding.
| Version | Tokenizer | Vocabulary Size | AMI | Earnings-22 | Giga Speech | LS test-clean | SPGI Speech | TEDLIUM-v3 | Vox Populi | Common Voice |
|---|---|---|---|---|---|---|---|---|---|---|
| 1.22.0 | SentencePiece Unigram | 1024 | 16.30 | 14.14 | 10.35 | 1.87 | 3.76 | 4.11 | 3.78 | 7.00 |
These are greedy WER numbers without external LM. More details on evaluation can be found at HuggingFace ASR Leaderboard
NVIDIA Riva, is an accelerated speech AI SDK deployable on-prem, in all clouds, multi-cloud, hybrid, on edge, and embedded. Additionally, Riva provides:
Although this model isn’t supported yet by Riva, the list of supported models is here.
Check out Riva live demo.
[1] Fast Conformer with Linearly Scalable Attention for Efficient Speech Recognition
[2] Google Sentencepiece Tokenizer
[4] Suno.ai
[5] HuggingFace ASR Leaderboard
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.
10 commits
1 commits
parakeet-ctc-0.6b is an ASR model that transcribes speech in lower case English alphabet. This model is jointly developed by NVIDIA NeMo and Suno.ai teams.
It is an XL version of FastConformer CTC [1] (around 600M parameters) model.
See the model architecture section and NeMo documentation for complete architecture details.
To train, fine-tune or play with the model you will need to install NVIDIA NeMo. We recommend you install it after you've installed latest PyTorch version.
pip install nemo_toolkit['all']
The model is available for use in the NeMo toolkit [3], and can be used as a pre-trained checkpoint for inference or for fine-tuning on another dataset. Moreover, you can now run Parakeet CTC natively with Transformers 🤗.
import nemo.collections.asr as nemo_asr
asr_model = nemo_asr.models.EncDecCTCModelBPE.from_pretrained(model_name="nvidia/parakeet-ctc-0.6b")
First, let's get a sample
wget https://dldata-public.s3.us-east-2.amazonaws.com/2086-149220-0033.wav
Then simply do:
asr_model.transcribe(['2086-149220-0033.wav'])
Make sure to install transformers from source.
pip install git+https://github.com/huggingface/transformers
from transformers import pipeline
pipe = pipeline("automatic-speech-recognition", model="nvidia/parakeet-ctc-0.6b")
out = pipe("https://huggingface.co/datasets/hf-internal-testing/dummy-audio-samples/resolve/main/bcn_weather.mp3")
print(out)
from transformers import AutoModelForCTC, AutoProcessor
from datasets import load_dataset, Audio
import torch
device = "cuda" if torch.cuda.is_available() else "cpu"
processor = AutoProcessor.from_pretrained("nvidia/parakeet-ctc-0.6b")
model = AutoModelForCTC.from_pretrained("nvidia/parakeet-ctc-0.6b", dtype="auto", device_map=device)
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.batch_decode(outputs))
from transformers import AutoModelForCTC, AutoProcessor
from datasets import load_dataset, Audio
import torch
device = "cuda" if torch.cuda.is_available() else "cpu"
processor = AutoProcessor.from_pretrained("nvidia/parakeet-ctc-0.6b")
model = AutoModelForCTC.from_pretrained("nvidia/parakeet-ctc-0.6b", dtype="auto", device_map=device)
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]]
text_samples = [el for el in ds["text"][:5]]
# 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(device, dtype=model.dtype)
outputs = model(**inputs)
outputs.loss.backward()
For more details about usage, the refer to Transformers' documentation.
python [NEMO_GIT_FOLDER]/examples/asr/transcribe_speech.py
pretrained_name="nvidia/parakeet-ctc-0.6b"
audio_dir="<DIRECTORY CONTAINING AUDIO FILES>"
This model accepts 16000 Hz mono-channel audio (wav files) as input.
This model provides transcribed speech as a string for a given audio sample.
FastConformer [1] is an optimized version of the Conformer model with 8x depthwise-separable convolutional downsampling. The model is trained using CTC loss. You may find more information on the details of FastConformer here: Fast-Conformer Model.
The NeMo toolkit [3] was used for training the models for over several hundred epochs. These model are trained with this example script and this base config.
The tokenizers for these models were built using the text transcripts of the train set with this script.
The model was trained on 64K hours of English speech collected and prepared by NVIDIA NeMo and Suno teams.
The training dataset consists of private subset with 40K hours of English speech plus 24K hours from the following public datasets:
The performance of Automatic Speech Recognition models is measuring using Word Error Rate. Since this dataset is trained on multiple domains and a much larger corpus, it will generally perform better at transcribing audio in general.
The following tables summarizes the performance of the available models in this collection with the CTC decoder. Performances of the ASR models are reported in terms of Word Error Rate (WER%) with greedy decoding.
| Version | Tokenizer | Vocabulary Size | AMI | Earnings-22 | Giga Speech | LS test-clean | SPGI Speech | TEDLIUM-v3 | Vox Populi | Common Voice |
|---|---|---|---|---|---|---|---|---|---|---|
| 1.22.0 | SentencePiece Unigram | 1024 | 16.30 | 14.14 | 10.35 | 1.87 | 3.76 | 4.11 | 3.78 | 7.00 |
These are greedy WER numbers without external LM. More details on evaluation can be found at HuggingFace ASR Leaderboard
NVIDIA Riva, is an accelerated speech AI SDK deployable on-prem, in all clouds, multi-cloud, hybrid, on edge, and embedded. Additionally, Riva provides:
Although this model isn’t supported yet by Riva, the list of supported models is here.
Check out Riva live demo.
[1] Fast Conformer with Linearly Scalable Attention for Efficient Speech Recognition
[2] Google Sentencepiece Tokenizer
[4] Suno.ai
[5] HuggingFace ASR Leaderboard
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.
10 commits
1 commits