Skip to content

Expose optional runtime word/phrase boosting for Parakeet #126

Description

@Datawav

Problem

Parakeet is a strong default for offline dictation, but downstream applications currently have no model-level way to bias recognition toward a small list of names, technical terms, or other user vocabulary.

NVIDIA now documents runtime word boosting for Parakeet TDT and RNNT, including the 0.6B TDT family. This changes the earlier assumption that a Parakeet personal vocabulary would require fine-tuning or post-processing:

In current transcribe.cpp, the Parakeet TDT/RNNT paths use greedy decoding and select directly from the joint-network logits. I could not find a run option for contextual biasing or word boosting:

This is distinct from #69: that issue concerns passing prompts to prompt-capable non-Whisper models. Parakeet TDT/RNNT word boosting is a decoder feature, not a text prompt.

Request

Would an optional Parakeet word/phrase-boosting run extension fit this library?

A deliberately narrow first version could:

  • accept a bounded list of UTF-8 words or short phrases plus one boost score;
  • tokenize entries with the loaded Parakeet tokenizer and reject entries that cannot be represented;
  • support the existing Parakeet TDT and/or RNNT greedy path, starting with only the architecture for which a correct implementation is practical;
  • leave decoding unchanged when the list is empty; and
  • expose capability detection so downstream apps show the setting only for supported models.

I am not requesting model fine-tuning, vocabulary expansion, post-transcription replacement, or an Android/UI feature here.

Validation

Before treating the feature as complete, it would be useful to include:

  • a deterministic test where an acoustically ambiguous proper noun changes only when boosted;
  • multi-token and shared-prefix cases, so boosting a phrase does not reward an abandoned partial match;
  • duplicate, empty, over-limit, and unrepresentable entries;
  • confirmation that an empty boost list is transcript-identical to the current decoder; and
  • a small latency/memory measurement with a realistic list (for example 10-100 entries).

The goal is a small decoder capability that downstream offline dictation apps can use as a personal vocabulary, without adding post-processing or another model.

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