Skip to content

Full-model speaker-tagged dialogue can fail to emit its stop #32

Open

Description

@krunkosaurus

Speaker-tagged requests accepted by #28 can reach the frame cap on the pinned CUDA full-model profile. This tracks the known limitation separately so #28 can merge with it documented, as discussed in its review.

Reproduced on NVIDIA GB10, Ubuntu 24.04.5, driver 580.178.04, CUDA 13.0.88 and Zig 0.17.0, using recipe 9ec2318 and verified checkpoint revisions full e0a9218aa48888270f06ef1ed9ea67622c0e17d2 / NVFP4 494db08481db952f834b2241bce63fb3dfa72554.

Request:

{"model":"fishaudio/drama-3","input":"<|speaker:1|> Is the train here? <|speaker:15|> It arrives at seven fifteen.","voice":"dialogue","response_format":"pcm","seed":1,"temperature":1.0,"top_p":0.9,"top_k":30}

Server: 1024 frames, 8192 context, one request at a time, prompt cache 0, keep-warm 0. Output is mono 44.1 kHz signed 16-bit PCM. The dialogue catalog has matching speaker 1/15 transcripts. Each profile generated its own synthetic references with seeds 42 and 43: “The small boat crossed the lake.” and “A bright bird landed near the window.” The native drama3-generate encoder prepared them with the selected profile's codec.

Five diagnostic seeds (1–5) per case:

Profile / case Natural stop Frame cap Capped seeds
Full, tagged matching catalog (1/15) 2/5 3/5 1, 2, 4
Full, tags removed, same catalog 5/5 0/5 —
Full, tagged built-in voice without references 4/5 1/5 2
Full, both input and references relabeled 0/1 3/5 2/5 3, 5
NVFP4, tagged matching catalog 5/5 0/5 —
NVFP4, tags removed, same catalog 5/5 0/5 —

Expected: these short requests emit their natural stop. The capped replies instead return HTTP 200, X-Finish-Reason: length, and 4,194,304 PCM bytes (47.554 seconds). The main full-model tagged case takes 35.59–35.87 seconds to render those capped replies; its two natural stops are 4.55–5.02 seconds of audio. This is a stopping diagnostic, not a performance or listening-quality claim.

Relabeling to 0/1 and removing the reference catalog do not reliably avoid it. The full profile has no CFG here; NVFP4 uses its recipe defaults, gamma 1.5 with batched guidance. Engine pins, weights and guidance differ, so this does not isolate quantization as the cause. No Metal or Python-reference result is claimed.

The full-model speaker patch changes admission of nonzero tags, not the existing prompt assembly or end-of-speech selection logic. The cause is not isolated. A useful next diagnostic is the prompt rows and selected semantic/end-of-speech tokens for full-model seeds 1, 2 and 4; the fix should address termination without silently stripping speaker roles or treating a capped reply as successful completion.

The per-seed summary and documented limitation are committed in #28 at 6cd48e6. Raw requests, PCM/WAV, reference catalogs and logs are retained privately.

Activity

  1. added a commit that references this issue on Oct 30, 2026
  2. plotarmordev commented on Oct 30, 2026

    @plotarmordev
    Owner

    Measured on TensorFold v1.1.9 (PR #33 diagnostic): tagged dialogue still reaches the frame cap on 3/5 seeds, untagged 0/5, byte-identical to the previous pin with patches 0001–0015. So v1.1.9 doesn't change this; the cause is still open.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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