Recognize the speech models which say ASR in their name

This commit is contained in:
Thorsten Sommer committed 2026-09-19 15:44:15 +02:00
1 parent 5cef42a756
commit 44ae33b506
2 files changed
+35 -1

No files matched your search

@@ -16,7 +16,7 @@ public sealed class TranscriptionModelsFamily : ModelFamily
public override ModelVendor Vendor => ModelVendor.UNKNOWN;
/// <inheritdoc />
public override ModelSource Source => new("https://huggingface.co/models?pipeline_tag=automatic-speech-recognition", new DateOnly(2026, 9, 19), "Ported from the transcription markers of Provider/ModelKindExtensions.cs, minus the two which their own families now state. Canary came later: the markers never named it, so it reached the answer meant for everything nobody wrote a rule for.");
public override ModelSource Source => new("https://huggingface.co/models?pipeline_tag=automatic-speech-recognition", new DateOnly(2026, 9, 19), "Ported from the transcription markers of Provider/ModelKindExtensions.cs, minus the two which their own families now state. Canary and asr came later: the markers named neither, so both reached the answer meant for everything nobody wrote a rule for. Alibaba's speech line is documented at https://www.alibabacloud.com/help/en/model-studio/qwen-asr-api-reference.");
/// <inheritdoc />
protected override void Declare(ModelFamilyBuilder builder)
@@ -33,5 +33,19 @@ public sealed class TranscriptionModelsFamily : ModelFamily
// English word which would otherwise reach into names it has nothing to do with -- the
// same reason the embedding family gives for gte.
builder.Modifier("canary").AsSegment().Inherits();
//
// The abbreviation the whole field goes by, and the one Alibaba names its speech line
// after: qwen3-asr-flash, qwen3-asr-1.7b, fun-asr-realtime. Three letters, so a name part
// and never a substring -- "laser" and "eraser" carry them without meaning any of this.
//
builder.Modifier("asr").AsSegment().Inherits();
//
// Alibaba also builds the line into its audio models, and "audio" is the longer word, so
// without this the speech synthesis rule would answer for a model which only listens. A
// name carrying both words is a transcription model whatever else it is called.
//
builder.Modifier("audio").AsSegment().AlsoContains("asr").Inherits();
}
}