Skip to content

Add nvidia/parakeet-tdt-0.6b-v2 alongside the v3 support that landed in #136. #163

Description

@RahulRachuri

Source link

https://huggingface.co/nvidia/parakeet-tdt-0.6b-v2

Target platform

Both

Use case

Why v2 when v3 exists: v3 trades English accuracy for multilingual coverage. On my ground-truth long-form English corpus, v2 scores 3.4/7.1 percent WER where v3 scores 5.1/8.9, and NVIDIA's own model cards show the same direction on public benchmarks. For English-only products, which covers a large share of on-device transcription use, v2 is simply the better checkpoint, and the two models share an identical encoder with only the tokenizer and vocab differing.

Why this is nearly free for you: your export.py already reads vocab_size, blank_token_id, durations, and the mel config from the loaded checkpoint, so the only hard lock is the choices list on the --model argument. The real blockers have been external, and both are now addressed. First, v2 ships as a .nemo file only, and the transformers NeMo converter needed two fixes for it (a crash, plus a silent blank-id off-by-one that yields plausible but wrong transcripts). I have submitted those fixes upstream: huggingface/transformers#47891. Second, no HF-format v2 checkpoint existed publicly, so I published a converted and verified one: https://huggingface.co/rahulrachuri/parakeet-tdt-0.6b-v2. The conversion is token-exact against the NeMo reference (82 of 82 on probe audio, and token-exact across a multi-hour validation corpus).

Evidence it works well on this stack: I have ported v2 to Core AI end-to-end (same three-graph split as your #136 design, arrived at independently) and measured 291x real time at full precision on an M4 Pro over a 340 minute corpus, with LibriSpeech WER of 1.97/4.29 in that configuration. The full Swift host and gates are public at https://github.com/RahulRachuri/parakeet-swift, and the exported bundles are at https://huggingface.co/rahulrachuri/parakeet-tdt-0.6b-v2-coreai. Happy to share gate transcripts, Instruments traces, and the export details if useful. Related Feedback Assistant reports on the runtime itself: FB24260923, FB24261066, FB24261085, FB24261100, FB24261110, FB24261117.

A note on precision: fp16 is the right choice for the encoder, which carries nearly all of the compute, and it is where the 291x figure comes from. The WER numbers above were measured with the predictor and joint kept at fp32, since the joint is tiny enough that full precision costs nothing and fp16 there can flip rare near-tie tokens. If the exporter grows a per-graph dtype option, that fp16 encoder with fp32 decoder split is the configuration I would ship. Int8 is currently blocked by the ANE compiler crash in FB24261100.

Preferred precision / compression

fp16

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions