fix(backend): pass language/task directly to Whisper generate

This commit is contained in:
nox
2026-10-04 00:01:34 +00:00
committed by capy-ai-staging[bot]
parent e61c85365b
commit 7575a65e7f
+9 -7
View File
@@ -358,15 +358,17 @@ class PyTorchSTTBackend:
)
inputs = inputs.to(self.device)
# Generate transcription
# If language is provided, force it; otherwise let Whisper auto-detect
# Generate transcription.
# If language is provided, force it; otherwise let Whisper
# auto-detect. Pass language/task directly to generate() instead
# of building forced_decoder_ids — get_decoder_prompt_ids defaults
# to no_timestamps=True, which injects <|notimestamps|> and
# disables the timestamp tokens that return_timestamps=True (and
# therefore long-form decoding) depend on.
generate_kwargs = {}
if language:
forced_decoder_ids = self.processor.get_decoder_prompt_ids(
language=language,
task="transcribe",
)
generate_kwargs["forced_decoder_ids"] = forced_decoder_ids
generate_kwargs["language"] = language
generate_kwargs["task"] = "transcribe"
with torch.no_grad():
predicted_ids = self.model.generate(