> This page is for version 26.09 · v1.4.0.
> For other versions, use one of these documentation indexes:
> - Latest · v1.4.0 (26.09) (default): https://docs.nvidia.com/nemo/curator/latest/llms.txt
> - Main · preview: https://docs.nvidia.com/nemo/curator/main/llms.txt
> - 26.09 · v1.4.0: https://docs.nvidia.com/nemo/curator/v26.09/llms.txt
> - 26.07 · v1.3.0: https://docs.nvidia.com/nemo/curator/v26.07/llms.txt
> - 26.04 · v1.2.0: https://docs.nvidia.com/nemo/curator/v26.04/llms.txt
> - 26.02 · v1.1.0: https://docs.nvidia.com/nemo/curator/v26.02/llms.txt
> - 25.09 · v1.0.0: https://docs.nvidia.com/nemo/curator/v25.09/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/nemo/curator/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/nemo/curator/_mcp/server.

> Guide to using NeMo Framework's pretrained ASR models for speech recognition in audio curation pipelines

# NeMo ASR Models

Use NeMo Framework's automatic speech recognition models for transcription in your audio curation pipelines. This guide covers basic usage and configuration.

## Model Selection

NeMo Framework provides pre-trained ASR models through the Hugging Face model hub. For the complete list of available models and their specifications, refer to the [NeMo Framework ASR documentation](https://docs.nvidia.com/nemo-framework/user-guide/latest/nemotoolkit/asr/all_chkpt.html).

### Example Model Usage

```python
# Example using a test-verified model
example_model = "nvidia/parakeet-tdt-0.6b-v2"

# For production use, select appropriate models from:
# https://docs.nvidia.com/nemo-framework/user-guide/latest/nemotoolkit/asr/all_chkpt.html
```

## Basic Usage

### Simple ASR Inference

```python
from nemo_curator.stages.audio.inference.asr.stage import ASRStage
from nemo_curator.stages.resources import Resources

# Create ASR inference stage with a model from NeMo Framework
asr_stage = ASRStage(
    adapter_target="nemo_curator.models.asr.nemo_asr.NeMoASRAdapter",
    model_id="nvidia/parakeet-tdt-0.6b-v2",
    max_audio_sec_per_actor=240.0,
    max_inference_duration_s=120.0,
    local_bucketing=True,
    audio_filepath_key="audio_filepath",
    pred_text_key="pred_text",
    batch_size=16,
)

# Configure for GPU processing
asr_stage = asr_stage.with_(
    resources=Resources(gpus=1.0),
)
```

### Custom Configuration

```python
# Example with custom field names
custom_asr = ASRStage(
    adapter_target="nemo_curator.models.asr.nemo_asr.NeMoASRAdapter",
    model_id="nvidia/parakeet-tdt-0.6b-v2",
    max_audio_sec_per_actor=240.0,
    max_inference_duration_s=120.0,
    local_bucketing=True,
    audio_filepath_key="custom_audio_path",
    pred_text_key="transcription",
    batch_size=32,
).with_(
    resources=Resources(cpus=4.0, gpus=1.0),
)
```

## Model Caching

The executor downloads and caches model weights once per node, then loads one adapter in each worker:

```python
asr_stage = ASRStage(
    adapter_target="nemo_curator.models.asr.nemo_asr.NeMoASRAdapter",
    model_id="nvidia/parakeet-tdt-0.6b-v2",
    max_audio_sec_per_actor=240.0,
    max_inference_duration_s=120.0,
    local_bucketing=True,
    audio_filepath_key="audio_filepath",
)

# Add the stage to a Pipeline and run it through an executor. Do not call
# setup() or process_batch() directly; the executor owns worker lifecycle.
```

## Resource Configuration

Configure GPU and CPU resources based on your hardware:

```python
from nemo_curator.stages.resources import Resources

# Single GPU configuration
asr_stage = ASRStage(
    adapter_target="nemo_curator.models.asr.nemo_asr.NeMoASRAdapter",
    model_id="nvidia/parakeet-tdt-0.6b-v2",
    max_audio_sec_per_actor=240.0,
    max_inference_duration_s=120.0,
    local_bucketing=True,
    audio_filepath_key="audio_filepath",
    batch_size=16,
).with_(
    resources=Resources(
        cpus=4.0,
        gpus=1.0,
    ),
)
```

`NeMoASRAdapter` uses zero or one GPU per worker. Scale throughput by allowing the executor to run more one-GPU workers instead of assigning multiple GPUs to one stage instance.

> **Note**
>
> Resource requirements vary by model. Test with your specific model to determine optimal settings.