Skip to content
This repository was archived by the owner on Jul 28, 2026. It is now read-only.
This repository was archived by the owner on Jul 28, 2026. It is now read-only.

citrinet_asr produces garbled output (subword salad) on CUDA at e74a290 and 3b4aed9 #1

Description

@5uck1ess

Citrinet ASR transcription is unusable on this fork at both e74a290 and current main (3b4aed9), while qwen3_asr works correctly on the same server/build.

Repro (RTX 3090, linux-cuda-release build via scripts/build_linux.sh --backend cuda):

  1. Install weights with the same commit's own tooling: tools/model_manager.py install citrinet_asr --models-root models (NGC stt_en_citrinet_256.nemo → safetensors conversion, completes cleanly).
  2. Serve: audiocpp_server with a task:asr entry, family citrinet_asr.
  3. POST /v1/audio/transcriptions with clean 16kHz mono PCM WAV (tested both synthetic TTS speech and a real human recording).

Expected: normal English transcription (faster-whisper transcribes the same files perfectly; qwen3_asr on the same audiocpp_server gets them mostly right).
Actual: subword salad, e.g. 'reer de e he canrin read wouldtlo si veryum know love had fa...' — fragments look like valid subword tokens glued in the wrong order, suggesting a tokenizer/vocab mapping or feature-extraction (mel config/normalization) mismatch in the conversion or inference path rather than a broken download (identical result with weights converted independently at both commits).

Latency is excellent (~150ms for 8.5s audio, CUDA) — this model is the framework's best shot at beating CTranslate2-class ASR for short utterances, which is why the fix matters. Happy to run diagnostics on this box if useful.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions